Oleksandr Reshetnik has been training novice Java developers in the EPAM team for the last 7 years. In this article, Oleksandr shares valuable insights and a detailed educational roadmap for everyone who takes the first steps in Java programming.
Strong communication skills, good command of the English language, and a solid foundation for learning a programming language (in our case, Java) are a must for a beginner. By the way, communication skills may somewhat compensate for the insufficient technical skills at the start. Keep in mind that English proficiency increases more slowly than technical skills improve. Hence, the main advice is to learn English consistently and tenaciously.
Here are more basic recommendations from Oleksandr:
- Follow the current roadmap for learning Java.
- Use reliable books to learn basic concepts.
- Practice constantly.
While it is impossible to make a universal roadmap, this one is a good starting point. Of course, with time and experience, you will customize and adjust the map to your needs (finding the right way is also one of the main challenges for a beginner).
A detailed Java Roadmap is available via the link.
The main secret of a successful work of a Java developer is professional literature.
If taking the first steps, the book by Kathy Sierra and Bert Bates, Head First Java, is a perfect companion.
Later, proceed with Core Java by Cay S. Horstmann, Java: A Beginner's Guide by Herbert Schildt, or Java: The Complete Reference. As your confidence grows, try more challenging books.
To become a professional developer, one must be well-versed in Gradle and Maven dependency management systems. Check out Maven Quick Start: A Fast Introduction to Maven by Example on Udemy and move towards Tim O'Brien's Maven: The Complete Reference for in-depth understanding. Take the Learning Gradle course on LinkedIn and then feel free to study the official documentation — Gradle Guides.
An integral part of a developer's job is working with databases, so you'll need SQL skills. I recommend beginning with the book Getting Started with SQL by Thomas Nield.
So, the resources for training are:
- literature, appropriate for your level;
- Java educational courses from EPAM, Udemy, and LinkedIn;
- official documentation;
- information from articles and thematic blogs.
Remember that it takes time to publish a book, so it might not reflect the most recent advancements in the subject. Nevertheless, the books will be the core of your studying, regardless of the technology stack you might be learning. Start with books for beginners, and once you’ve gained some experience, progress to professional literature and advanced courses.
What else should you focus on?
A true professional writes good code and knows how to use programming to solve problems. If intending to become one, get acquainted with version control systems (Git, SVN), REST, HTTPS, web (basic, SSO, OAuth, JWT), data structures, Scrum, Kanban, and algorithms.
To make the most out of learning, put the knowledge into practice; otherwise, most of what you've learned will be forgotten under the pressure of new information. Here are a few resources Oleksandr suggests for practicing:
- https://codingdojo.org/practices/
- https://www.codewars.com/
- https://leetcode.com/
- https://codegym.cc/tasks
Once mastered the fundamentals, move further along the roadmap to web frameworks, CLI tools, databases, etc. Put each new learned tool to use. One can gain valuable experience from participating in open-source projects. For example:
- Help out your favorite open-source projects and become a better developer while doing it
- 20+ Trending and Popular Java Open Source Projects
Oleksandr also recommends starting a pet project that is appropriate for your level of expertise.
Becoming a professional requires a lot of time and unwavering motivation. But with the right road map and an effective learning strategy, you make it. Remember, practice makes perfect!
Useful resources
- Design patterns in Java explained
- Java Design Patterns and Architecture free course
- TOP-4 reasons why Java is a win-win choice blog article from EPAM expert
- Java Interview Questions You Need To Know free course
- Java basics: Class, Git, OOP Principles blog article
- awesome-java — a curated list of Java frameworks, libraries and software
More about SQL, Maven, databases and cloud:
- «SQL Antipatterns: Avoiding the Pitfalls of Database Programming» by Bill Karwin
- «Clean Code — A Handbook of Agile Software Craftsmanship» by Robert Cecil Martin
- Top 5 Free Apache Maven eBooks for Java Developers
- SSH Basics for Cloud Security
- The Complete SQL Bootcamp 2022: Go from Zero to Hero
- Database Design Fundamentals for Software Engineers
- SQL for Data Science
- A handy new Google Cloud, AWS, and Azure product map
- Top 5 Courses to Learn SQL and Database in 2022 — Best of Lot
About Spring Boot:
Spring Boot is a popular Java framework designed to simplify the development of Java applications, particularly web applications. It is built on top of the Spring framework and provides a streamlined approach to building production-ready applications with minimal configuration.
- Spring Boot For Beginners
- The Complete Guide to Spring 5 and Spring Boot 2
- Spring REST API for Beginners
- Spring Boot: Complete guide from development to deployment
- Spring Framework — Bean Creation — A Practical Approach
- Top 5 Books to Learn Spring framework and Spring MVC for Java Programmers
- Student Management System Project — FullStack Java + Spring Boot + React.js Example Tutorial