IT-курсы снова обманули. Что делать?

Прохождение курсов не приводит к желаемой позиции с оплатой в 120+
Что делать, чтобы стать разработчиком?

IT-курсы снова обманули. Что делать?

За последнее время было много статей на тему того, что IT-курсы не оправдали ожиданий. После недавнего прочтения очередной статьи про то, как курсы не привели к з.п. в 100+ захотелось написать свой взгляд на эту проблему.

А главное захотелось составить свой мини-гайд (можно сказать «антикурсы») как войти в IT и через 1-2 года получать 120+.

Гайд и вопрос к сообществу/разработчикам в конце статьи.

Мой бэкграунд: 14 лет в коммерческой IT разработке, фулстек, последние 6 лет PM/Team lead.

В чем собственно проблема?

Вокруг много курсов, обещают научить программировать за 3-6 месяцев и начать получать 100+. Некоторые даже обещают помочь найти работу после прохождения (сомневаюсь в этом, особенно если до этого не было никакого опыта программирования).
В итоге формируется ложное ожидание: сейчас пройду курсы и буду зарабатывать.

В реальности курсы вряд ли помогут сразу же устроиться на позицию с хорошей оплатой, т.к. реального опыта решения различных задач нет. Во многих случаях и вовсе предпочтут не брать бывшего юриста/дантиста/статиста. Проблема тут вовсе не в том, что у человека нет профильного образования или же знания языка плохие (даже для позиции джуна). Проблема в отсутствии опыта в IT, опыта решения реальных и разных задач. Именно это, на мой взгляд, прежде всего и отличает джуна/мидла/сеньора, а не кол-во лет, умение отсортировать «пузырьком» и знания теории (что вообще, конечно, тоже немаловажно). Именно разнообразие реальных задач/проблем, с которыми человек сталкивался в прошлом, и формирует ценность разработчика. Кто-то набирает хороший опыт за пару лет, а кто-то и за 8 не может похвастаться какими-то интересными достижениями, т.к. всё это время делал простые однотипные задачи.

Что делать?

Решать задачи и набираться опыта. Если никто не берет, то просто делать свои «пет-проджекты», оттачивая базовые вещи и «набивая» портфолио. Делать клоны каких-то проектов, просить сообщество посмотреть код и посоветовать, что можно улучшить. Постоянно учиться.

Что такое джуниор разработчик для компании? Это: отсутствие опыта разработки и хороших навыков решения проблем, часто не очень хороший код. Как следствие, необходимость тратить время более опытных разработчиков на обучение новичка (как ответами на вопросы, так и через ревью кода и указание на конкретные ошибки). Поэтому обычно небольшим компания брать к себе начинающих разработчиков не выгодно (мы, например, пока не можем позволить себе брать джунов, а вот мидл и сеньорам всегда рады).

Так ли нужны курсы?

Зависит от человека. В целом можно всему научиться и без курсов.
Тут скорее вопрос к самоорганизации и самодисциплине.
Некоторым людям нужно «заплатить», чтобы заставить себя что-то делать (чтобы появилось ощущение «ну я же заплатил за это, поэтому я должен делать, чтобы деньги не пропали»).
Другие способны и сами всё освоить.

В любом случае самообразование и постоянное саморазвитие – это одни из главных вещей в IT. Практически нет такого, что когда-то чему-то научился и теперь так делаю всегда. Всегда выходят какие-то новые версии, нововведения, новые фреймворки/библиотеки/технологии и прочее. Поэтому постоянно нужно много читать, смотреть и учиться, чтобы оставаться «на волне».

Главное, чтобы было не просто абстрактное желание перейти в IT, а реальная цель сделать это. У меня есть два знакомых, которые уже 3-ий год не могут это сделать, т.к. постоянно находятся какие-то отговорки. У каждого из них есть «очень большое желание» сделать это (только в беседах, когда речь заходит про IT). При этом один из них работает тестировщиком (ручным) в большой айтишной компании, где есть и сеньоры готовые научить, и внутренние курсы, а второму я составил простой и легкий план с чего начать, что делать и куда двигаться далее.

С чего начать?

