JavaRush /Java Blog /Random EN /Effective programming training

Effective programming training

Published in the Random EN group
Learning to program from scratch is not an easy technological process. Especially if you study on your own online: you try to find the best way, spend time and effort searching for adequate information, listen, read, watch, try to write your first programs, make mistakes, don’t know where exactly, don’t understand anything, reach a dead end... 90% attempts end before they even really begin. Very often, after such efforts, a person diagnoses himself as “this is not for me” and learning programming is abandoned.
Effective programming training - 1

Mistakes in self-learning Java from scratch

  • Insufficient amount of practice: theory is not what a programmer should understand first of all. First of all, a programmer programs; the training of such a specialist should be based on practice, and there’s at least a stake on his head! “I’ll understand what’s what, and then I’ll do the task” - this is not about programming!

  • A beginner, due to lack of experience, cannot distinguish important information from unimportant information ; he often gets lost in details or gets buried in complex topics because someone smart on the Internet said, “If you don’t know how to program sorting algorithms, you won’t be a programmer.” Then he gets lost in them and... that’s it.

  • Lack of a systematic approach - an attempt to grab information from all kinds of sources, endless walking in circles.

  • Trying to immediately understand everything thoroughly before starting to program.

  • Formal approach: without really delving into it and without trying to solve the problem on their own more than once, people look for someone else’s solution on the Internet. In fact, “cheating” can be useful; learning the basics of programming often includes parsing someone else’s code. But it is analysis, and precisely after a person has made several approaches to the problem on his own.

And one moment:
  • Loss of motivation. Only this is not the cause, but the consequence of all of the above. Learning Java from scratch on your own requires a high level of organization and consistency. And, of course, a lot of practice. If this goes wrong, the person decides that everything is lost, he wasted his time and nothing will come of it. So there's no point in trying.

How to progress in learning programming?

  1. Find the main source of information, well-researched, well-structured, filled with only the most necessary information and not boring (this is important!). Follow this source;

  2. Be able to find additional sources of information and use them as needed. Do not spray;

  3. Constantly program: solve many practical tasks and be able to check the correctness of solutions;

  4. Study regularly, do not abandon your studies for a long time;

  5. Do not try to cover everything at once, move in a cycle, with a gradual increase in complexity;

  6. Effective learning to program - 2
  7. Learn to read other people's code;

  8. Learn to find answers to questions on the Internet, but do not abuse it;

  9. Communicate with fellow future happiness: it is desirable that there is at least one more student programmer nearby; online learning without communication is much less effective;

  10. Communicate with more experienced programmers;

  11. To not give up!

“Ha, easy to say!” - you say. And add: “Thank you, Cap!” The simplest tips are usually the hardest to implement. But... you are reading these lines and have already reached the JavaRush website. And the JavaRush website contains a course of the same name, which is built precisely according to these canons! Let's make sure of this.

JavaRush - a non-standard approach to learning

  • JavaRush is a well-structured course on the Java language. It consists of short lectures presented in the form of entertaining dialogues, interspersed with numerous practical tasks. You take the course on behalf of a character who needs to be “leveled up” from level 0 to level 40, just like in an RPG game. When you solve a problem, you get points that can be spent on opening the next lecture.

    But in fact, it’s not the character that is upgraded, but your programming ability. The course contains all the necessary information on Java Core (the core of the Java language, which is what the future Java Junior Developer should know thoroughly) and a little more. At this point you can check the box next to the first item from the list above.

  • JavaRush has special lectures in which course instructors recommend certain books, videos and other sources of information. In addition, course administrators as well as advanced students often write how-to articles that are designed to make complex topics easier to understand. This covers point 2.

  • To become a programmer, you need to program. The rule is the simplest, and it sounds extremely logical. However, it's surprisingly often forgotten that learning to be a programmer is all about the practice of writing code, and then everything else.

    The creators of JavaRush realized this a long time ago, so practice is at the very core of the course. It contains 1200 tasks! This is the very valuable programming experience that is so lacking for all those who are trying to become a software developer.

    However, the tasks themselves are not enough; they still need to be solved and it is necessary to understand that the solution is correct.

    For this purpose, JavaRush has implemented a system for instant automatic verification of solutions. You solve a problem, press one button, and immediately get the result (whether the problem was solved correctly or incorrectly). Moreover, a smart recommendation system will tell you exactly where you made a mistake (if you made a mistake, of course).

    Effective programming training - 3
    Effective programming training - 4

    Also, in addition to the task conditions, you will receive requirements for it. Requirements are a more detailed condition that outlines step by step what exactly your future program should do.

  • Practical tasks in JavaRush

    • Some of the tasks cover the theoretical material of the lecture that precedes it.
    • Another part is designed to review previously covered theory (at previous levels).
    • The third tasks are “tasks from the future”; they are given based on materials from the next one, two or three levels. Yes, yes, you didn’t think so. This is intentional. Do you want to solve a problem now, but you lack knowledge? Google it! This is an extremely useful skill for a programmer. Well, if you want to move consistently, just put the task aside and return to it after a couple of levels when you reach the necessary theory. At this point you can check the boxes opposite points 5 and 7.
    • Bonus tasks. These tasks are of increased complexity for independent learning and for the development of algorithmic thinking. One more tick for point 7!
    • Mini-projects. These are tasks broken down into several subtasks, the gradual solution of which will result in the creation of relatively complex and large programs. For example, the game “Sokoban” or online chat. Such tasks will appear approximately in the middle of the course.
    • Typing code - tasks for beginners. Sometimes a future programmer just needs to get his hands on and get a feel for the code. To do this, you simply “copy” from the sample.
    • Parsing other people's code and finding errors. Well, you get the idea. There are also such tasks, and here you can put a plus next to point 6.
    • Videos. Sometimes it is useful to switch to another activity. On JavaRush, such an activity is watching videos about IT specialists.
  • Help in solving problems

    As we mentioned above, learning to code online doesn't have to feel like sailing alone on a raft in the middle of the ocean. You need to communicate. For this purpose, JavaRush first of all has a “Help” section. If you have been stuck on a task from the course for a very long time or cannot understand a complex topic, ask a question in a special section . One of the students, developers or resource administration will definitely help you. In addition, we have a “Groups” section where you can communicate with other students on the course. Also, when you feel stronger, it will be very useful to go to the “help” section in order to help someone with their studies. Here you will have to understand someone else's code. We put a tick opposite points 8 and 9 and another one opposite 6!

    Effective programming training - 5
  • The JavaRush course includes a large number of motivational lectures, and our graduates who are already working as programmers sometimes send us their success stories . Judging by the comments under these stories, they really motivate people not to give up their studies. HERE you can check the box next to item 10.

So, we were able to tick all the boxes (sometimes even several times). “It’s not true, the fourth point is still open,” an attentive reader will note. This is true! However, the creators of the JavaRush course have made every effort to ensure that you can check this box as well. It's up to you! And... good luck in this difficult task - learning programming!