
Hello! Briefly about myself: I have been programming since 1989, since 2005 in Java, since 2013 I have been working as a Java-trainer (until January of this year I combined it with the main work of a Java-developer). Quite a lot of my graduates got employed, and I want to share my thoughts on how to get a Java developer job (and not only Java).
From studying Java to getting a job offer - long distance
Requirements for candidates for a Java developer job are quite high, see an example of a
test job for a junior from one of the RB outsourcers . Of course, there are positions with less requirements, but there are not so many of them and,
according to statistics in Ukraine (dou works through a proxy, I have not found it in Russia), the ratio Responses / Vacancies to such positions is from 20 to 50.
')
For vacancies with work experience (of which there are significantly more), a vicious circle is obtained: without experience, not to get a job, and without work, not to get experience. The answer to the question “Who is to blame?” Is obvious - companies that do not want to invest time and money in training, but want to get a ready-made specialist. The main question remains:
What to do?
Large companies mainly
close junior positions with their interns . One of the employment options is to go on an internship, but
- there is also a big competition
- far from all who have successfully completed internships get jobs
- sometimes learning conditions are quite difficult and not suitable for everyone. From the review about the internship at EPAM RB:
Everything is so terribly strict there that I am still in shock. They have a strong selection there ... everything is evaluated, dz, tests, oral surveys, well, at the end the protection of their project. We are assigned task and put deadlines. I didn’t have time to fill in the task - everything, good-bye ... I feel like in school ... Until we have a list of 200-230 questions on almost all the topics that we should know without hesitation. We conduct summaries (!), A written answer to each question and it is checked ... Epam himself trains programmers differently and you will not say ...
The steps of another variant are well known (Jacob Fane's excellent video "
How to become a professional Java developer "):
- Good summary
- Invitations for interviews and training in their passage
- Getting an offer
A good (prominent) resume means that HR notices it and sends you an invitation for an interview.
On the Internet there are a large number of recommendations on how to achieve this:
But, in my opinion, the main thing:
Position yourself NOT as a junior.
For this you need:
- A good understanding of the basics: how the memory is arranged , what is JMM , experience with servlets, JUnit, SQL
- Level up Java Core: Maven, Spring basics (MVC, Security, Test), JPA (Hibernate), REST. Also desirable are the basics of javascript and html / css
There are a lot of materials on Java frameworks and technologies on the Internet. But if you want to master them, and not read / see and forget,
you need to write your own pet project on them . This may be a project of a home library or bookkeeping, or feeding the cat or ... Well, if there is a real need for it - then during its operation you will gradually come to the optimal solutions.
It is best to do it on the basis of a small project on a popular stack, for example, the reference implementation of
Spring Pet clinic . From the first time to make the code beautiful and correct, not even a signor. The project should live and carry its owner the joy of initiation to the beauty of the code through refactoring. And, apart from understanding technology and developing a sense of per-red, from working on your own project you get the skills of finding
beautiful and practical solutions for specific tasks and
solving specific problems that make up the daily work of a programmer. For this you need:
- understanding how frameworks work, what they are based on, what patterns are used
- outlook, skills in solving such problems
- working with tools: Git, IDEA, Maven, Tomcat, DB client, testing REST services
- the ability to find the right solutions on the Internet (70-80% is the ability to choose from those found in Stackoverflow )
This task is not easy and, if there is not enough time, knowledge, experience, I recommend to pass some Java Enterprise training on this stack, be sure to write a project based on the passed technologies at the exit. My training criteria:
- Leads a teacher with experience in Java development, better as a signor or architect
- Maximum coverage: the most important and necessary Java developer themes, APIs, frameworks, tools in one course.
- During the training, a completed Enterprise project is being developed. Topics are not separately (in the air) on the examples removed, but sequentially, in conjunction, as additions to the creation of a single, working application.
- Consistently increasing complexity: from zero to deploy the finished application to the cloud
- Practice! Participants throughout the course should work with the project code. Compulsory homework. If they give only a theory (a little of everything), then this, in my opinion, is money thrown away and time. Without practice, any training (Java, English, cycling) is worth nothing.
- Support for the group and teacher: the opportunity to ask any question and get a qualified answer to it.
- Accessibility and structured materials
- Review your code.
- Assistance in the preparation of resumes and employment. If you are guaranteed at the end of 100% employment - do not believe. Well said in the article about the work of the developer :
The work of a programmer is not so much a profession as a lifestyle. University education, self-education, hobbies and, importantly, passion are key components of success in this area.
After you have experience in your own Java Enterprise project,
Make a new resume:
A typical Java junior resume begins like this:
Start a career as a junior Java developer in a modern, promising company, in 3 years to become a specialist ...
We train well ...
Opt work: no
Passed courses ...
Need to:
- remove the words "start a career", "junior" and "ready to learn"
- insert into the qualification all the technologies you studied
- in work experience write about participation in the project with its brief description
For example, WORK EXPERIENCE:
Participation in the development of Spring / JPA Enterprise applications with authorization and role-based access rights on the Maven / Spring MVC / Security / REST (Jackson) / Java 8 Stream API stack:
- implementation of saving to the Postgres and HSQLDB databases based on Spring JBDC, JPA (Hibernate) and Spring-Data-JPA
- implementation and testing of REST and AJAX controllers
- client implementation on Bootstrap (css / js), datatables, jQuery + plugins.
You may not be afraid to apply for such vacancies with a requirement of 1-2 years of experience and, possibly, go to the next level: “Invitations for interviews and training in their passage”, which already requires a separate article.
Thank you for your attention and wish you an excellent IT career.