How to learn Java development? The experience of Nikita Chernetsov GeekUniversity student


    I received my higher education at MSTU, I studied nuclear reactors and power plants. However, despite the positive impression of studying and generally good prospects, after high school, I decided to become a developer. And it turned out! For the past three years I have been working in a Java developer, not for a second interrupting my training for a profession. I will tell you about which teaching methods turned out to be the most effective for me. Not the fact that they will enter one and all. I hope someone will get something useful for themselves.


    Online Courses


    But back to the beginning. In high school I did not study programming, my faculty was called “Nuclear Reactors and Power Plants”. However, it was there that I laid the most important basis for my current profession: after Baumanka, it is incredibly easy to learn any materials, regardless of format. Therefore, I do not hold the opinion that higher education is depreciating. A person with a high-quality higher education, even from another sphere, always thinks a little better and seizes a little faster.


    Energetics did not catch me, because somewhere in the middle of training I understood - my future in IT. Java has always been one of the foremost languages, so there was no particular hesitation with the choice. How was it with the format - when there are online courses, why complicate your life? I quickly signed up for several IT courses, learned a new profession with incredible perseverance, but most importantly - with pleasure. It happened that the only one from the group performed complex homework.


    I looked through the courses a lot, here are the ones that I liked the most:


    • Java Rush - convenient and intuitive.
    • Stepik is an annual program with courses in Java, Python, Haskell, C ++, functional programming, mathematical analysis, and mathematical statistics.
    • Otus is an advanced level course in Java, Spring and Machine Learning.
    • Faculty of Java-development in GeekUniversity (GeekBrains) - here I am now finishing the last quarter.

    Passing several Java courses at once makes perfect sense, since programs differ both in time and in content. Short practical courses are good because you immediately start doing what you need in real work. More detailed programs, as in GeekUniversity, provide additional knowledge on databases, algorithms, and frameworks. It is not necessary to study everything at the same time, it just may not be enough time and effort, but I recommend at least gradually to try everything in the top. And never stop.


    Practice


    The structure of all the books on programming, in any case, good, one - an explanation of the topic, then exercise. The latter should not just be read, but be sure to do it by hand, without copy-paste. Even better - if you work as a programmer and combine it with training. This helps grow and ask yourself the right questions faster. It helped me that I quickly began to work in different projects after the start of training.


    In the company "Glosav" I did a system of transport monitoring. Different languages ​​were mixed there, Erlang worked at the very top level of data reception, then the system bus on Kafka, and already behind it - solid Java. Personally, I wrote streaming handlers. In a startup, iVoice developed an automated call center, actively used Kafka. Recently I became a developer at Luxoft, there is a lot of new things for me - we are building an information and referral system for a group of VTB banks, I am working on a microservice architecture on the Spring Cloud module in the project.


    When projecting work to study, you better understand which courses are now desirable to choose, at which place it is better to ask the teacher, the benefit in the “long” courses there is such an opportunity.


    Alien GitHub Code


    Recently, I began to look at a lot of other code on GitHub, study libraries and frameworks, analyze how cool developers solve their problems, adopt their methods.


    It happens like this. When I see a difficult moment, I take a piece of paper, a pen, and draw a diagram of classes, variables, and relations. Without a piece of paper on GitHub, this is not very convenient to watch, since for each class you need to open its tab. For simplification, I connect IDE and I look in a performance code step by step.


    Of course, most of the "peeped" code was written by Western developers, simply because of the popularity of GitHub. They are all open people, so if you can’t figure it out on your own, you can write and ask them about some moments, they will be happy to answer.


    When I worked in Gosav, I used the GraphHopper library. I often visited the forum, where in a separate thread the product founder answered questions from other programmers.


    When you manage to work with cool developers, I also pay attention, as they say. Sometimes on courses I notice that the teacher has a stylish, beautiful code. As a result, I’ll always “dissect” everything, carefully study, emphasize for myself the new.


    Paper books


    The format of the materials should be as diverse as possible, therefore, in no case should one reject paper books. I, for example, have a large separate shelf with editions on programming. And I always take something with me to read on the train or subway. For such reading it is not necessary to allocate a lot of time, the main thing is to do it regularly.


    If you are a beginner Java developer, here is my personal top must-read book:



    From new products I can advise:



    I don’t force myself to take all these courses or read programming books - I’m just interested in this topic and I see that new knowledge helps me to better perform current work. At the same time, I understand perfectly well that programming is a craft in which you need to tamper with your hand, keep minimalism in the code, and not throw all the theory you have learned. This kind of work reminds me of aikido to me: you know and understand a lot, but you inflict point-like effective hits with the most appropriate means.


    Also popular now: