JavaRush /Java Blog /Random EN /An amazing journey to Valhalla, or how a historian-archiv...
Denis Sidorenko
Level 25
Новосибирск

An amazing journey to Valhalla, or how a historian-archivist became a Java developer

Published in the Random EN group
Introductory words Hello everyone! My name is Denis, and at the time of writing this article I just turned 30 years old just a few weeks ago. For exactly 6 months now I have been working as a Java developer in one of the largest fintechs in Russia. I write code in Java 8, at the same time I study React, so as not to lose the speed of my longship and sail further. Honestly, I still don’t believe what’s happening. Well, now - to the story itself. History was written on my knees. If any typos or violations of publication rules are noticed, I will make corrections. History of success One day I found myself on the street (in the literal sense of the word): such is the life of many children from the 90s who were left without a father. At this period of my life, my only leisure time was a Japanese CD player and a single disc with the album of the Epidemic group. In order to somehow diversify my life, in the winter season I went to the city library to warm up. I started reading fantasy in the library, but one fine day, when I got to the technical literature room, I came across the book “The C Programming Language” by Brian Kernighan and Dennis Ritchie. I admired the syntax of the language. For me this seemed like a standard. Although what standard could I have known about then? I was nobody, and there was no way to call me. Then I became very interested in learning this language and came across a book by the Deitl brothers, The C/C++ Language. Let me make a reservation right away, and you probably already understand: how can you learn a language without having a computer? Yes, I didn’t even have a place to live. But I simply studied it on paper, or imagined how it would work if I had at least the usual “bucket”. I tried to remember data types, structures, etc. Life changed a lot when a roof over our heads and the first car based on Intel Celeron appeared. Of course, the child, who had not seen any joy in life, got his hands on a PC and first of all rushed to play. At that time, the game World of Warcraft was released, still in beta version. I lived then in Kupchino (district of St. Petersburg). The Internet was “super fast” and local networks were more popular (where we played CS 1.6, Battlefield, etc.). After the release of World of Warcraft, the kids from the neighborhood really wanted to play together, and of course, without paying for an official Blizzard subscription. Here there was a greater immersion in IT. I found an emulator written by the Chinese in Delphi, and it works quite well as a server for WoW. However, all comments and documentation were in Chinese. After some tweaking, it worked. On the Internet, I found enthusiasts who were parsing WoW network packets and writing their own server for the game. The famous Mangos project, written in C++, appeared. We made ready-made server builds, one-click installers, and so on. There were no manuals on the Internet - just a manual and a guide. Wrote guides for others. The entire childhood period briefly described above took place during the so-called “school years.” I didn’t go to school and somehow finished 11th grade with all 3 grades, except for 4 grades in history. I had no time to walk when the question was simply to survive. By some miracle, having not failed and passing the Unified State Exam in 2008, I entered the history department, majoring in historian-archivist. Where else could I go? Zero knowledge of mathematics, physics and chemistry too. What kind of knowledge can we talk about? Should I become an engineer? You didn't even have to try introductory math. While studying full-time for the first 3 years at the Faculty of History, in my dorm room I had books exclusively on code. This includes .NET FRAMEWORK 3.0 by Andrew Troelsen, and books on SQL, JS, etc. Coming to classes on the Ancient East, I thought about the code. However, hectic student life and active archaeological excavations kept me busy and left little time for my favorite pastime. Surprisingly, at that time more than 6 years had passed since I first touched the C language, but I continued to be interested purely out of curiosity. The famous era of "lawyers and economists". There’s no “go to IT” hype, but you’re still interested. Having received an Oxford scholarship at the end of my 3rd year, I was forced to leave Russia and went to Italy (family history). Naturally, I also had to quit my studies. After spending 3 years in Italy, I learned the wonderful Italian language, but I completely forgot everything I had learned before Italy. When I returned and got a job as a bartender in an Italian restaurant in my hometown of St. Petersburg, I started learning PHP. At that time, there were popular courses from the Specialist, the famous teacher Igor Borisov (with the voice of Galygin) on PHP, JS and so on. While studying these technologies, I actively sought to write my own forum, but what’s the point? After all, there are excellent engines for this. But again, it was just interesting. 8 months after returning back to my homeland, I remember the university I left and the time spent on it. I go there and recover, but as a historian-archaeologist. After studying for literally 3 months, I make an extremely strange decision - to move from St. Petersburg to the city of Zlatoust (Chelyabinsk region). Having a small financial cushion and not working, I am trying to comprehend what is happening. What? For what? Why? The move to the outback was of a family nature; I wanted to find my father, who left us on the street in the “beautiful” year of 1992. While trying to find a part-time job, I continued to tinker with PHP. Understanding the futility of this company at that time and having a great desire to graduate from a university, I moved to Chelyabinsk and transferred to a local university - SUURSU (yes, the same one where Evgeny Roshal, the creator of WinRAR, studied). But to the great surprise of the “history” direction there is no, or rather there was no correspondence format. A choice arose: theology and political science? Of course, I chose the second option. For the first time, JavaRush appears on the horizon. Friends advise you to go through the first 10 levels (yes, they were still free back then), and if you like it, continue. I honestly only completed the first 7 levels, realizing that even having reached 10, I simply had no money beyond that. When I first came across Java, I had mixed feelings every day. It seemed to break me and cause rejection. These bags, pack everything in bags. I called the class Dog, please, and the file name is the same. After the "chaos" and power of C++, Java orthodoxy was extremely unusual. The speed of all this stuff left much to be desired. In general, I honestly rushed to forget it like a quiet horror, and even then I looked again towards C#. Back in 2007, I remember when I was reading a book on .NET FRAMEWORK 3.0, I thought to myself: “Surely this can be used to write interesting games.” As if anticipating the active development of Unity and other things. Of course, not without the help of C++. But let's return to the story with Java. Having made my first attempt at JavaRush and stopping at level 7, I became immersed in the humanities of studying political science. I wrote scientific articles, and only in my dreams did I attempt to compile the code. There was barely enough money to survive. Hard times, of course. But not without God’s help, I completed my studies and defended my diploma. Immediately after my defense, I was offered to enroll in a master’s program, but not in political science, but in sociology. The budget form of education attracted me, and I agreed. Here I’ll immediately make a reservation (I’m omitting two years of my life): when, after starting to study PHP, I meet a young designer, hand in hand we place orders on a freelance site. He does the design, I do the layout. This is just a small experience on the frontend. A master's degree at SUSU in sociology already seemed like a more applied and practical pursuit. The course included higher mathematics, math. analysis, statistics, etc. (almost everything that is now in the roadmap for Data Science). Even Python was at the end of my master's degree. And just at this moment, the beginning of the second year of the master’s program, I understand that I don’t really want to work with this, and the demand for “sociology” is insignificant. I’m looking again towards development, and again I’m writing to friends who advised JavaRush at one time. It took 3-4 years from the first attempt. To my great surprise, the guys are already working as Java developers, in middle positions. They didn’t write success stories, but in personal communication I was surprised that after level 18-19 they got jobs as trainees or Juniors. I started thinking again, wandering around, rushing about... Watching the ratings of Tiobe, Pypl, etc. all day long. Video on youtube - “Which programming language to choose first in XXXX?” Only now, having worked as a developer for 6 months, do I realize the absurdity of this question. The number of vacancies on hh.ru in my region (at that time Chelyabinsk) left much to be desired. One of the “successful” friends, who had already gotten a job in development, said in plain text: “stop thinking, pay for a subscription to JR, go up to level 20, then we will help you with the Spring base, and then it will depend on you.” I remember this wonderful day, 09/11/2019 - purchasing an annual subscription at a promotion for 5800 rubles... At that time I could not even think that this purchase would pay off x100500 times. It was a 5 month journey. I still remember the 8th level of JR (Java Syntax quest): it turned out to be a turning point. Many who were studying in parallel with me at that moment could not stand the complexity of the tasks and left JR with the words: “oh, what the heck, I’ll go and start investing and will receive passive income of 200k rubles per month.” To date, all the people I have known who gave up at Level 8 have not become investors, millionaires, or even middle class. They sometimes come with the words: “lend me some money.” How I felt the 8th level (Java Syntax) on JavaRush: An amazing journey to Valhalla, or how a historian-archivist became a developer.  - 1 A friend with whom we went through levels shoulder to shoulder up to level 20, being 9 years older than me, successfully got a job at Luxoft. I think he will still have time to write his story. If we don’t go into Krylov’s fable here at all, then the moral and the result are as follows: 1) The first social security was at the company Zaycev.net in Chelyabinsk. I successfully failed (1.5 hours there were extremely strange questions, the remaining 20-25 minutes I tried to do the test on paper). Thanks guys for the experience of the first interview. The test included a standard question about OOP principles, followed by translation from one number system to another. There are 6 tasks in total. The last thing is to write a sorting algorithm - I just didn’t get around to it, because... stuck on the 5th (task: “What does this code do?”) and time ran out. 2) After a failed social security service in March 2020, the great depression began at zaycev.net - the Covid-2019 pandemic. An extremely controversial time. How will the dissertation defense proceed? What to do next? Where to work? On top of that, my dacha burned down, which I bought for a couple of hundred thousand with the hope of building my own house. At least some, just not to hang around at 30 years old. 3) In the midst of a pandemic, I decide to move from Chelyabinsk to Novosibirsk (what do I have to lose? The dacha burned down anyway). The trip itself was “fun”, the Kurgan region is closed for entry and exit. Fear that the police will stop you and turn you back home with the words “you can’t go to Novosibirsk without registration.” The so-called period of the “ self-liquidation ” regime. 4) Having moved to Novosibirsk, I cannot find a job. The wonderful guys from the 2GIS company, after the 4th stage of the interview, tell me that I’m sorry, we wasted your month, but have already found someone else (this was an attempt not to get a job in development, but a regular vacancy for a telephone operator); 5) Next, I get a job as a salesperson in the wonderful Lenta store, because it’s summer 2020, and this option seemed like a fairy tale. Former restaurant business owners are forced to wear yellow Yandex.Food bags and work on their feet. They survived as best they could. The events are fresh, remember them yourself. 6) A friend with whom we solved problems on JR (mentioned above), has already got a job (after 5 months of studying on JR), invites me to participate in an open source project in Java. I liked the idea of ​​receiving and sharing experience, even if you don't get paid for it. There was a person on this project who organized this “movement” itself. At the same time, he worked as a TeamLead QA in a large company in Moscow. He liked my ideas for the project and how to use Spring as best as possible (at that time I only knew the basics). 7) The day came when the same open source project organizer asked: can I devote more time? And where do I even work? Hearing the words “Lenta” and the sales consultant, he recommended me to his company for the position of Mobile QA. GPC device. I didn't know anything about Selenium, Appium, etc. But in just a couple of weeks I got into the essence of writing autotests for mobile phones based on Android and iOS. The base salary, higher than $1000, impressed me greatly. From that moment on, life took a completely different direction. 8) August 2020 is coming, literally 1.5 months I have been working in the company as a QA. It was an August evening,Juniorfrom the resume title. I also added a little commercial experience in a new place, my progress in JavaRush (at that time it was level 22). He also indicated that I was participating in an open source project and sent a link to the only test task in Zaycev.net on github (by the way, yes, I did it for a month, and apparently I did a real case - it was a weather service). 9) That very Day X comes when, on the “next” August morning, I check my mail. I see a message from hh.ru that a large company wants to communicate with you. The first reaction was: “Yes? Seriously? Are you kidding? I’ve been sending you my resume for what year now, and only now?” To say that I was preparing for the interview would be an understatement. I just didn’t prepare, realizing that either my current knowledge was enough, or I’m sorry, friend, but you still have to teach and teach. 10) The day of the Zoom call with hr has arrived. A minute before the meeting, I started thinking: is it worth connecting now and embarrassing myself? But why think, I have nothing to lose: at Zaycev.net I’ve already been maxed out, but I need interview experience. Having made a cup of coffee, I went in exactly at the appointed hour. To my great surprise, two people were waiting for me: 1) Product Owner and 2) Team Lead. I told a story similar to what you have read so far. He answered questions like: “Why did you go to graduate school?”, “Why did you return to Russia from Italy?”, “Why did you exchange life in Milan for life in Novosibirsk?” At that moment, literally the day before the call, I was setting up the Wildfly server on pure Debian 9, and with these words I ended my mini monologue at the interview. After a short pause, I realized that the connection had taken place, and it was briefly announced: “Do you agree to do a test and, if successful, we will hire you?” My answer was: "Yes." PS I did the test in a couple of days, while simultaneously continuing to work as a QA. The task was quite interesting: it was necessary to write a service in pure Spring, where a request was received as a controller input, it was necessary to implement several DTO layers, and in the repository, receive data not from the database, but from json files, the structure of which I had to come up with myself. Anyone interested in the details of the task and its solution, write to me in a personal message: I don’t know how legal the publication of this material will be. After submitting the assignment for review on the same day, I received a “Yes” from the company that invited me. I have officially become a Java developer. I had to omit a lot so as not to bore you with the text. The beauty of the whole situation is that I paid for the subscription to JavaRush on 09/11/2019, and received the offer on 09/11/2020 - exactly 1 year, with a long pause during the start of the pandemic and preparation for defending my master's thesis. To date, I have gained invaluable experience in developing commercial applications. 6 months gave more than years of study. But this would be impossible without practical experience in JavaRush (problems and more problems). Now with all my gratitude to the JR project, I try to help my friends, who, like me, want to get into Java development, I give some annual premium subscriptions. Thanks to work, I don't go to work. I can't even call it work: I enjoy difficult tasks. During this time, technologies from Kafka to Hadoop were studied, and the personal stack of technologies does not cease to be replenished. My student years, with a total length of almost 9 years, instilled the skills of perseverance and a constant desire to teach and learn new things. Without this, thousands of dollars a month will not particularly motivate you. It’s definitely not worth going into this field solely for money. Once upon a time, living on the street, I could not even imagine that I would buy myself a house in an ecological zone of the Siberian open spaces. Doing what you love, receiving decent wages - thanks to which the survival mode is over. I remember the famous phrase of Petyr Baelish from the Game of Thrones series: An amazing journey to Valhalla, or how a historian-archivist became a developer.  - 2 Almost 30 years of survival, in exactly one year of the pandemic, became Valhalla, to which all the Vikings are also unrestrainedly striving. If you are just thinking about learning Java? Do I need this? Will I be able to? Just scroll to the footer on the JR main page and read those three words: Programmers are not born. Advice block What kind of story could there be without advice? 1) I don’t recommend going deep into tasks with games, provided that you need to get settled as soon as possible. Why? But because you will spend a ton of time on something that, in fact, you do not need. But learning Spring instead will bring you closer to your goal much faster. ( However, if you have time, you have a sweet life, and have a roof over your head, you can make some games ). But I repeat: Java is not about gamedev. Oh yes, in general, forget about playing games on your computer, uninstall Steam on your phones and other media. I played The Witcher again only after 5 months of working as a developer. 2) Spend more time on data structures and collections (the first is that you will need them when performing code refactoring tasks); 3) You can learn SQL only before Joins - if you plan to pass an interview. Smoke the reston the way to the office. The best resource at the moment in RuNet: sql-ex.ru 4) Spring. Yes, yes, it’s already like Java-core. Provided that you want to get a job. Alishev’s video course on Youtube and a couple of articles on Habré were enough for me. 5) Algorithms so that it bounces? It’s unlikely, but it wouldn’t hurt to know a couple of common sorts. I still haven’t read the entire book by Grokai, Algorithms. 6) The books that turned out to be extremely useful were D. Bloch - Java Effective Programming (3rd edition) and R. Martin - Clean Code. I still haven’t read “The Philosophy of Java” by Bruce Eckel (I stopped at page 150). 7) Join any movement where you can gain experience. Open source, your own pet project, maybe an internship. Of course, reflect useful activity in your resume: in general, “comb” your resume. 8) You won’t be able to catch bugs out of the pond without difficulty.... If you honestly pass the 8th level (Java Syntax) on JavaRush, including additional tasks, know: you have almost become a Java cat. Then it will be a little easier. 9) How to prepare for interviews? May Odin forgive me for opening the treasure chest, here is the link: https://github.com/enhorse/java-interview 10) And don’t forget to go through the topics of Lambda and Stream API in Java (preferably before the interview, but more often for more productive work from the first days of your device). At first you won't understand what it is or how often it will be used. However, after studying the topic, you will love streams with all your heart. Thank you for reading my short story. I will be glad to answer your questions, as well as especially “hot” guys, to invite you to my company for an internship or straight to work, depending on your current knowledge (details in PM). I completely forgot. As of March 2021, there is a huge shortage of personnel for Java developers in the world. The heads of companies are forced to pay you so that you forget about consumption for a while and deign to get off the couch and become a developer. Just because someone started learning a language and reached level 3-4, this does not mean that you will not have a place in the market. You will be vacuumed up (literally) as soon as you master at least the basics of Java Core. Globalization, which has led us to digitalization (hello Cyberpunk), needs not just an army of developers, but legions of Java cats! Oh yes, they continue to write new projects in Java, and not just support legacy. You have to be a super lazy raccoon not to get into development today, in 2021. Companies are waiting for you. Companies are ready to pay for your training. Just take a step towards them! Do not be afraid! Agori!
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION