Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
It was over decade ago⊠I decided to become a real boyprogrammer. I looked for a language that was âmineâ, tried some of them.
Once I tried Java and fell in love with it! Then later I coded like mad permanently and my developer skills grew rapidly. Iâve been learning 10 to 18 hours every bloody dayâŠ
Well, I got my first job, and then second⊠and I never stopped my intensive learning. As a consequence, I turned into Java Senior Developer pretty fast. I reached my goal.
I was happy but⊠not completely. It seemed there was a piece of my self-fulfillment puzzle Iâd missed.
I looked for it and you know what. I did find it in my parentsâ cup of tea. Teaching! Now I guess I inherited the teacherâs gene.
Say, the industry needs new programmers and new programmers need teachers among the pro developers. So I became one. Java Tutor. And, I must admit, I enjoy teaching no less than a good coding. Or even more.
Several years have passed since then. During that time, I collected diligently common mistakes or rather âwrong stepsâ of my students and other people who learned how to code. I donât mean bugs in code but wrong learning concepts.
It was really beneficial experience that gave me more insight into how to avoid and correct mistakes.
I also had found a lot of useful Internet resources for my students. Of course, they suit everyone who is serious about learning Java. In this article I am going to mention these resources. But first of all this article is about avoiding common mistakes in your learning.
So letâs try to speak one at a time.
Common mistakes and how to struggle them
1. Too much theory from the first steps
So, you started to learn a programming language.
What should you do first? Read a lot then write a program? Not at all, buddies. Read a bit and then code, code and again code!
Recall your kindergarten or primary school. Drawing class⊠Did you listen or read a lecture then how to draw? I am pretty sure the answer is ânoâ. You and other kids just took your crayons and⊠drew. At most your teacher could show you how to hold a pencil or tell something about âred and blue is violetâ. Or you took part in stage playing Cucumber or Broccoli⊠I donât think your drama teacher explained you Stanislavsky system that timeâŠ
The same story with programming. JUST.START. CODING. Theory is important. But later.
2. Trying to get everything at once
You are right. This paragraph is about âharmful theoryâ again. Some students dive into it so deeply trying to understand every word in System.out.println in their very first task. But they just canât budge it. All in due time, my friends. The best way to get Java theory is to learn it cyclically, gradually increasing difficulty. A few months later, you will easily get to grips with the topic that scares the todayâs You so much.
I recommend starting to read books/documentation after learning the basics of Java Core confidently. In this case they will go like fiction books.
3. Not enough practical tasks
I insist that in the first stages of your developerâs way you need to get the knack of coding.
I mean it is much better for a beginner to solve many small and simple tasks than few complex ones. No, Iâm not saying that you donât need complex tasks at all.
Sure you do need. Good ratio: 1 difficult task for 10â20 simple tasks. Where to get tasks? I am going to tell you later.
4. Sticking with complex tasks for ages
Some students simply do not know how to quit a task they canât solve. My advice is to solve a dozen other tasks now, and come back to your intractable one after it. But if you really REALLY want to get the solution right now ⊠see 5th paragraph.
5. Inability to ask questions
There are students who do not want to ask anything. They are afraid their question is stupid and some unknown experienced programmer dude will troll them. And there are others who ask questions in âhey guys! Thereâs something wrong!â style.
So, something went wrong, well, what to do? Ask a question! Ask your mentor if you have one, or forums like Javaranch or stackoverflow.
How to formulate a question? Be sure to give the particular description of the problem and show your code. Then describe the sequence of your code manipulations, your trying to fix it, and the results. You will get help I promise. Every programmer has been in your situation. Believe me, everyone.
6. Self-students: inattention to actual errors in the code
During self-learning it is very difficult to understand how well your code works. And what if on some data it gives the perfect result, but you didnât take something into account? If you have a mentor who has time to check everything, it is just fine. What if you donât? Learn to ask yourself the question âwhat ifâ and test the program on different data. In the future this skill will help you learn how to write unit tests.
However, over recent years it is getting better and easier to learn programming with some online courses and collections of tasks with code auto-checkers. I will give you links to such resources below.
7. Debugging the code? Sorry guys, itâs not for me!
It is for you, my dear student developer. End of story. Debugging in modern IDEs is very simple. Learn how to do it once and you will get the gem of a skill for your learning and future job! Start to debug no later than the end of the first month of your learning. Or even faster.
8. Learning for the sake of learning
While you learn to program, remember: it is not just for passing a test and empty your brain after it. Well, for passing a test too, but first it is for your future. So relax and ⊠prepare for endless absorption of information and even more endless coding.
9. Start writing code before thinking about a solution
How to avoid it? Try good old pen&paper, my young Padawan. If you are faced with a task and donât find a solution immediately, before proceeding with the code, consider what exactly you are going to do. You program not only while writing code, but even more so when you design a solution. Take a pen and paper and write out an approximate algorithm. By the way, some companies offer puzzles on paper to applicants.
10. Fear of experiments
Some guys get used to a certain construction, and even if they know that there are other options for solving a certain problem, they go along the beaten track. If you are one of these people, try the following:
A. solve the problem in a proven way, check its operability.
B. try to solve the same problem in a new way. You do not waste time, consider that you are solving another problem. The main concept: do not be afraid, you already have the right solution! I also recommend returning to some tasks after passing a new material and solving them using your new knowledge.
11. Loss of motivation due to difficulties
It is very typical for self-path students or those guys who study in a group and are lagging behind, because they learn everything a little bit slower.
What to do? Understand that programming is not rocket science.
Almost everyone can do it if he or she tries enough.
You think you canât? Most likely, you check this out too early. In the end, go on the Internet, there are thousands of stories of those who are not immediately able to reach the goal. Among these people you will meet a lot of programmers.
Useful links for every Java student
As you already understood, I am an apologist for practical programming training. Accordingly, I always advise all students my regular ones, or those who take several classes from me, or especially those who study on the Internet on their own to use as many resources as possible with Java coding tasks. Over the past two years I have found some great sites. Here they are.
CodeGym. Once I have found CodeGym. âThis is itâ, I thought, âIt is a course Iâve been dreaming ofâ.
This Java Core course 80% is based on practice. It is really helpful for Java Students from rookies to confident upper intermediate. The best feature of CodeGym is its practice system. The site is full of tasks to improve your skills every day. I guess it has about 1000 problems for different levels.
You can use browser CodeGym IDE to solve them or plugin for IntelliJ IDEA, the most popular Java IDE for now. Smart verification system checks your code and gives you some recommendations if something goes wrong. It is very important for self-path students such as for student with mentor, because no one breather can check out properly 10 programs of 20 students per day. However, verification system can do it.
CodeGym is divided into 40 levels. Each level includes about 15â30 coding tasks, 10â20 Java lectures and motivation articles to cheer up the students. So you go through the course level by level, solve your tasksâââit is kind of game so youâll never get bored, I guess. And one last thing: the lectures here are fun and full of humor. I enjoyed reading them.
CodinGame. Solving the CodinGame tasks is a really nice way to improve your programming skills. This site targets people who already know at least the basics of programming language (Java and 22 others). It has some hardcore challenges for expert developers as well.
CodinGame has the browser-based IDE (as well as CodeGym). It lets you code and compile in the same window and you can see the resultâââgame changing in real time. It is not an online course but challenge exercises tied to real games. After solving them you get visual feedback, a small change in this game.
Codewars is where developers achieve code mastery through challenge. So it is the good site for upper intermediate to advanced Java students. It is really enjoyable. Youâll find challenging tasks here rather then lectures.
First, youâve got kyu 8 (rank) and you try to improve it to kyu 1 (the highest rank). Train on kata in the dojo and reach your highest potential.
ĐĄonclusions
Start coding! Donât hesitate. Code a lot. Code every day. Use tasks collections with validation. Sometimes read the theory. Ask some questions. Code. Code. Code.
How to fix your Java learning: a story of one tutor was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.