The Internet contains so much information that we can learn everything literally. Any syntax, any programming language, any specialization — nothing is impossible. According to TechJury, people create about 2.5 quintillion bytes of data every day! And an enormous amount of this information is free to access for anyone.
I am a Java Developer and I know for sure that anyone can learn Java from free blogs, YouTube videos, and free classes on different educational platforms.
However it’s not always the best option and I’m going to explain why we need to be paid educational services, and when it is time to switch from free online education to paid one.
The reason is, free online learning has its downsides. One of them is the lack of structure. Sure, you can find an answer to almost every question, but you will likely spend a lot of time on it, and the studying itself will look like a mosaic that you put together piece by piece.
The second problem is the quality of the content. You cannot trust any stranger who creates content, so you will have to spend some time checking her reputation. Moreover, most of the free lessons are meant for beginners. And, of course, nobody will correct your mistakes, guide you, or help you practice.
Nevertheless, all the problems stated above must not stop you from starting to learn how to write the code. On the contrary, we will give you tips on how to study for free and decide that it is time for you to switch to the paid services.
If you are just starting to learn Java programming, be prepared to invest a lot of time. For people who should combine work, family, and study, it may take up to several years. But free online education is worth trying, especially in such cases:
- You are considering the occupation of a programmer or QA specialist, but still not sure if it is right for you.
- You have a long-term goal of becoming a developer, but at the same time, there is no rush: you have plenty of time to achieve it (more than a year).
First, it is crucial to find several sources which you can trust. You can choose among various video courses, text courses with tasks (or without them), free books or tutorials, etc. I can suggest several reliable and interesting sources:
- Java tutorial for beginners on YouTube. Here you can find some basic information, such as what JDK (Java Development Kit) is, how to download it, what IDE (Integrated Development Environment) is, how to install it, and a lot more. The information in this video is very vivid, enriched with examples, helpful tips, and tricks.
- Java Tutorial at TutorialsPoint website. Here you can learn all the basics: from environment setup and syntax for beginners to objects, classes, variable types, methods, and so on. Moreover, you can even study advanced Java here (of course, if you are disciplined enough to proceed). The significant advantage of this website is its vast collection of examples.
- Java Tutorial at w3schools.com website. You can also benefit from this collection of lessons on Java. They explain all the basic concepts (methods, classes, file handling, etc.). Also, you can do exercises, take a quiz and get a certificate on completion of the Java course.
- Free Java Programming course created by the University of Helsinki. Everyone (even if you have never tried programming before) can attend it and go through two parts: Java Programming I and Java Programming II. All lessons contain exercises. At the end of the course, you can get a certificate of completion.
Second, it is necessary to allocate some time in your schedule to study regularly, even if you are very busy with work and/or family. The best way to learn Java is to spend some time every day reading and doing exercises. If it seems too hard for you, schedule at least three learning sessions per week.
Third, remember that not theory but coding itself should be your main priority. Be prepared for a lot of boring tasks which may seem meaningless sometimes.
The truth is, they are useful anyway, and the more of them you complete — the faster you improve. If you need additional motivation, find it (for example, reward yourself for doing another five exercises with something nice).
Free online courses can be an excellent place to start, but at some point, you may feel like it is not enough. This dissatisfaction can come in different forms. Here are some of them:
You drastically lack time to study, and at the same time, you need to learn Java and find a job fast. In this case, the sooner you choose the paid option, the better. Usually, these courses’ goal is to help you achieve tangible results as quickly as possible. Plus, you will experience increased motivation (that’s how the human brain works: we value more what we’ve paid for). Also, it will be easier to stick to the schedule, as there are deadlines in all the courses.
You’ve lost motivation and feel like quitting. Or you learn, maybe even regularly, but you do not see the return on your efforts. You are still not ready to solve complex tasks and cannot even think when you will apply for the first job. In this situation, switching to the paid course can also be helpful. Most likely, you will gain a clearer perspective: when you will finish studying and when you will start looking for a position.
You feel like you are doing something wrong. You finished one or two free courses, but you are unsure if they moved you forward enough. You want to continue developing your skills, become a better programmer — but you do not know where to find the relevant and helpful information beyond Java basics. Probably this is the perfect moment to choose a paid course.
By paying for a Java course, it is not only knowledge that you get. Besides that, you buy:
- Quality and freshness of information. Nothing personal, just business: the companies that create courses try to make them as good as possible and regularly update the lessons. You do not risk finding outdated content as in the free tutorial. Also, almost all paid courses have a lot of free additional resources.
- Drive. You pay good money not only for a bunch of lessons but also for an urge to stick to the schedule. If you miss the deadline, you will lose your dollars, which is a very unpleasant feeling for every human being (if you aren’t one, skip this point and go and try to kill Sarah Connor).
- Discipline. Each course has a schedule, and it makes you more organized. You will have to plan all your activities, fit the lessons into your daily routine, and eventually feel very proud of yourself for completing everything.
- Community and support. Some courses have mentors who can help you move along with your studying, check your tasks, etc. There is also an option to talk to other students, share problems and concerns, exchange tips and successes.
If you do not know where to start in choosing the paid course, you can look at these options:
- CodeGym uses a gamification approach to make learning more engaging and productive. For sure, you can study all Java basics, objects, and more here, but the more important thing is that you’ll solve more than 1200 coding tasks and experience learning like playing a video game. You solve tasks, get points, and unlock new levels with new lessons and exercises. Payments are possible on a monthly or annually basis.
The main advantage is practicality. The amount of tasks is impressive, and the embedded code validator saves plenty of time (if you make a mistake, you get a hint). The coding tasks vary from the simplest ones to creating real applications (small video games, for example). Also, there is a strong community, and you can ask for help if you have a problem. The most significant disadvantage is no deadlines, except for the end date of the subscription.
- CodeCademy is a big platform where you can learn several programming languages. Lessons are very practical, with a lot of exercises. You can pay either monthly or annually.
The main advantage is convenience and access to a massive amount of lessons in different languages. The disadvantages of the platform are a lack of theoretical knowledge in some parts of the course and sometimes too many hints.
- Java Programming and Software Engineering Fundamentals on Coursera. If you prefer a more traditional approach, you may find this course (actually, a collection of 5 courses) from Duke University helpful. It is made for beginners and focuses on core concepts and basic skills that every developer needs, regardless of specialization. You will have to prepare a project to complete this course.
The main advantage: traditional approach, subtitles in many languages, an opportunity to get a certificate. The biggest disadvantage: if you ever tried finishing courses in Coursera, you know how much discipline and motivation it takes.
Today we have multiple ways to study Java, and we do not have to limit ourselves to just one or two. Trying out what works for you the best, keeping your mind open for new possibilities, and reconsidering different options — this is the path for success in getting your dream job even sooner than Elon Musk presents his next big idea.
First published on JavaRevisited.