What employers expect from junior Java developers
Greeting! I am Anastasia Ragozina, a product manager on a Java developer course. Currently, the labor market in the IT sphere is not going through the easiest period, and it is especially difficult for newcomers. That’s why my colleagues and I conducted research in the last quarter of 2023 and found out what skills and tools beginner Java developers need. And also — what should be prepared for when applying for a job.
Contents
Why and how the research was conducted
We wanted to understand how the labor market has changed over the past few years, what requirements employers now make of newcomers, and whether our course meets these requirements. We needed to find out:
-
what tasks does a beginner solve in the first six months of work;
-
which skills are mandatory and which are desirable;
-
how interviews take place;
-
what background employers value
To answer these questions, we analyzed more than 1,000 vacancies on HeadHunter, conducted 18 interviews with developers, team leaders and department heads, and interviewed graduates and students of the Java developer course who found work. Next, we will analyze the main requirements and tasks, which must be solved by the junior javist, item by item.
Necessary skills and tools
First of all, employers, of course, look at the technology stack that an applicant possesses.
These are the most popular technologies that can be seen in the requirements. In addition to them, it is necessary to be able to work with Git, the terminal, IDEA. A developer cannot do without these skills.
Many employers noted that for June, soft skills are as important as hard skills. And sometimes even more: software allows you to stand out from other applicants. This came as a surprise to us. The most important are motivation, activity, discipline, the ability to work in a team and think logically, developed communication skills. For example, here is what the employers themselves say:
“It should be comfortable to communicate. We will sooner take a weaker one, but with whom it is pleasant to communicate, than a harder one, but more difficult“.
“Jun must have – it’s motivation. That is, actually. So that he understands what he wants from work, why he comes here. It doesn’t have to be some lofty goal, but you want to have understanding. Because when a person like this comes: “well, you have to work – i will go to work“, – it’s not interesting. When he says that “I want to see how cool specialists work, gain experience in highly loaded services, I don’t know, either in programming in a specific language or in working with such tools», – this is specifics“.
In the table below, we have collected all the skills that a beginner cannot do without. And also — optional skills that will give the applicant an advantage at the interview.
Hard skills |
Soft skills |
Optional skills preferred |
Java Core Good level. Understanding of object-oriented programming, knowledge of features when working with it in Java. Collections – how the differences are arranged, the complexity of operations. For example, it is necessary to know how to use the correct container so that the complexity is logarithmic instead of quadratic. Algorithmic skills – basic level. It is necessary to be able to solve simple tasks and consider complexity for solving. Spring Boot – general principles, work experience, basic instructions, methods of applying dependencies. Databases – knowledge of SQL syntax, Postgres, ability to independently write queries, basic knowledge of transactions. JUnit – basic knowledge, ability to write the simplest unit test. Principles – SOLID, REST. Multithreading – understanding the basics of what a thread is, how it is started, what a thread pool is. |
Developed communication skills. Employers look at how a person communicates and whether they are comfortable interacting with him. This is important because you have to communicate a lot. The ability to reason logically. One of the main requirements is the presence of logic and an analytical mindset. Motivation and desire to develop in programming. It is important to have answers to the question: “Why am I doing this? What am I interested in? Where do I want to go? Proactivity. The ability to correctly formulate problems and ask questions will be a big plus. If you don’t, it’s easy to get stuck and the work will stall. The ability to independently understand the task. The best option is to first try to figure out the problem yourself and only then go to your colleagues with questions so as not to drag them on every occasion. What is important is the desire to find not just a working option, but the best one — and to understand why this option is the most suitable. |
Knowledge of ORM – Spring Data, Hibernate: how it is arranged, how it tracks entities, what are the pros and cons. Advanced knowledge of Spring AOP, Transactional, Conditional, servlet container, difference between Spring and Spring Boot – what it is, how it works. Knowledge of Linux, command line the ability to use the console and understand the essence. Knowledge of Docker and Kubernetes basics creation and launch of containers, the ability to wake up variables. Kafka device, topics, partitions, and experience with it, unlike RabbitMQ. Indexes in databases what it is and how it works. Understanding business processes in the team setting and evaluating tasks, review, kanban method, etc. Understanding and experience with microservices. Knowledge of OpenAPI specs, OpenAPI generator. Availability of their projects – to watch before or during the interview. |
What background is considered optimal
Work experience is equally important. Employers look at him first. Preference will be given to a candidate with relevant experience – it will be easier for such a person to integrate into the project.
If you don’t have experience, it’s important to show your own projects, for example by attaching a link to your GitHub. Technical education (engineers, physicists), knowledge of some programming language, own projects or participation in Open Source will be a plus. Thus, the lack of experience reduces the chances of the applicant, but will not be a sentence.
What to expect at the interview and how the hiring process takes place
The hiring process may differ for different companies, but globally, two main stages can be distinguished – resume selection and interview. Let’s talk about each of them in more detail.
-
Most often, HR searches for resumes through hh.ru, less often through other channels, for example, Khabr career. And some companies conduct internal training, after which they take participants to the staff.
-
The employer looks at how the candidate presents himself in the resume. The preparation of the resume is also evaluated: first, there should be work experience in the specialty, then everything else.
-
Many candidates neglect the cover letter. And in vain! After all, in it you can show your interest in the position, as well as tell in more detail how the candidate’s experience resonates with what the company does.
If the first stage is passed, the applicant is invited to an interview. Usually, the interview consists of several parts:
-
Algorithmic section or problem solving in live coding format.
This stage is not everywhere and may differ in different companies. For example, such giants as Yandex or Tinkoff expect candidates to have in-depth knowledge of algorithms. They give acquirers more difficult tasks. Where in-depth algorithmic knowledge is not required, the candidate may be asked to solve a simple task, for example, to implement a binary search algorithm.
-
Technical interview – questions about Java, tools and technologies, discussion of experiences, projects and technical questions about them.
All employers emphasized that a deep knowledge of the language and an understanding of its features are important. In addition, a beginner developer needs to confidently write queries to databases, use Git and IDEA. In other skills, the requirements may differ. For example, large companies are less likely to expect applicants to have a deep understanding of Spring or Hibernate — a fairly confident knowledge of the basics. In smaller companies, on the contrary, candidates are required to have a deeper knowledge of all the technologies required for the vacancy.
-
An optional but frequent interview stage with the team or project manager.
If the candidate was invited to this interview, then, most likely, he is suitable in terms of hard skills, but it is necessary to understand whether it will be comfortable to work together. This is where software skills come into play – the ability to present yourself and build communication.
At the interview, it is important to present yourself as a person with an active position, a desire to deal with problems and get to the bottom of the matter. If there is no answer to the question, you can request additional information or ask for a hint. You can also ask questions at the end of the interview – this will show that the candidate is interested in the job.
Employers recommend preparing for the interview: find a quiet place, be sure to turn on the camera and in no case look at notes or use the Internet to search for answers – this raises questions about qualifications.
What tasks must be performed during the probationary period
Most often, the trial period lasts three months. Will work in a team of 5-10 people, in which, in addition to developers, there are testers and analysts.
We asked if there were any fundamental differences in tasks for a beginner and a more experienced developer. The majority of employers answered that the tasks may well be the same, but the timing, quality and autonomy of the developer will differ. A task that an experienced developer can handle even on a new project in a day, Jun can do it in 2-3 days – that’s normal. Also, a novice programmer may need help getting the hang of the project. For the first time, Jun will have a mentor to turn to for help, a more experienced developer will most likely manage on his own. Examples of tasks in the first 3 months of work:
-
write simple code or test how it works;
-
to supplement some essence with fields;
-
fix simple bugs;
-
perform tasks on behalf of a more experienced specialist, etc.
Conclusion
Based on the results of the research, we found out:
-
Requirements for novice developers have increased. If previously it was enough to know the language, the basics of Spring and databases, now employers expect more skills from candidates.
-
The hiring process is different for large and small companies. For the former, in-depth knowledge of specific tools is often not so important, but the algorithmic base is important. For others, more applied skills.
-
For ourselves, we have confirmed the suitability of the Java developer market course program from the point of view of hard skills. It is understood that it is necessary to emphasize and teach students software; create an environment where they can do more independent portfolio projects and update versions of some of the technologies we’re talking about.