Roadmap for a junior Java developer
How to grow from junior to senior, what you need to know, and where to look for useful information. Senior software engineering manager Oleksandr Reshetnik shares his recommendations.
— A novice developer should have excellent communication skills, speak English well, and be inclined toward learning programming languages (in our case, Java). Initially, good communication skills will help compensate for a lack of technical knowledge. Remember that the level of English proficiency generally grows more slowly than technical skills improve. So the main advice is: learn English.
Basic recommendations
- 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 supplement the map. For a beginner, however, finding your way is one of the main challenges and this will provide some guidance in the early stages of your learning.
Education
— Proven professional literature is the secret to becoming a successful Java Developer. Examples of good books include:
- Head First Java, by Kathy Sierra and Bert Bates.
- Then, you move on to: Core Java Volume I--Fundamentals (Core Series), by Cay S. Horstmann, Java: A Beginner’s Guide, by Herbert Schildt or Java: The Complete Reference, by Herbert Schildt.
To become a professional developer, you must be well-versed in Gradle and Maven dependency management systems. To start, you can check out Maven Quick Start: A Fast Introduction to Maven by Example on Udemy and refer to Maven: The Complete Reference, by Tim O’Brien, Manfred Moser, John Casey, Brian Fox, Jason Van Zyl, Eric Redmond, and Larry Schatzer, for more in-depth understanding. In addition, you can take the Learning Gradle course on LinkedIn and then move to the official documentation — Gradle Guides.
An integral part of a developer's job is working with databases, so you'll also require SQL. I recommend beginning with the book Getting Started with SQL: A Hands-On Approach for Beginners, by Thomas Nield.
Your resources for training are:
- literature appropriate for your level;
- training courses on EPAM University, Udemy, and LinkedIn;
- official documentation; and
- information from articles and blogs.
Remember that it takes time to publish a book, so books might not reflect the most recent advancements in the subject matter. Nevertheless, books will be the core of your required reading, regardless of the technology stack you are learning. You start with books for beginners and, once you’ve gained some experience, you can 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 you intend to become one, you should get acquainted with version control systems (Git, SVN), REST, HTTPS, web (basic, SSO, OAuth, JWT), data structures, Scrum, Kanban, and algorithms.
It is also worth getting to know and understand what your colleagues from related fields do. Here are a few books to help you grasp the basics:
- The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win, by Gene Kim, Kevin Behr, and George Spafford;
- Beautiful Testing: Leading Professionals Reveal How They Improve Software, by Tim Riley and Adam Goucher;
- Business Analysis For Dummies, by Paul Mulvey, Kate McGoey, and Kupe Kupersmith;
- 100 Things Every Designer Needs to Know About People, by Susan M. Weinschenk; and
- Making Things Happen: Mastering Project Management, by Scott Berkun.
— To make the most out of your learning, you must put your knowledge into practice; otherwise, you’ll risk forgetting most of what you've learned under the pressure of new information. Here are a few resources where you can practice:
Once you have mastered the fundamentals, move further along the road and study web frameworks, CLI tools, databases, etc. Put each new tool you learn to use. You 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; and
- 20+ Trending and Popular Java Open Source Project.
I also recommend starting your own pet project that is appropriate for your level of expertise.
Becoming a professional requires a lot of time and unwavering dedication. With the right road map and an effective learning strategy, you will make it. Remember, practice makes perfect — strive to improve your skills.
Useful links
- Design patterns in different programming languages;
- Java Design Patterns and Architecture;
- Java Interview Questions You Need To Know; and
- Awesome-java.
More about Java
- 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; and
- Top 5 Courses to Learn SQL and Database in 2023 — Best of Lot.
Our thanks to our partner site training.epam.com.