Поговорим о том, что нужно делать разработчику, чтобы освоить любой язык программирования с минимальными издержками.
Шаг 1. Понять, а нужно ли вам это вообще?
Мотивация – один из важнейших элементов, с которым необходимо разобраться еще до начала обучения. Причем это касается не только программирования, но и любого вида деятельности. Наличие правильной мотивации значительно повышает шансы на успешное обретение навыков и трудоустройство в хорошую компанию.
Для многих новичков сфера IT привлекательна из-за высокой заработной платы. Надо признать, что зарплаты у разработчиков одни из самых высоких на рынке, потому люди часто осваивают языки программирования, чтобы вырваться из тяжелого финансового положения.
У этой мотивации есть и хорошая сторона, и плохая. Хорошая заключается в том, что отсутствие достаточного количества денег побуждает людей пробовать что-то новое и, возможно, находить дело своей мечты. А плохая заключается в том, что многие, побежавшие в программирование за «легкими» деньгами, в итоге либо вовсе не справляются с обучением (потому что это кропотливый процесс), либо становятся посредственным разработчиками, не получающими удовольствие от своей профессии и выполняющими работу недостаточно хорошо.
Так что решите для себя как можно скорее, хотите вы заниматься кодом или хотите, чтобы деньги сыпались на вас с небес. Если вас интересует второй вариант, то стоит попробовать себя в задачах, требующих меньше отдачи.
Шаг 2. Выбрать язык
Независимо от того, какой язык программирования вы хотите освоить, нужно постараться как можно раньше сделать выбор и бросить все силы на изучение конкретного направления. Постоянно прыгать от технологии к технологии слишком затратно по времени.
Можно пробежаться по «верхам» и надеяться, что этих знаний хватит для трудоустройства, но по факту вы окажетесь в ситуации, когда не хватает более углубленных знаний в одном из выбранных направлений, требующихся для последующего развития. А это приведет не только к ослаблению навыков, но и к падению потенциального заработка.
Чтобы выбрать язык, нужно проанализировать рынок и понять, что именно вы хотите создавать. Надо изучить список популярнейших в мире языков программирования, а также оценить количество доступных вакансий. Также стоит выяснить, какое из направлений разработки вас интересует больше всего. Хотите верстать сайты? Надо метить в сторону JavaScript и веб-фреймворков. Хотите создавать игры? Надо заняться изучением C# и связанных технологий в духе Unity.
Шаг 3. Выбрать правильное место обучения
Качество обучение зависит от того, как вы планируете учиться. Надо признать, что самостоятельно выучиться на программиста можно, но это куда сложнее, чем может показаться на первый взгляд. Придется самому выбирать литературу, сервисы, источники данных и т.п.
Поэтому рекомендуется отдать предпочтение каким-нибудь курсам от проверенных специалистов. Например, онлайн-школа Хекслет обучает разработке с самых основ и базирует все уроки на проверенной временем литературе для разработчиков, вырастившей несколько поколений профессионалов. Если не хотите платить деньги, то можно записаться в школу EPAM. Они на безвозмездной основе готовят программистов с нуля (правда, учат в основном веб-разработке).
Не доверяйте программистам-одиночкам, обещающим сделать из вас специалиста за 2 месяца, если вы подпишетесь на его «невероятный» курс. С большой долей вероятности он ничего не смыслит в обучении других людей и просто решил поиметь денег с доверчивых новичков.
Хороший курс не даст вам 100% шанса стать успешным разработчиком, но значительно повысит вероятность, так как у вас хотя бы появится толковая структура ресурсов и упражнений, помогающих корректно осваивать знания.
Шаг 4. Начинать практиковаться
Старайтесь, получив уже минимум навыков, генерировать собственные идеи для разработки и создавать настоящие продукты. Неважно, что это будет. Вы можете сделать хоть сайт с породами кошек из разных стран, хоть банальный калькулятор. Критически важно, чтобы ваше обучение не заканчивалось на упражнениях в школе или ресурсах в духе Codewars.
Придумывайте настоящие сайты и программы, которые могли бы либо приносить пользу другим людям, либо развлекать их. Так вы с большой долей вероятности напоретесь на кучу проблем и научитесь их решать. Пользы от таких мероприятий будет куда больше, чем от простых упражнений и заучивания теории.
Если своих идей нет, то можно поискать на GitHub интересующие вас проекты на языках, которые вы учите, и дополнить их. Например, устранить ошибки в коде, сделать грамотный рефакторинг или вообще добавить новые функции. С помощью системы пул-реквестов вы можете безопасно совершенствовать чужой код. Помимо того, что вы получаете бесценный опыт, возможно, разработчики проекта вас заметят и даже предложат работу.
Шаг 5. Искать работу
Есть ловушка, в которую попадают многие разработчики, не уверенные в своих силах и тратящие огромное количество времени на обучение. Они начинают изучать технологию, уже умеют делать приложения или сайты, но не рискуют работать в команде. Этот страх постепенно перерождается в блок, мешающий устроиться на работу вовсе. Проблема в том, что опыт обучения программированию и реальный опыт в компании принципиально отличаются и в плане трудозатрат, и в плане перспектив.
Вы можете прочитать все книги и создать массу приложений, но в итоге все равно окажетесь в новой для себя обстановке, как только попадете в команду к другим разработчикам. Из раза в раз вы будете учиться работать заново, и единственный способ быть готовым к этому – поработать во всех компаниях мира. Так что не тяните время и не думайте, что на каком-то этапе обучения что-то щелкнет в голове и вы вдруг будете готовы трудоустраиваться. Вы готовы в тот момент, когда ознакомились с технологиями, указанными в вакансии, и умеете создавать продукты на выбранном языке программирования.
Так что ищите вакансии, смотрите, что нужно для занятия понравившейся должности и бейте в цель, не распыляясь на другие технологии и бесконечное зазубривание теории.
Шаг 6. Изучать новые технологии
Основы и фундаментальные знания – это хорошо, но IT-сфера развивается так стремительно, что вам нужно изо всех сил за ней поспевать. Не занимаясь дальнейшим саморазвитием, вы можете отстать и стать неинтересным для работодателей.
Речь идет не о том, чтобы в момент бума новых криптотехнологий тут же бросать свою работу и бежать в новую сферу. Речь идет о совершенствовании своих навыков в тех технологиях, что вы уже применяете. Даже условный JavaScript постоянно эволюционирует. Появляются новые фреймворки, обновляется базовый синтаксис, расширяется функциональность языка в целом и т.п. То же касается даже языков разметки. Например, CSS регулярно обретает новые способы оформления кода.
Чтобы делать работу эффективно и работать в лучших компаниях, нужно знать, как меняются технологии.
Но справедливости ради стоит отметить, что не во всех организациях внедрение новых технологий происходит достаточно быстро. Иногда даже переход на новую версию фреймворка откладывается на годы. Тем не менее, чтобы не выпадать из потока, надо следить за новинками.
Шаг 7. Читать книги
Существуют и другие сложности, связанные с обучением разработке. Одна из них – становление кодером вместо инженера. Технически в слове «кодер» нет ничего плохого, но в определенном круге разработчиков сложилось пренебрежительное отношение к нему, потому что так начали называть неопытных программистов, базово разбирающихся в создании приложений или сайтов, но не понимающих работу большинства алгоритмов.
Большая часть онлайн-курсов эффективно учит создавать программы как раз на базовом уровне, а о фундаментальной теории не особо заботится. Тут-то вам и нужны книги. Правильная литература позволяет наверстать огромный пласт знаний, делающих из кодеров настоящих инженеров, умеющих правильно задействовать лучшие практики разработки в своих проектах.
Как минимум стоит ознакомиться со списком лучших книг для программистов. Это сильно расширит ваше понимание выбранной деятельности.
Шаг 8. Помогать другим
Метод утки состоит в том, чтобы объяснить кому-то то, что вы сами не можете до конца понять. Выучили новый алгоритм и хотите усвоить его наверняка? Попробуйте объяснить его кому-то, кто разбирается в теме хуже вас или не разбирается вообще. Получилось донести что-то с первого раза? Поздравляем, вы поняли тему. Приходится каждый раз все пересказывать? Попробуйте для начала еще раз перечитать непонятную тему и усвоить знания получше.
Рассказывая другим, как работает программирование, вы сами можете стать более продвинутым разработчиком. Такой подход может помочь быстро расставить в голове все на свои места, а какие-то чересчур сложные структуры данных или функции вдруг могут оказаться предельно простыми и понятными.
Но не спешите создавать собственный курс по разработке (их и так слишком много развелось). Лучше присоединяйтесь к онлайн-школам в духе EPAM или к платформам типа Хекслет, где студенты регулярно общаются друг с другом и обмениваются полезной информацией. Там вы можете проявить себя как программист-активист, а потом и вовсе вырасти до роли ментора.
Вместо заключения
Изучение любого языка программирования сопровождается аналогичными подходами и правилами обучения. Да, техническая основа отличается, но основные идеи всегда схожи, и именно соблюдение общих правил позитивно сказывается на результате.
Комментарии