- PVSM.RU - https://www.pvsm.ru -
Мы писали о фронтендерах [1] и бэкендерах [2], о мобильной разработке [3] и о тестировании [4], но это были частные случаи. Когда человек подходит к первой или очередной профессии, он редко говорит, что станет разработчиком под iOS или проктологом, как правило это звучит «программистом» и «врачом». Специализация приходит позже, с опытом. Но чтобы твёрдо заявить, что ты хочешь стать программистом, врачом, архитектором, геологом и т.д., нужно избавиться от романтизации профессии и подойти к ней здраво и осмысленно. Даже если вы вдруг решили стать программистом, чтобы «войти в айти после 35-ти». Если говорить о программистах с позиций романтики, то это люди, которые превращают наши замыслы в код и делают жизнь лучше, проще, удобнее. Если говорить прямо, то работа программиста — напряжённый, зачастую рутинный труд с множеством плюсов и минусов. Об этом и поговорим.
За термином «программист» могут скрываться узкопрофильные программисты, разработчики программного обеспечения, инженеры, системные аналитики и т.д. Тем не менее, всех программистов объединяет одно — умение облечь человеческие требования в машинный код, чтобы сделать труд или развлечение автоматизированным, удобным, простым. Программист создаёт инструкции для компьютера, в результате выполнения этих инструкций получается какой-то целевой результат.
Вам стоит задуматься, не будущий ли программист вы, если…
… ваша мотивация исходит изнутри, вам нравится процесс управления компьютером, вы хотите не просто использовать программу (игру, приложение), но и знать, как она работает, модифицировать её.
… вы не ожидаете бешеных доходов и не думаете о том, что программирование — новый рок-н-ролл, первично именно желание творить магию: превращать идеи в код.
… вы знаете, как сделать лучше любую программу, любой сайт, любое мобильное приложение. Вы точно знаете, что можно хотеть от программы и мечтает научиться делать совершенный код.
Сегодня программисты нужны везде и я не думаю, что этот тренд изменится в ближайшие 10-15 лет. Программисты нужны в промышленности, науке, космосе, бизнесе, медицине, транспорте и даже не в ИТ-компаниях (шутки шутками, а вы знаете, как трудно найти отличного программиста 1С или разработчика для интернет-магазина на 1С-Битрикс?!). В общем, даже в институте церкви и благотворительности есть спрос на программистов. И это здорово, потому что вы можете не просто выбрать профессию программиста, но и соотнести её со своим увлечением: химией, биологией, механикой, связью и даже историей и лингвистикой. Более того, если вы будете сочетать в себе навыки разработки ПО и основы профильной деятельности, ваша цена на рынке здорово вырастет, а конкуренция изменится.
Поэтому вам нужно понять не столько, где работать, сколько что именно из разработки вам ближе.
Опять же, я перечисляю основные направления, но на самом деле на их стыке образуются новые перспективные сферы, например, обработка естественных языков (NLP), AR/VR, разработка игр, автоматизация тестирования и проч.
Важно понимать ещё одно разделение.
В ходе обучения программированию вы обязательно стокнётесь со всеми сферами и задачами понемногу, поэтому буквально спустя полгода с начала обучения у вас сформируется представление о том, в какую стороны вы собираетесь двигаться. Например, у меня есть знакомый, который не хотел заниматься ничем, кроме того, что связано с программной начинкой читалок. В итоге он прошёл Barnes&Noble, работал с проектами Google и сейчас работает в Китае (доволен, здоров, фанатеет от жизни в стране). У каждого свой путь.
Само по себе написание кода — это не самая сложная задача, гораздо сложнее понять требования, интерпретировать их и перевести в понятный машине язык. Работать с заказчиком кода (здесь мы имеем в виду и клиента, и коллег, и работодателей и т.д.) это всегда нервы и приключения, потому что они сами не знают, что хотят, мыслят упрощённо и считают технологии всемогущими. Но если вы претендуете на то, чтобы быть профессиональным программистом, вам необходимо не только хмуро бить по клавишам, но и активно работать с людьми, с техническими заданиями, требованиями и т.д. Это отличает программиста от простого кодера.
Я убедительно прошу вас не верить в сказки про программистов-интровертов. Если хотите расти в программировании, то засуньте своего интроверта подальше. Если хотите быть интровертом, вы быстро упрётесь в потолок профессионального развития, потому что коммуникации по-прежнему необходимы в деятельности разработчика. Даже на удалёнке вам придётся общаться с коллегами, участвовать в митингах, ретроспективах и обсуждениях.
Можно ли обойтись в разработке без знания иностранного (в частности английского) языка? Можно. Достаточно выучить синтаксис и слова языка программирования, мыслить и общаться вы можете исключительно на русском языке. Незнание языка не будет помехой в карьерном росте, развитии, коммуникациях в очень многих компаниях.
Однако — что даёт знание иностранного языка?
На Хабре было много дискуссий по поводу достаточного комфортного уровня владения английским языком для работы в ИТ-отрасли. По моему убеждению, для того, чтобы не быть глухонемым, нужен минимум Upper-intermediate либо Intermediate с активным говорением (например, вы туговаты в грамматике, но хорошо прокачали язык на учебной программе, в личном общении или на стажировке).
В современных российских вузах есть масса программистских специальностей, есть бакалавриат и магистратура, есть форматы дополнительного образования. Если вы ещё только выбираете свой вуз, то, конечно, стоит идти на специальный факультет, либо на физику, математику и другие технические специальности.
Если программирование вам нужно как вспомогательный инструмент для основной специальности, то либо поищите смежный вариант (типа медицинской кибернетики и информатики), либо обучайтесь параллельно главной специализации.
Если у вас уже есть образование, то для вас есть самообразование, различные курсы, онлайн-школы, корпоративные университеты и т.д. Вы можете изучать программирование с помощью этих средств обучения либо полностью самостоятельно или даже с ментором. О дополнительном образовании можно почитать здесь [6].
Обращаю ваше особое внимание: высшее образование по-прежнему важно, поскольку оно имеет значение для работодателя, нужно при переезде в другую страну, а также даёт базу, основу, которая позволит быстро развиваться в любом новом направлении.
Более того, не столько важно, какой язык программирования вы освоите, сколько важно, что вы знаете о математике, алгоритмах, вычислениях, сетевом и серверном администрировании, принципах организации сетей, стеках и проч. А эту основу как раз неплохо дают в вузах.
Для каждой специальности есть свой набор книг и ресурсов для обучения, но есть вещи, которые стоит прочитать всем.
Эти книги не только содержат практически полезные знания, но и здорово мотивируют, формируют
Из любимых ресурсов:
Вот тут неплохой обзор курсов [12], собранный другим автором, больше конкретики по русскоязычным курсам.
Ещё одна огромная и свежая подборка [13] полезного онлайна для программистов.
Совет: даже если вам иногда лень заниматься, слушайте лекции хотя бы фоном, так вы погрузитесь в терминологию, обратите внимание на какие-то незаметные при напряжённом изучении моменты.
Про программистов ходит очень много мифов и слухов: про характер, грубость, неумение строить личную жизнь и т.д. Но это частные случаи, которые можно найти в профессии. Например, я был одно время близок к сфере медицины и могу сказать, что там тоже немало замужних за работой и женатых на работе, немало суровых интровертов и грубых, но профессиональных ребят (скорее, задолбанных). Да и вообще сложно представить «анклав» счастья в какой-то определённой сфере.
А если программист ещё и геймер… Всегда можно найти пару ;-)
Поэтому я разберу четыре самых популярных мифа.
Если вы учитесь быть программистом, однажды вам обязательно захочется бросить это всё, потому что путь покажется слишком длинным. Вы устанете от однообразных тренировочных задач, каждая неудачная компиляция будет вызывать тупое, болезненное отчаяние, вам будут сниться указатели, рекурсии и принципы ООП (ну или неудачные вызовы функций). Вся эта возня покажется безумного далёкой не только от вашего первого самостоятельного проекта, но и от первого корпоративного мержа…
Желание бросить — первый признак того, что вы идёте верным путём, что вы действительно напрягаетесь, а не мастрячите какой-то код методом копипаста из Google (даже не с GitHub!). Только когда вы настолько натренируетесь на простых задачах, что они вам станут противно скучными, вы сможете уверенно перейти на новый этап с отличной базой знаний.
Совет простой: не бросайте. Отвлекитесь, переспите с этими мыслями, забросьте обучение на неделю и вернитесь. Вы сами не заметите, как в голове что-то «щёлкнет» и всё встанет на свои места и вот он, первый мерж, первое код ревью, первый коммит в open source, первое выступление на митапе, свой пет-проект, первые задачи на должности миддла. Не останавливайтесь — всё будет!
Автор: ru_vds
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/353264
Ссылки в тексте:
[1] фронтендерах: https://habr.com/ru/company/ruvds/blog/487384/
[2] бэкендерах: https://habr.com/ru/company/ruvds/blog/488340/
[3] мобильной разработке: https://habr.com/ru/company/ruvds/blog/495422/
[4] тестировании: https://habr.com/ru/company/ruvds/blog/490328/
[5] мышления: http://www.braintools.ru
[6] О дополнительном образовании можно почитать здесь: https://habr.com/ru/company/ruvds/blog/463031/
[7] Codecademy: https://www.codecademy.com/
[8] Udacity: https://www.udacity.com/
[9] Codewars: https://www.codewars.com/
[10] Coursera: https://ru.coursera.org/
[11] MIT OpenCourseware: https://ocw.mit.edu/index.htm
[12] неплохой обзор курсов: https://habr.com/ru/post/331530/
[13] огромная и свежая подборка: https://ravesli.com/70-besplatnyh-resursov-dlya-izucheniya-programmirovaniya/
[14] Источник: https://habr.com/ru/post/503318/?utm_source=habrahabr&utm_medium=rss&utm_campaign=503318
Нажмите здесь для печати.