Год в программировании: от нуля к почти-работе

Путь в программирование казался сложным из-за высокой конкуренции. Однако, желание найти удалённую работу с перспективами подтолкнуло к изучению этой области.

Начало пути

Первая попытка освоить Java осенью 2022 года была прервана из-за проблем с электроснабжением. Весной 2023 года началось обучение веб-разработке, с использованием уже имеющихся знаний HTML и CSS. За первый месяц были освоены адаптивная и семантическая вёрстка. HTML и CSS оказались проще, чем ожидалось.

Вёрстка сайтов привела к знакомству с JavaScript, который, несмотря на кажущуюся простоту в некоторых туториалах, вызвал сложности из-за отсутствия базовых знаний информатики.

Изучение языков и ресурсов

На заработанные деньги были приобретены книги по программированию. PHP был выбран в качестве первого языка для изучения серверной части веб-приложений, обработки авторизации и работы с базами данных. Книга по PHP была изучена почти полностью (за исключением последней главы по HTML).

После PHP изучался SQL, язык запросов к базам данных. Параллельно проходился Гарвардский курс CS50, с решением задач на PHP, преимущественно связанных с криптографией. В процессе обучения сравнивались языки C (низкоуровневый) и PHP (более высокоуровневый). Использование нейросетей для решения задач не рекомендовалось из-за высокой вероятности ошибок.

JavaScript, React и поиск работы

Ближе к концу лета началось изучение JavaScript, выбор обусловлен его востребованностью на рынке труда. Использовались книга-справочник и уроки Тимура Шемеседина (рекомендовано). Качество онлайн-ресурсов было неоднородным: многие ограничивались объяснением синтаксиса, без погружения в суть программирования. Изучение JavaScript по урокам Шемеседина позволило хорошо понять функциональное программирование.

Затем началось изучение React, библиотеки для упрощения веб-разработки. Сложность изучения React для новичка связана с частыми обновлениями и некачественными руководствами, часто представляющими собой пересказ документации.

Осенью началось изучение C и C++, с использованием лекций Ли Мища (рекомендовано). C используется для низкоуровневого программирования, C++ – для высокоуровневого. Подготовка к собеседованию включала решение задач на LeetCode и изучение материалов Андрея Столярова (рекомендовано).

Ближе к Новому году поступило предложение о работе фронтенд-разработчика с зарплатой 800$ (испытательный срок) и 1000$ (после испытательного срока), удалённо, со свободным графиком.

Собеседование и дальнейшие планы

Собеседование (25 декабря) носило преимущественно организационный характер. Техническое собеседование было отложено и в итоге не состоялось из-за аудита в компании. Этот опыт показал необходимость чёткого планирования времени и фокусировки на понимании принципов, а не заучивании ответов.

После неудачного собеседования началось изучение низкоуровневых тем (ассемблер, архитектура ОС). В данный момент ведётся YouTube и Telegram-канал, планируется собственный стартап.

Главным достижением считается освоение навыков программирования и выбор интересующего направления.

Что будем искать? Например,программа