JavaRush /Java Blog /Random EN /My success story

My success story

Published in the Random EN group
  1. Hello everyone, I’m writing from my first workplace (more precisely, from the place of my first paid internship as a junior java developer) before the working day begins.
  2. My success story - 1
  3. I’m 39 (!), I started programming as a hobby while I had a break from work, some money, caring for a recently born child, moving back to my family in Moscow and a couple of other things. Before that, he worked as a financier, and participated a lot in the implementation of accounting systems on various 1Сах.

  4. At first I tried to pick up programming myself, and even start with Kotlin (I really liked both the language itself and those who develop it - JetBrains). But quickly, probably within a week, I realized that without java there is nothing to do in Kotlin, and some kind of course is needed; digging on your own is very ineffective. I found, I don’t remember how, JavaRush, I registered on it on June 30th (I looked at it by mail now). Already on July 5 I bought a subscription (during these 5 days I completed the first 10 levels, two levels per day). I completed, in my opinion, 3 months, 25 or a little more levels (completely, poking around in detail, downloading some small part of the solutions, but definitely understanding them in detail, really).

    I remember the great thrill I had when I finally parsed mathematical expressions. This task was a big leap, a breakthrough in understanding myself as a programmer.


  5. I chose to go through the collections first, and then the concurrency part. I looked at the contents and decided that it was more interesting and useful to deal with collections. It took me, in my opinion, about two months to complete another 10 levels (up to the 35th somewhere).

  6. Somewhere in the middle of the concurrency it became clear that it was almost pointless to continue to finish. It became more interesting to analyze problems in the help section (this was useful for me - I learned to analyze other people's code and structured my knowledge) than to do exercises. Then I set myself the goal of making a web project using Spring + Hibernate + Mayesquel + some kind of template engine (in the end I did it using Thymeleaf). I opened the remaining levels purely to discover the most delicious tasks.

    If there had been an internship at that moment, it would have been great, but for the one that was going on at that moment it was already too late, and for the next one it was too early.


  7. As a result, I spent a month and a half unpicking all this (the person in the video example did the same thing in probably 50 minutes, if that). I made two test web services in total. One is a pure repetition of what was in the video (the standard list of books is analogous to a test assignment for an internship). The second is more or less similar to the real task, the backend part of the site for calculating the cost of suspended ceilings with a rest controller (following the example of the real needs of friends). And on Spring-boot, and not on naked spring. In the second, for fun, I even inserted classes in Kotlin (in general, I highly recommend Kotlin, I’ll definitely dig further myself).

  8. After I basically made a web service from scratch (we won’t say anything about the fact that it didn’t have authorization, a transaction manager, normal tests of the web part, etc.), it became clear that it was necessary to set resume and look for a job June. By this point, I began to understand that I really liked programming and that programmers were really needed. Then (in mid-January, after the holidays) I finally wrote a short resume in English, completely removing my previous experience (I left only a short description in one paragraph) and submitted it to NN.

  9. What started is just a paragraph. I didn’t have time to send a request to anyone, I had already received 4 offers from companies for an interview and a couple more letters from HR with offers to consider different jobs (but these couple of letters are not at the level, for middle people). I don’t understand why this happened, I think at that moment there was a strong surge in orders from Sber (2 out of four - Sber itself, which generally invites everyone who posted a resume, and its contractor) for an interview. Plus, my resume probably looked good.

  10. The first interview (Sbertech) was brilliant. I taught him very well about the core and the very basics, the interviewer said that social security is just a bomb and I will definitely find a job, even if not with them. But the second one (on the phone) was just a hell of a shame. I was completely lost, and I knew almost all the questions or could give a sane answer, as I later recalled. Now there are two interviewers at Sbertech, one thinks that I’m not bad, the second thinks that I’m a clinical idiot. It was a good lesson to take interviews seriously, otherwise I was a little proud after the offers and the first interview.

  11. It’s interesting that at 3 interviews (including the current place) there was practically no technical interview - they looked purely humanly at what I was like, although I was well prepared, of course. I especially remember the company that invited me solely because I was over 35 years old. They have a very unique atmosphere. When I asked their development manager (much older than me, really old school) what IDE they use (Intellij or Eclipse, there is some kind of policy in this part), he didn’t even understand at first, then he answered “Oh, a text editor... Yes, I don’t use them, that’s how I write code. But you can use anything, no problem.” And he definitely wasn't joking. I was surprised, to put it mildly.

  12. A couple of weeks later I received a call from Sbertech (precisely after the first interview, they have a sea of ​​departments there, each recruits themselves) with an offer to work for approx. 1.1 thousand dollars in hand per month, taking into account the annual bonus. I said ok, they started processing the offer. This process takes them a decent amount of time, I still looked at other works. At that moment, I came across an advertisement on Javarash about recruiting interns for the Smart group of companies. I wrote that I would like to chat, you never know, I almost immediately went for an interview. Tim lead practically did not ask questions on the technical side (although I myself described my level quite adequately, without bullshit) and said that he was ready to try me on a paid internship. I agreed because Sbertech bothered me a little (it’s clear that I would have gone there if there were no alternatives), plus I liked the atmosphere and the team lead, plus their office is located a 7-minute walk from the place where we rent an apartment. It took me more than a couple more weeks to organize child care, and I actually went to work on February 28th.

  13. Now I (in parallel with another intern, he is from another course) understand the code of the main project of the company and, in parallel, under the guidance of the team lead, I am creating a training application, the only goal of which is to use the basic technologies and techniques that exist in the main end-to-end manner, from the database to the browser project, but on a mini scale. The first day there was a little panic, but already on the second day I got involved in the task, now it’s very interesting, I come to work before everyone else, I leave almost later than everyone else, every day I feel like I’m improving my skills. Tim lead said it was time to move on to the real task (I got hired on February 28th).

  14. Tips for beginners:

    • English. I’m lucky that I already have fluent English (how lucky, we, for example, often hosted couchsurfing travelers, my English is improving - bless you). Without English in programming you are almost zero. Unfortunately it is so.

    • Screw. During my training, I had a rule - not a day without a line of code. And as a standard, I spent several hours a day programming. Unfortunately (or maybe not), I haven’t read any books. But I watched a lot of video tutorials and speeches from conferences + really re-read a sea of ​​answers on stackoverflow.

    • Still, Collections first. Concurrency - according to the residual principle. Although I now have a spot in my real multithreading skills, working with collections is much more important IMHO. During the interviews, the only time they asked was, I know what a mutex is and that was all about concurrency. But about the collections it was completely different.

    • Be sure to do a couple of dozen exercises on sqlex.ru (this is according to esquel, respectively). It's very simple after a couple of dozen levels in JavaRush, but at the same time wildly useful both for backend programming and interviews.

    • Be sure to make your simple project using frameworks such as spring-boot + hibernate + mayesquel + some kind of template engine (such as timeleaf or mustash). Or I think completing an internship will be similar, but I can’t recommend anything here. A person with a bare theory on Spring and a completed project on programming is simply heaven and earth. After the project, the average exercises on the course became practically kindergarten, the complex ones - below average. Simply by increasing programmer maturity.

    • It is imperative to understand and add transaction processing to this project, not just at the “add to a method in the @Transactional service” level. The topic of transactions was constantly in interviews. I regret that I didn’t dig up sqlex.ru and the Spring and Hibernate transactions before looking for a job. A person who is transactional will speak to interviewees for a backend position much, much better.

    • If anyone has any questions or problems, write, I will definitely try to help as best I can. Especially those who are doing their first project in Spring. I will be happy to meet anyone in Moscow.

Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION