Программист-любитель: крокодил не ловится, не растёт кокос
Читаю давно, написать решил только сегодня. Может, у кого-то этот пост будет резонировать с собственными наблюдениями. Еще лучше, если кто-то знает, что с этим делать.
Есть у меня давнишнее увлечение: программирование. Последние лет пять мой язык - JavaScript. Начинал с других, но уже относительно давно переключился на него. Основная деятельность не связана напрямую с IT, так что применение скиллу - это автоматизировать что-нибудь для знакомых или для себя: тут проверка текста на повторы, там веб-скрейпинг (без жести, все прилично), здесь сбор адресов и рассылки (виноват, здесь PHP был), там допилить страницу на WP. Сайт знакомых поддерживаю, но не потому, что я такой крутой спец, а потому, что они не очень умеют пользоваться даже готовыми решениями (совсем не спецы, то есть).
Но есть желание по меньшей мере попробовать работу программиста, хотя бы проверить свои способности, поскольку код мне нравится не меньше, чем моя основная специальность.
А нет ни одного серьезного проекта или участия в нем. Вообще. Покупал домены, что-то пытался придумать - фантазии не хватило. Сделал сайт, который по идее должен был помогать в изучении иностранного языка - десять пользователей, каждого из которых лично попросил зайти и зарегистрироваться. Через год закрыл.
Недавно решил подкачать межушный нервный узел при помощи Codewars. Есть такой сайт с задачками по программированию, которые проверяются уже готовыми тестами (но вы их при этом не видите). Можно сказать, что эта система учит test-driven development. Дошел до определенного уровня, получил ачивки, был очень этим доволен.
Но, разумеется, все это игрушки. Здесь программист придумал задание, потом создал кучу фиксированных и рандомных тестов, чтобы проверить мое решение на ошибки, а от меня, ученика, требуется только вставить кусок кода. В реальной жизни люди работают с фреймворками и в больших группах, а юнит-тесты пишут себе сами.
Вот я и решил перейти к фреймворкам. Когда я попробовал React, у меня сразу возник ряд вопросов. Правильно ли, что у меня при создании нового пустого проекта в его папку каждый раз копируется несколько десятков тысяч файлов? А зачем так делать? А как мне вот это все, работающее на localhost-е, выложить в интернет? Там же какой-нибудь сборщик нужен, да?.. А с чего это мой компьютер ото всей этой каши подвисает? Неужели я не так что-то настроил? И так далее.
Уроки по Django вызвали примерно такие же ощущения. Прежде чем несчастный Hello World написать, нужно установить Virtual Environment, ибо версии Python разные. И для этого нужно выполнить несколько команд в терминале, которые вообще не имеют отношения к фреймворку, но неплохо бы их понимать, ибо все, что под sudo делается, рекомендуется через мозг пропустить. Теперь у меня несколько тысяч файлов в пустом проекте, и что-то я не пойму, куда код писать. Нет, не сюда, эта куча текста - это конфиги...
Разработка под Android поставила меня в тупик с самого начала. Тяжелая Android Studio, эмулятор Android-устройств, которому не понравился мой процессор, а когда что-то где-то наконец щелкнуло и заработало, я осознал, что не умею даже прикручивать код к нажатию кнопки, и знание Java (ее я до этого учил по книгам) мне вообще никак не помогло.
Но чтобы превратиться из любителя в спеца, не поможет, если вы загуглите все подряд. Если не знаешь, чем ограничен тот материал, что тебе нужно выучить, тогда можно скачать 10 Гбайт мануалов в формате plain text и умереть от старости, прочитав 1%, и то без толку. Кроме того, пассивные знания прекрасно выветриваются.
Интересно, есть ли здесь люди, которые успешно вышли из такого кризиса программиста-любителя?