Что нужно знать, чтобы начать работать в IT?

Привет-привет, DTF!
Во вчерашней статье, появился интересный комментарий. Я начал на него отвечать, но понял, что вопрос настолько хороший, что заслуживает отдельный статьи.

Собственно, сам комментарий:

Что нужно знать, чтобы начать работать в IT?

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

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

Разрушу Ваши ожидания - да. Более того, даже если Вы чувствуете, что эти знаний недостаточно - всё равно да.

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

Мой, субъективный, опыт, показывает, что лучше всего мы прокачиваем свои навыки в реальных проектах. Когда есть какая-то цель, четко сформулированное ТЗ, где есть ответственность за доведение проекта до конца. Не маловажным фактором, также будет наличие наставника, у которого Вы будите перенимать опыт.

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

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

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

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

Шаг 1. Анализ рынка

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

Беглым поиском глазами, я замечаю, что на данный момент, больше всего вакансий для спеца со знанием Python это - Django-разработчики и специалисты Data Science.

Как я отметил выше, мне кажется человек знаком с Machine Learning и второе направление ему будет ближе. Пройдясь по вакансиям в этих направлениях, я могу составить примерный портрет специалиста из этой области.

Специалист Data Science

  • Нужно знание Python (библиотек pandas, numpy, sklearn, pytorch, etc)
  • Нужно знание SQL
  • Было бы неплохо иметь опыт 1-3 года
  • Высшее математическое образование

Тут важный момент, что далеко не обязательно соответствовать всем этим требованиям. Если какое-то из требований (как например, знание английского языка) будет для компании критично, она вынесет это жирным текстом в первом же предложении. Как правило, этот набор джентельмена, кочует из одного объявления вакансии в другое и если Вы не подходите, по какому-то из пунктов - не стесняйтесь отправлять своё резюме.

Вернемся к нашему кейсу, допустим человек соответствует первому пункту, но не подходит по трём остальным. Что делать? Навёрстывать упущенное.

Для начала разберемся с SQL - это базовый навык для специалиста из области Data Science, без него нас не возьмут на работу. Придётся учить.

С высшим образованием не всё так однозначно. Хорошо если оно есть, не беда если его нет. Давайте зададимся, что конкретно из вышки математика нам понадобиться в работе? Теория вероятности и мат.статистика (на каждую отводится по семестру). Можем в интенсивном темпе полистать методички, поучить данный материал.

В сухом остатке, через ~полгода мы имеем соответствие 3 пунктам из 4. Остался опыт. Но как его добыть, если без него никуда не берут? На самом деле это стереотип, который поддерживают сами же работодатели, указывающие обязательность опыта работы в своих объявлениях, даже на позицию Junior-разработчика.

Если Вы придёте на позицию Junior-разработчика в направление Data Science с базовыми скиллами в SQL, знанием ML библиотек на Python и мат. статистики, вопрос приглашения на собеседование - дело пары недель.

Шаг 2. Подготовка к собеседованию

Вот, Вы, получили желаемое приглашение на собеседование. Что дальше? Ну, не стоит радоваться раньше времени. Мы могли написать в отклике всё что угодно, работодатель это понимает и будет тщательно нас проверять.

Но и здесь не стоит паниковать. На самом деле, на YouTube есть тысячи примеров собеседований на ту или иную вакансию. Есть даже целые каналы компаний, которые записывают свои собеседования и делают на этом контент. После того, как посмотрели несколько подобных видео, Вы, сможете легко смоделировать в своей голове возможный диалог на собеседовании. Это придаст Вам уверенности в себе и своих силах.

Шаг 3. Решаем задачки

С определенной долей вероятности, на собеседовании Вас будет ждать задачка, решив которую, каким-нибудь оптимальным способом, Вы, существенно повысите свои шансы на успешный оффер. Но как к ним подготовится? Тут Вам понадобится два сайта:

  • LeetCode - на нём хранятся задачки с собеседований всех ведущих IT-компаний. Не переживайте, Ваш, работодатель считает себя ничем не хуже Google или Apple, и с определенной вероятностью возьмёт задачку с собеседования в эти компании.
  • CodeWars - хороший сайт, для расширения границ познания. Можно посмотреть, как одну и ту же задачку решают тысячи программистов. Если хотите удивить работодателя необычным решением - Вам сюда.

Выводы

Отвечая на вопросы вопрошающего - подытожим.

1. Где найти информацию о минимально необходимых навыках для трудоустройства?

- На сайтах с поиском работы, среди вакансий по интересующему Вас направлению

2. В каком направлении мне двигаться?

- Если моя догадка верна, и Вы уже сталкивались с Data Science/Machine Learning и Вам это нравится, то продвигайтесь по данному направлению. Дальнейшие шаги, я описал в статье выше. Если же я ошибся и у Вас только общие представления о Python, то взгляните также на Django, может это привлечёт Вас больше.

Вот такой текст назрел у меня в голове на эту тему. Часто анализируем с учениками, их дальнейшее развитие. Я стараюсь прислушиваться к ним и придерживаться описанного выше плана, чтобы определить их дальнейший вектор развития. Надеюсь помог и Вам :^)

2121
35 комментариев

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

11
Ответить

Наверное, этот вопрос не потеряет свою актуальность никогда.Скажи спс если через 10 лет питонщики еще вообще будут нужны, "никогдашный". ГПТ уже на питоне ебашит так, что можно кодить вообще его не зная.

3
Ответить

мне понравилось недавно мнение, что ГПТ всегда будет вне контекста. Поэтому оно не сможет полноценно заменить программиста. Только как помощник. А про "10 лет питонщики еще вообще будут нужны" слыжу уже 20 лет про php. И то, иногда судя по рынку ощущуние, что питонщикистали нужнее пыхеров

5
Ответить

Ну, советы из этой статьи, я думаю, применимы и к другим областям ИТ. А про ГПТ, возможно. Я своих студентов активно призываю генерировать себе портфолио с помощью него (или хотя бы идеи для него), чтобы быть владеть актуальной технологией. Нейросети - это, конечно, хорошо, но это лишь инструмент, упрощающий процесс разработки. Конечное решение всё равно принимает человек, который должен иметь хорошее представление, о том, как эта нейросеть работает.

2
Ответить

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

Ответить

Чтобы работать в IT, нужно НЕ знать, что вы оставите там своё душевное здоровье.

Ответить

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

4
Ответить