emile-perron / Unsplash
I am an experienced journalist, editor and aspiring developer (JS, node). If I had been told nine months ago that I would work as a techred and devrel in a Russian IT company, and would plunge headlong into software development together with several hundred of the strongest developers, I would not believe it.
Here I want to tell you how I moved from the media sphere to IT, give advice to those who are planning to go into development, and share resources with the same newbies as me in programming.
Why I wanted to change profession
In the fall of 2019, my editorial office was suddenly dismissed, and a horizon of opportunity opened up before me.
There was already too much design and marketing in my life. Over the 20 years of my career, I have written about printing and publishing technologies at the ComputerPress Publishing House, worked at the once-best publishing house Independent Media, where I made brand media for major brands and the coolest yoga magazine, published an academic bulletin at HSE, worked at fashionable media startups, managed to cook at SUP-Media and managed strong editorial offices.
But the enthusiasm in printed products and media projects gradually disappeared - paper circulations decreased, media startups closed or turned into traffic cars, dependence on advertising budgets caused depression.
I wanted something else:
- , . β .
- . IT .
- , . , .
- . . , , reddit.
- . , , IT .
- . , β . .
// $$$ , IT. . - , .
β 80 . 80 , .
, UX-, , , - . //
Here I will write out a sequence of actions that is more effective in my opinion to join the development. Pay serious attention to the choice of courses and the format of training, otherwise you can lose time and money.
How not to do
IT β (200+ 12 ). , . , . , . . β .
And how to do it, let's consider.
How to choose language and direction
goran-ivos / Unsplash
Decide what you want to program and in what environment. But you should not get stuck in the choice for a long time. Whichever language you choose, an abyss will open before you. And if you spend a few hours every day studying, the abyss will not diminish.
With each task you will again fall into the abyss of ignorance and misunderstanding. This is the normal state of the developer - not knowing something, you just need to get used to it. Calmly continue to Google everything that raises questions for you.
Watch the video about development. Obviously, development isn't all about coding. Watch and listen to what and how developer bloggers are talking about. This will help you immerse yourself in the environment and get a feel for the pitfalls of the profession.
// . 0. , , . , .
IT- : (IT-) , .
There are links to each of these guys under Beard's video. See everyone to understand who and what you like best. This should also get you off the ground in the face of endless options and the need to choose. //
Listen to podcasts. My personal top 5 so far (ApplePodcasts links):
Well, here's the coolest selection with IT podcasts and detailed descriptions, where my top is, including with links to different platforms.
Read books on programming. I recommend starting with books by Robert Martin, writer and developer, author of the SOLID principle. They will help you gain an understanding of the architecture, culture and philosophy of programming. Not one interview takes place without theoretical knowledge. Knowledge of theory is the law of entering the profession and the guarantee of growth in it.
Read the texts on the right resources.If you are already reading this text on this resource, then you are in the process of getting into development. And also Tproger, vc.ru, Code magazine and the endless expanses of Medium to help you. The Medium platform helps me in solving specific problems, thanks to foreign bloggers-programmers who like to make sensible tutorials with code.
As a js developer, I am also helped by the resources of MDN , the StackOverflow blog , including learnJavaScript , Metanit , Telegram and YouTube of the developer Vladilen Minin.
Learn English.If you don't already. Most of the information that you need to solve problems is written in English. Diving into development without knowing English will be long and painful.
I sincerely felt sorry for the guys who came to the intensive noob without English. They, in turn, felt sorry for me, seeing how dull I was. Pair programming in this situation has always been successful.
Find yourself a tutor. Mentor, mentor, tutor, coach - he can be called whatever you want. A living person will help with answers to the most stupid questions, and you will not be ashamed to ask them, because this is his job.
A mentor will help you learn how to solve problems and set thinking, or at least help you determine the direction and teach you how to take the first steps in solving problems. But what can we hide, the mentor will teach you how to google, because at first you will not even understand what to write in the search bar of your browser.
How to choose a mentor
adi-goldstein / Unsplash
Look for your mentor. Suitable for you. If you do not understand what they are explaining to you, everything is all right with you, it is just that this person does not suit you, and his thinking is not close to you. Yes, finding your mentor is a task that may not be solved the first time. By the way, I'm looking for a mentor (js, node, react, you can also go).
Run away from those who say that you have humanitarian brains , and development is not for you. This is a developer who can't explain, without pedagogical ability and with an unstable PSV. You learn, and at this stage you dictate the rules - who and how to listen.
Run away from those who call Apple a cooking technique- before you is a low-level, in a bad sense, oldfag, and his teachers were sexists who liked to play apple / microsoft holivar. It is important to understand for what purpose you need a technique and use it in accordance with the purpose.
Don't get hung up on a mentor. A mentor helps you set your mindset, but you should not and cannot become a clone of your guide. One programming problem can be solved in dozens of ways. There is no single right solution in programming.
There are always a number of them, because programming is a complex thought process, and not the reproduction of mathematical formulas (we will not talk about pieces of finished code here). Be sure to use different sources and formats for pumping.
How to pump yourself
timothy-dykes / Unsplash
Find a youtuber whose tutorials you like to code , or better a few and repeat after them. Build muscle memory with ToDo lists, calendars, weather apps, and home budget.
Such copy-pasting together with an English-speaking programmer improves your language as well. Just keep in mind, Indian code often doesn't work and it can be painful. Well, the Indian accent is very funny.
Publish your codewars solutions to yourself on github. And yes, solve problems on codewars. And yes, create an account on github.
Buy a second monitor . It's comfortable.
Commit star projects to github . It will be credited to you (but not exactly).
Talk to the duck. Don't ignoreduckling method to solve the problem. He really helps.
Resist the temptation to pay a lot of tuition fees . Everything is on the Internet, it makes sense to overpay personally to your tutor / mentor / mentor if his explanations go well with you.
After several months of such a life and devoting at least two hours a day to programming, it makes sense to take intensive courses, but you can immediately get a job as an intern or a June in a company and start solving problems with interviews.
How to choose courses
After doing the above exercises for several months, you will quite pass for June, if you already have your own projects in your portfolio on github and some level of pumping on codewars. But at this stage, there is a high risk of catching the impostor syndrome.
This is not such a rare disease in IT. Intensive (and not so) courses will help to cope with it, as well as with other uncertainties. As you prepare for the courses, you will probably already be able to save up both for training and for an airbag that will help you while you study and look for work.
With the background I just described, you will be Yoda in the intensive beginner's courses. But if you explain poorly or do not like to do it, you are enraged by those who do not know what you already know, then intensive courses are unlikely to come to you. Because in pair and group programming, you will be an overly toxic character.
The good thing about the courses is that beginner guys can exchange knowledge and improve their skills - the more experienced ones, who, in turn, improve their skills in explaining and transferring knowledge.
By the way, on the courses, you can understand what kind of team player you are, and how good your soft skills are. This is a very important knowledge, because coding is only a small part of development and perhaps the most enjoyable for some. The lion's share of IT processes is based on interaction between people, the ability to negotiate and work in a team.
When choosing courses, look at:
The program. Pay attention to the technology stack, ask to see the real tasks that students perform. You're unlikely to enjoy 10 weeks of tic-tac-toe in a terminal if you went to study as a commercial developer. And they thought to immediately go to work in some IT corporation by June. Ask for at least a few problems, it is unlikely that you will be shown the entire curriculum.
Educational material. So that you do not face the problems of five years ago, written in poor Russian and with a low level of visualization, ask to familiarize yourself with the training material. You should like it.
Look at how information is being presented to you as a student. You should not have the feeling that you see the instructions for a Chinese vacuum cleaner from alik in front of you when you read the description of the problem.
Otherwise, you maintain a low culture of teaching programming and technical writing. The authors of the curves of the descriptions of the tasks can make excuses that it will be even worse at work, do not get fooled by this rotten stuff. You need a cool job.
Experience of teachers. Ask for a video where the instructor explains something. Google all instructors. This will help you better understand whether they visit you or not. Because it is these people who will open your eyes to how a completely new universe is arranged for you.
Find out where instructors have worked and what expertise they have in development. A teacher who has worked as a programmer in a bank all his life is unlikely to prepare you to work as a front-end outsourcer with commercial customers who want beautiful and fast applications (but this is not certain).
Code review. Ask managers to find out how the reviews are going. I found out that I have a review once a week, and what it is, only in the third week of training. At the review, the teacher preferred to talk about something abstract, for example, to discuss how much we got off at random pair programming. There was no code discussion at all.
And from this, the frustration only increased. It seemed like my code was so bad that it didn't even make sense to discuss it. In the middle of my studies, this teacher literally changed his shoes in the air and left teaching as a guru of esoteric practices.
Unfortunately today, nowhere and no one is taught how to teach application programming in a short time. Therefore, look for and choose your mentor, with whom you personally will feel comfortable comprehending the art of coding.
Real projects of students. Request real projects of students and divide the information received by two. The best projects are always shown, but it is not a fact that you will find yourself in the best team on the stream.
Organizational process.It's very cool if the courses create a real atmosphere of a programmer's working day in a good company: the morning starts with a stand-up, there is pair and group programming, a review (normal), an agile approach. This will help you quickly integrate into the workflow at the new workplace.
Let me summarize the first steps to go into development:
- If you decide to move into development and programming from any other area, keep in mind that you will have to master a lot on your own.
- If you decide to go to study, know that you should not expect the usual memorization of the material as in school from learning. Even if you pay a lot.
- β . , . -, , , . , . , , .
- β , . . , .
- , . , .
- - . .