Как бросить нелюбимую работу и прочно войти в АЙТИ

На этой неделе в наших соцсетях выступил Николай Сладкий, один из создателей SamaraITCommunity.

Николай, Senior Serverless JavaScript Developer в Voximplant — обладает восьмилетним опытом работы с бек- и фронтендом, влюблен *nix- подобные системы, vim, чистый код, архитектурные подходы и open source, как лучшее, что случилось с человечеством. Он — один из создателей SamaraITCommunity (сильно причастен к появлению GrindConf, VolgaHack, подкастов SITCast» и «SITalk»), а также он входит в команду авторов проекта Джуность.

Делимся с вами расшифровкой эфира и записью.


Меня зовут Коля, фамилия моя — Сладкий. Мне 29 лет, я — разработчик, работаю сейчас на позиции Senior Serverless JavaScript Developer в компании Voximplant, занимаюсь движком Voxengine — это serverless-платформа. Я занимаюсь разработкой уже около 7.5 лет, почти 8; мои основные инструменты на данный момент — языки JavaScript и Go. То есть, на JavaScript мы делаем serverless, а на Go, когда нужно, докидываем перфоманса.

Несколько слов о себе. Я занимался и backend, и frontend, то есть, я — full stack web developer, хотя больше backend-based. Как я уже говорил, это почти 8 лет опыта. Я являюсь devops culture addict-ом, то есть, я пропагандирую, что нужно везде докидывать operations, куда только можно, чтобы максимально автоматизировать процессы. Являюсь технологическим евангелистом, в частности, я очень сильно топлю за NodeJS — ну, тоже в каких-то разумных пределах. NodeJS это очень классная технология. Ещё я занимался архитектурой, построением web-приложений, работал тимлидом. Работал техническим директором в двух компаниях — в стартапе и в более крупной компании, которая называется Mechanica (раньше она называлась ANMEDIO).

Много занимаюсь разной общественно-полезной деятельностью — я думаю, это можно так назвать. Есть независимое сообщество разработчиков Самарской области — Samara IT Community, мы его когда-то сделали вместе с другими ребятами, теперь оно активно развивается без особого участия с нашей стороны (мы больше модерируем). В рамках нашего комьюнити мы делали интересные мероприятия, у нас была конференция GrindConf, несколько раз мы делали хакатон VolgaHack. Еще мы записываем подкасты SITalk и SITCast. Также я — стейкхолдер и один из создателей проекта «Джуность».

Это проект для обучения, и он так называется потому, что его главная идея — в том, чтобы всегда как бы быть джуном и жить в погоне за новыми знаниями, за развитием. Еще я влюблен в *nix-подобные системы (так исторически сложилось), очень люблю vim, топлю за чистый код, чистую архитектуру, чтобы все было понятно, чтобы все легко читалось. Я топлю за open source, у меня есть много всего интересного по open source, я сам пишу open source — меня можно найти в GitHub. Вообще, я считаю, что open source — это одна из лучших вещей, что случились за все время существования IT-технологий.

Почему я рассказываю про «войти в IT»? Наверно, должна быть какая-то подоплека. На самом деле, она есть: дело в том, что я два года своей жизни проработал в полиции, а именно в уголовном розыске. И в 2014 году я начал изучать программирование — это было сложно, странно, но я это сделал и поэтому могу вам что-то рассказать об этом. Через 7 месяцев после того, как я начал изучать программирование с нуля, я нашел свою первую IT-работу. Это не была работа супер-программистом: было что-то вроде вебмастера (поддержка сайта, SEO, контекст). С тех пор прошло уже почти 8 лет, я занимаюсь любимым делом, и всем советую. Я прошел тот самый путь, который предстоит пройти каждому человеку, который хочет войти в IT. Конечно, этот путь не будет 1 в 1, и конкретно мой опыт может быть нерелевантен для другого человека. Однако, скорее всего, я знаю многие из подводных камней, с которыми предстоит столкнуться, и на эту тему мы поговорим, порассуждаем и сделаем выводы. Возможно, я сегодня кому-то смогу помочь. Если хотя бы одному человеку это будет полезно — уже день не зря пройдет.

image

