How to fix your Java learning: a story of one tutor
Tags: beginners, java, coding, learning
Published: 2019-02-01 15:11:20

---
title: How to fix your Java learning: a story of one tutor
published: true
description: It was over a 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! 
tags: beginner, java, coding, learning
---

<h4 id="609f" class="graf graf--h4 graf-after--figure">About a&nbsp;boy</h4>
<p id="bdbb" class="graf graf--p graf-after--h4">It was over decade ago&hellip; I decided to become a real boyprogrammer. I looked for a language that was &lsquo;mine&rsquo;, tried some of them.</p>
<p id="16f3" class="graf graf--p graf-after--p">Once I tried Java and fell in love with it! Then later I coded like mad permanently and my developer skills grew rapidly. I&rsquo;ve been learning 10 to 18 hours every bloody day&hellip;</p>
<p id="b27c" class="graf graf--p graf-after--p">Well, I got my first job, and then second&hellip; and I never stopped my intensive learning. As a consequence, I turned into Java Senior Developer pretty fast. I reached my goal.</p>
<p id="c9eb" class="graf graf--p graf-after--p">I was happy but&hellip; not completely. It seemed there was a piece of my self-fulfillment puzzle I&rsquo;d missed.</p>
<p id="52ad" class="graf graf--p graf-after--p">I looked for it and you know what. I did find it in my parents&rsquo; cup of tea. Teaching! Now I guess I inherited the teacher&rsquo;s gene.</p>
<p id="2e57" class="graf graf--p graf-after--p">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.</p>
<p id="2ec6" class="graf graf--p graf-after--p">Several years have passed since then. During that time, I collected diligently common mistakes or rather &ldquo;wrong steps&rdquo; of my students and other people who learned how to code. I don&rsquo;t mean bugs in code but wrong learning concepts.</p>
<p id="a11f" class="graf graf--p graf-after--p">It was really beneficial experience that gave me more insight into how to avoid and correct mistakes.</p>
<p id="aff5" class="graf graf--p graf-after--p">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.</p>
<p id="a230" class="graf graf--p graf-after--p">So let&rsquo;s try to speak one at a time.</p>
<h3 id="948b" class="graf graf--h3 graf-after--p">Common mistakes and how to struggle&nbsp;them</h3>
<p id="c754" class="graf graf--p graf-after--h3"><strong class="markup--strong markup--p-strong">1.</strong>&nbsp;<strong class="markup--strong markup--p-strong">Too much theory from the first steps</strong></p>
<p id="0bb5" class="graf graf--p graf-after--p">So, you started to learn a programming language.</p>
<p id="5eab" class="graf graf--p graf-after--p">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!</p>
<figure id="81ba" class="graf graf--figure graf-after--p">
<div class="aspectRatioPlaceholder is-locked">
<div class="aspectRatioPlaceholder-fill">&nbsp;</div>
<div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded" data-image-id="0*EbNGyhpEbaSe4BsI" data-width="436" data-height="244" data-scroll="native"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="40"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" src="https://cdn-images-1.medium.com/max/800/0*EbNGyhpEbaSe4BsI" data-src="https://cdn-images-1.medium.com/max/800/0*EbNGyhpEbaSe4BsI" /></div>
</div>
</figure>
<p id="3546" class="graf graf--p graf-after--figure">Recall your kindergarten or primary school. Drawing class&hellip; Did you listen or read a lecture then how to draw? I am pretty sure the answer is &ldquo;no&rdquo;. You and other kids just took your crayons and&hellip; drew. At most your teacher could show you how to hold a pencil or tell something about &ldquo;red and blue is violet&rdquo;. Or you took part in stage playing Cucumber or Broccoli&hellip; I don&rsquo;t think your drama teacher explained you Stanislavsky system that time&hellip;</p>
<p id="1da2" class="graf graf--p graf-after--p">The same story with programming. JUST.START. CODING. Theory is important. But later.</p>
<p id="5af9" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">2.</strong>&nbsp;<strong class="markup--strong markup--p-strong">Trying to get everything at once</strong></p>
<figure id="7ca4" class="graf graf--figure graf-after--p">
<div class="aspectRatioPlaceholder is-locked">
<div class="aspectRatioPlaceholder-fill">&nbsp;</div>
<div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded" data-image-id="0*fs6S5mORrs_hRC0I" data-width="400" data-height="300" data-scroll="native"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="55"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" src="https://cdn-images-1.medium.com/max/800/0*fs6S5mORrs_hRC0I" data-src="https://cdn-images-1.medium.com/max/800/0*fs6S5mORrs_hRC0I" /></div>
</div>
</figure>
<p id="675a" class="graf graf--p graf-after--figure">You are right. This paragraph is about &lsquo;harmful theory&rsquo; 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&rsquo;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&rsquo;s You so much.</p>
<p id="3008" class="graf graf--p graf-after--p">I recommend starting to read books/documentation after learning the basics of Java Core confidently. In this case they will go like fiction books.</p>
<p id="e5a3" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">3. Not enough practical tasks</strong></p>
<figure id="d978" class="graf graf--figure graf-after--p">
<div class="aspectRatioPlaceholder is-locked">
<div class="aspectRatioPlaceholder-fill">&nbsp;</div>
<div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded" data-image-id="0*gcwXQ1hvKK20PDVM" data-width="480" data-height="200" data-scroll="native"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="30"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" src="https://cdn-images-1.medium.com/max/800/0*gcwXQ1hvKK20PDVM" data-src="https://cdn-images-1.medium.com/max/800/0*gcwXQ1hvKK20PDVM" /></div>
</div>
</figure>
<p id="7f65" class="graf graf--p graf-after--figure">I insist that in the first stages of your developer&rsquo;s way you need to get the knack of coding.</p>
<p id="593f" class="graf graf--p graf-after--p">I mean it is much better for a beginner to solve many small and simple tasks than few complex ones. No, I&rsquo;m not saying that you don&rsquo;t need complex tasks at all.</p>
<p id="6efd" class="graf graf--p graf-after--p">Sure you do need. Good ratio: 1 difficult task for 10&ndash;20 simple tasks. Where to get tasks? I am going to tell you later.</p>
<p id="2ee4" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">4. Sticking with complex tasks for ages</strong></p>
<p id="d0d9" class="graf graf--p graf-after--p">Some students simply do not know how to quit a task they can&rsquo;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&nbsp;&hellip; see 5th paragraph.</p>
<p id="3ad8" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">5. Inability to ask questions</strong></p>
<p id="7d01" class="graf graf--p graf-after--p">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 &lsquo;hey guys! There&rsquo;s something wrong!&rsquo; style.</p>
<p id="87a1" class="graf graf--p graf-after--p">So, something went wrong, well, what to do? Ask a question! Ask your mentor if you have one, or forums like&nbsp;<a class="markup--anchor markup--p-anchor" href="https://javaranch.com/" target="_blank" rel="noopener" data-href="https://javaranch.com/">Javaranch</a>&nbsp;, <a class="markup--anchor markup--p-anchor" href="https://dev.to/" target="_blank" rel="noopener" data-href="https://dev.to/">dev.to</a> or&nbsp;<a class="markup--anchor markup--p-anchor" href="https://stackoverflow.com/" target="_blank" rel="noopener" data-href="https://stackoverflow.com/">stackoverflow</a>.</p>
<p id="ce4a" class="graf graf--p graf-after--p">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.</p>
<p id="2835" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">6. Self-students: inattention to actual errors in the code</strong></p>
<figure id="77f1" class="graf graf--figure graf-after--p">
<div class="aspectRatioPlaceholder is-locked">
<div class="aspectRatioPlaceholder-fill">&nbsp;</div>
<div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded" data-image-id="1*cGrvS-KhQG5J0gzXCXCXaA.gif" data-width="300" data-height="198" data-scroll="native"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="47"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" src="https://cdn-images-1.medium.com/max/800/1*cGrvS-KhQG5J0gzXCXCXaA.gif" data-src="https://cdn-images-1.medium.com/max/800/1*cGrvS-KhQG5J0gzXCXCXaA.gif" /></div>
</div>
</figure>
<p id="d9b7" class="graf graf--p graf-after--figure">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&rsquo;t take something into account? If you have a mentor who has time to check everything, it is just fine. What if you don&rsquo;t? Learn to ask yourself the question &ldquo;what if&rdquo; and test the program on different data. In the future this skill will help you learn how to write unit tests.</p>
<p id="542b" class="graf graf--p graf-after--p">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.</p>
<p id="90c0" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">7. Debugging the code? Sorry guys, it&rsquo;s not for me!</strong></p>
<p id="9423" class="graf graf--p graf-after--p">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.</p>
<p id="4524" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">8. Learning for the sake of learning</strong></p>
<p id="381e" class="graf graf--p graf-after--p">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&nbsp;&hellip; prepare for endless absorption of information and even more endless coding.</p>
<p id="1406" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">9. Start writing code before thinking about a solution</strong></p>
<p id="8b38" class="graf graf--p graf-after--p">How to avoid it? Try good old pen&amp;paper, my young Padawan. If you are faced with a task and don&rsquo;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.</p>
<p id="82cc" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">10. Fear of experiments</strong></p>
<figure id="a227" class="graf graf--figure graf-after--p">
<div class="aspectRatioPlaceholder is-locked">
<div class="aspectRatioPlaceholder-fill">&nbsp;</div>
<div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded" data-image-id="0*bXIebb4oZpGQcoKv" data-width="320" data-height="180" data-scroll="native"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="40"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" src="https://cdn-images-1.medium.com/max/800/0*bXIebb4oZpGQcoKv" data-src="https://cdn-images-1.medium.com/max/800/0*bXIebb4oZpGQcoKv" /></div>
</div>
</figure>
<p id="df49" class="graf graf--p graf-after--figure">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:</p>
<p id="f0b5" class="graf graf--p graf-after--p">A. solve the problem in a proven way, check its operability.</p>
<p id="480c" class="graf graf--p graf-after--p">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.</p>
<p id="a6e1" class="graf graf--p graf-after--p"><strong class="markup--strong markup--p-strong">11. Loss of motivation due to difficulties</strong></p>
<p id="6bdf" class="graf graf--p graf-after--p">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.</p>
<p id="7b99" class="graf graf--p graf-after--p">What to do? Understand that programming is not rocket science.</p>
<p id="27c3" class="graf graf--p graf-after--p">Almost everyone can do it if he or she tries enough.</p>
<p id="5b5f" class="graf graf--p graf-after--p">You think you can&rsquo;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.</p>
<h3 id="933a" class="graf graf--h3 graf-after--p">Useful links for every Java&nbsp;student</h3>
<p id="7e02" class="graf graf--p graf-after--h3">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.</p>
<figure id="5f53" class="graf graf--figure graf-after--p">
<div class="aspectRatioPlaceholder is-locked">
<div class="aspectRatioPlaceholder-fill">&nbsp;</div>
<div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded" data-image-id="1*DpsLxlDFcThlZWaYGKVbZA.gif" data-width="720" data-height="405" data-action="zoom" data-action-value="1*DpsLxlDFcThlZWaYGKVbZA.gif" data-scroll="native"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="40"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" src="https://cdn-images-1.medium.com/max/800/1*DpsLxlDFcThlZWaYGKVbZA.gif" data-src="https://cdn-images-1.medium.com/max/800/1*DpsLxlDFcThlZWaYGKVbZA.gif" /></div>
</div>
</figure>
<p id="0021" class="graf graf--p graf-after--figure"><a class="markup--anchor markup--p-anchor" href="https://codegym.cc/" target="_blank" rel="noopener" data-href="https://codegym.cc/">CodeGym</a>. Once I have found CodeGym. &lsquo;This is it&rsquo;, I thought, &lsquo;It is a course I&rsquo;ve been dreaming of&rsquo;.</p>
<p id="9b2f" class="graf graf--p graf-after--p">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.</p>
<p id="6ece" class="graf graf--p graf-after--p">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.</p>
<p id="34b8" class="graf graf--p graf-after--p">CodeGym is divided into 40 levels. Each level includes about 15&ndash;30 coding tasks, 10&ndash;20 Java lectures and motivation articles to cheer up the students. So you go through the course level by level, solve your tasks &mdash; it is kind of game so you&rsquo;ll never get bored, I guess. And one last thing: the lectures here are fun and full of humor. I enjoyed reading them.</p>
<figure id="9ce4" class="graf graf--figure graf-after--p">
<div class="aspectRatioPlaceholder is-locked">
<div class="aspectRatioPlaceholder-fill">&nbsp;</div>
<div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded" data-image-id="1*pVLNOnLZ3s3leeoSdHVpcw.png" data-width="1600" data-height="874" data-action="zoom" data-action-value="1*pVLNOnLZ3s3leeoSdHVpcw.png" data-scroll="native"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="40"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" src="https://cdn-images-1.medium.com/max/800/1*pVLNOnLZ3s3leeoSdHVpcw.png" data-src="https://cdn-images-1.medium.com/max/800/1*pVLNOnLZ3s3leeoSdHVpcw.png" /></div>
</div>
</figure>
<p id="b492" class="graf graf--p graf-after--figure"><a class="markup--anchor markup--p-anchor" href="https://www.codingame.com/" target="_blank" rel="noopener" data-href="https://www.codingame.com/">CodinGame</a>. 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.</p>
<p id="d1f4" class="graf graf--p graf-after--p">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 &mdash; 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.</p>
<figure id="aa62" class="graf graf--figure graf-after--p">
<div class="aspectRatioPlaceholder is-locked">
<div class="aspectRatioPlaceholder-fill">&nbsp;</div>
<div class="progressiveMedia js-progressiveMedia graf-image is-canvasLoaded is-imageLoaded" data-image-id="0*glDk6X-yuBQsYZCV" data-width="1366" data-height="768" data-action="zoom" data-action-value="0*glDk6X-yuBQsYZCV" data-scroll="native"><canvas class="progressiveMedia-canvas js-progressiveMedia-canvas" width="75" height="40"></canvas><img class="progressiveMedia-image js-progressiveMedia-image" src="https://cdn-images-1.medium.com/max/800/0*glDk6X-yuBQsYZCV" data-src="https://cdn-images-1.medium.com/max/800/0*glDk6X-yuBQsYZCV" /></div>
</div>
</figure>
<p id="5c5b" class="graf graf--p graf-after--figure"><a class="markup--anchor markup--p-anchor" href="http://www.codewars.com/" target="_blank" rel="noopener" data-href="http://www.codewars.com/">Codewars</a>&nbsp;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&rsquo;ll find challenging tasks here rather then lectures.</p>
<p id="5837" class="graf graf--p graf-after--p">First, you&rsquo;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.</p>
<h3 id="e14b" class="graf graf--h3 graf-after--p">Сonclusions</h3>
<p id="3dd1" class="graf graf--p graf-after--h3 graf--trailing">Start coding! Don&rsquo;t hesitate. Code a lot. Code every day. Use tasks collections with validation. Sometimes read the theory. Ask some questions. Code. Code. Code.</p>

First published on <a href="https://hackernoon.com/how-to-fix-your-java-learning-a-story-of-one-tutor-1bcac1e152f1">HackerNoon</a>