На мой взгляд начать проще всего с фронт-энда, а именно с верстки.
HTML и CSS можно освоить очень быстро (меньше, чем за месяц, уделяя не очень много времени по вечерам), а дальше можно начинать выполнять простые задачки и искать заказы на верстку.
Далее стоит постепенно добавлять JavaScript. Не стоит сразу хвататься за фреймворки/библиотеки, стоит сначала освоить чистый JS. Когда с чистым JS и версткой будет все более-менее понятно (спустя ~2-3 месяца), стоит начать использовать React, т.к. он сейчас в ходу (т.е. вакансий хватает) и вряд ли исчезнет в ближайшее время.
Для того, чтобы набираться опыта нужно постоянно делать небольшие проекты. Можно делать клоны известных приложений, т.к. в таком случае не нужно думать о дизайне и можно просто сосредоточиться на результате.
Обязательно с самого начала стоит использовать github. Весь прогресс стоит постепенно (порциями) и постоянно (ежедневно) выгружать туда сопровождая осмысленными комментариями.

Внимание, вопрос.

А что, если нам сделать небольшой гайд по самым разным языкам, т.е. с чего начинать, что читать и т.д.? Небольшой проект (вернее даже список ссылок), который бы помогал новичкам стартовать. Своего рода антикурсы. Я начну организовывать и структурировать такой гайд в виде открытого репозитория, любая помощь приветствуется. Напишите, как на ваш взгляд стоит начинать изучения того или иного языка, да и с чего в целом стоит начинать переход в IT.

192192
464 комментария

Начать с фронтенда и тем более с разметок - пожалуй, наихудший совет для начинающего. Современный фронт - сложный коктейль из кучи технологий,   фреймворков, и костылей. Понятно, что браться за академический паскаль в 2021 смысла нет. Чтобы научиться именно программировать, алгоритмам, я бы рекомендовал что-то строго-типизированное с универсальным Си-подобным синтаксисом, с объектами, например typescript, или c#. Может быть еще swift или dart. Или kotlin.

96

Выбор первого языка на самом деле очень сложный вопрос. Неочевидно, но выбирая первый язык ты посути выбираешь себе потолок.

Все что проще первого языка - будет даваться тебе легко, а чтобы вкатиться в то что сложнее - придется усраться, а мотивации на это не будет, потому что зарплата и так платится.

Если ты начал с JS - 99% ни на чем другом писать уже не будешь (typescript не считается). Начал с шарпа или джавы - любой язык без vm и gc будет тебя ломать. Начал с плюсов - чето еще более низкоуровневое останется для тебя магией.

Идти в сторону упрощения легко, а вот обратно очень сложно. Можно например взять олдфажного сишника, дать ему написать сложный веб-фронтенд - он с первого раза напишет, криво и косо но оно будет работать и возможно даже лучше чем "творчество" синьер фуллстека. А вот веб-макака расплачется уже на этапе cmake --build.

Думаешь что ты такой охуенный и сможешь перепрыгнуть этот потолок? Ну вот например ты в питоне усвоил что чтобы сделать строку надо взять тип string, строки это же вообще изи, верно? А теперь попробуй написать тот же код на си или плюсах, посмотрим через сколько месяцев работа с const char* перестанет вызывать у тебя ступор. Думаешь нахуй оно надо такую хуйню дрочить, если можно бабло рубить за покраску кнопок? Ну вот по этому ты потолок и не перепрыгнешь.

Это вопрос не бабла или карьеры, а возможностей. У тебя будет расти зарплата и лычки, а потолок останется. Вот стал ты за 10 лет каким нибудь Lead Js Web Frontend Architect. Но V8 на котором твои поделки работают всеравно сложнее всего что ты делал, а ты его даже скомпилять не можешь. Или ты Ultra Senior Android или еще заодно и iOS Pro Max Senior. Но исходники флаттера для тебя всеравно эльфийский.

Но вообще не все так плохо, сейчас nocode активно пиарят. Так что если сейчас успеешь даже лоховский стек выучить, завтра один хуй сможешь лоллировать с лоу-код дебилов, а себя считать настоящим разрабом.

66

Комментарий недоступен

8

Надо начинать с PHP

8

Расскажите как сами начинали и сколько лет у вас ушло на попытки?
Я вот как раз с веба начала, с простого хтмл, потом добавила js и через полгода создавала с нуля сайты, после чего более комфортно вошла в программирование, до этого оно мне никак не давалось.

6

Комментарий недоступен

5

Лучше с ассемблера начинать. Так-то!

5