Поговорим про сферу IT в целом — откуда у нее такая популярность? Мы не будем углубляться в детальную историю развития, а поговорим про то, что происходит сейчас в плане рынка, маркетинга, денежной составляющей популярности. Поговорим про то, как войти в IT и стать программистом — это будет самая длинная секция, на нее мы потратим больше всего времени; я буду рассказывать именно про программирование, потому что так исторически сложилось, что я — программист, и мне это ближе. Я расскажу немного про свой путь; возможно, кому-то это будет интересно или даже релевантно. У меня есть много знакомых, которые до сих пор работают там, где я работал, или в смежных структурах, и хотят изменить свою жизнь, но им чего-то не хватает для того, чтобы это сделать. Поэтому расскажу, как у меня это было.

Можно ли попасть в IT без программирования? Мы все прекрасно понимаем, что IT — это огромная сфера, и даже уже не одна сфера, а очень обширное понятие. Поэтому не программистами едиными сыт рынок. Поговорим о том, что ожидает сферу в ближайшем будущем, и сделаем из этого всего выводы. Потом еще ответим на вопросы.

Итак, поговорим немного про IT. Есть такая интересная фраза — даже не помню, где я ее слышал: «У вас должна быть очень серьезная причина, чтобы в 2021 году работать не в IT». Это шутка, конечно, но в ней есть большая доля правды. Уже в 2020 году –, а сейчас уже 2021 год — IT было везде. То есть, IT проникает во все сферы. Уже нельзя сказать, что IT — это какие-то отдельные технологии, сейчас это — образ ведения бизнеса. Бизнес меняется до неузнаваемости. И для его правильно функционирования, роста и развития ему приходится уходить в сферу IT.

Мы прошли с вами через серьезное испытание, которое для нас еще даже не закончилось, а для многих стран оно вообще только начинается. Но, тем не менее, мы сейчас уже более комфортно чувствуем себя в этих условиях. Возьмите это же время год назад — март, апрель; помните, что происходило, когда объявляли локдауны и все уходили на удалёнку? Было сложно, но, в основном, все сферы побеждают это. Даже сейчас мы с вами сидим — я сижу в одном месте, вы смотрите меня, возможно, из другого города или страны — и делаем это с помощью интернета, с помощью той самой IT-сферы. И нам это удобно. Получается, что так же мы можем работать. Люди созваниваются через Vox, через другие сервисы — так можно коммуницировать друг с другом, общаться, работать, зарабатывать деньги. Сфера здоровья точно так же сейчас уходит в IT, и вообще весь госсектор, все госуслуги это делают. Есть тот же самый сайт госуслуг, где сейчас можно, зарегистрировавшись и подтвердив аккаунт, записываться к врачу, например, а с мая можно будет даже перерегистрировать автомобиль при продаже; то есть, кучу всего можно делать. Доставка — опять же, на локдауне мы все это очень здорово почувствовали, и сейчас продолжаем пользоваться. Это очень здорово, очень удобно, когда не нужно выходить из дома, чтобы купить еду, купить другие вещи, сделать что-то еще — мы можем полностью удаленно это делать. Эквайринг, удаленный эквайринг или обычный безналичный расчет — как часто мы с вами сейчас пользуемся обычными физическими деньгами? Они уже просто не имеют такого смысла, какой в них вкладывался раньше. Транспорт, вся e-commerce, все гаджеты, которые мы носим в кармане — это все тоже IT. То есть, все сферы сейчас завязаны на IT, а IT — на всех сферах. Мы с вами уже непосредственно работаем в сферах, которые не могут без IT — либо в сферах, без которых само IT не может обойтись. Это замыкается рекурсивно на том, что все сферы не могут без IT.

И все это произошло, в первую очередь, благодаря развитию интернета. Многие люди не задумываются о том, насколько интернет мощное оружие, насколько это классная и крутая вещь в современном мире. Это далеко не только Facebook, Instagram и TikTok; люди обычно просто не думают об этом, но, на самом деле, интернет сейчас — это в первую очередь работа. Все вышеперечисленные сферы, про которые мы с вами говорили, сводятся в итоге к рынку. А рынок существует для того, чтобы зарабатывать деньги. То есть, интернет — это наше главное оружие для того, чтобы зарабатывать деньги. И для того, чтобы делать вещи, нужен только ноутбук, выход в сеть и какие-то скиллы. Получается, что запросы бизнеса уходят в сеть: тот бизнес, которого раньше не было в интернете — ему там, допустим, нечего было делать — в 2021 году должен там быть. Если его нет в интернете, то, скорее всего, его самого уже нет, или не будет — он постепенно деградирует и умрет.

