Hello, everyone! As 2018 drew to a close (the original story was posted on January 2019 — editor’s note), I, like all decent people, decided to settle my debts. And I owe thanks to everyone who in one way or another helped me change my life and become a programmer.
My story might seem rather ordinary among the stories of other students, despite my 38 years (at the time I was hired), if not for one fact that, I believe, sets it apart. The thing is that most of the stories I've read about how people became programmers somehow follow this storyline: the author has dreamed of becoming a programmer since childhood, but life took a wrong turn, or the author showed some inclination to program, but once again it wasn't in the cards. In other words, they were what we might call (without offending anyone) "latent" programmers.
For me, this was not the case. In childhood, adolescence, and even most of my maturity, I hadn't even given a thought to a career as a programmer. What's more, I'm a classic humanities student. In high school, the only subjects in which I got pretty good grades were humanities. I struggled with hard sciences, barely eking out C's.
My high school and college didn't have computer science courses. Well, they were part of the curriculum, but teachers couldn't be found. If they were found, then they were constantly on sick leave. Basically, I can remember a total of three computer science lessons over my entire academic career.
Additionally, I graduated from law school. In short, I definitely don't have a techie mindset. This is background information or input data.
But first things first. The idea of becoming a programmer first came to me back in 2013. At that time, I was a fairly successful mid-level manager with an above-average monthly salary. Everything was good, but occasionally I would think "what's next?"
That's when I came across a motivational article by a CodeGym author claiming that anyone with common sense can become a programmer. I didn't consider myself stupid, but I had rather serious doubts about my abilities, given my complete lack of any basic knowledge in this area. And here I must give my first thanks: that author expressed his thoughts so convincingly in his series of articles that he planted the idea of programming in my head, where it ultimately sprouted. Thank you, Mr. Author!
However, despite my interest, I didn't really take many active steps to implement what had come into my head. I mainly dug around in the lessons and tasks in the first 10 levels. There was a lot I didn't understand. Programming seemed like casting a magical spell, but following the aforementioned author's advice, I read the lesson, again and again, trying to solve the latest task — after all, I was promised that sooner or later the puzzle pieces would fall into place (skipping ahead, that's just what happened!).
My progress was rather sluggish, not only because a lot was unclear, but also because, as I mentioned earlier, everything in my life was just fine: a good salary and interesting work (at that time). A future move to working as a junior Java programmer for a salary half the size of a manager’s salary was somehow not inspiring.
Of course, there was potential for upward growth later, much more than I could expect as a manager, but those were distant prospects and the here and now was quite comfortable.
My situation changed that same year. I lost my job and my comfortable life along with it. Because my specialization was quite narrow and I couldn't find any job openings in my field, I had to drop down to another area I understood well. But the competition was higher there and my salary was correspondingly lower and, moreover, now comparable to a junior Java developer's salary.
Unsure if I could figure out Java on my own, I decided that online education is certainly cool, but offline learning is far more real (I was wrong). I bought a course from one of the schools offering to teach Java. Full of hope, I began my studies. Progressing through the course, it became clear that completing it would not help me qualify for the position of junior Java developer, because in addition to knowing syntax and core principles, there's still quite a lot of other work to do (I didn't know any abbreviations like SQL). This was highly demotivating because I paid quite a bit for the course and expected that the investment would pay off soon. Screw that. No, the theory they taught wasn't bad, and I did learn certain things, but halfway through the course, I realized that an offline education would get me roughly the same amount of knowledge as an online one, but it would be more expensive.
So, I decided not to pay for the second half of the course. Instead, I bought a subscription to this Java course, taking advantage of the New Year's discount. No sooner said than done. But here, too, it wasn't all sunshine and lollipops (far from it). I studied mainly after work, allocating an hour or two or three to learning. These were dark times: when you're tired after work, nothing really sticks in your brain, plus the language itself is difficult to pick up (I'm a humanities student, remember?). And although my family (wife and child) were supportive, it was hard to find time for studying, for the family, and for myself.
The result was cruel procrastination. I abandoned my studies for six months at a time, playing online games (an evil for which a special hell was prepared), but sooner or later I returned, read others' success stories, and started over. The situation was also significantly aggravated by the ensuing political and, consequently, economic crisis. My salary wasn't pegged to the dollar and the national currency devalued (through 2014, the hryvnia, the national currency of Ukraine, has fallen from 8 to 20 to the US dollar). As a result, my real income became 400-500 USD/month and I was completely depressed.
One way or another, I actually reached Level 21 or 22 of this online course and probably would have gone further, but I received a joyous email from the website's creators about recruitment for the internship (the Russian-language version of the course has an established partnership with online programming internship called topjava — editor’s note).
The internship was no cakewalk. It introduced me to the frameworks and libraries required in real life, on real projects. By the way, I didn't pass the internship the first time either (I didn't have enough knowledge and skills). However, in subsequent attempts, my knowledge and skills increased.
One day, while looking through junior programmer job listings on one well-known and respected website, I came across news that a market leader was enrolling students for the latest Java courses. Unlike other large companies, these guys didn't impose age restrictions (such as only seniors). For this, they have my thanks. The requirements were simple: pass a screening test, pass an interview conducted in English, and you're in external courses (for about 3 months); then you write and defend your project and, if you're good enough, you get into internal courses (for 1-6 months), after which you may (or may not) be assigned to one of the company's meaningful projects. In fact, courses from companies offering subsequent employment are the best and least resource-intensive way to get into the field, but there are two nuances here: first, they are highly competitive, and second, there are no guarantees of employment (for example, you might not be hired due to soft skills or weak English).
I'll write about the competition based on my experience: more than 450 people applied to be tested, roughly 50 were admitted to the courses, less than 20 made it to the internal ones. How many received an offer, I don't know, but the fact some did not is well established by insider information. In any event, I signed up to be tested without any great expectations. I figured doing that was better than doing nothing, so I decided to try. Imagine my surprise when some time later I was notified that I had passed the first stage of the selection process and was invited to participate in the second stage: an interview conducted in English. My joy knew no bounds, though I did have doubts about communicating in English.
So I began to prepare: I asked my wife to conduct several interviews with me in English, and I rehearsed and memorized answers to common questions that are highly likely to be asked at an interview (tell us about yourself, tell us about your previous experience, why do you want to work for us, etc.).
I passed the interview and was invited to participate in the courses. Because this was a real chance to get the job, after consulting with my wife and enlisting her support, I decided to quit my current job and concentrate completely on the courses. In other words, I went all-in. For me, the external courses were mostly frustrating: we started from the basics and superficially covered all the core concepts. I was also concerned about the instructor's competence. He was rather inarticulate (to put it mildly) for a university instructor (and for a part-time instructor for a market leader, and, as he also described himself, an instructor who teaches paid courses for an offline school).
Sometimes it was difficult to understand the lectures, not because the topic was complex, but because the presentation of information was terrible. My impressions were also spoiled by an incident during one of the lectures: one of the students asked a question, which the teacher then answered. The problem was that the answer was incorrect. Apparently, not knowing the answer, the teacher decided to save face in front of the group by improvising rather than honestly admitting that he did not know/remember the answer. As it happened, the student sitting next to me and I knew the answer and corrected the teacher, but the incident seriously damaged the teacher's credibility in my eyes. Fortunately, towards the end of the course, a different teacher took over the class. He had a much better mastery of the subject matter and possessed practical skills. And the presentation of information was incomparably better.
Everything in life comes to an end sooner or later, and the external courses did too. I wrote my final project and began preparing to defend it, hoping to get into the internal courses. Despite the fact that I wasn't among the top students, I believed I had a chance, considering myself solidly in the middle of the pack. Unfortunately, or fortunately, fate intervened. I arrived at my scheduled defense early in the morning. I gave an oral presentation of my project and then launched the application to demonstrate its functionality. I was peppered with questions, both theoretical and practical. After answering the questions with varying degrees of success, I received a mandatory additional programming task and went into a separate room to work out the solution.
A while later, I returned with my solution to my interviewers. By this time, the group of interviewers had changed almost completely. I presented my solution, but they informed me that I didn't understand the problem and invited me to try again. I went into the other room again. Once I had come up with a new solution, I found that none of the people who had originally interviewed me were still there. Those who replaced them checked my assignment and said that because none of them were present during my interview, they would have to check with those who were. Anyway, I don't know who followed up or how, or how they collected feedback about my defense from different people, but they did tell me that I didn't pass. It was crushing. True, they told me that I could try to defend myself again after 3 months during the next round of recruitment: the only condition was that I had to prepare and defend a completely new project. I had no choice, so I agreed.
My failure plunged me into a serious depression because the hope was that I would already be working after three months. But now three months would only bring the opportunity to defend myself again, without any guarantees. And remember, I quit my job, betting everything, which also didn't contribute to an optimistic outlook. Of course, something positive did come from the courses: I realized that I already did know quite a lot and could write a working application with a decent frontend. But I still had no assurance that the company was willing to pay for these skills.
So, I began intense preparation for my second defense, but I also took another important (and, as it turned out later, correct) step: I posted my resume on different websites and started going to interviews. I can't say there were many callbacks, usually one or two every week. My experiences during the interviews also varied, from rather disastrous, when I felt I had shown myself to be fairly mediocre, to those where I completed the technical interview, but for some reason didn't go any further.
I wasn't discouraged, remembering someone's maxim that nobody has been rejected twenty times in a row. I worked on the weaknesses revealed in each interview. I passed two months in this way, attending 12-14 interviews. After one of them, I got my first job offer a small company, with a salary above the market average. I won't dwell on the details of my first days, weeks, etc. of work — they could be the subject of a separate long article. I'll just say that I successfully passed my probation period and am still working at this company to this day. I'm very pleased with the team and the state-of-the-art technology stack. I will soon celebrate my one-year anniversary in this job, and although I face new challenges almost every day, I'm enthusiastic about going to work, because I'm doing what I love.
Well, there's my long post. I'll take this opportunity to once again thank the creator of this online course for convincing me to radically change my life, the course team for its intelligent implementation of the idea. And even though I didn't completely finish any of the courses, they gave me the necessary foundation and self-confidence to find my first job as a programmer.
In summary, I want to say to anyone who doubts his or her abilities, remember the story of the humanities student who had made it — and take the first step or finish what you've started if you've already taken the first step. And finally, the sooner you start going to interviews, the better. You'll never feel ready, but you can only get an offer after receiving some rejections. Remember, nobody has been rejected 20 times in a row! It's a proven fact!
GO TO FULL VERSION