Как войти в IT программистом?

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

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

Всего мы ответим здесь на следующие вопросы:

Как войти в IT программистом?

Что учить?

Чем бы вам хотелось заниматься?

Игры

Если вы хотите создавать игры - будьте готовы к самому хардкорному варианту, денег не так много, конкуренция большая. Для создания игр в основном используются игровые движки и два самых популярных из них - Unity + Unreal Engine. И соответствующий им язык - C# или C++ соответственно.

Frontend

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

Для Frontend самые популярные технологии - Angular/React/Vue, мой личный фаворит - это Vue. Но на React больше спроса. И язык для этого всего - JavaScript.

Мобильная разработка

Для мобильной разработки - есть два основных варианта - либо идти в нативную разработку (когда пишите на языке “родном” для телефона), либо в кроссплатформенную, это когда на одном и том же стеке технологий пишите под разные платформы (телефоны).

В нативной разработке для Android - Kotlin/Java, для IOS - Swift.

В кроссплатформенной - фаворит рынка - React Native, мой личный фаворит - Flutter.

Backend

Для backend разработки, это когда вы любите больше решать задачи про логику, как должно работать, как может, математика, логика это ваши верные спутники (потом уже алгоритмы, парадигмы, паттерны и прочее).

Есть два подхода, дорохо-бохато-долго и быстро-стильно-молодежно

Первый подход - для сложных разработок и больших проектов, которые практикуют большие компании по типу Netflix, Сбербанк, Microsoft и тд, и крайне редко его используют стартапы или молодые компании и учиться таким технологиям дольше. Но и зарплата больше. Тогда ваш выбор падает на Java (Spring) или C# (.Net core)

Второй подход - наиболее часто используем для разработки всего современного, самые часто используемые языки для этого (из еще не мертвых) - Node.js, Python, Go

Blockchain

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

По этому пути твои верные спутники - Solidity, Truffle/Hardhat, Web3.js, Node.js(javascript). Есть еще конечно и другие стеки, по типу Rust (Solana/Near), Haskell (Cardano), но упомянутый мной стек - это лучший вариант для новичка.

Как учиться?

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

  • Найдите вакансии на которые хотели бы устроиться и посмотрите что там требуют, из минусов не все хорошо описывают вакансии и весь стек, тк подразумевается что вы и так это знаете
  • Более крутой способ - Roadmap, переходите на сайт roadmap.sh и находите нужный вам путь и технологии

Где учиться - я большой НЕ сторонник всяких “образовательных” школ, просто следуя из мотивации таких школ, им ВЫГОДНО чтобы вы ДОЛЬШЕ обучались, тк тогда заплатите больше денег. А вот курсы, это тема, лично я пользуюсь Udemy и Youtube, но лучше всего Udemy или аналоги, потому что там есть:

  • Отзыв о курсе от учеников
  • Рабочие материалы
  • Свободный график, все курсы нормальные - это оффлайн видео, учитесь где и как удобно
  • Иногда контакт с преподователем или коммьюнити

Для любого выбранного направления вам нужно будет найти курсы/уроки/статьи по следующим вещам:

  • Основная технология и язык (допустим vue и js)
  • Вспомогательные технологии в стеке (будь то БД, Docker, Vuex/Redux и тд)
  • Инструменты разработки (IDE/ системы контроля версий - Git/Perforce/другое)

Все это есть в Roadmap

И алгоритм простой: ищем ЧТО учить, ищем КУРС по этому, после курса - закрепляем практикой.

Как практиковаться?

Есть две основных направленности практики - это привыкнуть к языку/синтаксису/алгоритмам и тд, те то что НЕ РЕШАЕТ бизнес задачу, а решает ТЕХНИЧЕСКУЮ задачу - это тоже крайне важно особенно на первых порах, когда вы только привыкаете к языку программирования, для таких практики таких задач - Codewars или аналоги. Это такие сайты, где есть некая задача, направленная в основном на знание языка, его инструментов и владения его базовыми или продвинутыми возможностями (в зависимости от сложности задачи).

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

Для практики таких задач:

  • Сделайте свой пет проект (домашний проект), придумайте МАЛЕНЬКИЙ проект, и используйте все технологии, которым вы обучились. Его и в портфолио закинуть можно будет)
  • Фриланс - крайне неблагодарный способ, ибо заказчики кидать могут, не объяснять нормально что им нужно, но крайне хорошо прокачивает умение общаться с людьми и продавать себя
  • Стажировка в компании - скорее всего вам будут платить мало, зато есть большой шанс поучиться с ментором, а это + 200% к скорости и правильности усвоения материала (меньше костылей и велосипедов настроите)

Как начать зарабатывать?

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

Быстрее деньги

Различные компании, которые только недавно в IT с радостью нанимают разработчиков, и тк у них навряд ли есть специалисты, которые достойно могут оценить твой уровень - они легче могут тебя принять на зарплату в +-60к рублей, а может и больше. Из минусов такого способа - у тебя скорее всего не будет наставников или более опытных ребят, и много ты будешь изобретать сам, часто учась и закрепляя неверные практики, тк просто сложно оценить какая правильная, а какая нет, никто не скажет)

Больше опыта и быстрее выход на бОльшие деньги

Если хочется серьезнее прокачатся в окружении знающих товарищей - тогда путь тебе в компанию, лучше всего продуктовую а не аутсорс/аутстафф, где уже устоялись технологии, процессы и ответственные за разработку различных направлений. Там тебя уже сразу выделят как Junior разработчика, соответственно и зарпалата скорее всего будет меньше чем у просто “разработчика” как в первом случае, но там быстрее можешь дорасти до Middle позиции и тогда практически весь рынок будет открыт для тебя.

Независимость

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

Послесловие

В общем так, удачи тебе в этом пути, будет сложно, но интересно. Чтобы следить за актуальными трендами, в том числе и в блокчейне, подписывайся на мой канал и вступай в telegram, также я там отвечаю на вопросы)

77
3 комментария

Я веб-разраб и интернет маркетолог. учился сам по ютубе блогам и форумам. Через набивание шишек и курение манов. Както так получилось что работаю в этой сфере. а это было хобби. ну и как бы кайфую с этого

1

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