In my practice, I come across a question like: “I want to become a Java developer, where to start, I don’t know anything at all”. Stop, let’s get it straight. “I don’t know anything about Java”, “I don’t know anything about programming” and “I don’t know anything about computers and IT” are completely different things, different starting points, so to speak.
1. Strike the right balance between theory and practice
Of course, theoretical knowledge is needed. It helps to understand the internal processes, explain why everything in the program happens a certain way. However, you need to consume theory in moderation if it comes to such a practical area as programming. Especially at first.
Nevertheless, a huge number of newcomers make the same mistake: they try to dive deeper into theory from the very first steps. They read books and lectures on Java, watch videos in the hope that after that it will be much easier to write programs. But the fact is that it will not be so: practical activity is truly cognized only in practice. It’s like hoping to learn to swim or ice skate, mostly by reading books on swimming and skating.
Therefore, advice number one: build a knowledge base through theory gradually, and concentrate on practical exercises. If the entire time of study is 100%, then practice should be devoted about 75-80% of this time.
When you start learning, don’t try to understand all the ins and outs of the programs you create at once: read a little to know the syntax, and then write the code over and over again! You will learn along the way, and what you have perfected in practice, you will understand much deeper and faster.
2. Find a qualified mentor
For those who study without a mentor, it is quite difficult to maintain the balance. It is not clear to a novice developer where to get tasks from, which tasks are suitable for him, and which ones should be taken up later. Also, who will check the correctness of the code or help if something fails?
3. Do not rely on self-learning, better start a course
You can find good video courses or sites with Java assignments online. One of the best courses is CodeGym because it strikes the above balance: it’s 80% practice-oriented and only 20% theory-oriented. The course covers Java Core in its entirety (Java syntax, OOP, structures, multi threading, etc.), but at the same time you will not get bogged down in theory, but will learn it gradually, primarily by solving a lot of exercises.
After you solve all 1200+ problems in CodeGym, you will have about 500 hours of real programming experience.
4. Create a study schedule and set clear goals
Jumps from one to the other rarely bring good results in school. It is much more effective to immerse yourself in the language once and not be distracted by others. Imagine learning Spanish and Italian at the same time. You will most likely get confused and end up using some kind of hybrid.
So, you want to learn Java. This is your very first and general goal. Now you should write a program and break your goal down into more specific “subgoals” to maintain momentum. It is better to work on your chosen curriculum every day. Even if you only spend half an hour a day studying, writing code every day will reinforce the habit and become a part of your life much faster than irregular classes. And try to convince yourself that your activities are not whims and entertainment. They are obligatory for you.
To stay focused on low motivation, remind yourself why you want to learn Java at all. Want to become a professional developer and find a cool job in companies like Ava.codes? Are you dreaming of creating your own application? Define your goals and then – focus on them as soon as you feel the loss of motivation (and this happens more often than you would like, especially when learning on your own).
If you find it difficult to organize yourself, you might want to use a time management app to remind you to start class.
5. Try a playful learning format to learn successfully while staying motivated
Let’s face it, there aren’t very many successful self-taught people in any industry. Perhaps one in a hundred will be found. The low percentage is not explained by someone’s stupidity or carelessness. Most often, quite reasonable people, stumbling over failure, lose motivation, because they are not able to assess their real progress. And sometimes they simply do not understand that their efforts were not enough to overcome this or that difficulty.
You’ve probably played computer games and faced a situation where you could not complete the level the first time. However, if the game has a reasonable balance of difficulty, you usually don’t have the “I can never do this” thought. You just try again and again, and in the end the level gives in, you gain a certain number of points or get the right item to continue – you feel the joy of overcoming and … set off to conquer a new peak!
Now, the idea is that the same principle can be applied to teaching programming. If you are involved in the game process, you see the result, you get rewards for moving from level to level, you will be much more willing to sit down to study. This is how our brain works – it needs encouragement, that is, confirmation that its efforts are not in vain!
This is why CodeGym is ideal for those who have no programming experience: almost everyone has experience in games, at least a little, and this course uses gamification:
CodeGym is played through like a video game. When you solve the problem correctly, you get “dark matter” (the points you need to unlock the next lecture or next level).
You play as an anthropomorphic robot named Amigo, and progress from level to level, from quest to quest, collecting and spending dark matter.
The course has a storyline that includes space travel, alien life, and robots.
CodeGym is divided into 40 levels (4 quests of 10 levels), each of which contains about 15-30 coding tasks, 10-20 Java lectures, as well as motivational articles to help you move forward even when things get tricky …
A game for learning programming
After completing this game, you will learn to program! Video games, by the way, are written by programmers, every single one.
6. Chat with fellow students and Java programmers. Feel free to ask questions!
For a better understanding of how the study is going, people consciously or subconsciously compare themselves with others. In addition, it is extremely beneficial to connect with those who are teaching the same things as you.
By communicating with other programmers, you will not only get answers to questions: you will meet people with similar interests, which will speed up your learning and increase the confidence that you are doing everything right.
When it becomes difficult (and in any adequate educational process there are such moments, even among geniuses), asking the right questions on time is already half of the successful resolution of the problem. Don’t be afraid to ask, even if you think your question is stupid and will be laughed at. So if anyone is going to laugh at you, it is the problem of the one who is laughing, not yours.
In addition to Stack Overflow, you can ask questions about Java in the dedicated Help section of CodeGym. In this community, students ask for tips, help overcome obstacles, and share answers and advice.
By the way, you can also help other students with their questions – this is very helpful. This mutual help will help you learn faster and remember more information.
You are already working with Java language, so make a decision to learn some additional languages. As a rule, with a knowledge of different programming systems, such a person knows where to start, and therefore will not ask simple and stupid questions. In this case, when you start sending your resume for a Java developer vacancy (e.g. on jooble.org) or doing freelance projects, you will already have a portfolio that you can showcase to potential employers or customers.
8. Learn English and read technical literature
First of all, you need to start with English. In the IT field, this is a matter of course, but the “new” people from non-English speaking countries who are just trying to get into programming do not always understand this. In the post-Soviet space, the thought continues to circulate that English is something very difficult, not obligatory, and that it can be learned sometime later. Until then, Java is your priority. So, learning Java without English is pointless. You will never be a good (or even normal) developer if you cannot read English tech literature fluently on a diagonal. Believe me, I speak from my own experience.
Then, when you are fluent in reading technical literature in English, I recommend that you start reading books. For example, Bruce Eckel “Thinking in Java”. This is a wonderful book, a bit monumental. Many people start with Herbert Schildt. I believe you don’t need a complete guide to all Java commands. This is a reference book, you need to look into it when there are difficulties in work. As a beginner, you don’t need this. I highly recommend Yakov Fine or Head First (a series of books in various directions, there is also about Java). You can use any other Java book for beginners as well. I have written about those that I personally like.
Important! Whatever book you read, you need to run all the examples, check them out, practice. You must understand how each of the commands works. If you do not do this, then not even the most sensible book will give you anything. Nothing at all.
9. Create your own portfolio
One of the first tips for a beginner developer who has already learned the basics of the language is “create your own project and let others see your work”. This is great advice. Think about your project. It doesn’t have to be something big, but something that will show your level of Java proficiency. For example, a small game or time management app.
In this case, when you start sending your resume for a Java developer vacancy or doing freelance projects, you will already have a portfolio that you can showcase to potential employers or customers.
This is very easy to do today. Create a GitHub account, read how to work with it (it’s easy) and publish your projects there.
To summarize everything, the last but not the least step is not to give up! Many novice developers at the learning stage quickly give up. It doesn’t work, it’s difficult, you start to think that it’s not yours, that it might be worth trying later. Friends, it’s absolutely normal that you don’t succeed all at once. Yes, there are programming geniuses with an innate flair who write everything easily. But if you are an ordinary normal person, then there will be many difficulties. In fact, learning to program is easier than driving a car than even learning English. This is a simple skill. Yes, it takes a lot of time and practice, but it’s a simple skill.
In general, to be successful, learn English, read books on programming for beginners, take courses and do not give up. Everything will work out!