Almost all online education platforms have launched their programming courses. They promise, of course, a long and happy life, knowledge of languages, and the caring support of a mentor who will be proud of you no matter what. Let's figure out how this happens in reality, what the "righteous path of a true developer" is, and whether you will be hired or not.
For many companies, the resume of an online course graduate is a red flag, after which your letter automatically goes to spam. Why? It is believed that programming is primarily suitable for people with an analytical mindset. They know how to find information, select it, systematize it, and draw conclusions from it. It seems impossible to learn this skill in 3, 6, 9 months (depending on the duration of the online course). During this time, you will learn the maximum content provided—you will learn the language, understand its syntax through examples, see how certain cases are handled, and what libraries are used. Online schools address the symptoms but do not teach you to look for the causes.
Who Were Programmers in the Early Days?
A programmer thirty years ago was a person who read documentation in books, worked with the Turing machine, programmed in Basic, wrote zeros and ones, and composed code in Haskell. This is a completely different level of programming. Now, unfortunately, online schools shout that you will be able to find a job immediately after graduation. They teach the language but do not teach logical thinking, algorithms, and how to perceive and analyze the obtained information. After all, they do not teach the basics of programming but train you to work with a specific language. What if you want to take a step to the side? Whether you can do it is a question. There was a term "monkey-programmer." About five years ago, this term was used for someone who knows the code, can do some simple things, but runs to Stack Overflow for more complex questions (a Q&A site for programmers—author's note). Now, this scenario is seen after completing online schools. The ironic joke is left to your discretion.
The Righteous Path of a Developer
Always starts with learning the basics: mathematics, programming logic, and writing programs in C-like languages. I remember how we solved simple algorithmic problems in dozens of different ways at ITMO. This is a very useful exercise that allows you to look at a problem from different perspectives. Previously, a programmer was someone who created algorithms, tracked the stages of program implementation, and its sequence. With the widespread use of websites and templates, layout designers appeared, who are not quite programmers but somewhat related—dealing with how the site will stretch on different screens. In the modern world, the level of developer competence, their patterns, and diversity are very broad. For example, there are hardcore specialists dealing with hardware, motherboards, and processors. And there are software specialists: they make mobile applications and web applications. There are many variations.
The righteous path of a developer involves real, sometimes harsh conditions. People graduate from university and find some job to understand how the corporate world works. Without practice, it is impossible to find a job, that's a fact. Online courses also provide practice in the form of some cases, but it's not the same. In paid training, a real working atmosphere is not modeled, where you get an incomprehensible task from a client that must be done here and now. In an online school, you are taught JavaScript, and all of the above remains behind the scenes. Let's be honest, the goal of the school is for a person to return again—this is an understandable and natural commercial model. And when we talk about what a person who has completed IT courses is capable of, we must understand the goal of those who teach him. As they say, only business and no charity.
Why Do People Go to Online Schools?
For your money and whims, they promise instant round sums after graduation, plus the program itself looks attractive, and how many reviews and successful people have completed it, even Vasily Vasilyevich! Let's take online schools in general, not just for programmers. A school should provide a concentrate, a condensed course that describes all the essentials in an accelerated format. A person who has studied and worked in the field for 10 years gives you all his experience in an hour, highlighting the important. This is great and interesting, but for a future programmer, diverse practice and constant mental work are needed. Therefore, in programming, the basics of mathematics are important, while online schools focus on the end result. Made a website—got instant visual confirmation of your skills. But everything is not so crude. You will have to master such a subtle matter as algorithms, architecture, patterns, and all that. Yes, you will not get a visual result with which you can go to the employer to sign a contract, but you will learn fundamental things. Let's be honest—with the websites you made in courses, companies will not meet you with fanfare, this is a marketing ploy and a kind fairy tale.
I'll tell you an example from my company "Digital Technology Bureau." When we hire developers for the Junior position and see a graduate of an online school, we first look at his background, not the certificate. It's important for me to understand whether he understands mathematics, whether he dealt with some non-standard tasks, how he solved them. If a developer, after all the questions, throws a website at us and runs into a corner "maybe it'll work"—we're not on the same path. If he, for example, implemented a delivery process, this is already interesting and we can work with it: analyze his case in detail, find out why he did it this way and not otherwise, where he got the information, how he parsed it, and with what help. In programming, it is necessary, understanding the business task, to be able to create algorithms that lead to it. The important thing is not the visual, the site, and the like, but the hours worked and the amount of experience gained during this time.
To Hire or Not?
Hiring a developer from online schools carries certain costs. Essentially, you are hiring a person who is simultaneously zero and equipped with one side of a multifaceted skill set. As contradictory as it may sound, in this regard, people who trained themselves are more reliable because they tried different options and did not have a mentor who chewed everything up. Accordingly, their heads are not filled with someone else's behavioral patterns. Therefore, self-taught candidates are more preferred in the market.
A graduate of an online school is always a pig in a poke. You don't know who the mentor was, under what conditions the training took place—greenhouse or more close to the real life of development. The main problem is a big focus on the language and little knowledge in hard skills. Again, different people go to training, both with a background and without. So don't rush to send resumes to spam—maybe somewhere behind the certificate and polished site hides a real Shaolin programmer of the old school.