The starting point for learning Java – what you should know and things I wish i had known
As you wonder how to learn Java, it’s easy to get confused. Here are the most impactful tips to help you stay on track.
Getting started in programming is easier if it’s a part of your college curriculum. Then, you don’t have to choose which language to learn, which arguments to skip, and which concepts pay more attention to.
When I went to college, C was the first programming language to learn, then professors would give us a course on C++ and later, if you wanted to, you could pick up Java, Python, and other languages.
However, when I talk to entry-level software developers, I don’t recommend kicking your programming education with C. Instead, I typically suggest learning Java – I’ll get into why a little later.
Although, in my opinion, the Java community is chock-full of learning materials, beginning developers often ask me “So, where do I start?” or “Do I have to read the theory or start writing code right away?”.
Apparently, learning to code on your own is not easy. As a seasoned developer, I decided to help novice peers and walk them through the pitfalls of the Java learning curve. In this post, you will find out which practices are game-changers in Java learning, where a lot of developers fail, and how to make sure you get to apply the concepts you master within the workplace.
But why Java?
If your first instinct is to start a debate with me and explain that Python is easier or that C is a more traditional way to learn software development, let me assure you I see where you could be coming from.
I see Java for what it is objectively, recognize its downsides (speed and memory efficiency, for one) – nevertheless, I believe there’s no better language to learn as an entry-level developer.
Here’s why I am so fond of Java as a starting point in programming:
- The concepts of Java are used by multiple programming languages. Object-oriented programming, typed variables, or control flow are all concepts you can later use when working in C or C++. If a Python developer only knows how to code in Python, you will have a bridge between Java and other web and mobile (Kotlin, for one, owes a lot of its functionality to Java) languages. In terms of versatility, choosing Java is definitely a win over any other language.
- Coding in Java is versatile. For your first development language, you don’t just want a lucrative technology that’s going to get you skills and a job. Rather, it’s in your best interest to ensure you are in for a fun ride – and Java is exactly what you are looking for. If you are just starting out, the feeling that C is simpler because you have to type less might haunt you (it’s misleading as you’ll later understand). However, as I recall my programming language learning days, no other learning experience trumps meddling in Java. There’s just so much room for creativity and sample applications to build – text-based RPGs, console-managed games, and many more. On top of that, you can find projects for all levels of difficulty – there’s no need to learn theoretical concepts for months before moving on to practical learning.
Java Programming Job Market – Any Good?
Learning Java may be fun and all but won’t I be jobless and starving if this is the only language I know?
Because Java is so popular among entry-level developers, you might feel like everybody knows how to use it and no one will hire programmers anymore. Most likely, you are experiencing the classic effects of priming – thinking that because you are seeing a lot of something, it might be painfully common.
I collected some statistics on the Java job market to prove there’s plenty of work for a reasonably skilled developer:
- Java is the highest-ranking programming language according to the Stack Overflow’s latest survey;
- An average salary of a Java developer in the US is $79,137, according to Glassdoor;
- Number of Java development openings currently available on Indeed – 27,049
If you take the overall trends in the tech world into accounts – such as the increasing demand for tech talent and the growing proliferation of Android devices (Java is a widely-used Android development language), it becomes clear you are not running out of jobs anytime soon.
So, instead of hesitating whether or not you should give Java a try, get it together and start learning the language today.
Things I wish I knew on my Java learning journey
Back in the day when I was learning Java, there weren’t half as many tools and resources, other than a few dozens of tutorials, books, and official documentation. Why I think developers have it easier now that there are lots of resources, a lot of entry-level coders are confused and overwhelmed by the variety of tools.
Although there’s no set-in-stone strategy for acquiring software development proficiency, here are a couple of things I wish somebody had told me sooner.
1. Learn problem-solving, not programming
I see a lot of beginners skimming through tutorials after tutorials, picking up patterns and concepts. However, while this will help you learn Java syntax, you will still be far away from a programmer’s mindset.
Right after I completed Java tutorials and had to put my skills to good use, I got confused and challenged. Instead of dissecting applications into moving parts and seeing how I could build them myself from scratch, I kept seeing each project like a high mountain I had no way to climb.
Luckily, along the way, I found plenty of resources that helped get more confident in real-world Java development:
- Think Like a Programmer – a book that helps you acquire a developer’s mindset regardless of which language you are learning
- Codegym – a platform dedicated specifically to Java learning that puts emphasis on the practical application of theoretical concepts. Thanks to this one, I found out about multiple useful hacks that helped me ease into project development.
- Stack Overflow – I know you’ve heard a lot about lurking here – while I don’t recommend pasting bits of code from SO, skimming through forums certainly brings you one step closer to a developer’s mindset.
2. I underestimated assistive technology
Somehow, I was blissfully ignorant of how helpful Java libraries and frameworks can be. Naturally, as a beginning developer, you want to do everything on your own – however, there’s only that much you can do in a day, and looking for shortcuts is often crucial.
If I were to restart my Java learning journey, I would be considerably more thorough when choosing a toolset to pair the language with.
Here are the tools I’d recommend for developers to check out:
- JUnit – a convenient testing tool for Java programmers
- JRat – a Java performance profiler that allows developers to monitor the execution of their products;
- Mockito – an open-source framework that facilitates Java mocking;
- Ehcache – a caching tool designed specifically for Java programming.
I will list the most essential libraries, frameworks, and APIs for Java learning below.
3. I didn’t have a learning plan
Putting a lot of trust in tutorials and online resources, I started learning Java completely empty-headed. I had no timeline for my journey, no idea of how I would use my skills, or a fleshed-out daily study routine. My motivation was simple and stupid – Java seemed trendy, not knowing it feels like a miss-out, so why don’t I learn it?
If you are starting out in software development, be more thorough about where you want to get at the end of the day. Don’t let the goal you have in mind blind you either – learning a programming language should always start with the basics, even if you want to become a full-stack developer – a jack-of-all-trades.
Right now, if I had to learn Java from scratch, this would roughly be my roadmap:
- Java IO
- Java Collection
- Java Concurrency
- Java 8
- Spring Boot
- Eclipse Microprofile
- Cucumber – facilitates business-driven testing
- Robot Framework – helps optimize integration testing
- JUnity for unit testing
- Mockito for mockup testing.
For a more detailed Java development learning mockup, take a look at the graph below.
I would assign a deadline to each of these blocks to make sure I don’t slack off and make progress.
When I say that learning Java is a fun ride, I primarily refer to the nostalgia and happy memories you will be feeling after you are proficient. As for the process, you will experience both the high of getting the right answer to the problem and the low of not understanding what the hell your learning resource wants from you.
As with any learning, mastering a programming language is blood sweat and tears. However, as long as you persevere and get past the initial cumbersomeness of Java, the learning process will gradually become more enjoyable and less exhausting.
- 9 must learn decks to stay up to date with Java
- 3 things you should know about Java hosting
- Why is Java programming popular for businesses?