Окей, вы решили стать программистом. Первая мысль: «значит надо научиться программировать!» Да и в вакансих не зря же пишут «требуется программист».
Выбрали язык, изучили синтаксис: переменные, константы, массивы, циклы, условия. Выглядит все немного не так как в школе в Паскале, но идея та же, не страшно.
И это одна из самых распространенных ошибок новичка — ему кажется что чтобы его взяли на работу, достаточно научиться программировать.
Увы, нет :(
Программирование — только один из аспектов, с которыми придётся иметь дело.
Вот так мог бы выглядеть идеальный работник с точки зрения работодателя:
Реальность в вашем случае будет, скорее всего, скромнее, так как многое из перечисленного нарабатывается только практикой в реальных проектах. В начале пути у новичка в наличии:
К сожалению, в индустрии нет единого стандарта именования уровней крутости программиста. Наиболее распространенная: Junior developer → Senior developer. Как вы заметили, в ней маловато градаций, поэтому иногда между ними добавляют еще Middle.
Однако, я не встречал ёмкого определения этих уровней, и мне по душе другая классификация: «кодер → программист → разработчик → инженер».
Хорошие новости в том, что не все компании ищут крутых. С крутыми и опытными бывают проблемы. Они частенько идут в комплекте с набором тараканов и вредных убеждений.
Когда я руководил в 7bits, мы предпочитали нанимать именно молодых, и обучать их самостоятельно, вместо того чтобы перевоспитывать «звёзд». Многие компании делают так же.
Однако это не значит что такие компании готовы брать вообще всех подряд. Новичков тоже отсеивают, и не слабо.
Идеальная для вас ситуация: закончилось интервью, вас попросили подождать в переговорке, и через неплотно закрытую дверь вы слышите как техдир с тимлидом говорят про вас:
Чтобы услышать про себя такое, не обязательно иметь диплом по Computer Science, не нужно иметь пять лет опыта работы или знать наизусть все тонкости языка программирования. А что же нужно?
Прикинем как размышляет руководитель компании заинтересованный в наборе новичков. Ему хотелось бы чтобы:
Разберем подетальнее:
Тут две вещи играют роль:
У работодателя есть какие-то свои заморочки, и он вас нанимает не потому что вы такой красивый, а потому что по его прикидкам вы довольно скоро сможете приносить ему пользу. В чем эта польза выражается — другой вопрос.
Постоянно будут ситуации когда надо будет быстро разобраться с новой областью знаний. Подход «сейчас я пройду полугодичный курс по реакту/базам данных/swift», а потом «медленно спущусь с горы» больше не сработает.
Понять суть, уловить идею, вкурить принцип — вот что требуется. Конкретикой это обрастёт по ходу работы — не страшно. Как вы этого добьетесь — ваше дело. Возможны варианты, что называется:
Надо понимать, что не всегда нужно упарываться и глотать полугодичные курсы за неделю. Работодателю ваши ачивки за законченные курсы по барабану — ему важно чтобы вы были в состоянии решить конкретную задачу. А для решения конкретной задачи скорее всего хватит и небольшой части того что предлагают изучить на полноценных курсах.
Это большая часть нулевого выпуска рассылки для начинающих программистов. Подпишитесь на курс, чтобы извлекать из программирования не только удовольствие, но и деньги вместе с бодрым профессиональным развитием.