Из этого можно сделать простой вывод: если у нас все больше появляется сфер, все больше появляется работы в интернете и вообще в IT, то ее кто-то должен делать. И мы постоянно слышим о том — особенно в последние несколько лет — что миру нужны программисты. Иногда кто-то утверждает об обратном, но мы-то с вами знаем правду. Миру нужны программисты, миру нужны IT-шники. И если на фоне спроса рождается предложение, то на фоне потребности бизнеса рождаются рабочие места. И эту работу кто-то должен делать. И, если эту работу кто-то должен делать, то о ней постоянно говорят, мы слышим об этом из каждого утюга, и люди начинают интересоваться. То есть, сфера разогревается, молекулы этой сферы двигаются быстрее, и люди уже начинают интересоваться извне — им становится интересно. Многие люди хотят что-то изменить в своей жизни — в основном, в погоне за чем-то интересным, или за деньгами –, но все равно этому способствует то, что мы постоянно об этом слышим, потому что сфера сильно прогрета. Люди хотят что-то изменить в своей жизни — и начинают хотеть в IT. Или, как минимум, узнать об этом побольше.

И эти люди — это мы с вами. Так же, как я интересовался в 2014 году, и как вы интересуетесь сейчас — скорее всего, если вы пришли на эту лекцию, то вам это интересно. Я сразу оговорюсь, что я никакой не коуч: я обычный программист, который пишет код. Я просто в свое время уже прошел этот путь, и мне хочется поделиться с людьми. Я не рассказываю, как надо; возможно, у вас будет не совсем так, или совсем по-другому. Но я стараюсь мыслить логически, и у меня много знакомых, которые уже прошли этот путь, или собираются его пройти. Я думаю, если мыслить логически, то можно сделать из этого какие-то выводы, и в этом состоит наша сегодняшняя цель. Потом вы сможете еще раз все обдумать и уже сделать какие-то выводы для себя.

Давайте представим абстрактного персонажа Петю, который хочет войти в IT. Пусть он будет примерно нашего с вами возраста. Важная оговорка: возраст не слишком важен, и, если вам 35–40–50 лет, я не думаю, что вас это остановит. Конечно, будет чуть сложнее по ряду причин, но это не будет невозможно. Итак, Петя — нашего с нами возраста, он так же пришел сюда, чтобы узнать для себя что-то новое, и, конечно, он хочет войти в IT. Он хочет стать программистом, потому что это популярно сейчас — и он будет обязательно программистом, это его путь, он его выбрал для себя. Что он знает о программировании? Он знает, что это популярно. Потому что работы действительно много, отрицать это глупо; у нас есть вакансии, есть Headhunter, где мы можем их посмотреть, мы постоянно слышим новости, мы приходим в бар и слышим, как программисты общаются друг с другом о странных вещах. То есть, это действительно популярно. И мы знаем, что это хорошо оплачивается. По крайней мере, про космические зарплаты сейчас, опять же, из каждого утюга вещают, мы не можем пройти мимо этого — об этом громко говорят громкими словами.

Еще Петя постоянно натыкается на рекламу курсов. Я думаю, так у всех сейчас — мы постоянно натыкаемся на рекламу курсов, где из нас обещают сделать программиста за 3 месяца (недели, дня, часа). И Петя задумывается о том, чтобы попробовать. А почему нет — он молод (ну, или не очень) и полон сил, он может совмещать текущую работу с обучением, если постараться, и он не совсем тупой. Тут без обид, но мы должны прекрасно понимать: тут нужно будет думать головой. Думать надо везде, конечно, но в IT — чуть-чуть побольше, наверно. У Пети есть какое-то образование; это необязательно, но, скорее всего, если у тебя есть образование, то оно научило тебя учиться, и ты знаешь, что это такое. То есть, ты готов дальше самостоятельно обучаться. И еще Петя умеет в компьютеры — ну, потому что это все-таки IT, а в 2021 году надо уметь в компьютеры хоть как-то. Хоть серфить Интернет. Есть еще нюансы; ну, Петя понимает, что он — не самый умный, хотя и не самый тупой (опять же, без обид), и у него нет профильного образования, хотя бы технического; с техническим образованием будет проще, конечно, а с профильным — вообще другая история. Но у Пети этого нет. И, самое главное, он боится, переживает; это довольно тяжело — взять и сменить профессию. Но он решает попробовать.

image

И сейчас Петя будет задавать вопросы, а мы будем стараться ответить (это те самые вопросы, которые были в анонсе):
Q: Когда стоит менять профессию?
Очевидно — когда ты ненавидишь свою работу. Если ты каждый день ходишь на работу, которую ненавидишь — не будешь же ты туда ходить всю жизнь. Нужно что-то менять. Еще — если ты не готов всю жизнь заниматься тем, чем занимаешься сейчас. Потому что, опять же, сложно просто прожить всю жизнь; это что получается — родился, потерпел и умер? Это странно.

Если он готов к тому, что это будет очень трудно, и нужно будет потратить много времени. Будем честными — программистам платят деньги, но платят не за просто так. Это сложно. Это не невозможно; это не rocket science — мы не запускаем ракеты в космос (ну, большая часть из нас не запускает), но это потребует очень много усидчивости, времени и сил.
И — если ты готов рискнуть своим временем. Потому что, опять же, почему бы и нет. Ты просто принимаешь это решение для себя, это — твоя ставка.

Но не стоит этого делать, если ты просто устал, если тебе нужно отдохнуть, чтобы дальше заниматься своим делом. Если ты психуешь, что-то у тебя идет не так, но при этом ты любишь (или хотя бы не ненавидишь) свою работу и готов всю жизнь ею заниматься, то, наверно, лучше не рыпаться. Это будет более правильным решением. Не нужно менять профессию, просто поверив в сказку. Про 300 тысяч в месяц — конечно, это есть, это все правда, мы видим эти зарплатные вилки. Но для того, чтобы зарабатывать деньги, нужно делать дела. Легко не будет. Если ты не любишь трудности — лучше пройди мимо. Программисты всегда превозмогают что-то, это не так просто, как хотелось бы. Если тебе нравится решать сложные задачи — это профессия для тебя, а если нет — нужно еще подумать, стоит ли оно того.

Q: Стоит ли идти в IT?
Стоит, если ты понимаешь, что это будет очень сложно. Поначалу будет сложно, потом — еще сложнее, потом — еще сложнее, потом начнет немного отпускать, когда ты уже начнешь понимать, как что-то делать, и разбираться, как что работает.

Тебе нужно идти в IT, если ты технически подкован и ты не боишься этой вашей математики. Про математику мы еще поговорим позже, но, в целом, нужно понимать, что математика здесь присутствует. Не очень сложная, но, тем не менее, без нее никак не получится.
Если ты готов тратить все свободное время на обучение. Если ты учился в университете, ты знаешь, как проходят эти 5 лет. А если ты учился на заочном, ты ещё и прекрасно понимаешь, что такое учиться самостоятельно, когда тебе дают только материалы и показывают роадмап для продвижения. Здесь будет то же самое: ты будешь тратить очень много времени на обучение. Если тебе хочется тусить, то, наверно, это — история не для тебя. Но если бы готов вкладывать свое время в обучение, то действуй.

Если ты любишь сложные задачи, потому что программирование — это сложные задачи. С каждой последующей задачей сложность будет возрастать, если ты хочешь прогрессировать, а не прокрастинировать. И если ты усидчив и морально устойчив; ты сидишь весь день, разбираешься, смотришь, как все работает, дебажишь что-то, у тебя не работает; спустя какое-то время все заработало, ты радуешься, здорово, задачу решил –, а потом все заново. Нужна усидчивость.

