Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Transcript of JavaCentric
C vs Java
Java Special Api
Collection of nice to know
. It covers the developing of programming languages one from another, the pros&cons, domain usage and others. Mainly dedicated to
, people with
no programming background
, but has also valuable
for experts too.
Legend of topics
my name is...
Java for recruiters
Tools / Information sources
UseCase - Glossar
Interactions with software
On a daily basis we interact with a lot of apps.
Which are the programms you know and use?
Ever thought how they were build?
Which are the key parts of them?
What is the difference?
Which do you think is more complex? Why?
Some of them you use
on your computer(
) : Notepad, Word, Excel, Outlook, ERP, Lync
Some you use from an
: Cronos, Outlook(owa), Timetracking, Sucessfactors
Some you use from
devices: Cronos, Lync
With some you transfer
as mails, with other as text or voice and with others just
All are different, all have different purposes, different aspects and
All have a part the
to and a part that's hidden.
Here we'll dive into the hidden sructure to understand how an app is actually built.
What is application software?
is a program or group of programs
designed for end users
. These programs are divided into two classes:
. While system software consists of low-level programs that interact with computers at a basic level, application software resides above system software and includes
, etc. Application software may be grouped along with system software or published alone.
Application software may simply be referred to as an
In the enterprise environment key words are used, try to find the proper definitioins for:
- mobile application
- enterprise software
- business software
- enterprise resource planning systems
An additional note on two-tier architecture is that the word "tier" commonly refers to splitting the two
onto two different physical pieces of hardware.
programs can be built on one tier, but because of operational preferences, many two-tier architectures use a computer for the first tier and a
for the second tier.
From an architectural point of view
an application can be logically devided
into more tiers depending of the
specific role one tire has.
We have to present something to the
user, do some work with input, bring data
from the database and file system, send
the data back for processing and show
the data back to the user.
Telnet 3270 -
Client - Server
API - Application Programming interface
DB - Database
APP Server - Application Server
SOAP - Simple Object Access Protocol
XML - Extensible Markup Language
HTML5 - HyperText Markup Language
CSS3 - Cascading Style Sheets
HTTP - Hypertext Transfer Protocol
SMTP - Simple Mail Transfer Protocol
WSDL - Web Services Description Language https://en.wikipedia.org/wiki/Web_Services_Description_Language
J2EE - Name befor Version 1.5 of JEE - Java Enterprise Edition
Servlets - A Java servlet is a Java program that extends the capabilities of a server. Although servlets can respond to any types of requests, they most commonly implement applications hosted on Web servers. Such Web servlets are the Java counterpart to other dynamic Web content technologies such as PHP and ASP.NET.
JSP - JavaServer Pages (JSP) is a technology that helps software developers create dynamically generated web pages based on HTML, XML, or other document types. JSP is similar to PHP and ASP, but it uses the Java programming language. In Java EE a (web) UI can be built using Servlet, JavaServer Pages (JSP), or JavaServer Faces (JSF) with Facelets.
EJB - Enterprise Java Beans is a managed, server software for modular construction of enterprise software, and one of several Java APIs. EJB is a server-side software component that encapsulates the business logic of an application.
SQL - Structured Query Language is a special-purpose programming language designed for managing data held in a relational database management system (RDBMS)
JMS - Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914.
Frontend / Backend - In software engineering, front end and back end distinguish between the separation of concerns between the presentation layer (the front end) - which is the interface between the user - and the data access layer (the back end). The front and back ends may be distributed among one or more systems.
Please read the following:
POJO - In software engineering,
a plain old Java object
(POJO) is an ordinary Java object, not bound by any special restriction and not requiring any class path
JDBC - Java Database Connectivity (JDBC) is an application program interface
specification for connecting programs written in Java to the
in popular databases. The application program interface lets you encode access request statements in Structured Query Language
that are then passed to the program that manages the database. It returns the results through a similar interface.
ORM - Object-relational mapping (ORM) is a mechanism that makes it possible to address, access and manipulate objects without having to consider
how those objects relate to their data sources
3GL - high level languages
4GL - domain specific languages, like SQL, Regex
5GL - future oriented, more marketing than reality
usually static content
usually dynamic content
Please visit the following site, you can find a lot of helpful information:
: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it. Hence, the first great virtue of a programmer.
: The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer.
: Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about. Hence, the third great virtue of a programmer.
Characteristics of a
. This is the kind of colleague we search for(must read):
What does a programmer need to know?
IDE - Integrated development environment https://en.wikipedia.org/wiki/Integrated_development_environment
Framework - https://en.wikipedia.org/wiki/Software_framework
JVM, JRE, JDK - https://en.wikipedia.org/wiki/Java_virtual_machine#Java_Runtime_Environment_from_Oracle
SE - Standard Edition https://en.wikipedia.org/wiki/Java_Platform,_Standard_Edition
EE - Enterprise Edition https://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition
About Domain, OOP, Object , Class, Jre, Jdk, JVM, Bytecode
Example Bank Domain
One candidate in particular really threw a wrench in my process. When I clicked to open the resume for a
Developer applicant, I was greeted with “Over three years of
development experience during my time as a barista at Starbucks. I have excellent customer service, etc…..”. My first thought was “Sorry buddy, wrong kind of Java.” But then I found it humorous and shared with some of my colleagues.
Slang word for Coffee
1. What is Java?
Java is a compiled, object oriented programming language, similar in syntax to C++. It is intended to let application developers “write once, run anywhere” meaning that compiled
Java code can run on all platforms that support Java without the need for recompilation
. Application written in Java have very good performance thanks to use of a
Just-In-Time compiler which continuously analyses the program speed and optimizes frequently executed spots
. Another key advantage of Java is an automatic memory management which allows developers to write applications without worrying explicitly about memory allocation and deallocation. As of 2016 it is one of the most popular programming languages in use. Java is not considered an easy-to-use language for non-programmers.
car to carpet
, so don’t confuse these two programming languages.
2. What is important for IT Recruiter to know about Java?
Before I go into details on how to screen Java skills first let me share some basics that will allow you to become more familiar with this technology.
Java world changes often
, so experience with framework gained 5 years ago is not valid anymore. Bare this in mind when you assess Java skills based on so far employment.
Secondly, in Java world ecosystem
knowledge of tools and libraries is more valuable than knowledge of the language itself
. Without it a programmer will write everything by himself from scratch and just waste time. If a developer is familiar with Java libraries and frameworks then he can use it like
to make what they need and write code only where it is necessary. By doing it this way their work is much more efficient.
Last but not least
only commercial experience is important
. Java knowledge from university
is hardly ever useful for business coding
. So unless you recruit for an entry, junior position you can skip assessing Java skills based solely on university education and degree. In that case what is more important is candidate’s real life coding projects, it doesn’t have to be a commercial one – it can be hobby or open source programming project.
3. How to verify Java skills in screening phase?
Screening is tiring, arduous and takes a lot of your time. Usually IT recruiters turn to following screening techniques from assessing java skills based on
to online coding tests.
Below you find some useful and practical recruiting tips how to verify Java skills using each method.
Important to know what we are talking about!
3.1. Technical screening of Java skills based on CV
Java technology – basic glossary of Java terms for IT recruiters
Sure all the information you need is in the CV – you just need to find the right ones. Sounds easy, right? However, when you start screening the resume, you come across terms like
, and pretty quickly you get confused whether this is the candidate you are looking for. If you are Tech Recruiter recruiting for java position then you should at least be familiar with all its frameworks, build tools etc. in order to know what you are looking for and to be able to speak the same language with your candidates (or at least understand basics the candidate is talking about).
That’s why we prepared this basic
, just have a look.
Java glossary for technical recruiters
Java Server Pages (JSP)
Enterprise Java Beans (EJB)
Java Message Service (JMS)
Java Web frameworks
Java Server Faces (JSF)
Java Persistence API (JPA)
Java build tools
Maven, Gradle, Ant
Java application containers
Tomcat, JBoss/Wildfly, Undertow, Jetty, WebLogic, WebSphere
Java testing tools
JUnit, TestNG, Spock, Mockito, Cucumber
Spring Framework, Guice, CDI
Now that you know the basics, we can go into details. If you’re not a tech person then it’s easy to get confused by all the different technology names and abbreviations. If the candidate states that they know
EJB does it mean that they are familiar with Java EE
? Or if the applicant knows
Maven 1 does it mean they can also deal with Maven 2?
Keep calm, we’ll help you out. Just continue reading.
Most common Java technology names that are
– JPA, Hibernate, Java Persistence, Java Persistence API,
– Java EE, EJB, Enterprise Java Beans, Enterprise Java,
– JBoss, Wildfly.
Relations between respective versions of Java technology:
– EJB 2.0 is totally
from EJB 3.0,
– Java EE 1.4(J2EE) is totally
from Java EE 5,
– Java EE 7 is an
version of Java EE 6 which is an
version of Java EE 5,
– Spring 2.0 or Spring 3.0
to Spring 4.0,
– Acegi changed name to Spring Security,
– Maven 1 is totally
from Maven 2,
– Maven 2 is very
to Maven 3,
– Hibernate 4.x is very
to Hibernate 5.x,
– GWT 1.x is
from GWT 2.x,
– Struts 1 is totally
from Struts 2,
– JPA 2.x is
version of JPA 1.0.
It is also valuable to be aware of following relations:
Full text search
: If someone knows one of Lucene, Solr or ElasticSearch will be able to deal with the rest.
Object Relational Mapping
: If someone knows one of Hibernate, EclipseLink, OpenJPA then will be able to deal with the rest.
If someone knows one of Spring MVC, JaxRS, Jersey then will be able to deal with the rest.
Significance of Java certificate for assessing developer’s Java skills
Java certificates are usually appreciated by employers. However,
certification seldom is a requirement for a candidate
. As a technical recruiter you have to be however cautious in assessing Java programming skills based on certificates, because
none of them serves as a guarantee for developers capabilities
It happens very often that a
very experienced programmer hardly passes the certification exam
a weak programmer scores well
in such an exam. Why is it so? Such certificates
hardly verify practical skills
. They usually require learning by heart things that a more experienced developer would quickly find in documentation or be able to verify it. By quickly I mean within several seconds using their favorite IDE (software that a programmer uses to work on applications), which is not available during exam. BTW, being not able to use IDE doesn’t make sense ‘cause on a daily basis the programmer uses a lot of external sources, such as IDE, to perform their job.
Below you will find a list of Java certification divided into 3 groups
Practical Java certificates, requiring hands-on experience, guarantee of in-depth knowledge of the subject
– Spring Professional,
– Spring Web Application Developer,
– Enterprise Integration Specialist.
Useful Java certificates, can serve as a reliable proof of knowledge
– Oracle Certified Master, Java SE 6 – requires pretty good level Java skills, but only Java 1.6, which was released 10 years ago (2006),
– Oracle Certified Expert, Java EE 6 Web Services Developer – requires sound knowledge but doesn’t verify commercial experience therefore it cannot serve as a guarantee for project success,
– Oracle Certified Expert, Java EE 6 Java Persistence API Developer – requires sound knowledge but doesn’t verify commercial experience therefore it cannot serve as a guarantee for project success,
– Oracle Certified Master, Java EE 6 Enterprise Architect – a candidate understands and can apply Java on architecture level,
– IBM WebSphere – requires sound product knowledge but doesn’t verify commercial experience therefore it cannot serve as a guarantee for project success.
Java certificates – theoretical knowledge, not much useful from business perspective
– Oracle Certified Associate, Java SE,
– Oracle Certified Professional, Java SE,
– Oracle Certified Expert, Java EE 6 JavaServer Faces Developer,
– Oracle Certified Expert, Java EE 6 Web Component Developer,
– Oracle Certified Expert, Java EE 6 Enterprise JavaBeans Developer.
Other information on resume that can show developer’s Java skills
open source project
is the information worth taking into account. If the candidate is a contributor to well-known and large projects then it can be of great value. It is also important if a programmer has experience in
similar kind of IT projects
that we are looking an employee for. Creating new things
requires different set of skills and attributes than maintaining them
3.2. Technical screening of Java skills during a phone/video technical interview
As it is pretty difficult to draw reliable conclusions about candidate’s programming skills from resume itself, IT recruiters often conduct a phone or video interview. Such an interview gives an opportunity to ask questions concerning their Java skills. In many companies such a technical phone or video interview is a basis for making a decision whether to invite somebody for on-site technical interview with IT team or not, so it’s worth to choose and ask the right technical questions.
As questions itself can vary based on position you are recruiting for and specific skills you want to verify, based on my experience I would recommend following general questions to find out more about candidate’s Java skills:
A. Java interview question concerning developer’s experience
Q1: With which technologies listed in your CV, did you have commercial
experience in the past 2 years
? What were your
? What was your
Why to ask Q1: By asking this question, you can find out more about candidate’s Java up-to-date experience, responsibilities and achievements. Thus you get to know your candidate better.
B. Java interview question concerning developer’s knowledge and opinions
Q2: Which Java
open source libraries
do you consider to be valuable and why?
Why to ask Q2: This question lets the candidate demonstrate their knowledge of
. Moreover, the candidate can point out what he takes into account when choosing a certain technology. As a follow up questions you can also ask what in his opinion advantages of commercial solutions over open source and vice versa are. This shows how the candidate thinks.
Q3: I’ve noticed you listed framework X on your CV. What’s your opinion about it? Is it a good choice?
Why to ask Q3: Such an open question allows a candidate to demonstrate their knowledge if they have it. You can also play devil’s advocate based on their answers “But why not use framework Y for that?”. Thus you can see how the candidates choose a technology, justify their choices and whether his opinions are in line with your IT teams.
C. Java interview question concerning developer’s decision making regarding Java technology
Q4: On what stage did you
join recent projects
? Were you involved in the choice of technology or project setup? If yes, which technology did you choose or recommend for the project and why?
Why to ask Q4: Such a questions shows not only how a candidate makes choices regarding technology but also whether they were included into making decisions. Especially important if you are looking for someone with experience.
D. Behavioral question for java developer
Q5: Think about programming project
decision you made that was a failure
. Why do you think it was a mistake? Why did it happen? Could there be anything done differently in order to turn it into success? What steps did you take to improve the situation?
What did you learn from this experience?
Why to ask Q5: That type of question will help you find out how the candidate perceives their decisions, draws conclusions and how much they learn from their previous experience.
Word versus...a good way to find hints in technology.
Front vs Back
Spring vs Jee
You can find code snippets of CSS, HTML, JS in the Browser, press F12
What a Java Developer should know
Experienced or familiar with:
One application server
– GlassFish, JBoss, WebLogic
One or 2 Graphical User Interface
frameworks – Swing, Struts
One or two IDE
frameworks – Eclipse
One or two log
frameworks – Log4j
One or two build
frameworks – ANT – Another Neat Tool
One or two testing
frameworks – JUNIT
One or two mocking
frameworks – Mockito, EasyMock
A documentation tool
What a recruiter should look for in a Java Developer’s Resume?
How the tools listed above where used by the candidate
in each of their positions
Call when you
see recent experience
Developers do move on and sometimes to entirely new development platforms, so ensure you call candidate for skills that are within the
past 3 years or so
Learn the basic APIs in Java based on a domain example
A lot of materials you can browse trough...
How do we search the internet?
Where do we search good people?
Use actual groups or make a group of your own in JAM and collaborate on recruiting/Java subjects