If you’re reading this article, you’re thinking how to become a developer.
Perhaps you’ve already decided to study Java, however, you don’t know where to start or maybe you’re even asking yourself if it’s possible to learn Java in one year. What if you don’t study programming at university? How much time will it take? What do you need to learn? Where to start? If you’ve asked yourself any of these questions, then you’re in the right place.
Before starting learning a programming language, you need to have answers to the following three questions:
- Why? Why do you want to learn a programming language?
- What? What do you need to do to succeed in learning it?
- How? How to achieve significant results in adequate time?
What language to choose?
Let’s suppose that you already have the motivation to learn a programming language. Great.
The next step is to know how likely it is that you will get a job after you finish studying a chosen language and it also helps to know how hard the language is to learn. So let’s see what you can choose from. In this situation we can look at the rating of different programming languages.
For example, TIOBE’s Index for January 2019 lists the following results:
Generally speaking, your chances of getting a high-paying job are much higher if you decide to learn one of the top programming languages.
In my humble opinion, a good option for starting a career in IT is Java:
- It’s not too difficult to learn
- It can be used for multiple purposes and
- It has a sufficient number of vacancies.
So let’s see why you should consider learning Java.
Java Ecosystem Overview
In the center of the Java ecosystem there is Java Core. At the time of this writing, Java JDK 11 was released. Oracle has changed the Java versioning policy and now there’s not a big difference between the versions as it was at the release of, for example, Java 8. This version remains the most popular and frequently used in most companies and projects. You can safely begin to learn the language with this version.
If you want to be comfortable with the Java programming language, you’ll need to start learning VCS (Versioning Control System) as well as a build tool. As a VCS, I recommend using the leading VCS, which is Git. An advantage is that you can use Github for your code for free. In most organizations, you’ll probably use Atlassian or BitBucket. However, if you learn to use Git, then everything else will be irrelevant.
As for the tools for building projects, there are two options: Maven and Gradle. In my subjective opinion, Maven is preferable, but other developers may have their own opinion. In principle, both tools are equal. There’s also ANT, but it’s getting old and it’s mostly used for old projects.
After you have got comfortable with the technologies mentioned above, it is worth considering which way to go further. There are 4 main directions: Front-End (HTML, CSS, JS), Back-End (Hibernate, Spring, SQL), Android and Big Data. These four parts, though seemingly separated, are actually quite tightly connected. For example, if you decide to become a Full-Stack Java developer, you’ll have to study well the Back-End part and have a general understanding of the basics of the Front-End part. But this is a topic for another article.
Where to begin?
Obviously you have to start with Java Core. This means you should forget about Maven, Git, and other technologies for now. Here you have three options: courses, online video courses and books. My favorite way of learning something new is from books, and I would recommend you to start with this method, but you are free to choose which one you like, so this is totally up to you.
Learning Java from courses
I think it’s a very good method if you’re committed to attend each lesson. This method, like all others have advantages and disadvantages.
You’ll think that you’ll learn everything from the lessons, but it’s not like that. You’ll have to practice a lot individually and experiment with all the knowledge you acquire. The big advantage is that you’ll have someone to support you and someone whom to ask questions if you’ll have any, but trust me, you’ll have a lot of them. Here, at ISD, we already have some newcomers, colleagues of mine, that went through the path of learning Java via courses, and I think they did a very good job since they were also eager to learn.
To draw a line, this learning method is not for everyone. If you’re willing to attend these courses and are committed to practice and experiment in your spare time, then you can go with this learning method. The great news is that at Tekwill in Chisinau, Moldova, they have some great Java courses for beginners. To draw a line, this learning method is not for everyone. If you’re willing to attend these courses and are committed to practice and experiment in your spare time, then you can go with this learning method. The great news is that at Tekwill in Chisinau, Moldova, they have some awesome Java courses for beginners. One of the advantages of these courses is that most of the mentors are not only teaching Java, but also use it in their jobs, having a good practical knowledge.
Learning Java from online video courses
Another great way to learn Java is through online video courses. There are a lot of sites that offer a variety of video courses, including Java courses for beginners. In my opinion, udemy.com is one of the best sites when it comes to online learning. The disadvantage, however, is that most courses are paid.
There’s also youtube.com, which is free to use and has many valuable resources.
The big advantage of video courses over simple courses is that you can do it from the comfort of your own home, take it at your own pace, whenever you want and from any device. If you’ll decide to go with this learning method, Java Programming Masterclass for Software Developers is the course that I recommend and it’s the one I went through at the beginning of my Java learning journey
Learning Java from books
Since the invention of the printing press, books have been the most affordable and the most reliable source of knowledge.
Pros: Most of the books from well-known publishers are written by professional authors; and books are the places were you can find advanced programming topics covered in depth.
Cons: Many books are written in a dry academic language and are more like reference books.
Among the most popular and best books for beginners are the following:
- Java: A Beginner’s Guide – this is the book I’ve started my Java journey with, and it’s the one I recommend you start with.
- Head First Java: A Brain-Friendly Guide is another good book. A little bit different from others because it strips away all technical jargon and is easy to read.
- Think Java: How to Think Like a Computer Scientist is a great entry-level book published by O’Reilly. It covers all the most complex topics.
- Effective Java is a book that is a little bit more advanced. It contains a huge amount of tips and recommendations on how to improve your code.
- Java Concurrency in Practice – good old threading tutorial in Java that doesn’t go out of style.
The last two books I recommend reading to those who are already familiar with the basics of Java programming, but plan to improve their Java knowledge.
Which option to choose?
By now you should already have an idea of which learning method better suits your needs.
As always, the best option is a combination of all three. For one, books are the obvious choice for many people. But if you decide to go with programming courses, you first need to understand whether this learning style is suitable for you or not.
If it is, then before you start, read at least one book and watch a couple of video tutorials. By doing so, you’ll clearly understand if this programming language is for you. Secondly, by having a minimal foundation, you can ask the right questions and eventually take the maximum out of the course. Thirdly, you can go to a course where a student is required a little more than basic computer skills.
After you have a minimum set of knowledge, it would be good to find a mentor or an internship. Here at ISD we have internships on a regular basis, and those who are showing that they can work in a team and have a good knowledge of Java can end up being part of our team.
Remember: You just need to start. Most people don’t want to start because they don’t want to be seen starting at the bottom. Don’t be most people. Start now. Start today.
As Zig Ziglar put it, “You don’t have to be great to start, but you have to start to be great.”
Alternatively, if you think that Java is not a good fit for you, C# is also a popular programming language that you might find appealing. You can look at a comparison between C# and Java written by one of our colleagues here from ISD (Features from C# that Java MUST have).