JavaRush /Java Blog /Random EN /Java Middle in 2.5 months.
novago219
Level 34

Java Middle in 2.5 months.

Published in the Random EN group
Greetings to all readers who thought that in 2.5 months from scratch you can really become Middle. I hasten to disappoint you - this is only possible with very hard work on yourself, and I know how everyone wants everything at once - right now and no other way. And the phrase from scratch applies to me only in a certain conditional status, because I really had absolutely zero knowledge of Java as a programming language. But I still already knew and was able to do something even before I met JavaRush, and perhaps I would like to start my story with this, because my career growth is a rather strange combination of knowledge, skills and luck in some way. So, let me give you a list that gave me a competitive advantage over others, and also allowed me to get through JavaRush (up to level 34) quite quickly and without much difficulty (at least it didn't surprise me). The list consists of the knowledge that the university gave me, as well as what I myself was interested in. I won’t separate where everything is and I won’t name the university either. If you wish, you should master all this knowledge on your own if your university does not teach it.
  1. Algorithms and data structures: my path in this direction began with studying the principles of constructing algorithms, reading classic books (Knuth) and studying the Pascal programming language, and it continued with the C language, the implementation of all data structures and an analysis of the advantages and disadvantages of each of them. I won’t say that, in addition to everything else, I know how to work with Turing Machines and Markov Algorithms, or rather, I have already said this, but you can ignore this, although, in my opinion, the concept of an infinite memory tape and the movement of a pointer along it gives the most correct idea of ​​how a computer actually works from the inside, but this is just my humble opinion.
  2. Computer architecture and Assembler: when you decide that you have completely understood the principle of computer operation, try writing programs at a very low level (otherwise how will you appreciate all the delights of Java?), and I personally considered all educational options with one, two, three registers and I realized how you have to dodge when there is only one register, and the program works (surprising, right?).
  3. Discrete mathematics: naturally, in parallel with the above, it is also worth taking up this subject, since it gives a complete understanding of logical thinking, and the theory of finite state machines will tell you how the insides of the processor are arranged and how they are organized in integrated circuits. Let's not forget that Graph Theory is also studied here, which will not be 100% superfluous.
  4. Higher mathematics: I decided to highlight all other mathematical subjects in one paragraph, so as not to clutter your head too much. Here are: mathematical analysis, probability theory and statistics, linear algebra - by the way, a very, very important thing if you want to do three-dimensional graphics (I know, everyone’s dream is to write games, although for this you will also have to take a course in differential equations and numerical methods, but this is so - little things), and other areas.
  5. OS architecture. Linux: after you get comfortable here, multithreading in Java will raise much fewer questions, and it turns out that you have already heard the fairy tale about philosophers somewhere.
  6. OOP, C++ language: well, we’ve almost reached the top of the food chain. I won’t explain in detail here and won’t say why the implementation of OOP in C++ is much more interesting to look at.
  7. Additionally: a couple more little things that I already knew were: computer graphics (OpenGL, Unity 3D) and C# (Core).
What does JavaRush have to do with it?
Well, along with all this junk of knowledge, back in September last year I came across JavaRush, scrolled through a couple of levels and gave up, since I quite easily found a job after university (not as a programmer, but in IT, maybe someone can guess what it could be ?). But I soon discovered that I was not at all interested in this; in a couple of months I almost reached the ceiling and realized that there was no point in developing here, although the company’s management offered almost entertaining options (among which was DevOps), which I rejected. At the same time, I was preparing schoolchildren for Olympiads in computer science (I forgot to mention - I really liked sports programming), and after leaving my main job, I went there headlong. I was happy with everything for about 4-5 months, until I got tired of this too. The questions were repeated, all the topics were covered, and that’s when I remembered JavaRush. Being a rationalist (greedy), I first went through the initial 10 levels from cover to cover, then looked further (it seemed like level 15 was enough), I realized that this was quite interesting and in my typical manner - I just did it at any free moment. Do you have 5 minutes to spare? Great, I’ll add the logic of the method. Total: I bought two monthly subscriptions. In the first month I went from level 10 to 28, in the second incomplete (about 15 days) I went from level 28 to 34. Chronologically, it was April-mid-May, that is, 1.5 months were spent (do the math yourself in rubles). I won’t tell you how to do it and how not to do it - a lot has already been said about this.
Employment
Around level 30, I looked at the vacancies in my city and decided not to rush and not send out resumes to everyone, but to specifically select the desired company, prepare for it, and only after that send my scribbles to the HR department. I also drew the scribbles very carefully and it turned out very well. I was quickly invited to an interview and I passed it very confidently (at least as far as Java Core is concerned). I won’t describe what the questions were. The problems started when they asked me how Spring worked, and whether I knew any Enterprise technologies at all. Actually, I said that I don’t know, but with such a level - Junior is guaranteed (you won’t jump higher), but I still jumped and here, probably, the most interesting part begins. In general, when the conditions were explained to me (2 months - probationary period, position - Junior and salary range), I realized that I didn’t really like them, but said that I agreed and asked if I could start working later, motivating because I needed to finish things at my current job before joining a new company. Thus, I gave myself almost a month to prepare. I had an interview at the beginning of May, and started work on the 23rd. Naturally, I once again studied the requirements, found out what technologies were used (Java EE 6) and prepared for work.
Middle or not Middle?
Well, I started work and discovered that they had recruited about 5 Juniors, among whom, of course, I stood out, but not much. First of all, I met my immediate supervisor, noticed that he smoked and started going out to smoke with him (and I don’t smoke at all). There was also another programmer with us, I’ll tell you about him a little later. In general, while smoking (3-4 times per working day), I talked with the manager, talked in more detail about my successes, casually mentioned my knowledge (it must have come in handy) and in general, gained confidence as best I could. The barbecue and beer at the end of the first week allowed for better relationships to be established, which I organized. I stayed in the office working until 11 pm (working day until 6:30 pm), until the security guard kicked me out. Sometimes the company's CEO and CTO stayed with me in the office, with whom I also communicated, we had dinner together and left the office together (the CTO even offered me a ride home, but I politely refused). Thus, firstly, I established a good relationship with my immediate supervisor, and secondly, I showed senior management that I would complete the task and only then go home. Naturally, all this does not make me Middle. So what did it do? Let me remind you that before the interview I did not know a single framework (except JUnit). This is where it’s worth returning to the programmer I mentioned above. He was a very powerful programmer with 20 years of experience, who worked for 5 years in Moscow, about 7 years in America (as a chief project architect) and many other places, including government projects of special importance (I learned all this while smoking with him). So, this programmer was given a very serious task and he decided to take me as an assistant. After he was given this task, it turned out that he urgently needed to leave the country and he would not be able to work. He wrote the framework of the application and left me in charge, saying that he would monitor from afar. It was this moment that helped me become Middle and finish the probationary period not in 2 months, but in one and qualify for a more serious salary. Because this programmer was unable to monitor from afar and the project was left entirely to me. I successfully completed it within a month, for which I received my position and the opportunity to apply for a higher salary.
What's the moral?
You can say that I was lucky to study where they gave me all this knowledge (but note, I just used it for mention to my superiors), that circumstances were such that such a project fell on my shoulders, and what does JavaRush have to do with it, it would seem ? Let me remind you once again that before JavaRush my level of Java proficiency was 0 - that's it. Secondly, when you solve problems on the 52nd attempt, something sticks in your mind - I had a knack for exceptions, checks, etc., which was also a competitive advantage over others, and in general - you begin to understand JavaCore very thoroughly (which confirms OCA certificate, which I passed at the company’s expense and scored 94%), and without this I don’t see much point in moving on. Next week I am assigned to a new project from scratch, which I will lead myself (including database design, technology selection, and also recruiting a team). Also, I will conduct interviews and review the progress of Juniors to determine whether it is worth it or not. I want to say that in these matters I was helped not only by factual knowledge, but also by the ability to establish communication with the team, present myself well to management, the ability to make an impression and proof that I will see everything through to the end. Thank you for your attention, I wish everyone more perseverance and attention to detail.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION