После того, как я написал статью «Почему не нужно учить Python первым языком», я на регулярной основе получаю много вопросов в личку, что лучше выбрать, как быть и так далее. Поэтому в этой статье я расскажу вам свои мысли на этот счет. И самое главное отвечу на «Священный Грааль» всех новичков: «Какой язык выбрать для обучения программированию».
За свою относительно небольшую карьеру, я прошел путь от продажника 1С, специалиста технической поддержки, QA-Manual, QA-Automation, QA-Lead, Developer. Поэтому у меня есть определенный опыт.
Вы никому не нужны
Когда в интернете пишут, что идет большой дефицит на it-специалистов имеется в виду дефицит людей, которые решают вопросы. Т.е. это специалист уровня middle+, который имеет боевый опыт на проектах (в идеале highload проектах), знает все вторичные инструменты (git/jira/testrail/IDE итд). Знает, как писать техническую документацию, как готовить код к ревью, как работать с продактом, тестерами и так далее. Знает паттерны энтерпрайз разработки, может в чистый код и так далее. Таких людей на самом деле мало.
А вот тех, кто нихера не умеет, но при этом пыжится и что-то там хочет – вагон и целая тележка. Просматривая резюме, которые присылают на вакансии разработчиков, я тихо офигеваю от того, насколько у людей не сходится их компетенция и запросы.
Поэтому держим в голове, что если вы ранее не имели опыта в IT, либо только закончили универ и до этого нигде не работали – вы вообще никакой ценности не имеете для работодателя. Даже наоборот — будете вредить работе и отвлекать других спецов.
Технологии не имеют никакого значения
Вторая тема, которую любят обсасывать, это выбор языка программирования. В общем, это действительно имеет значение, но не в той плоскости, которую рассматривают новички.
Например, я хочу работать на python, потому что это лаконичный язык программирования, у него есть встроенные декораторы, математические либы и прочий сахар. Это все херня, которую могут позволить себе разрабы с 5+ летним опытом работы.
Когда вы все еще на старте, единственное, что должно вас волновать — это наличие работы на конкретном языке в том месте, где вы живете, либо где планируете жить. И в идеале работа начального уровня, либо в компаниях, которые по своей дурости (да, именно по своей дурости) решат вас нанять.
В месте, где я жил, был выбор пойти QA в компанию такси, которая разрабатывала систему автоматизацию приема звонков на Java, либо сидеть и сосать большой елдак с моим стремлением писать код на Python. Ибо в радиусе 2000км – не было ни одной вакансии на Python.
Кто-то скажет про удаленку. Я пробовал. Все вакансии, что были. Были от бодишопов, которые просто кинут тебя на боевые проекты и посмотрят, обосрешься ли ты на них или нет. И, честно сказать, уже со своим опытом, в 99,9% случаев новичок обосрется. Реальные проекты с 50+ апп, конфигами с эншибла, кастомными авторизациями и прочим сложно-архитектурным говном – сильно отличается от того, что новичок учит.
Поэтому все, что вас должно волновать при выборе языка – это наличие работы начального уровня на этом стеке.
Вам нужна строчка в резюме, и ничего больше
Карьеру программиста можно условно разделить на до момента получения первой работы программистом и после.
Я помню свой первый раз, когда я обновил свое резюме, и указал, что я 8 месяцев работаю энтерпрайз-PHP разработчиком (ZEND/SYMFONY) в относительно неплохой компании. Мне 5 дней херачило по 30-50 звонков со всего мира. Я чувствовал себя той самой девочкой блондинкой с того знаменитого мема с неграми. Причем мне шли предложения не только на PHP, но и на Java/.Net/Ruby.
А почему это все произошло? В моем резюме появилось доказательство, что я лучше, чем все те люди, которые кидают заявки после курсов айти, личного обучения, смены специальности и прочее. И вот тогда я уже смог придираться к тому, какой идет стек, какая оплата, условия и прочее.
Поэтому на начальном уровне вам нужно получить строчку в резюме, что вы работаете программистом. Любым способом, на любом стеке.
Лучше быть разработчиком на говно-стеке, чем мечтателем без работы
Если кто-то вам пишет, что какой-то стек унылое говно, но вы можете получить на нем работу с большей вероятность, чем на чем-то модном молодежном — вам стоит рассмотреть его.
Гораздо проще менять стек, когда вы уже разработчик, когда вам платят хорошие деньги, и вы не паритесь о том, на что жить. Нежели учить что-то крутое, но «трудно конвертируемое в рабочее место» изначально и месяцами сидеть без работы.
__
«Какой язык выбрать для обучения программированию» — тот, что позволит вам получить первую работу разработчиком. А вот после этого, вы уже можете извращаться, как угодно, хоть #F с Haskell учить.
P.s. и не тратьте вы уже деньги на курсы, книги лучше.
Автор: hatman