What to read and watch for a novice Java Engineer
Java guru Aleksei Konahav shares useful sources of information for those who want to become a Java developer, specially for Anywhere Club.
In this article
— All materials can be accessed in both Russian and English. It is assumed that information in English should not stop you. Also, if there is an option to read the original in English or its translation into Russian, preference should be given to the first option, says Aleksei.
What books should you read to learn about Java?
— Java: A Beginner’s Guide, Java: The Complete Reference, Thinking in Java, or Core Java, Volume 1: Fundamentals. You can start learning the Java language with these books, if you are starting with a basic understanding of Java. Take any of them and start reading: if you like it, continue, if you do not understand or see that the writing is too complicated, try another.
For complete newcomers, the potential list of books is much wider. For example, in this article, there are 10 books: you can read the book descriptions and decide which one suits you. It makes sense to google books for beginners, and here those listed are the generally accepted ones. Aleksei himself has read them and that’s why they have been recommended.
Moreover, here are some books for more advanced professionals.
Java 8 in Action — Here you can learn more about features introduced in Java from version 8. In general, it would be much faster to read articles about Java 8 features. However, if you prefer to learn this topic in-depth, then this is the book for you.
Effective Java — Another classic from the Java world. It will help you to broaden your horizons in Java and look at many things from a slightly different perspective.
Head First Design Patterns — Well-suited to improve knowledge of programming patterns and OOP in general, while all the examples in the book are in Java.
“And there are a thousand more books on Java that you can google and some of which I haven’t even read, so I can’t advise,” – Aleksei honestly admits.
What can you watch to learn about Java?
He didn’t have any other useful links for video courses, but advised googling “Java course” or “Java lessons” and choosing a suitable option that looks appealing to you, as there are many to choose from.
More niche resources include the official channels of the big conferences, where you can find a lot of useful material. All that content will rather be designed for a savvy audience.
Are there good courses, schools, or websites on Java?
MJC School — there is no educational information on the school website at all, so the GitHub repository of school is of particular interest. To Aleksei’s knowledge, this initiative is not yet fully ready and “just starting to learn” from the available materials is not so easy. But what is already there can be used for learning.
There are lots of courses. You can try EPAM trainings. With google as your tool, you can find good articles with lists of free courses that will help you to learn Java. Most of them will be on Udemy. JavaRush is also quite suitable; part of the course is free and there are a lot of tasks on the site, so it’s definitely worth a try.
There are also sites where you can practice your knowledge of the language on simple (and not so) tasks, and you can do this in many languages. These websites include hackerrank, codewars, and codingame.
Java community: where can you join?
There are many local and global communities, perhaps even in your city, people connect to discuss Java. It can be searched. Aleksei joked that he envies those who haven’t joined them yet.
Motivational advice from Aleksei:
- “Remember that reading a book is good, but if you do nothing else, then there is little point in it. When learning something, you need practice, so consolidate new knowledge by solving tasks or using them in your project.”
- “The Java language itself is not complicated, the standard library of the language is easy to study, but there are countless libraries and frameworks for Java. At the same time, in addition to Java itself, you need to know (or at least understand) a lot of related topics, without which, it will be difficult to find a job.”
When building your learning plan, of course, start with the language itself and the simplest algorithmic tasks, and then move on to more complex concepts such as OOP, patterns, and everything else. After learning the language itself and its standard library, be sure to spend time learning related things such as version control, relational databases, basic web development, algorithms, and data structures.
No one expects you to have expert knowledge in these areas, just a general understanding of the basics is enough. At the very last stage, study the frameworks and libraries directly, while keeping in mind that some frameworks are built based on others, and in this case, it is better to figure out what is hidden most deeply and then move on to something higher-level.
- One of the most effective and fastest language learning options is courses with a mentor or person to review your code and tell you what you did right and what needs more work. Even if you are learning the language on your own, try to find more experienced colleagues who can be asked about incomprehensible things.
- It is difficult to say which material is right for you and which training option will be the most effective for you. What works for one person may not work for you at all. Be motivated, take the time to study, and be sure to achieve your goal – you will succeed!
Anywhere Club appreciates Aleksei for the guide and is happy to announce that Aleksei Konahav became the first guest of the ITBeard Shorts special project: welcome!