Это не займет две недели. «Сделаем из вас программиста за две недели» — это все сказки. Если ты не хочешь разбираться в математике, если не любишь думать, если родился для того, чтобы отдыхать — это точно не для тебя. Если хочешь тусить — тоже; по крайней мере, первое время придется постоянно вкалывать, чтобы когда-нибудь потом тусить. И — если ты не любишь или не можешь долго сидеть за одной задачей, то это тоже не для тебя. Это такая история, где нужно долго сидеть и много думать.

Q: Хорошо. Ты решаешь стать программистом, тебя пока ничто не пугает. Какое направление выбрать?
Вот здесь начинается интересное. Что мы знаем про направления в программировании? Есть web frontend — это HTML, CSS, JavaScript и иже с ними; построены популярные фреймворки — React, Vue, Angular. Это более простой путь; не сказать, что все совсем просто — бывают разные задачи по степени сложности и в рамках одной профессии.

Мы сейчас будем идти сверху вниз, и каждое следующее будет сложнее — по моему собственному мнению. После frontend у нас идет backend — именно web-based backend. Это NodeJS, PHP, Go, это всякие Express, Laravel и прочие фреймворки, построенные на этих технологиях. Также у нас есть enterprise backend — это Java, C#, то есть, то, про что все слышали. Здесь есть Spring, .NET — технологии, на которых строят большие корпоративные приложения, большие распределенные сложные системы. Это банковская сфера и так далее.
Дальше у нас есть mobile development — разработка под мобильные устройства. Она сейчас на пике популярности, потому что есть Kotlin, Swift, Dart — это три языка, которые больше всего под мобильную разработку заточены. Здесь прямо волна хайпа, однако это довольно сложно.
Также есть направление data science, machine learning — работа с данными, обучение нейросетей. Это Python как язык программирования, платформы на нем всякие — GPT3, TensorFlow и прочие интересные решения от серьезных игроков, мировых корпораций, которые делают машинное обучение. Это сложно, но очень интересно.

Направление геймдева — разработки компьютерных игр — считается самым классным и кайфовым, конечно. Я прямо по себе помню — когда-то я думал, что буду разрабатывать игры, и это будет классно. Была такая идея. Но, когда я начал этим заниматься, я понял, что это совсем не весело. Если ты сам любишь игры — скорее всего, тебе совсем не понравится, что «под капотом» в разработке компьютерных игр. Языки программирования — скорее всего, самые хайповые сейчас C# и C++, потому что на C# построен игровой движок Unity, а на C++ — Unreal Engine и множество разных физических «кишков», хотя используются не только эти языки и платформы.

Сложное направление, на которое нужно учиться и учиться, потому что здесь нужна хорошая математика — это алгоритмы и структуры данных. Именно разработка и оптимизация: всякие карты, геолоки и прочие штуки, где надо по графам считать кратчайшие пути, например.
Есть еще более сложные вещи — например, сферы, связанные со сложным перфомансом, со сложными расчетами. Какие-нибудь «кишки» крипты или просто блокчейнов, которые будут написаны на специализированных языках программирования, например, Solidity (высокий уровень) или Rusty (низкий уровень), но это уже сложно.

Я бы советовал думать больше про первые 3–4 направления. Может быть, ещё data science на Python. То есть, web-контент, web backend, enterprise backend, mobile development плюс data science / machine learning.

Q: Что там с зарплатами на рынке, деньги платят?
Деньги платят, да. Зарплаты есть. Но я не буду приводить цифры. Во-первых, они просто гуглятся: реально, достаточно зайти на headhunter. Иногда работодатель скрывает зарплатную вилку, но среднюю температуру по больнице определить просто — из 150–200 вакансий будет 15–20 с открытой зарплатной вилкой, можно посчитать среднее и определить, сколько денег платят тому или иному специалисту в той или иной области. Во-вторых, они сильно разнятся по регионам — если я буду рассказывать про московские зарплаты, а вы сами из солнечного города-курорта Самары, то получится несоответствие. Но, опять же — пандемия, удаленка, все это вот. Можно и московскую зарплату найти удаленно, и работать удаленно же на заграничную фирму — это тоже не проблема. Все зависит от скиллов, от своих умений, от умения себя продавать, что тоже немаловажно. Умение проходить собеседования, подать себя и повысить где-то свою зарплатную вилку — это тоже очень здорово, нужно понимать это.

Еще нужно понимать одну важную вещь. Особенно когда наш Петя еще молод и горяч, он еще ничего особенно не умеет, но уже очень хочет денег и постоянно слышит о том, что программисты получают много денег. Никто никогда не будет платить тебе деньги за просто так. Нужно делать вещи. Когда ты умеешь делать вещи, и умеешь это делать хорошо, тогда ты будешь получать много денег. Просто так никто тебе не заплатит.

И нужно понимать, что, как сказал дядя Бен, большая сила — это большая ответственность. Чем больше тебе платят, тем больше ты должен делать, тем более сложные у тебя задачи. Или не «чем больше платят», а «чем более высокая позиция» — не обязательно все в деньгах представлять. Для кого-то деньги не первостепенны: может быть, кто-то просто хочет самоутвердиться, добиться чего-то для себя в жизни. Стать лидом, например, или руководить вообще большой компанией — быть CTO или solution architect. Многие люди работают именно ради этого, а не ради денег. Я сам знаю много людей, которые работают именно по такому принципу: для них деньги — это, конечно, хорошо (можно вкусно покушать, если они есть), но они — не самое главное, что есть на рынке.

Q: Где учиться?
Наверно, в 2021 году это самый сложный вопрос. Казалось бы, все должно быть наоборот; когда я начинал учиться в 2014 году, не было такого большого количества информации, какое есть сейчас, ее приходилось где-то выискивать. Я даже не представляю, как в каком-нибудь 2010 году учились самоучки. Сейчас информация в избытке, но это и является главной проблемой. Ее слишком много. Как в этой информационной буре найти то, что нужно тебе, и что не просто потратит твоё время и высосет деньги на платные курсы, а будет иметь хорошее соотношение «цена/качество»? При этом цена здесь учитывается не только в деньгах (может быть и бесплатно), но и в затратах времени.
Я думаю, самый лучший совет, который здесь можно дать — это найти знакомых, которые уже есть в этой сфере. Если у вас есть такие знакомые — можно с ними пообщаться, попросить у них материалы и советы, хотя бы по тому, по чему мы уже сегодня прошлись, по тем же самым сферам и выбору будущей профессии в IT. То есть, чем вы хотите заниматься, каким программистом хотите быть — frontend, backend, data science. Лучше посоветоваться с кем-то, кто в этом реально шарит, кто в сфере уже хотя бы несколько лет — 3, 5, лучше больше. Вам дадут советы, дадут материалы.

В дальнейшем с этими людьми можно договориться о менторстве, или просто о code review; чтобы вы, что-то написав, показывали им, а они отвечали: чувак, здесь надо все переделать, а вот здесь хорошо, делай так, а тут чуть-чуть поправь. Тогда вы будете лучше, быстрее и качественнее обучаться. Но — внимание, это очень важно — не приставайте к этим людям слишком сильно. Не просите научить вас всему, не требуйте от них чего-то. Старайтесь как можно меньше тупить и не доставать их вопросами, особенно теми, которые сами чувствуете себя в состоянии нагуглить. Я знаю по себе — я был тем человеком, который доставал своими вопросами. Я был и тем, которого доставали, но я всегда говорил об этом: успокойся, я не твоя мама, я не буду сидеть с тобой за тетрадками и решать твои домашние задания; я могу тебе помочь, подсказать, но ты должен делать это все сам. Поэтому мой вам совет — не доставайте этих людей. Если вы не будете их доставать, если это ваш хороший товарищ и отзывчивый человек, то ему будет даже приятно с вами это обсуждать, разговаривать. Еще важный момент: когда программист, инженер кому-то что-то объясняет, он сам как бы заново это проходит и начинает в этом еще лучше разбираться. Поэтому, если вы не будете сильно доставать собеседника, он, скорее всего, сам будет хотеть общаться.

К сожалению, легко нарваться на ерунду в сети, если вам никто не помогает. Сейчас масса плохих платных предложений — менторов, курсов, некачественных книг, на которые можно наткнуться и потратить время впустую. Плохих материалов, наверно, даже больше, чем хороших, поэтому и хорошо спрашивать у того, кто в теме. Хотя я бы не сказал, что тут 90 процентов грязи и только 10 годноты; наверно, соотношение чуть похуже, чем 50 на 50. Старайтесь показывать тот материал, который вы находите, своему другу, который вас менторит или общается с вами — он вам даст свой фидбек на этот материал. Это будет здорово.

По поводу материалов в целом — книг, вебинаров, курсов, подкастов, скринкастов и так далее — нет правильного решения. Кому-то больше заходят книги, кому-то — видео. Я люблю смотреть видео, я кайфую от него, я не так хорошо воспринимаю текст, как видео и звуковую информацию. Я слушаю много подкастов, и до сих пор очень много полезной информации для себя получаю из них, каждую неделю. Но кому-то подкасты совсем не заходят, кто-то не может что-то делать и одновременно слушать подкаст, например. Все индивидуально. Главное — учиться фильтровать источники, а на каких они носителях — дело десятое.

Q: По поводу платного контента — стоит ли его юзать?
Очень важный момент: откуда берется платный контент? Его делают люди, для того, чтобы зарабатывать деньги. Они тратят на это свое время. Если люди тратят на это свое время — это первый фильтр. Если человек квалифицированный, то, скорее всего, там есть какая-то компоновка, фильтрация информации. Это всегда хорошо. Допустим, как мы учимся в университете на заочке: мы получаем источники, те же самые книги, статьи, нам говорят, откуда мы можем получить информацию, и мы идем и получаем ее самостоятельно. Нам никто не читает лекций, но нам дают источники.

Здесь такая же история. На курсах нам могут дать источники — правильные, хорошие — и нам могут структурировать информацию, то есть, подача будет структурированная. У нас будет роадмап: идем отсюда сюда, сюда, сюда, и при этом знаем, что действительно идем по пути куда-то, а не топчемся на месте, что часто бывает.

Еще по поводу платного контента. Очень важно понимать, что, хотя есть много теории, нам нужны практические задания. В программировании теория без практики — это ничто. Поэтому, если вы берете платный источник, то хорошо, чтобы там были задания. Живое наставничество и менторство всегда стоит своих денег, если вы понимаете, что человек, который с вами занимается — адекватный и является реальным специалистом в своем деле. Если он просит какие-то очень большие деньги, то это неадекватно; если это адекватные деньги, то почему бы их не потратить. Вы получаете человека, который шарит, в шаговой доступности — это очень удобно.

Есть такой момент, что потраченные средства могут вас мотивировать на большую отдачу. То есть — я заплатил денег, теперь надо их отрабатывать по полной. Со мной это отлично работает.

И, как с любым контентом, его точно так же надо учиться фильтровать. Общаться с другими людьми, смотреть, что за курсы, читать отзывы, получать фидбеки какие-то. Понимать, какой курс плохой, какой хороший. Это — плохой источник, который стоит неадекватных денег, это — хороший, который стоит адекватных.

Q: По поводу математики, английского языка и профильного образования. Нужна ли математика программисту?
Я как-то раз в начале своего пути общался со своим товарищем, очень хорошим программистом, и задал ему этот вопрос. Он сказал:, а нужна ли продавцу математика? И, вы знаете, это очень глубокая мысль — такое маленькое семечко, из которого может вырасти огромное дерево. Математика нужна вообще всем — математика везде вокруг нас. Я это понял потом, когда начал заниматься, поднял заново и переосмыслил школьные знания. Получается, что, конечно, программисту нужна математика. Но она нужны и продавцу — иначе он не сможет работать, деньги считать. Она нужна всем без исключения, и надо понимать, какой именно уровень математики нужен. Я скажу так: если вы выберете какое-то из доступных направлений (web frontend/backend), то там не будет чего-то особенного. Вы не будете запускать ракету в космос, никто от вас этого не потребует, особенно в самом начале. Никто не будет сразу давать суперсложные задачи, они все подъемные. В общем, конечно, математика нужна — в определенной мере.

По поводу английского языка: английский язык — это круто не только для программиста или IT-шника, а для человека в целом. Я думаю, через несколько лет это будет вообще must have. Будем честны: английский — это язык мира, на нем весь мир разговаривает. Вся официальная документация, все спецификации языков, протоколов, решений, RFC, чего-то еще — написаны на английском языке. То есть, если вы хотите читать и получать четкие знания, то вам нужен именно английский язык. Без него будет сложно.

По поводу образования — в некоторых случаях, конечно, корочка нужна, но это тоже скорее исключение. Придете в какую-то компанию работать, вас там спросят –, а есть ли у вас образование, вы скажете — нет, вам скажут — ну и уходи, вы скажете — ок, и уйдете. В другое место, где нужны люди, которые задачи решают, а не светят корочками. Но, если вы вдруг думаете о том, чтобы пойти на второе высшее, я бы советовал сначала постараться понять, ваше это или не ваше, попробовать позаниматься, может быть, даже найти уже первую работу. Это не так сложно сейчас, на самом деле; может быть, вам потребуется полгода поучиться или, как максимум, год своего времени потратить на это. Но это будет гораздо лучше, чем потратить еще 3–4 года в университете или вообще бросить его через 1–2 года из-за того, что — будем честны — в университете вы не будете получать тех знаний, которые вам будут нужны для непосредственного решения проблем прямо сейчас. Все-таки университетская база знаний устаревает. Я не говорю, что это происходит во всех университетах, но, наверно, в большинстве своем они учат именно базовым вещам, а не решению задач. А если вы сами начнете учиться на курсах, то вы сможете начать решать задачи и почувствовать профит от решения своих задач, и это будет очень полезно.

image

По поводу кодинга: сколько уделять времени именно на код. Теория — это здорово, конечно, но нужно кодить. Кодить нужно столько, сколько сможете. Очень много. Если вы хотите научиться писать код — надо писать код. Если вы не будете этого делать, а будете прокачиваться в теории, вы будете отличным теоретиком, может быть, но теоретикам, скорее всего, не платят деньги. Или это бывает редко. Нужна практика. Это как в школе: чтобы научиться делить столбиком, надо делить столбиком.

Допустим, вы всему научились, и начинаете искать работу. Что нужно для того, чтобы начать это делать? Нужна база. Базовые знания — математика та же самая, базовая: то есть, базовая логика, чтобы уметь писать решения, алгоритмы, алгоритмы структур данных. Это самое главное, что нужно программисту. Алгоритмы и структуры данных — самые простые, чтобы научиться решать задачи, без этой базы вы никогда не будете разработчиком. Также надо знать конструкции и синтаксис целевого языка программирования, библиотеки, фреймворка: то есть, не зная JavaScript, вы не устроитесь во frontend, не зная HTML и CSS, вы не устроитесь верстальщиком, не зная PHP, вы не сможете делать сайты. Это естественно. Синтаксис и конструкции надо знать довольно хорошо. Кроме того, нужно умение решать поставленную задачу. Пусть неоптимально, но верно. Когда вы — начинающий разработчик, молодой специалист, джун, от вас требуют одного: чтобы вы учились быстро, решая задачи. То есть, вы берете и делаете задачу, ее дальше передают в работу, а вы, научившись, следующую сделаете лучше.

Получается, что вам нужно решать поставленную задачу. Я бы еще советовал не пытаться выучить все на свете — это невозможно; и не ждать у моря погоды («я еще не готов, еще рано искать первую работу»): скорее всего, искать работу не рано, вы, наверно, готовы. Вы это почувствуете, или вам это кто-то скажет. Если вы несколько лет сидите, учитесь, но боитесь искать работу — вы что-то делаете не так. И еще важно ходить по собеседованиям. Как только вы начинаете это делать, вы набираетесь опыта собеседований, подтягиваете слабые места — на них вам указывают. И вы не боитесь провалов. Вы перестанете бояться, что вы придете на собеседование, и вам там скажут — чувак, да ты не знаешь ничего. Бывают токсичные собеседования, но это уже редкость. Скорее всего, вам просто скажут: вам не хватает этого, этого и этого. Вы скажете: окей, придете домой, позанимаетесь еще месяцок, пойдете на следующее собеседование. Один раз откажут, второй раз откажут, а к третьему разу вы все выучите, скорее в

© Habrahabr.ru