Tanner Byers

Learning Java for a Corporate Career

javalearning

How to Learn Java for a Corporate Career

A friend of mine, who has a degree in tech but doesn't code often, reached out for my advice on learning Java.

I think there's lots of people who are in similar positions so I decided to make this post.

First thing I will say is, Java is not the first language I would recommend learning. This is because it requires a lot of boilerplate, abstractions, and focus on OOP, which are all great for when they're needed but they're a lot to learn on top of practical coding.
These are great for corporate implementations (large teams, ownership transfer, verbose code leads to self documented code)
P.S. I recommend python or javascript for first languages.

Focus on Building

Remember, learning to code is best done through practical application. Instead of overwhelming yourself with infinite things you can learn, concentrate on building projects and acquiring the necessary knowledge along the way.

I highly recommend you read this book first (it's only 9 pages)
7 TIPS ON HOW TO THINK LIKE A PROGRAMMER

Steps to Learn Java

  1. Set Up Your Development Environment

    Ensure you know which version of Java is used in your target industry or company. Options can range from legacy Java 8 to the latest Java 22. Tailor your environment accordingly.

    Here's a comprehensive guide to setting up your Java development environment: How to Set Up a Java Development Environment

    Bookmark Essential Resources
    Keep handy references like the Java® Language Specification (JLS) for your chosen Java version. Bookmark resources like the Code Conventions and the JLS documentation (Java SE 8 JLS) for deeper understanding.

  2. Studying (dont spend more than a month here)

    Start by watching introductory videos like Learn Java in 14 Minutes on YouTube.
    Then, delve into free resources such as:

    Focus on understanding (not remembering) Java fundamentals, syntax, variables, and control statements.

  3. Explore Frameworks and Tools

    Increase your Java productivity with tooling and frameworks like Spring, Spring Boot, Maven, and Gradle.

    Spring and Spring Boot

    Spring is a powerful framework for building enterprise-level Java applications. Begin by understanding the core concepts of Spring, such as dependency injection, Spring MVC, Spring Data, and Spring Security. These form the backbone of most Java-based corporate projects.

    Advice: Dive deep into the official Spring documentation to grasp the fundamental principles. While the documentation is desnse, focus on understanding how Spring simplifies development tasks and promotes best practices.

    Once comfortable with Spring, transition to Spring Boot. Spring Boot streamlines the process of setting up and deploying Spring applications by providing auto-configurations. Saves you a lot of boilerplate.

    Familiarize yourself with Spring Boot starters, which facilitate the integration of common dependencies like databases and security.

    Tip: Explore real-world Spring Boot projects on GitHub to observe best practices and implementation patterns.

    Maven and Gradle

    Maven and Gradle are build automation tools essential for managing project dependencies and building Java applications. Both offer advantages, so understanding their nuances is crucial.

    Advice: Start with Maven due to its widespread adoption. Learn to structure projects, manage dependencies, and execute build lifecycles efficiently. Understanding Maven's POM (Project Object Model) is key to mastering its capabilities.

    Once comfortable with Maven, explore Gradle, especially if you encounter projects that utilize it. Gradle's flexibility and performance make it a compelling choice for many modern Java projects.

    Tip: Practice creating custom build scripts and plugins in Gradle to tailor the build process to specific project requirements.

  4. Undertake Projects

    Apply your knowledge by working on practical projects. Start with small-scale applications and don't worry if you don't finish them.
    We're building these to learn, not to deliver code complete projects.
    I've got a running list of application ideas here but I recommend you build whatever you're interested in!

Remember to have fun along the way! You're not getting paid to learn this (YET).

By following these steps, you'll be well-prepared to pursue a rewarding career in Java development.