6 месяцев программирования: мой опыт и итоги обучения

Программирование всегда меня интересовало, но я начал изучать его относительно поздно. Понимание необходимости прикладной специальности привело к выбору веб-разработки. Первые три месяца были посвящены изучению HTML, CSS, PHP и JavaScript.

Первый опыт

Осенью я освоил эмуляцию Linux под Windows (WSL), Linux-терминал и консольный ввод. Изучение PHP показалось неинтересным из-за фокуса на бэкенде и WordPress, поэтому я переключился на JavaScript, посчитав его более перспективным для работы с интерфейсом браузера. Понял, что каждый язык способен решать практически любые задачи, разница лишь в эффективности.

Трудности и достижения в изучении JavaScript

Изучение JavaScript оказалось сложным. Решение около 20 задач на LeetCode улучшило мои навыки, но фронтенд-разработка казалась проще. Попытка участия в Open Source проекте (который, в итоге, не был реализован) подтолкнула к изучению React – фреймворка, упрощающего решение типичных задач. Настройка проекта, сборщиков, линтера и других инструментов поначалу показалась сложной, но со временем я освоил эти инструменты.

Процесс обучения

Мой обычный день включал просмотр видеоуроков, написание кода и чтение книг (в общей сложности около 4 часов). Остальное время я посвящал спорту, изучению английского языка и хобби. Разработка собственных проектов пока не принесла ощутимых результатов.

Используемые ресурсы и технологии

В октябре я приобрел книги по JavaScript и Java (последняя – как резервный вариант на случай отключения электричества). Однако чтение книг показалось неэффективным по сравнению с онлайн-ресурсами, за исключением книги «Создаём динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5».

Опыт работы с TypeScript и NestJS

Использование TypeScript в React создало ощущение, что я занимаюсь преимущественно копипастой и склеиванием кода. Работа с NestJS (бэкенд-фреймворк) усилила это чувство. Частые проблемы, связанные с TypeScript и типизацией, заставляли постоянно обращаться к Google. Несмотря на необходимость TypeScript для трудоустройства, он приводил к написанию избыточного кода.

Переход на C и C++ и новые знания

Непонимание работы проекта на React + TS подтолкнуло меня к изучению C и C++. Выбор компилируемых языков, позволяющих напрямую управлять памятью, дал больше контроля над кодом и производительностью, а также позволил глубже понять принципы работы программного обеспечения.

Измененное восприятие программирования

За полгода моё представление о программировании значительно изменилось. Я понял, что большинство вакансий предполагают рутинную работу, требующую высокого уровня профессионализма, достижение которого требует значительной практики. В настоящее время меня интересует графика и рендеринг.

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