Наверняка многие задумывались о том чтобы сменить профессию и уйти в программисты, ведь там все только и говорят о больших заработных платах, сидишь дома целый день за компьютером, рай а не работа. Но так ли это?
Недавно я набирал новых сотрудников себе в штат и собеседовал большое кол-во людей, в процессе собеседования мне часто попадались ребята с “курсов” которые не могли понять почему после того как они отдали огромное кол-во денег на курсы не подходят на должность, как правило проблемы следующие:
- человек кроме курсовых заданий ничего не делал, значит опыта 0
- более менее знает язык, но абсолютно не понимает как работает операционная система, значит нет базы, а если нет базы, то шаг вправо или влево и он будет тупить, в текущем проекте нет времени на обучение
- изначальный запрос на деньги, причем немалые. с таким уровнем лучше иметь запрос на опыт, т.е. сделать проект, поработать с другими опытными ребятами, познакомится с недостающими технологиями
- не работал в команде
Давайте разберемся, что нужно чтобы стать хорошим программистом и получать справедливо хорошие деньги.
1. Какие нужны качества?
Неподдельный интерес к профессии
На мой взгляд это самое первое что нужно, потому что профессия потребует от вас большого кол-ва свободного времени которое вы будете постоянно тратить на самообразование, мир IT меняется настолько стремительно, что выпадая из нее на 2 года вы становитесь почти профнепригодным.
По факту интерес не даст вам слиться на половине пути
1.1 Самообучаемость
Лучшее обучение - это самообучение, иначе на курсах вы разоритесь. Самообучение становится возможным, когда есть основные 3 момента:
- умение правильно ставить вопрос
- умение находить качественный источник информации
- умение выделять и правильно структурировать ценную информацию из большого объема
Это возможно подтянуть через практику, но о ней позже.
1.2 Готовность мало зарабатывать первое время
Берете первые проекты на форумах, фриланс биржах, за малую плату или просто отзыв от людей с репутацией. Все это будет отнимать много времени и приносить мало денег, но зато сколько опыта. Через какое то время вы наработаете контакты, опыт, репутацию.
1.3 Контролировать страх
Страх в этой профессии частый враг, потому что всегда будет страх освоить что-то новое для внедрения в проект. Некоторые впадают в ступор и у них не получается выполнить задачу, причины следующие: страх сломать проект, показаться тупым, изучить что то новое и т.д
Мозгу всегда будет больно изучать что-то новое, с этим нужно постоянно бороться.
Этот страх часто будет с вами, но это нормально, просто нужно смириться с ним и контролировать его.
2. Базовые навыки
Я описал качества без которых невозможно будет стать хорошим программистом, теперь разберем базовые навыки которые будут нужны всем независимо от выбранного направления.
2.1 Операционные системы
Любая программа которую вы будете писать так или иначе будет выполняться в операционной системе, поэтому советую хотя бы изучить поверхностно. Поэтому стоит начать хотя бы с этого ролика . Там очень сжато и поверхностно, но этого будет достаточно чтобы потом самостоятельно изучить глубже отдельные темы.
Отдельно хотелось бы выделить Linux, т.к. он в разработке занимает огромную часть, его знания вам будут давать огромные преимущества. Совет: просто поставьте его как основную систему, лучше всего подойдет Manjaro
2.2 Сети и сетевые протоколы
Текущая реальность такова, что практически весь софт работает по сети и использует разные сетевые протоколы, так что вы должны понимать как ваша программа отправляет и получает данные от сервера. Начать можно с краткого курса по ссылке, там не хватает информации про http, ssh, ftp, websocket, но гугл легко вам про это расскажет. Просто хотя бы поймите зачем они нужны и как работают, если что всегда сможете более подробно изучить.
2.3 WEB стандарты, браузеры
HTML, CSS - это стандарты благодаря которым вы сейчас читаете пикабушечку, они рассказывают вашему браузеру что и как показать на вашем экране, так что если вы не собираетесь делать игры, то это нужно понять как работает.
Теперь вы сможете сами понять что быть программистом не так просто как рассказывают в рекламе, и это еще мы даже не коснулись языков программирования.
По этому посту вы можете для себя решить хотите ли вы в это вписываться или нет, если готовы то подписывайтесь.
В следующей части я расскажу как выбрать язык программирования, чем они отличаются и покажу алгоритм который позволит выучить любой язык программирования самостоятельно