Плох тот программист, которому нестыдно за код, который он писал полгода назад.
Древняя китайская мудрость
Думаю, в 2023-м году уже нет необходимости объяснять, почему нужно “войти в Ай-Ти”. Если последние 10-15 лет вы не провели в анабиозе, то не хуже меня знаете, что IT буквально везде, а квалифицированные программисты являются одними из самых востребованных и высокооплачиваемых специалистов на рынке труда.
Выбор языка программирования
Язык программирования — это инструмент, поэтому выбор определяется спектром задач, которые предполагается решать с его помощью. Чтобы иметь общее понимание, как работают и для чего обычно используются популярные языки программирования, почитайте обзорные материалы о Python, Java, JavaScript, C, C++, C, C#, Go, Swift, Rust. Выберите тот, что вам больше понравится и подходит для ваших задач. Для новичков в программировании обычно лучшим выбором будет Python или JavaScript.
Как изучать язык программирования?
Если вы хотите научиться плавать, нужно плавать. Это подход работает и для обучения программированию — учиться ему лучше всего через практику. Подумайте, какие личные прикладные задачи вы могли бы решить с помощью программирования и постарайтесь это сделать. В любой непонятной ситуации — гуглите. В процессе у вас возникнет множество вопросов, находя ответы на которые, вы наберетесь знаний и какого-никакого первоначального опыта. Для получения теоретических знаний параллельно читайте книги, документацию и статьи, смотрите видеоуроки. Если уж вы встали на эту скользкую дорожку и решили стать программистом, то изучать новые технологии, языки и фреймворки вам предстоит всегда. Горизонт познания в сфере программирования в скорости расширения уверенно соперничает с вселенной.
Подтягивайте английский!
Большая часть актуальных материалов будет на английском, поэтому изучать нужно не только язык программирования, но и подтягивать английский, как минимум, до того уровня, чтобы иметь возможность понимать техническую документацию и прочие англоязычные материалы. Без английского ваша ценность как специалиста стремится к нулю.
Библиотеки и фреймворки
Синтаксис языка программирования — это лишь вершина айсберга. Для полноценной разработки необходимо знание библиотек и фреймворков. В коммерческой разработке приложения редко пишутся с нуля, поэтому в вакансиях среди требований к стеку технологий, которыми должен владеть соискатель, с языками программирования практически всегда соседствуют фреймворки. Они не только упрощают процесс разработки, предоставляя вам готовые и оттестированные решения для многих рутинных задач, но и унифицирует ваши знания, позволяя подключиться к работе над проектом, основанном на знакомом вам фреймворке существенно быстрее, чем если бы приложение было полностью написано с нуля.
Изучите популярные фреймворки для выбранного языка, так для Python это может быть, к примеру, Django, FastAPI или Flask, а для JavaScript — Vue.js, React или Angular.
Базы данных и ORM
Современные приложения редко обходятся без использования баз данных, поэтому критически важным является умение работать с популярными СУБД — MySQL, PostgreSQL, MongoDB, SQLite, а также с популярными ORM. Последние для разных языков и используемых фреймворков будут свои. Так для Python это может быть SQLAlchemy или Django ORM. Здесь важно понимать, что для эффективной работы с базой данных недостаточно знания одной лишь ORM, необходимо понимать, как она работает с СУБД “под капотом” и уметь оптимизировать запросы, которые генерирует ORM.
Сетевые протоколы
Без знания популярных протоколов передачи данных сегодня никуда. Изучите HTTP, HTTPS, FTP, SSH, разберитесь с сетевой моделью OSI (Open System Interconnection).
Системы контроля версий (VCS)
Системы контроля версий помогают разработчикам управлять изменениями в исходном коде, его версионированием, позволяют вернуться к любому ранее сохраненному состоянию и дают возможность удобной совместной работы над проектом целым командам разработчиков. В современном программировании Git де-факто является промышленным стандартом, поэтому здесь нет необходимости выбирать из множества вариантов. Просто освойте его. Этот инструмент предстоит применять постоянно вне зависимости от используемого языка.
Алгоритмы, паттерны проектирования и структуры данных
Знание алгоритмов, паттернов проектирования и структур данных избавляет от необходимости изобретать велосипед для решения распространенных задач, тем самым повышает эффективность программиста.
Основы работы с ОС
Поскольку приложения выполняются не в вакууме, а в среде ОС, необходимо понимание операционных систем, для которых планируется разрабатывать. Наиболее распространенные сейчас — Windows, Linux, MacOS, FreeBSD. Если вы разрабатываете бэкенд приложения важно уметь пользоваться командной строкой Linux и освоить Shell Script.
А что дальше?
В программировании нет предела совершенству. Практикуйтесь, осваивайте новые технологии и подходы к разработке. Изучайте чужой код, участвуйте в Open-Source проектах на GitHub, набирайтесь опыта, и да пребудет с вами сила!
P.S.: В качестве бонуса сегодня у нас выступает универсальная дорожная карта для обучения разработчика — Developer Roadmaps