Full-stack developer and mentor Oleksiy Kapustnik answers common questions from beginners and tells how to understand that programming suits you, what a Java junior needs to know in 2022, and what to do to stand out from others candidates.
How do you know if a developer’s career is right for you? What qualities are essential for it?
You need to be constantly aware of new technologies, have a passion for them, and want to learn new things. Without these qualities, you will have a hard time. I taught dozens of students, and in each group, some burned with programming – they were always in the lead.
Programming is an area in which you need to learn constantly. And the lower your level, the harder it is for you because you don't know a lot. So, it would help to withstand the training load and, later, maintain your level.
If you are a math teacher, you have gained the necessary knowledge and applied it for the next 50 years. Once there is a discovery or a new formula every ten years, you know it and teach it again. In programming, the opposite is true: I mastered the technology for two weeks, but while I understood it, a new update came out, and I had to relearn it again because it radically changed everything.
We must learn to adapt. It’s our nature to be afraid to change something or resist it. But if you act like that in life, you probably don’t belong in programming. And vice versa: if you understand that you need to change all the time, improve, and acknowledge that everything in life is impermanent, then programming will be a piece of cake for you.
Perseverance and discipline are essential. Motivation works only at the initial stage. For example, if you are starting to study, you are motivated by money, freedom, perks, and a new profession. But after a couple of months, your motivation may disappear, which is typical: discipline should work further. You can sit for hours on a task, and when you solve it, you understand that everything is possible. By the way, this principle may be beneficial for different areas of life.
What should a beginner Java developer know in 2022?
In addition to Java Core, you must know the Spring framework – you can't work without it. Once, I failed an interview because I didn’t realize I needed to know it. In any case, you need knowledge of databases and the Hibernate framework.
I recommend learning technologies like Kafka (Apache Kafka is a distributed software message broker, an open-source project developed by the Apache Foundation – ed.). A Middle developer needs to know that, and it can be an additional advantage for a Junior.
You need to know the Git version control system. Also, you need to understand who is who and what DevOps does (the main task of this specialist is to set up and maintain the necessary software in the company and automate each development stage – ed.). If a developer performs projects for themselves, they must know the essential things from the DevOps area.
How can you make your CV exceptional, different from the rest of the candidates?
The resume should be easy to read. I would say it should be intuitively readable so that the recruiter can see: this is a Java developer’s CV. This developer knows the core and fundamentals of frameworks.
A list of books you’ve read can be a plus. In my first resume, I provided such a list, and when HR met with me, she said that she and her colleagues were impressed that I had read these books.
It is also necessary to specify the “general knowledge” you have. For example, how the Internet works, knowledge of REST, SOAP – something that does not apply to Java Core but belongs to general programming.
How do you know when it's time for interviews?
I would start by finding interview questions for a Java Junior position. Then I’d read the questions and thought about how I would answer them. Then, compare my answers to the given answers. If most of them match, fine, you are ready for an interview. However, if you’ve answered only three questions out of 30 correctly, you need more time.
If everything worked out with the questions, you could take online tests. The questions will most likely be almost the same at the interview. Nevertheless, don’t forget about the stress and be ready for a challenge. When you do all these preparations, set a deadline for yourself, otherwise, you may never feel ready for a real interview.
How to prepare for an interview?
First of all, you need to overcome your fear. If this is the first job interview of your life, you will be stressed. At my first interview, three venerable programmers said to me: "Well, tell me." And I got scared not because they were scary but because this never happened to me before. To overcome this fear, you can ask a friend to help: give them a list of questions and let them drive you through them.
During the interview, a situation may arise when you are asked something, and you don’t know the answer. You can't just say, "I don't know," and remain silent. Instead, you should answer: "I have not worked with this technology, but I assume that it works this way ...". You must convert your ignorance into something you can learn quickly.
Try to act confident. Any interview’s purpose for a company is to evaluate you as a developer, and for you to evaluate the interviewers as your potential colleagues. Feel equal: as the company chooses you, you choose a company.
How should I organize my learning?
There is a fine line in training – it is the balance between personal life and work at the computer. When you first start learning, you may have plenty of time but little knowledge to code. Therefore, you can devote 3 hours a day to programming. Then, when the amount of knowledge increases, you can spend 8 hours a day studying.
Sometimes, you may think working 15 hours a day to learn everything as soon as possible is a good idea. But you won’t sustain this speed for long. Therefore, it is essential to find your limit when you realize that you have worked enough to learn the material but are not burned out. Once, I studied and worked too hard, which had a negative effect. You need to rest and reload your brain.