Программист-любитель: крокодил не ловится, не растёт кокос

Программист-любитель: крокодил не ловится, не растёт кокос Javascript, Вопрос, Длиннопост, Framework

Читаю давно, написать решил только сегодня. Может, у кого-то этот пост будет резонировать с собственными наблюдениями. Еще лучше, если кто-то знает, что с этим делать.


Есть у меня давнишнее увлечение: программирование. Последние лет пять мой язык - JavaScript. Начинал с других, но уже относительно давно переключился на него. Основная деятельность не связана напрямую с IT, так что применение скиллу - это автоматизировать что-нибудь для знакомых или для себя: тут проверка текста на повторы, там веб-скрейпинг (без жести, все прилично), здесь сбор адресов и рассылки (виноват, здесь PHP был), там допилить страницу на WP. Сайт знакомых поддерживаю, но не потому, что я такой крутой спец, а потому, что они не очень умеют пользоваться даже готовыми решениями (совсем не спецы, то есть).


Но есть желание по меньшей мере попробовать работу программиста, хотя бы проверить свои способности, поскольку код мне нравится не меньше, чем моя основная специальность.


А нет ни одного серьезного проекта или участия в нем. Вообще. Покупал домены, что-то пытался придумать - фантазии не хватило. Сделал сайт, который по идее должен был помогать в изучении иностранного языка - десять пользователей, каждого из которых лично попросил зайти и зарегистрироваться. Через год закрыл.


Недавно решил подкачать межушный нервный узел при помощи Codewars. Есть такой сайт с задачками по программированию, которые проверяются уже готовыми тестами (но вы их при этом не видите). Можно сказать, что эта система учит test-driven development. Дошел до определенного уровня, получил ачивки, был очень этим доволен.


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


Вот я и решил перейти к фреймворкам. Когда я попробовал React, у меня сразу возник ряд вопросов. Правильно ли, что у меня при создании нового пустого проекта в его папку каждый раз копируется несколько десятков тысяч файлов? А зачем так делать? А как мне вот это все, работающее на localhost-е, выложить в интернет? Там же какой-нибудь сборщик нужен, да?.. А с чего это мой компьютер ото всей этой каши подвисает? Неужели я не так что-то настроил? И так далее.


Уроки по Django вызвали примерно такие же ощущения. Прежде чем несчастный Hello World написать, нужно установить Virtual Environment, ибо версии Python разные. И для этого нужно выполнить несколько команд в терминале, которые вообще не имеют отношения к фреймворку, но неплохо бы их понимать, ибо все, что под sudo делается, рекомендуется через мозг пропустить. Теперь у меня несколько тысяч файлов в пустом проекте, и что-то я не пойму, куда код писать. Нет, не сюда, эта куча текста - это конфиги...


Разработка под Android поставила меня в тупик с самого начала. Тяжелая Android Studio, эмулятор Android-устройств, которому не понравился мой процессор, а когда что-то где-то наконец щелкнуло и заработало, я осознал, что не умею даже прикручивать код к нажатию кнопки, и знание Java (ее я до этого учил по книгам) мне вообще никак не помогло.


Возникает четкое ощущение, что я папуас, который не знает, что такое буквы, и ему не поможет ни ручка, ни тетрадь, ни книга. Хотя алгоритмы и структуры данных я в каком-то объеме знаю, равно как и (если говорить о JS) всякие XMLHttpRequest, Callback, events, exceptions, call stack, стрелочные функции и тому подобное. Историю вычислительных машин и языков программирования тоже примерно себе представляю, ибо нравится, а заодно и с парочкой старых языков знаком (BASIC, C).


Но чтобы превратиться из любителя в спеца, не поможет, если вы загуглите все подряд. Если не знаешь, чем ограничен тот материал, что тебе нужно выучить, тогда можно скачать 10 Гбайт мануалов в формате plain text и умереть от старости, прочитав 1%, и то без толку. Кроме того, пассивные знания прекрасно выветриваются.


Вижу, что чего-то для превращения в профессионала не хватает, но не пойму, с какого конца к этой проблеме подступиться. Отсутствие опыта работы означает, что я не смогу быстро включиться в какой-либо проект, а буду, как блаженный, спрашивать: "А это что? А это как?", пока у кого-нибудь не лопнет терпение.


Интересно, есть ли здесь люди, которые успешно вышли из такого кризиса программиста-любителя?

Лига программистов

1.6K постов11.5K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества