Java programming language is one of the most popular in the world. That’s why so many people dream of becoming Java developers. How much time does it take? What do you need to learn, and what mistakes should you avoid? In this article, Olexiy Kapustnik, the senior Java developer and mentor at CodeGym Java University, shares his experience and lifehacks for beginners.
The desire and the choice, the failure and the breakthrough
The path of any developer begins identically – with a desire. For some, it relates to an interest in computer science, and others believe this profession is an excellent opportunity to earn a lot of money. I think that all these driving forces are perfectly normal and make sense.
The first step is choosing a language. To do so, you need to understand what you want to create in the future: mobile applications, the websites’ “external” side with which users interact (the front-end development), the “inner kitchen” of programs (the back-end development).
I chose the back-end and started to study Java. More precisely, circumstances pushed me to this choice. During my second year at the university, the teacher offered me to participate in a project. And I needed Java for it. I had zero Java knowledge but was familiar with C++, Pascal, and Basic. It helped me learn faster, so in two months, I mastered the basics of Java.
After that, I started doing interviews. One company offered me a free training program. I studied there for a few months, but they didn’t hire me as a full-time employee. Now I understand that I didn’t know much back then.
So, I didn’t have a quick start to my career. During the next year and a half, I “wandered”: finished my studies, sent my CV to numerous companies, and was rejected many times. Finally, I got lucky: first, I was recommended as a developer for a freelance project, and then its author founded a small company and hired me. It was my first job.
Almost six years have passed since then. I have changed several jobs, and now I’m a senior developer. Also, I am a mentor at CodeGym University, where I help people learn Java.
What does a typical developer’s day look like?
When I was a junior developer, my day often started at 9 am and ended after 11 pm. I had a lot of work and insufficient knowledge to complete some tasks, so I also had to study.
After becoming a Middle developer, I could arrive at 10 am and leave at 6 pm. The work-life balance was much better. And when I started working remotely due to the pandemic, I was already creating a schedule myself. Now, I begin my work at 10-30 am at home and finish it at 6 pm. If I need to be away during the day to run some errands, I do that, and then I catch up.
Every day we have a stand-up team meeting (10-15 minutes). Everyone says what they did yesterday and what they will do today. If there are any troubles after the stand-up, I call the team leader or the business manager. My biggest challenge is understanding how the program should work from a business perspective. Mentoring takes up a few more hours a week: I give lectures and answer students’ questions.
What is essential to know to become a Java developer?
I graduated from a technical college and university. I think that technical education is helpful for a programmer because it gives a basic understanding of important things: how a computer works, how networks are organized, and other technical aspects. Nevertheless, I don’t think it’s a must-have. You can get hired even without this knowledge.
What developers need is the ability to communicate in English. It’s one of the essential hard skills. All my experience proves that I should have invested much more time learning the language from the beginning. It would help me a lot, especially in interviews where they test your level of English.
And, of course, you need to know Core Java, frameworks, Hibernate, and databases. Everything else you can learn after you get a job. Also, it won’t hurt to learn the development methodologies to understand how the processes work.
I recommend you keep reading professional literature (books, articles) and taking courses. For example, I recently read Clean Code and Clean Agile by Robert Martin, and I really liked them. I am currently reading Kanban by David Anderson.
Among soft skills, adaptability is crucial for a developer. Your knowledge can quickly become obsolete, so you need to be prepared and able to learn rapidly. Here is my lifehack for improving soft skills: organize your work schedule and learn how to change it quickly. It would help if you taught your brain that nothing is permanent, and everything can change anytime.
Also, it’s helpful to work on your time management skills and read books about productivity. I’ve recently bought the book The 80/20 Principle by Richard Koch and will start reading it soon.
At first glance, discipline seems to be the opposite of adaptability, but this is an illusion. You won’t achieve anything without discipline, so you must put some effort here. It wasn’t easy for me. I trained myself to get up at a specific time and created rituals (for example, reading a book after the morning coffee). And adaptability is about quickly changing the order of things, if necessary, without destroying your day. So, you keep the schedule but flexibly play around with its content.
Is it possible to learn Java totally by yourself?
Yes, it’s possible, but it won’t be easy if it is your first language. You may not understand the principles behind the programming. So, it will take a lot of willpower and discipline, and you’ll have to put much effort into studying. You can choose an online group course or team up with your friends to simplify the learning process. My friends and I tried it at the beginning of our careers. We exchanged experiences and helped each other. Now, I work at the same company as some of my friends, who are already senior developers.
It is also essential to consider the speed of learning. There’s a chance that you can learn a language entirely on your own in several years. But will your knowledge be relevant by then?
How to become a junior developer with zero experience?
When you enter this field, you have two possibilities. The first is a trainee’s position, and the second one is a junior developer job. Both options are available even if you don’t have any experience. You can take courses, write programs, perform a couple of freelance projects – and get a junior position. For example, students of CodeGym University do real projects, and after that, they can become pretty strong junior developers. A company won’t have to teach them, just explain how the processes are organized.
I often see junior job openings that require at least one year of work experience. It doesn’t seem right: with such expertise, you can already apply for a developer position between senior and junior grades. If you’re still a junior after one year, you might need to change your learning and improvement habits.
One of the most common mistakes is not paying enough attention to your CV. Once I asked students to prepare a CV which they would take to an interview. Almost everyone didn’t do well. The CVs were poorly structured and difficult to read. Imagine an HR manager with several hundred resumes of potential juniors in front of them. The better composed and structured yours, the higher the chances it won’t be rejected. So, I recommend you highlight (probably even type it in larger font) what you know: Core Java, Hibernate, etc.
During an interview, a common mistake is to answer the question with “I don’t know.” Instead, say something like, “I haven’t tried it, but I’ve heard about this technology, and I guess it should do….” This answer shows that you can quickly learn even if you do not know something. And for an employer, this is a valuable skill.
For example, if someone asks me: “Can you work with MS SQL databases?” I can answer: “No, but I have worked with MySQL, now I am trying out NoSQL, and I have already written a couple of projects.” I can give a different answer: “I tried MS SQL, but it didn’t work out for me, so I only use MySQL.” In the first case, an employer will think I’m open to learning something new. And in the second case, they will see me as a person stuck within the old patterns and unwilling to change.
Not knowing something is not a problem at all. Moreover, the purpose of an interview for an employer is not to make you flunk it but to discover your current limit. If you answer well, they will ask you more difficult questions, up to the senior level. Once I was looking for a junior position, but I saw a senior job opening and decided, “let’s try!”. They called me for an interview and eventually offered me a medium position.
And finally, beware of the biggest mistake of any developer, i.e., believing you already know everything. This moment might never come. Therefore, you need to continue learning, and even then, most likely, you won’t keep up with all the innovations.
Is ageism a thing among developers?
As a teacher and a mentor, I have already worked with eight groups. There were different people: from students to people in their 40s. For example, one adult man was learning Java from scratch. He finished the course in August, and he was already working at EPAM as a junior developer in March.
Typically, large companies don’t care about the age of the candidates. But small organizations may have a different perspective.
Switchers who change careers have a much harder time retraining. They must turn their world upside down, starting from the idea that being a developer equals life-long learning. Therefore, those switchers who succeed are very adaptable people.
And finally: is it worth all the effort?
The profession of a Java developer really requires constant learning and growth, so you can’t call it easy. But it’s exciting and doesn’t let you stand still.
The hardest part about becoming a Java developer is getting started. The further you move, the easier it gets to work and pass interviews. You already know what employers want from you. They don’t ask you technical questions anymore (like when you were a junior). Instead, they ask whether you have worked with specific technologies.
Moreover, juniors run after work, but work runs after seniors. Nowadays, everyone needs developers. For example, I receive messages from recruiters on LinkedIn almost every day. And it started pretty soon: they began running after me 1,5-2 years after I started my career. One more year later, they ran after me very fast. And during the pandemic, their attempts to hire me became even more frequent. Sometimes I get six job offers in one day, and each company tries to surprise me somehow.
Those who are now starting as juniors will experience the same in a couple of years. But now, the most important thing is not to fall into despair during the first year while studying, going to interviews, and collecting refusals. I walked this road – and I achieved my goals. So can you.
YouTube: Fastest way to learn coding and actually get a job (Power Couple)
Photo credit: The feature image has been done by Ed Zbarzhyvetsky.This guest article has been submitted by Olexiy Kapustnik. While we appreciate guest contributions, it's important to note that the views expressed by the author are not necessarily reflective of those held by TechAcute.