It so happens that I completed my probation period quite a long time ago, but (surprisingly) finding time to write is not so easy anymore.
I'll start from the very beginning. My name is Mikhail, I am 27 years old. I want to say right away that I do not have a higher education (in the job search process this played a role - some might say that it played a cruel joke on me, but for me it was more likely to be a favor), although I have three institutes behind me.
After school, I entered the Belarusian National Technical University, but didn’t even start studying. He moved to Moscow, entered a little-known economics university to study marketing and advertising, studied for one semester and dropped out. After that, he entered the Ostanskin Institute to major in sound engineering, where he completed two courses. So, you could say that before I became a developer, I was a sound engineer. My career in this field was fast-paced and fleeting - by the second year of work I realized that it would be quite problematic to grow anywhere else in this field.
After leaving sound engineering, I worked in advertising for two years, where I also came to the understanding that my development in this area was complete - I was not a creative person, and you don’t need a lot of intelligence to calculate metrics - it’s boring.
Thus, I entered September 2016 with a work book in my hands and a supply of funds for about six months. Here it is worth paying tribute to one sensational resource about training programmers - its marketers instilled in me the confidence that I, as a fairly smart guy, could easily learn to be a programmer in just six months. Thus, I identified my goal and rearranged my life so that nothing would stand in the way of achieving it. Studying on this resource turned out to be pointless in terms of professional skills, so after the second webinar I realized that a different approach was needed. Fortunately, thanks to my classmates, I discovered two absolutely wonderful resources: the Stepik.org platform and the one on which you are reading this. At the end of September I started taking a course on JavaRush, while simultaneously taking courses that I found useful on stepik: discrete mathematics, a course on java, and several courses on algorithms and data structures.
By the end of October, I finished part of the courses, completed 10 free levels on JavaRush, and then sat in the mountains for about a month, not really bothering about anything other than survival. You also need to rest.
In December, I returned to my studies with renewed vigor. At the end of December I purchased a subscription and galloped through the levels. I devoted myself entirely to this process - I rebuilt my routine (I slept during the day when the girl was not at home, spent several hours with her in the evening, then worked all night and morning (about 12 hours in total), went to training in the morning (I will write about the need for physical activity separate post, just know that if you are going to seriously enter this profession, it is not just desirable - it is a necessary condition for a quality life. A sedentary lifestyle kills). Slept. And so every day, without exception. I created an iron system, and any deviation it unsettled me for several days. To be honest, the last levels rather disappointed me (a small number of tasks and a vague theory, and even a validator going crazy with the resource update spoiled my blood). But be that as it may, February is near with my avatar appeared a beautiful and neat number 40. I left 7 tasks behind, 6 of which were not submitted to the validator at that time, and I was completely reluctant to deal with one.
At this point, I should have already started looking for a job, especially since my modest savings had come to an end. However, I found it necessary to master Git, Maven, Gradle, understand SQL, and get an idea of Spring. It seemed to me that I got the hang of Git in a couple of days (in the working environment, in fact, I had to repeat everything all over again), I understood maven at a basic level rather intuitively, I took a pretty good course in Gradle on Udemy, I improved SQL on sql-ex , on Spring, I read the book Spring in Action (more than enough to get started).
With this modest amount of knowledge, I began my job search at the beginning of April. The first interview took place two weeks later. Before this, I did a test assignment that was eerily similar to the test assignment before the internship at JR (which I also did, although I didn’t end up getting the internship). During the interview, I realized two things: firstly, I am completely unable to explain basic things in words, and secondly, I set the bar quite too high for myself - in fact, all the questions at the interview were devoted only to Core (and literally a couple of questions about SQL). The interview, however, went well, and they agreed to consider my candidacy. However, after two weeks I still did not receive a clear answer from them (everyone asked to wait a little, apparently they were looking at other candidates). In the end, I gave up on them and continued my search.
Naturally, I visited Sbertech (like many JR graduates), by this time I had thoroughly improved my skill in answering questions, so the interview went well, but in the end it turned out that they couldn’t hire me without a higher education. It was quite annoying, but it was for the best, I am somehow convinced that working in the banking industry is a stigma for life.
The third interview brought me to where I am now. It was a non-standard interview, they asked me just a couple of questions about Core, they asked more about Spring (and at a fairly deep level, about the life cycle of beans, aspects, spring mvc), something about Groovy. Regarding Java, they also asked non-standard questions, for example, how the StringBuilder is structured inside, where the hashcode is stored when it is calculated. There were questions about JavaScript (I also learned it in general terms along the way), and several puzzles. Overall, I answered about half the questions and left the interview disappointed. However, the next day I received an offer with a salary that I had never even dreamed of at my first job. It was the end of April - a little over 8 months had passed since I learned how a class differs from an object.
The company is called MASTERDATA, it is a large integrator of SAP, 1C, Hybris and other enterprise solutions. I ended up in the E-commerce department, we develop websites for online stores. Many people write that from the first day they found themselves at the forefront of a new project and began writing hundreds of lines of code. It wasn't like that for me. For the first month, I did about the same thing as I did at home - I sat and studied, although more focused. I picked up JQuery, Apache Solr, MQ, Velocity, delved into MVC, and learned Groovy. I touched on very exotic technologies, like JBoss Drools. A month later, I started writing a REST API to integrate our current project with a partner’s website. Along the way, I studied various modules of the project (to understand the scale of the tragedy, the project has almost 10 million lines of code, not counting the front and configurations). At the moment I know about 10% of the project. A new stage of development will start soon; we will create two new sites for a current client.
Of course, it’s worth saying that I haven’t regretted my decision for a minute - programming turned out to be so much my occupation that it seems I can do it without interruptions for sleep and food.
In conclusion, some advice to everyone who is pursuing a high goal: Keep in mind that you will have to study all your life. You will never be a good enough developer. First of all, learn to study. Learn to Google, learn to ask questions correctly, learn to enjoy the learning process.
Second, find the right balance between physical and mental work. Watch your posture, don’t slouch at the computer, warm up regularly, start going to the gym (harmonious development of your body is also an art, don’t rush into this pool thoughtlessly, otherwise you’ll only hurt yourself. It’s better to work out with a trainer, but only if you have a good one If there is no good thing, then the best (perhaps the only) source of knowledge on health training is the LJ community ru_healthlife). If you think that this has nothing to do with the matter, you are mistaken. Physical activity has a very positive effect on mental activity as well.
Third, stop motivating yourself. The resource of motivation and will for each person is very limited. Yes, some have more, some have less, but sooner or later it will end one way or another. Discipline makes the difference. Start studying at the same time every day. 5 minutes or 5 hours is not so important, the main thing is to do what is necessary. And the result will not be long in coming.
That's all, thanks for your attention. Good luck to all!
GO TO FULL VERSION