Answers to some questions before you start leaning Java

Just to avoid you from wasting time I’d like to answer some questions that many beginners have at the start and give some tips about learning Java backend.

Question: Which laptop do I need?

To start learning the backend with Java you can use any computer. You don’t have to buy a super performant laptop. To start learning any laptop is ok. Don’t worry about that for now. When you will notice your laptop is not performant enough you will think about how to solve this problem. But to get employed this is even not necessary. 

You may have performance troubles if you are working with advanced technologies and for example, have to install Virtual Box with Linux inside your Windows machine. Also, if your laptop doesn’t t have enough RAM you may need to avoid opening too many tabs in your browser. In my opinion, the amount of RAM you need to forget about any problems is 16GB. If you have less – no worries, it is not the reason to postpone the beginning of your studying. You still can learn Java backend. 

Question: Which operating system do I need?

You can use any operating system you are comfortable with. I see many developers using all three popular operating systems – Mac OS, Linux, and Windows. Production java applications are running on servers and there is usually used Linux. But as a developer, you can use any OS. 

On my laptops, I have Linux Ubuntu, and Windows. As an employee, I used both operating systems to work as a Java developer. 

But for personal purposes, I believe Windows or Mac is better. I use Windows when I work on my personal projects because this OS supports many applications for video production. Linux is a great operating system for backend development and I have it on my laptop for work. But if you want to try Linux for other purposes it is not the best. I was in a situation where I had an audio interface and I couldn’t use it on Linux, just because there were no drivers for Linux. Or I couldn’t connect my laptop with Linux to a big-size TV. So, if you want to use your laptop not only for software development, Mac or Windows definitely is the better option.

Question: How long does it take to learn everything needed to get employed as a Backend developer?

What you really need to become a backend developer is time. Don’t expect to learn backend and get a job offer fast. All courses that say something like “Learn Java in 2 months” are just laying. Be ready to invest hundreds of hours of your time to get a decent level in the backend and get employed. There are different situations in different countries and the rough number of hours you need to spend learning Java may differ. But I’d expect to spend at least 800 hours learning theory and practicing. 

In my case, I spent about 800-900 hours, but I think that I was quite lucky. Be ready to spend more hours learning.

In my case, these 800-900 hours included learning Java, the basics of data structures, testing with JUnit5 and Mockito, Maven, terminal basics (Linux), Git, basics of Object-oriented programming, basics of functional programming and Java Stream API, SQL, basics of concurrency and multithreading, and some basics of Spring framework.

When I was learning I expected to keep on learning for at least 4 extra months and get extra 400-600 hours of learning and practicing with Spring and previously learned technology. But I tried to apply for some jobs and got an offer. 

You may notice that this list doesn’t include the basics of algorithms. It was my strategy to get employed first in a company that is not interested in algorithms and doesn’t ask algorithmic questions in interviews, and after that start to learn algorithms and practice solving algorithmic problems. 

Check companies that hire in your region. I believe that there are companies that don’t ask algorithmic questions or ask only simple of them. You can target companies like this first. If you want to target companies that ask algorithmic questions – be ready to invest extra time in learning algorithms and solving leetcode.com-style questions.

Learn more about your local market to improve your learning plan.

Question: How often do I need to learn?

You need to learn regularly. If you are studying twice a week – it will not work. Ideally, you need to learn at least 2 hours 5 days a week. Of course, the more hours you can spend learning and practicing, the better. It doesn’t mean that you cannot miss days and cannot go on vacation. But in general, you need regular study.

Tip: don’t learn instead of sleep, and don’t overwhelm

Make sure that you sleep enough. You can sleep less than 7 hours a day for a short period of time but in long term, you will dramatically lose productivity and damage your mental health, and even can stop studying at all. 

Sleep is crucial when it comes to learning.

I can say the same about your mental health in general. Don’t ignore what you fill. If you fill too tired and don’t fill any enthusiasm to learn make pause. There is some time when you can force yourself to study, and for different people this time may be longer or shorter. But usually, if people push themselves too hard and for too long they end up burned out and lose more time. Don’t get into this trap.

If you have to push yourself to finish a course section or project on time, make sure that it will be not longer than 3 weeks and recover properly after that. 

Tip: if you decide to become a backend developer be ready for hard work

Learning the backend and working as a backend developer is a hard job. Be ready for that. 

Working as a backend developer, especially in an enterprise, you are facing challenges all the time. You will be in situations when cannot solve a problem longer than you expected. Backend systems are full of technologies and it is impossible to know all of them, especially being a beginner. So, there may be a period of time when you are in a situation when almost everything is unclear. 

You will need to read a lot and be in the right condition to comprehend the documentation you read, and the source code that was written by your colleagues. 

You need to be careful and precise because one typo sometimes can take a lot of time to understand what went wrong.

All these things take effort. Make sure that this is what you want.

Also, be ready right now that you will fill a lot of enthusiasm at the beginning but after a while, it might become a regular hard job. It is absolutely ok. In a time you may fill enthusiasm again. Just go on learning and practicing, don’t overwhelm yourself and you will get all benefits that being a backend developer can give you – being a professional, being in high demand, having a good salary, and being able to work in almost any country. 

Now there are several tips about the learning approach.

Tip: don’t worry if you don’t understand something

When you go through the learning material you will sometimes or often think that not everything is clear. Don’t worry about that, it is typical for most people. Try to review a piece of material and understand it better, or try to read about the same topic from a different source. If after that you still don’t understand that – I’m sure you will comprehend this in several days or maybe weeks when you will have more context and your brain will do all the work to process the information you received.

Tip: you don’t have to memorize everything

Some beginners may think they need to memorize every piece of information they see in the course. You don’t have to. And it is just impossible to learn everything. Of course, you need to remember the most common Java syntax, and you will by practicing it a lot. But when it comes to using libraries, frameworks, and other tools it is not what you have to learn by heart. Instead, you will need to learn searching information fast on the Internet and in Java docs. 

As a beginner, you need to learn decently the most common Java syntax by practicing it, and repeating again and again. You also need to learn many concepts to be able to answer interview questions. After that, there is a wide group of materials where you need to be aware of different technologies, libraries, and other tools. Practicing the most popular of them you will memorize some of these things, but you will face new technologies all the time and you will never learn everything. Just don’t worry about that. Invest your time in the most important things that are bringing you closer to employment.

Tip: what to pay attention to while studying (7 aspects of training a beginner back-end developer)

This is a short cheat sheet about what to pay attention to while studying.

  1. Basic Java syntax, basics of GIT, Maven;
  2. Practice with basic syntax, object-oriented programming, the most popular frameworks, and libraries, basic SQL syntax;
  3. Learning approaches and patterns of solving real business problems;
  4. Basic rules of clean code;
  5. Information search skill;
  6. Practice answering interview questions;
  7. Practice solving algorithmic problems. 

The first aspect is learning basic syntax. When you learn it you really need a lot of practice with simple things. Play, experiment with syntax, and explore it in different situations. In this step, I recommend using simple problems if you can find them. In my opinion, the most of problems from the leetcode.com are too hard at this step if they are not broken into simple steps. 

While learning these basics it is a good idea to start learning and using Git, Maven, JUnit5, and Mockito. Don’t start learning these tools immediately. Add them one by one to your study plan.

When you fill that you learn basic syntax you need a lot of practice. It would be great to work on a simple project, watch how an experienced developer does it, repeat what he does, and make some components by yourself. I think at that point you can start using Spring Boot, learning SQL, and working with databases.

Problems you will solve at this step need to be close to what real business problems look like. Working with business-like problems means working with a lot of code, and practicing some design patterns. It is very different from solving simple problems you use when you learn the basic syntax and it is not like algorithmic leetcode- style problems. Don’t get me wrong, some leetcode-style problems are incredibly hard to solve, but solving business problems is a different skill. Practicing writing business logic will learn you to survive in hundreds of lines of code, keep all this in your mind, debug it, and find the right places in your source code and in libraries.   

During this learning process, you need to practice writing clean code. Clean code is a big topic, but it is crucial to make your code readable for other developers. Turn on tools like SonarLint in your IDE and correct your code according to the recommendation it gives you. Use autoformat feature in your IDE and notice which changes are done. 

The best thing you can do is to find a developer with some commercial experience and ask him to review your code and give you recommendations about how to make it better.

Searching for information on the Internet is a crucial skill for any developer. Make sure that sometimes you practice with things you didn’t learn before. This is how it looks when you are on a commercial project. Try to find information and adapt it to your needs. Stackoverflow.com is one of the best resources to use when you need to find answers. 

Make sure you schedule some time to practice answering interview questions by voice. You may know everything but sometimes may find yourself struggling to explain it without practice. Prepare for the interview as for exam.

Finally, knowledge of popular algorithms is considered a foundation. The skill of solving algorithmic problems may open you the way to the best companies. Also, solving these problems is great for the brain. Again, I believe that it is possible to find your first job as a Java developer without learning too much about algorithms. But as the next step, it is totally worth it.

I would recommend learning a specific algorithm or a data structure first and after that trying to solve leetcode-style problems connected with this particular algorithm or data structure.

If you can’t solve it in 30 minutes – just find a solution and make sure you understand it.


That’s it for now. 

Thanks for reading.  In the next article will start installing and learning Java.

See you soon.

Alex Nikiforov

Hi! I'm a full-time Java developer in a fintech company. I am a self-taught developer and I got my first job as Java Developer in 2021.

You may also like...