An Approach to Learning Java Fast for New & Experienced Polyglot Coders

If you’re just starting out learning Java, here are the top 5 things you can do to get started effectively:

  1. Set Up Your Development Environment:
    • Install the Java Development Kit (JDK) on your computer. You can download it from the official Oracle website or use an open-source distribution like OpenJDK. It can be confusing at first, because there are a bunch of versions you *could* get started with depending on a million different variables, just pick the latest though and get going.
    • Choose a code editor or Integrated Development Environment (IDE) like Eclipse, IntelliJ IDEA, or Visual Studio Code to write and run your Java code. IDEs offer features like code completion and debugging, which can be very helpful for beginners.
  2. Learn the Basics of Java:
    • Start with the fundamental concepts of Java, such as variables, data types, operators, and control structures (if statements, loops).
    • Understand the object-oriented programming (OOP) principles that Java is based on, including classes, objects, inheritance, encapsulation, and polymorphism. Even if you do not use any of these and you’re taking a different approach (functional, top-down, etc) it’s really important to at least learn and understand the OOP concepts and capabilities of Java, as at some point you will see these and to understand what is going on, you’ll need to understand this part of Java.
  1. Practice Coding:
    • The best way to learn programming is by writing code. Start with simple programs and gradually work your way up to more complex ones. This is, without question, one of the best and most motivating ways to learn to program. Take something you might want to do, working with data, or moving files, or building a web page and build that thing you want. Practice breaking it down to the simplest form of whatever it is, and building that simplified thing.
    • Solve coding exercises and challenges on websites like LeetCode, HackerRank, or Codecademy, which offer Java-specific problems. To note, this isn’t going to really teach you how to accomplish a single real world problem, but it will get you to be familiar with the language and its parts. This way, when you do need to tackle a real problem you’re not stuck trying to deal with the language itself.
  2. Read Documentation and Books:
    • Explore the official Java documentation (Java API) to understand the built-in classes and libraries available in Java. Ok, this sounds exceedingly boring and at first it often is. My suggestion, to spice it up a bit is to combine this with the first tenant under practice coding. Look up a particular feature in the documentation and then just implement something with it and try to accomplish some random task. For example, like manipulating data or moving some files, but use the built in parts of the language or some library to do this.
    • Invest in a good Java programming book for beginners. Books like “Head First Java” by Kathy Sierra and Bert Bates or “Java: A Beginner’s Guide” by Herbert Schildt are excellent choices. If you can manage to focus your way through a book, it’s a pretty reliable way to learn the language completely. So if you’ve got the cash on hand, time, and ability to focus, I strongly recommend doing this. Specifically, I’d recommend this over all the above options as the first thing to do if it is a viable option.
  3. Join Online Communities and Seek Help:
    • Join Java programming forums, subreddits, or Stack Overflow to ask questions and seek help when you’re stuck. Be sure to think through your steps, write up your questions thoroughly, and before posting I’d bet you start finding most answers merely by going through this process. In any regards, some will definitely contribute good knowledge to the community as conversations and answers are added to those questions.
    • Engage with the programming community by following Java experts and developers on social media platforms like Threads, Mastadon, or GitHub. Ignore the negativity when it rears its ugly head, and just kind of lurk and read things for a while. It’s a great way to pick up the vibe of what’s going on with Java and get an idea for what kinds of things people are building and problems they’re running into.

Ok, these top 5 attributes are what I’d suggest if you are just starting out with Java. But what about if you’re a polyglot, know OOP, and other programming paradigms and have more than a few things deployed. What’s the fastest way to get ramped up on Java starting from that vantage point? Well, I’ve got a list for you too, because as the title suggests, over the last year I’ve just ramped back up on Java after an almost 20 years hiatus!

The Polyglot Senior Coder

First

First get a lay of the land for versions, ecosystem setup, and changes that have occurred or are occurring specific to the language and its respective stack. Either since you’ve last worked with the language or how that language differs from one you recently have worked with.

For Java that would be determining the most recent version, long term support vs. the active developed version and related characteristics. Then figure out what your ideal setup for development would be and get that installed, setup, and tidied. For me, that was getting Intellij setup and running with the versions – yes multiple versions – of Java that I would be building with and supporting.

Second

Build a simple “Hello World!” program. Once you’ve built that program expand on that and arbitrarily build it out to again familiarize, or to become familiar with the language syntax. Just build out some data structures, do some arbitrary mathematical calculations, do some file and data processing, and learn what is available from a language structure and syntax perspective.

Third

As a senior (or staff or principal, depending on where) developer you’ll most likely be honing in on specific problems and helping a team or teams of people work against those problems in a more efficient way. Once you have acclimated to the language and language stack, to be sure to gain the most effective use of the language and tools commit to discussing with the team members their recent work, efforts, research, learning, and related efforts. By doing so you can figure out where to fill gaps, help others on the team fill those gaps, and where priority focus should be applied.

Fourth

With acclimation of the language speeding things up technically, and delving into and filling the gaps and helping others to step in and fill the gaps, then it’s time to determine the best position for the technology to grow, change, recede, or otherwise mutate for the best value. In the case of Java, this is always a vast challenge since it is a stack that covers all of the bases in a pretty significant way. At this juncture though, just knowing the language is one thing, the important step here is to learn how it fits into existing products and services and how it should fit into those products and services. Where are the easy fixes and where are the gaps? Should another technology be brought in to complement Java? For example Go for some systems coding or console applications, maybe some Erlang for distributed systems coding or Python for data pipelines around artificial intelligence work? These questions are often hard to answer at any point in time. But as the senior/staff/principal it is the position that needs to determine the best answer for these questions. With a full breadth of technical, cultural, and social parameters being brought into focus to answer these questions effectively.

Summary

Diving into Java, whether you’re a newbie or a seasoned polyglot coder, boils down to a few key steps. For the rookies, it’s all about setting up your Java environment, getting your hands dirty with the basics of Java and OOP, and then diving headfirst into coding practice and community engagement. Don’t just read; code! For the experienced devs, it’s a different game: reacquaint yourself with Java’s latest landscape, brush up your skills with some hands-on coding, and then strategically integrate Java into your broader tech toolkit. Whether you’re starting out or scaling up, it’s about blending theory with practice, and always staying plugged into the Java community.

2 thoughts on “An Approach to Learning Java Fast for New & Experienced Polyglot Coders

Comments are closed.