JavaRush /Java Blog /Random EN /My Java way
Spoloborota
Level 22
Казань

My Java way

Published in the Random EN group
Like many here, I have long wanted to write the story of my entry into the path of a Java developer. And now, I was able to implement it. I'll start from afar. It all started on January 23, 2003. That evening I came home after school and drama club, walked into the room and saw boxes on the floor. One very big one. And a few others, smaller ones. Yes, that was it - my first computer: AMD Athlon XP 1800+, 256 Mb RAM, NVidia GeForce 2 64 Mb and 40 Gb HDD. From this important day a new story of my life begins. Then I was in 9th grade. What did I do as soon as I installed it and turned it on? Of course play!!! I dropped out of life for about 4 years. Quake, Doom, Warcraft, Starcraft, Diablo, Command and Conker Generals, Civilization, Silent Hill, Deus Ex, GTA, Farcry, etc. There were many conflicts with my mother, who did not allow me to play for a long time and told me to do my homework. Yes, it was not easy to switch to studying at school, and then at college. After all, there was such a wonderful virtual world where, in order to achieve certain successes there, in games, you had to perform predetermined actions, you could always launch a previous save and achieve what you wanted. Maybe it's in real life... In short, I spent a lot of my life playing games. But! There was a very important plus for me in all this. From time to time, games would not start, would slow down, or simply would not install. And at these moments there was a great desire to understand the problem. And then I installed, reinstalled, configured, and optimized everything I could. Starting from reworking hard drive partitions and changing the file system with reinstalling Windows, ending with tuning the registry and game configuration files. Thanks to the knowledge gained in this way, I became known among my friends as a “programmer”. Helped with their computers, reinstalling Windows, removing viruses, etc. Moreover, at that time I did not yet have access to the Internet, and I purchased disks with software at the appropriate stalls. And then one day, in the summer, after barely completing the first year of my technical university, I decided to start selling my skills. I jotted down an ad in Word with the title “Computer Emergency Help” and went around posting them around the village where I live. There was enough for “beer and chewing gum.” Then, in the 5th year, instead of diligently writing a thesis, I got a job through an acquaintance as an admin in a small, crooked office. For the first time I learned about the Windows domain, working in networks, Kerio Winroot firewall. When I received a diploma in the specialty "Computers, complexes, systems and networks" in 2010, I saw 2 paths for myself - a programmer or an administrator. Programming experience was limited to laboratory, coursework, and graduate work. Even then I understood what arrays, loops, conditional statements and classes were. But I never really gravitated towards coding. There were attempts to learn to code while still at school. But GTA successfully interrupted this desire. Although, it is worth noting that I coded with considerable pleasure. Helped my classmates with labs. But since I had more experience in admin matters, I chose this path. In one of the following jobs, When I resolved the accumulated problems, I decided that it was time to take up Linux. I sat at work in the evenings and experimented. The result was setting up a gateway to the Internet with a firewall, port forwarding, connecting to the Internet via Wi-Fi, connecting to a VPN. Yes, not very cool, I agree. But it was a good start. Thanks to this knowledge, I was able to get a job in 2011 as head of the implementation and support department. I had 4 people subordinate to me. We were implementing a thick client in Java Swing in the stores and warehouses of a jewelry company. Now I understand what an interesting thing we were implementing! But then I was little interested in the subtleties of implementing this software. I lived in Kazan. And I have long wanted to try myself in independent life. I really wanted to go to Nerezinovaya for this. And so, after some time, while remaining working in the same organization, at the end of 2012 I moved to Moscow. Ooooh, it's the subway! These gigantic streets with a fast flow of expensive cars! These huge streams of people are everywhere! I was incredibly attracted to all this. I was proud that I was able to achieve this move. After winding down the project, in mid-2013, I decided that it was time to move away from setting up computers, technical support and administration. It all seemed frivolous to me. I saw 2 options - analytics or project management. There was a vacancy that stated the opportunity to develop to these positions I indicated. They took me there.... And there I realized... What I never want to do in my life! There was a moment when I, while rearranging the pages in the government contract report in the correct order, suddenly realized what was happening. Oh my God!!! I'm already a quarter of a century old!!! I stand and rummage through these pieces of paper, having previously intellectually copied and pasted the text in them from the same pieces of paper for the last reporting period!!! But before that, I was doing interesting things with servers, organizing work processes, helping people... It was a turning point in my life. A kind of “professional crisis”. And so I began to analyze what I should do with my life. Until it's not too late. I'm tired of doing maintenance. I wanted to create and create something myself. This was the main reason for the fermentation in the mind. I remembered that I was pretty good at coding in college. I remembered that programmers make good money. I remembered that there is a cool Java language, a thick client on which we implemented, and whose programs can run under any OS. And then the search for materials to study the language began. I don’t remember how I came across JavaRush. This was around October 2013. The way the information was presented and the huge number of examples really attracted me. I went to work, sat down at the computer, came home from work, and in the evening sat down at the computer again to study. Sometimes I sat until late at night. The first 10 lessons were very easy for me, because... many concepts were familiar to me. To have more time to study, I stopped going to the gym and got some weights and worked out with them at home. Around December, I planned that I won’t start looking for work until the end of March. But I started to pay extra attention to work. Didn’t strive to get more tasks, didn’t show initiative. And I hated this job. Sometimes I would brazenly do JavaRush tasks directly on my work computer during working hours. The result did not take long to arrive - at the beginning of January 2014 they informed me that I was working for them only until the end of the month. It was a shock, of course. The knowledge that I would be left without a basic income while having to pay for housing was very worrying. I diligently took on articles like “100 questions that java juniors are asked during an interview.” Well, I continued to study Javarash. I reached about level 17. I went to different interviews. And so, in one of the organizations, they gave me a test task to write. It was necessary to write a program that would determine whether all dominoes could be placed in one line. If yes, then output this solution. Inspired, I sat down at the computer to write it and... I was horrified! In the hothouse conditions of JavaRush tasks, it was very comfortable to sit and write code. But here we had to come up with everything from scratch, from scratch, so to speak! This is where my first doubts arose in making the decision to become a programmer. It was very difficult for me to write code! I didn’t really know anything about basic Java stuff, my knowledge was very superficial. And it was not clear how to solve this problem. But I was still able to find a solution algorithm on the Internet using graphs - it all boiled down to finding the Euler path. By the way, my colleague from my previous job helped me a lot during the entire period of learning Java. Just the one who wrote this thick client in Java. He helped me a lot with everything. In particular, he helped solve the problem using the recursive method. And so, I sent the task for review. Then there were 2 long weeks of waiting for an answer... But everything went well! They took me!!! Hurray, I did it! On March 5, 2014, I started working as a Java developer. Happiness knew no bounds. Largely also because I ended up in a company that deals with electronic payments. And they treat the staff very well. Just look at their chic office and free coffee and tea - back then it was a novelty for me. And here I sit, sorting out the project... And I realize... That I understand absolutely nothing! Servlets, filters, Xemel parsers, esque queries, commits to the repository, get and post, unit tests... All this was new to me. Because I only recently learned how to use interfaces. There were moments when I looked at the code, climbed through the chains of method calls, and went deeper and deeper into the code. And then I realize that I forgot where I started my search. From time to time I had thoughts of just getting up and running away! And then there are spring allergies and problems in my personal life. The brain simply refused to have time to understand everything. Briefly speaking. I didn't pass the probationary period. After 3 months of staying in this luxurious organization, I signed a termination of the employment contract. It was hellishly stressful. I couldn't handle it what I dreamed about so much. Self-esteem was greatly damaged. Gray hair appeared. But I decided to continue what I started. In July 2014, they agreed to hire me in my native Kazan, in an international organization, one of whose products was being worked on in the Kazan office. There I wrote the frontend in swing. The program transferred data from one DBMS to another. Oh, and then I tormented the team lead and seniors with my poor knowledge of writing Java code! This work allowed me to sharpen my skills, learn basic techniques and certainly improved my knowledge. For my part, I also made a couple of serious innovations. During this period, I was wildly overcome by doubts. I still found work difficult; I lacked perseverance and concentration. And the probationary period barely passed. But, in February 2015, at the most crisis time, staff reductions took place. They laid off me as the most inexperienced and lackluster, and my colleague as the oldest and already hesitant. It was also quite stressful for me. I knew that I was still completely green in programming. And that during a crisis, few people need new people on staff. I already had only 10 months of work experience under my belt. Albeit not a particularly successful one, but still an experience. In March, while I was searching, a very interesting event happened. Quite by accident, someone wrote to me on a Russian social network asking if I would like to go teach Java. This proposal surprised me greatly. As it turned out, the HR people then quite accidentally pointed their finger at me in the sky. After all, even the words Java or programming were not listed in my profile. Well, I love all kinds of adventures, so I agreed to come and undergo something like an interview. It consisted of writing a small program in a notepad. I did it. Although I had a very negative attitude towards such a biased way of testing knowledge. And then they offered me a trial lesson. They gave me scanned pages from the manual on which the course was built. I prepared, polished up my presentation and successfully taught this lesson. At the end of it, they told me that everything was fine, but the lessons would need to be taught to schoolchildren! Between the ages of 12 and 18. Therefore, we asked to rework the material so that it would be interesting and understandable to this age group. Which is what I did then. As a result, they informed me that they were not ready to hire me in favor of another candidate who was more experienced in teaching. Well, it’s okay, I wasn’t particularly upset. They also said that they were ready to contact me in the fall, when new groups would be recruited. And I only had 10 months of work experience at that time. I felt somehow insecure. Then, in April, I got a job at the most famous and largest multidisciplinary IT office in Kazan. There I worked on various projects. I improved my skills in escuel, servlets, etc. Also, in August I took up the initiative of a colleague to start preparing for the OCA. When I started preparing, I realized that I didn’t know the basics of Java at all! All these troubles with initializing constructors during inheritance are just a crazy switch, Compile time and runtime. It turns out that I began to study all this only a little more than a year after I started working as a programmer. In the fall of 2015, as expected, I called the course organizers and clarified what was what. I was informed that a course for adults is now being prepared to launch. I was inspired. I asked him to send me the material on which the course would need to be taught. When I received it, I was very surprised - there were only topics that needed to be considered! It turned out that I would have to formulate all the educational material myself - theory, practical tasks in class, homework. This circumstance greatly reduced my enthusiasm. After all, I expected that I would simply pass the material from the manual through myself, and then present it in some form in class. But again, I thought, when else will life give me such an opportunity? I saw several benefits to this activity for myself. Firstly, improving and consolidating your own knowledge. It’s not in vain that they say: if you want to learn or understand something, tell and explain it to someone else! Secondly, a reason to overcome the fear of public speaking. Thirdly, a good opportunity to train your memory. Fourthly, this will improve my financial situation, because... Juniors are paid little, but I’ve been wanting to change my car for a long time, because the Nexusha is rotten through and through. Well, fifthly, it pleases your vanity when you realize that someone may need your knowledge and experience. And so, in November, my courses began. It was one hell of a hell! Find and prepare material, think through lesson topics and homework assignments. This took up absolutely all my free time. On Sat I was preparing for a lesson on Tue, on Sun I was preparing a lesson on Thurs. But this is in theory. On Sat I started preparing for the lesson on Tue, and by evening I was in a hurry trying to get the material down. Well, I managed to get some part done on Thursday. By the way, he actively promoted JavaRush. As homework, I was given certain levels to complete on this wonderful site. Up to the 10th free level of course. But I further recommended purchasing a subscription. Because I think that Javarash is great for getting into practice with examples. But the theory needs to be further developed. I remember that nightmare of my very first lesson. I entered the classroom. I sat down in the teacher's seat. There were 10 minutes left before the start of the lesson... I sat and understood that everything was fine, I was completely safe... Students began to enter the class... There were 5 minutes left before the start... Something told me that I needed to repeat material, I forgot something from the topic of the lesson, anxiety began to grow... And this moment! I need to start!!! I wake up. walked out to the center in front of the projection board. I raised my head... And I saw these about 20 pairs of eyes that were looking at me carefully and with distrust, as if trying to drill into me! Panic! I introduced myself. He began to say something, completely forgetting everything he had planned to tell. Gradually I felt that my knees were starting to tremble, my voice was squeezing something. It became difficult for me to pronounce words. I wanted to run away. But when I finished the theoretical part and moved on to explaining how to create a new eclipse project, i.e., to the practical part, it became much easier and the lesson went like clockwork. So, in constant stress from the need to prepare homework, I completed this first 4-month course with me. I have significantly improved my knowledge of Java and solidified the basics. Changed car. And I stopped being afraid of unfamiliar audiences. On the contrary, as they wrote in books on rhetoric, I felt very driven during the lesson. The same cannot be said about the process of preparing for it. Yes, it was a very difficult period when I did not have time to communicate with friends. Well, I don’t think it’s worth mentioning the lack of personal life. I consider my advantage as a teacher of a course on becoming a Java developer to be that I myself have passed this path relatively recently. I ran into various problems with this. I went through a bunch of interviews. I know what technologies are relevant at the moment. And most importantly, I know what not to do! Namely, to go out looking for work as early as I did. But I was in such a situation that I needed a means of subsistence. Otherwise, I would continue my studies for at least another 3 months, study technologies and frameworks, and try to write some kind of useless, but technologically advanced program. In this case, there would be much less stress and gray hair. I worked in that organization for a year and a month. In principle, everything was fine there in terms of professional growth until the team lead left. This was the person who guided me and gave me various interesting tasks. Even despite my frequent mistakes, eh. He knew everything, he could give advice on any issues - both on the front-end, and on the back-end, and on the sub-database... With his departure, the connecting link between management, developers and analysts was lost. In short, complete chaos began in the project. By the way, only towards the end of my work in this organization did I stop thinking about the correctness of my choice of the developer path. Before that they always accompanied me. With the awareness of each difficulty, delay in solving a problem, a bug in my fix of another bug. It was very pressing. But I remember that I firmly decided at the beginning of my journey that I would make a decision about continuing or ending the developer’s path only after 5 years. Everything was going really hard for me. I constantly felt that people around me were much smarter than me, that I could not grasp things as quickly as they did. It was probably not worth it to plan all this. In June of this year, I got a job where I work to this day. We are working on a very interesting service for backing up cloud data from services like Google Disk, Dropbox, Office 365 to Amazon servers. I would like to note that if it were not for the careful study of the topic of multithreading for conducting lessons, I would not have been able to pass an interview with this organization, because assignments were given specifically for this part. So I decided to go back to preparing for OCA. At the end of winter I found excellent materials for this. But I still couldn’t find time to prepare. And so, between the 2nd and 3rd stream of students, I had a free month to prepare. Of course, I didn’t have time before the course started. But still he achieved his goal - he passed the Oracle 1z0-808 exam with 81% correct answers and 65% passing. I wanted, of course, 85%. But drinking more than a liter of water beforehand, so that “the brain could think better,” forced me to finish half an hour earlier without the opportunity to double-check everything. But I am still very proud of this successful certification. At the end of January 2017 I plan to go and take the OCP test. Yes, there is not much sense in certification if you think about it. For me personally, this is an opportunity to solidify the very basics. Because I sometimes need to answer tricky questions from students. In conclusion of my story, I want to write this. Despite the fact that I have been working as a developer for almost 2.5 years, I do not consider myself a programmer as such. I know what a huge amount of information I need to pass through about all kinds of algorithms, subdatabases, data structures, web technologies, patterns, front-end, frameworks and their many varieties. And I want to continue studying JavaRush for general development, since the subscription is unlimited. There's no end to the work! And most importantly, I like it. I want to know more and more. Be able to write code faster and better. Over time, I would like to develop into a team lead or an architect. But there is so much to do before that! All that remains is to manage your time correctly and procrastinate less. Thank you for your attention!
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION