Я хочу вкатиться в IT, но мне постоянно что-то мешает

Поговорим о том, как начать стучать по клавишам и считаться hackerman от мира IT. Программерский лонг.

Свой первый рассенган написал в 2015 году.
Свой первый рассенган написал в 2015 году.

Дисклеймер: данная статья будет полезна в первую очередь тем, кто раздумывает начать карьеру программиста в веб разработке ибо о ней и пойдет речь в основном.

Оглавление

Реквием по желанию

Developer be like
Developer be like

В мире IT есть много интересных профессий: тестировщики, девопсы, кодеры, продакты, аналитики и так далее. Обо всех поговорим ниже, а для начала хотел бы рассказать вам пару банальных фактов конкретно о разработчиках.

Факт 1. Необязательно быть аналитически одарённым человеком с идеальной памятью, чтобы стать программистом: достаточно терпения и упорства.

На текущий момент во многих сферах разработки уже всё всеми написано для решения типовых задач, вам лишь необходимо умело жонглировать доступными инструментами по ситуации и быть «в тренде». Так же большой плюс к карме является скилл по поиску информации (основная задача программиста, если вкратце).

Факт 2. Вам, к сожалению (или к счастью) необходимо «гореть», или по крайней мере, неплохо проводить время за кодингом для того, чтобы стать хорошим программистом.

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

Немного слукавил по поводу двух фактов, так как есть еще один момент:

Факт 3. Если вы творческий человек, вам будет сильно проще.

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

Воды налил, теперь можно и в океан.

Разновидности

Данный раздел статьи несет в себе общую сводку по направлениям, к которым у вас мог бы возникнуть интерес. Необязателен к прочтению, его можно пропустить и перейти к следующей части: Как начать стучать.

<a href="https://dtf.ru/u/1922-andrei-apanasik" rel="nofollow noreferrer noopener" target="_blank">Apanasik</a> за работой
Apanasik за работой

Сначала пройдемся по сферам разработки, а далее по типам профессий.

При выборе куда податься обратите внимание на порог вхождения, чтобы было комфортнее. Так же следует понять в какой области вам нравиться развиваться (кто вы по гороскопу) и определиться с профессией.

Сферы разработки

Веб

Сюда входит как ни странно — весь интернет и даже больше.

Порог вхождения: довольно низкий из-за того, что сфера довольно большая и популярная.

Популярные языки: Javascript (и Node.JS), PHP, Python, Golang, C#, SQL (для баз данных), Java.

Некоторым разработчикам было настолько лень осваивать мобильную разработку, что они аж создали PWA (грубо говоря ярлычок приложения в телефоне, открывающий веб-сайт), React Native (пишем для веба и для мобилки одновременно, работает на мобилках — круто) чтобы упростить себе жизнь.

Мобильная сфера

Аналогично вебу, но интерфейс взаимодействия наши с вами гаджеты.

Порог вхождения: чуть выше, но не сильно.

Используемые языки программирования: Kotlin, Objective-C, Java, Swift, Javascript

Кровавый энтерпрайз

По большей части — банковская сфера, либо мега корпорации (прим. Google) с кучей внутренней бюрократией, когда на разработку банальных фич уходят месяца разработки и кровь девственниц.

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

Популярные языки программирования: Java, C++, C#, Python, Rust, Scala. Для извращенцев — Haskell, Erlang.

Геймдэв (тоже кровавый)

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

Порог вхождения: высокийсфера не настолько популярна, как предыдущие, отсюда и порог вхождения усложняется.

Встречающиеся языки программирования: C++, Java, Lua, Python, C#

Профессии (не затрагивая геймдэв)

Фронтенд — ui/ux интерфейсы, интерактив, вёрстка — в целом всё то, с чем взаимодействует пользователь через браузер, мобильное приложение. Конфликуют в основном с бекендерами.

Бэкенд, если сильно упрощать, то в основном это — взять данные из базы данных и визуализировать их через один из форматов (json, xml), и отдать на фронт для рендера интерфейсов. Автоматизируют всё то, что происходит за сценой, отсюда и название. Из за постоянной поддержки «контрактов» (форматов общения), спорят с фронтерами чей вариант лучше и оптимальнее.

Фуллстэк - и бэкенд и фронтенд в одном лице, часто работает больше, но за ту же зарплату. Как правило, гонимый и бекендерами и фронтендерами.

DevOps (development & operations) — бывшие сис. админы.

С ростом технологий появилась и потребность в автоматизации процесса выкатки изменений на работающие сайты, инфраструктуры.

Докер, CI/CD, kubernetes — все это знакомо каждому девопсу с пелёнок. В глазах других коллег являются магами.

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

QA инженеры — атланты на чьих плечах содержится работоспособность современного веба, приложений. Бывает ручное тестирование и автоматизированное. Ручное — более монотонное.

Продакт менеджер — менеджера, выстраивающие общение внутри команды, параллельно оптимизируя требования от заказчика на понятный для кодера язык. Пример:

Заказчик: Хочу <диалог на 2 минуты о том, как он видит фичу>.

Продакт программисту: Сделай кнопку скачать повыше. И зеленой

Тим-лиды — бывшие (либо действующие) программисты, гоняющие шпану, чтобы работали. В основном бьются на созвонах с продактами, чтобы можно было меньше работать. Проводят ревью кода программистов, уча последних грамотности в рамках код-стайл проекта. Могут за пару дней сделать месячную нагрузку рядовых программистов.

CTO — те же тим-лиды, но имеющие власть над продактами, пресмыкаются перед хед менеджерами, которые стоят у руля.

Как начать стучать (по клаве)

начинаем работу
начинаем работу

С теорией закончили (ура), теперь к следующей теории (ура). Расскажу как приступить к становлению hackerman"а.

Первое что вам необходимо сделать: определиться с направлением, для того, чтобы подобрать комфортный язык программирования.

Следующее, что предстоит — открыть учебник/документацию выбранного вами языка и начать изучать его основы. Считаю важным упомянуть, что знание языка — это пол пути, дальше предстоит изучать инструментарии, связанные с этим языком. Про курсы не упоминаю сознательно, об их полезности поговорим позже.

Инструментарии — это и фреймворки (например Vue. js — для создания интерфейсов) , и базы данных (к примеру MySQL), и пакетные менеджера (pip, npm), и прочие инструменты значительно упрощающие разработчику жизнь, чтобы не реализовывать всё самому.

Параллельно с изучением, сразу займитесь практикой. Практика лучше всего запоминается, в отличии от теории.

Пример для фронтенд разработки
веб

Для хорошего джуна фронтендера базовые навыки для ответов на отклики это:

  • знание JS, CSS;
  • попробовать один из фреймворков/библиотек, знать досконально не требуется;
  • либо React, либо Vue.js (если хотите углубиться, еще есть angular, svetle);
  • ознакомиться с основными тегами html (напомню html это язык разметки, не программирования);
  • как работают запросы, что за форматы ответов json, xml;
  • технический английский (необязательно, будет плюсом)

Не стоит уходить с головой в изучении базовой верстки (html, css), следует уже на практике что-либо верстать (css, язык стилизации, не язык программирования — есть препроцессоры в которых уже можно кодить, но это уже потом, по желанию — сразу лезть не стоит) .

Пример для бэкенд разработки
веб

Для джуна бекендера базовые навыки для офферов на собеседованиях следующие:

Как и с фронтендом, открываем документацию выбранного вами языка, приступаем к изучению с одновременной практикой.

Общий алгоритм
таков
  • Изучаем поверхностно понравившуюся вами сферу;
  • Выбираем язык программирования;
  • Открываем по нему документацию;
  • Изучаем на практике язык;
  • Изучаем на практике пару инструментариев;

Изучаем на практике — ставите перед собой цель, например «реализовать todo» — далее прикидываете как это должно выглядеть и вперед, к реализации.

Хочу обратить ваше внимание, что на этапе изучения, всё вами написанное неплохо было бы выкладывать на github.com, тем самым формируя свое портфолио для будущего резюме.

Подводные камни (на пути к величию)

стараемся найти лучшее в настоящем
стараемся найти лучшее в настоящем

Погружаться в новую сферу всегда сложно и непонятно, в связи с этим риск выгорания, скуки и прочих проблем стремится к бесконечности. Первый подводный камень, который вам скорее всего встретится, знакомьтесь:

Я уже полгода (либо раньше) изучаю ваше программирование, а мне досихпор ничего не понятно, мда. Не для меня походу

мимокрокодайл, залетевший с двух ног в разработку

То что непонятно — ничего страшного, понимание придет с опытом. Вам лишь необходимы базовые знания, которые пройдут собеседования. Заучивайте непонятное, даже если сложно и нелогично с первого раза, чтобы как на сдаче экзамена по билетам. Здесь же и включается фактор «мне это нравится» из вводных данных, он поможет вам преодолеть это ментально, не вогнав вас в депрессию (а если депрессия пришла, увы — тут лишь взять небольшую паузу, отдохнуть).

Я начал изучать программирование с html + css. Всё идет так сложно и непонятно, ты же говорил, что будет легко?!

html кодер

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

Заряжен максимально) я сохранил кучу вкладок — видосиков на ютубе, буду смотреть их в ближайшие дни.

начинающий кодер, остановившийся на просмотре видео

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

К тому же я не сторонник видео гайдов, круто когда вы сами черпаете информацию из текста, документации, а не рассказчик её подносит вам.

Я знаю на базовом уровне джиэс, написал свою todo на реакте и выложил в гитхаб, откликаюсь на вакансии — тотальный игнор, это вогнало меня в депрессию и я бросил затею быть кодером, пойду в такси

подающий надежды джун

Самый сложный этап вкатывания в айти — сходить на свое первое собеседование. Здесь нет правильного решения, но есть удача, хорошее настроение hr менеджера и самое главное: упорство. Рекомендую также обратить свой взор на резюме: отобразите хард скиллы (технологии, языки, словом всё то, что вы изучили), прикрепите ссылку на гитхаб, либо своё портфолио. Можете даже создать свой сайт-визитку, описывающий вкратце ваши навыки и прикрепить его.

Какие присутствуют варианты по поиску — посвящу этому отдельный раздел статьи.

Хожу на собеседования, где то не очень, где-то классно — но везде один итог: не отвечают, либо говорят «не подходите». Я разочарован и устал, не моё.

без пяти минут состоявшийся джун

Даже у самых умненьких процесс трудоустройства сложен, где-то вы банально не понравились hr менеджеру, где-то требуемый стэк не отвечает вашим знаниям, здесь, как и в примере выше, выход только один — это упорство. Порой даже сеньор-помидоры ходят на 50+ собеседований где получают всего 1-4 оффера о принятии на работу. Важно понимать, что рынок перенасыщен специалистами и попасть довольно сложно, но возможно.

Собеседования сродни пересдачам экзаменов. На первые разы вы тянете билет, но забываете напрочь всю теорию, возвращаетесь домой, вспоминаете свои провалы, запоминаете, повторить. И так пока не ответите идеально, дальше лишь важны ваши soft скиллы.

Кстати о soft скиллах, оденьтесь на собеседование опрятно, обратите внимание, что вы не в трусах. Не материтесь, не упоминайте о сексе с мужиками на дтф, не рассказывайте свои шизотеории, пожалуйста — показывайте свою дружелюбность и скилл «с вами на одной волне», это оценят.

Я устроился в веб студию, но меня кикнули после 2-ух месяцев работы по причине «не поспеваешь», видать и вправду не моё.

состоявшийся джун, но галера приказала долго жить

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

Мне уже за 30. Поздно уже менять карьеру

30 летний кодер Маша

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

Коротко о курсах

варим курсы
варим курсы

Курсы вас не научат и не дадут вам профессию. Учиться вам самим.

Курсы нужны в основном для:

  • За вас соберут и сгруппируют необходимую информацию, не придется искать;
  • Предоставят (где-то) ментора, с ним и вправду удобнее;
  • Дадут мотивацию (в качестве потраченных денег);

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

Рекламой курсов заниматься не буду, если всё же решили обратиться к ним, то думаю, справитесь и сами (используем ценный навык программиста — поиск).

Полезные ссылки (матчасть)

в поисках хорошего
в поисках хорошего

stackoverflow.com (вопросы от программистов к программистам)

leetcode.com (задачки для программистов)

habr.com (IT статьи)

highload.today (IT статьи, необходим vpn)

refactoring.guru (Архитектурный учебник, необходим vpn)

developer.mozilla.org (учебник по вебу)

learn.javascript.ru (учебник по JS)

learnxinyminutes.com (общий учебник по языкам)

geeksforgeeks.org (разбор и описание алгоритмов, структур данных)

metanit.com (общий учебник по языкам, русскоязычный)

Мой опыт

иду на своё первое собеседование
иду на своё первое собеседование

Надо заметить, что за всё время собеседований, вопросов о высшем образовании было: 0.

Касаемо собственного опыта, пробовал зайти как программист, везде были отказы. Попытался зайти с тестировщика, получилось!

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

Благодаря тому, что работал с гитом — знакомился с кодовой базой, часть знаний сама откладывалась в голове, часть — из общения с коллегами. Когда поднабрался опыта, решил точно — надо уходить, не моё.

Среди многих неуспешных собеседований и откликов, выстрелило интервью в шашлычную веб студию (шашлычная в моём понимании, студия, которая берётся за любой проект, где качество не важно, важна скорость). На самом интервью с работодателем зачастую привирал о своих знаниях, как итог — прошёл, мне дали ментора-программиста, так и начался мой путь в айти в качестве разработчика. Позднее попал в более хорошую веб-студию, где уже из меня начали выковывать уверенного джуна, далее миддла.

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

Как искать где стучать (по клаве)

изучаем где «искать»
изучаем где «искать»

Помимо основных сайтов для поиска работы:

Стоит пользоваться всеми доступными вариантами:

  • telegram каналы;
  • сайты компаний (где напрямую есть раздел вакансий);
  • по знакомству (если есть друзья/знакомые коллеги, hr, тоже вариант) ;
  • пробуйте себя сначала как QA-специалист (если вас преследуют везде отказы) ;
  • пробуйте себя как продакт менеджер (аналогично варианту выше) ;
  • выходим на рынок фриланса;
  • поработайте над своим резюме, подсмотрите у коллег по «цеху»;

К примеру, как найти сайт компании:

Вбиваем в гугл запрос «топ веб студий», пролистываем топ-10 (там в основном уже ищут миддлов+) , открываем по строчке каждую компанию, ищем раздел «вакансии», «карьера» — далее знакомимся с содержимым и обращаемся к ним напрямую.

Касаемо QA-инженера, на текущий момент, чего требует рынок не скажу, скажу что требовалось в 2015 году:

  • базовое знание пк;
  • понимание как работает веб (базовое) ;
  • большой энтузиазм тестировать всё что движется (просто говорите да на собеседовании на всё) ;
  • умение писать авто-тесты (если позиция включает не только ручное тестирование) ;

Подводя итоги

успешный оффер
успешный оффер

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

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

Петя год работал с битриксом, завтра выходит его новый бизнес тренинг в 12:00, приходите все.

не работайте с битриксом, оно вам не надо. Оно сожрёт вас

По началу будет сложно, местами даже казаться «невозможно». Помните важную вещь — главное практика. Стучите по клавишам чаще, чем читаете мануалы. Чувствуете риск выгорания — берите перерыв. Но отдых должен быть коротким: день, два дня — неделя. Если перерыв больше, есть риск забросить дело в долгий ящик. Ваши качества здесь это — упорство и труд.

До встречи в новых лонгах, хакермены!

596596
948 комментариев

Небольшой поток мыслей от 30 летнего джуна DevOps
1. Что учить?
На всех собесах спрашивают: Bash, какой нить ЯП (чаще Python реже Go или другие), NGINX\APACHE Linux(системные вызовы, работа с grep и иже с ним, команды для работы с дисками памятью и сетью + архитектура системы) Docker(достаточно базовых знаний обычно), что то инфраструктурное (Ansible,Terraform) Кубернетес и Helm спросят также везде, чаще это важнее докера. Также нужно иметь хотя бы базовые знания CI/CD (GitLab Jenkins) Мониторинги (Prometheus+grafana+ELK, может даже заббикс и wazuh). Да, это на джуна. От джуна не ждут что он знает все идеально, но по немногу в каждой сфере должен понимать. Еще спросят про OSI но это база, это надо просто понимать, равно как и понимать как устроена и работает сеть. Для сетевой практики советую программу Cisco Paket Tracer - тренажер по настройке сети на оборудовании Cisco. Да, это больше админское но понимать полезно.
Совсем забыл - облачные платформы - AWS, GCP, AZURE, YandexCloud - что нить одно из этого. У GCP и YCloud хорошие пробные периоды, можно разобраться в основах и поднять что нить чисто для опыта. C AWS аккуратнее - там переход из бесплатного баланса в платный происходит незаметно. Можешь поднять кластер, забыть выключить сервер, уйти спать, а утром узнать что должен Амазону 30 долларов. тот же GCP и YC не будут списывать деньги сверх бесплатных кредитов без твоего подтверждения

UPD2: УЧИ ГИТ! vscode с кнопочками для пуша и ребейза будет далеко не всегда, да и понимать как работают эти кнопочки необходимо чтобы не ломать что то слишком часто.

2. Курсы
Курсы - хрень. Задача курсов - чтобы ты выпустился и не затребовал рефанд, поэтому им не выгодно чтобы ты что то именно учил, они скорее создадут иллюзию что ты что то знаешь. На прошлой работе был коллега который прошел курсы яндекса, а затем скилбокса на тестировщика и до сих пор не нашел работу потому что он не знает ничего что выходит за рамки его лабораторных. Единственное что из курсов мне понравилось это KodeKloud и их инженерный тренажер. Перед утренним созвоном щелкаю по паре задач
4. Поиск работы и опыт.
Писать резюме и оформлять LinkedIn -важный навык, стоит его прокачать. Почти везде ищут человека с опытом. Если нет опыта - ты можешь завести пет проект и оформить в резюме как коммерческий опыт - не совсем честно, но может работать (в отличии от джуна без опыта, лол). За пол года я отправил около 500 откликов, сходил на 100 собесов и получил всего 4 оффера - поиск может стать долгим и трудным. Ходить на собесы надо. Если тебя позвали, а ты на 100% уверен что не подходишь - всё равно иди. Опыт прохождения собесов решает. Джун который пришел на первый собес и джун, который уже сходил на 50 и умеет держаться на собесе достойно - 2 разных джуна, даже если у них одинаковые знания.
5 (не нашел третий пункт, да?) Возраст и образование
На возраст и вышку по опыту всем было +- плевать. Про Возраст спросили только в 3х РФ компаниях, про вышку только в 2х за все время поисков.
6. Зарплата
Как повезет. Я бы на месте джуна без опыта соглашался на оффер в 1к$ и не выделывался. После испыталки поднимут, если справляешься (если справляешься и не поднимают - ты знаешь что делать). Небольшая ремарка - скорее всего 1к или выше в РФ врядли предложат (Разве что финтех или какой нить X5)
7 (да не будет 3 пункта, успокойся, другалёк) Место поиска
LinkedIn, HH и телеграм каналы. Также в тг каналах иногда можно найти девопс подработку - это даст немного денег и немного опыта который можно указать как коммерческий (указывая опыт в резюме не забудь про NDA). Но 10000 раз подумай хватит ли у тебя сил вывезти даже банальную на первый взгляд подработку.

В итоге после полу года страданий я нашел работу в компании в ЕС, полная удаленка с неплохой для джуна ЗП и отличным коллективом с минимумом бюррократии (во всяком случае по отношению ко мне). Скорее всего учиться будет трудно а искать долго, но это определенно стоит того - в обмен на усилия ты можешь получить работу не привязанную к месту жительства и рублю, которая будет тебе интересна и где ты реально будешь расти как в своих глазах так и в профессиональном плане (пока не выгоришь и не уйдешь делать мебель из дерева в маленькой избушке в лесу - к чему мы все на самом деле и стремимся)

136