The minute masterclass in Java
We all have to start somewhere. For those of us just starting out with Java, here are some tricks and tips from Veselin Pavlov on how to become a Java master.
Learning something new is always hard at the beginning. The amount of available information provided on the internet might be overwhelming, outdated, or wrong. For a beginner, it is very difficult to pick the right path. In this article I will try to give a structured approach to starting the learning process.
First, my advice is to ask yourself why you want to learn Java in particular. I began my education with C# and I like that language very much. However, I decided to find a job as a Java developer. My reasons for learning C# back then were that I hadn’t decided what kind of software I wanted to develop. Java is the native language for Android applications (mobile development) and you can also build web applications with the right framework. Not to mention, Java is extremely useful when job-hunting. It’s a much more marketable skill than C# these days.
In any case, everyone should find their own reasons for picking Java.
Step 1: Learn the basics (Java SE)
Now when you have figured out your reasons for choosing Java, you will be more motivated and consistent with your learning. First, you should know that Java is divided into two major components. The first is Java SE (Standard Edition), and the second Java EE (Enterprise Edition). As you start out, you should focus only on Java SE, as it provides the basics.
Below are some steps you can take to help yourself learn the basics.
I gained a large part of my knowledge by attending a software academy. In my area, there are several academies that can provide you with a strong foundation in Java SE. They are also great places to meet other learners. It is easier to learn when you talk with someone and share ideas and knowledge. Another benefit is that you are making a bigger commitment than simply reading on the Internet. It will push you forward.
Reading a book
I always find the information in a book to be more complete than internet tutorials. When I try to learn a new thing in a completely new field and I don’t have the time to attend a course, I always prefer to get a recommended book for beginners. One good book for beginning Java is Head First Java, 2nd Edition.
Video tutorials are great source of information. There are web platforms like Coursera, or Udemy where you can find many courses for your current level of knowledge. These courses usually provide you with tasks that you can perform to practice your skills.
Internet articles and tutorials
Internet articles and tutorials are another source of information; however, it is hard to know which one to pick if you are just starting out. That’s why I prefer the above methods to start the learning process. However, if you prefer this way of learning I would suggest starting with the Oracle tutorials because the information here is accurate.
In general, when you get to decide where to start from, I would suggest checking whether the course or the tutorial has exercises at the end of each topic. It is very important to practice everything you learn. Otherwise, you will forget it in a week. Also, it is possible that you didn’t understand a topic completely but if you don’t code anything, you will never know.
Step 2: Practice
Once you have a strong foundation of knowledge, the next step is to practice. A lot. Start a small project that is interesting to you. Programming is learned by practice. In the beginning, I implemented simple programs, such as a calculator or a simple game like minesweeper. My advice is to choose something that is interesting to you and to start coding it. Also, there is a great deal of exercises on the web. By now you should be familiar with data types, operators and statements in Java, reference and primitive type differences , object oriented programming , exception handling , arrays and collections, and more.
Step 3: The next level (Java EE)
Once you feel comfortable with the code that you write, take the next step and learn how to implement something more sophisticated. This step will include knowledge from Java EE.
Again, I would suggest checking Oracle tutorials. You can see from the table of contents all the different subjects that you will need to be familiar with.
If you find it hard to understand some of the concepts, check Coursera or Udemy for a course on Java EE or for a specific topic where you need help. After you’ve gained some knowledge, practice what you’ve learned. Create a web application. It might be simple like a TODO list or a photo gallery. Test what you have learned and then further develop your application by adding more features.
There are other frameworks in Java that you can use to develop not only web applications, but other kinds of software as well. One of the most popular frameworks for Java development is Spring. Build another project using Spring.
Step 4: Try mobile development
You should try different things at the beginning to find out what you like most. Google provides very good documentation and tutorials on how to implement mobile applications for the Android platform. The native language for Android applications is Java. In my opinion, before you find a job, you should know what makes you happy when you code. Create a small project. It could even be the same as the web application that you created. This way, you won’t have to think about features, and so on.
Step 5: Source control systems
No matter in what language you code, you will definitely need to use source control systems. Two of the most popular are Subversion (SVN) and Git. Recently, people have preferred using Git as it has better features. You can use the source control systems directly from a command line, or you can install a GUI application to assist you. My advice is to start with the console because you will learn more this way.
Step 6: Strive for mastery
Programming is not just about implementing features without bugs. Your code must be understandable by others and easy to maintain. It should follow the principles of strong cohesion and loose coupling and it should be easy to test. Once you have knowledge of the language, you should start learning how to improve your code in other directions. Become familiar with testing frameworks like JUnit and try to write unit tests.
There are many great books about this I recommend, including Clean Code and Effective Java . You should also learn about design patterns as they provide solutions to common problems that every developer faces. A good book with examples about this is Head First Design Patterns.
The advice in this article is based entirely on my own experience. I also find it useful to visit events related to programming and Java. You may hear about a new trending framework that could help you at work. I hope you enjoyed this article and found something useful in it.