Лучше свой проект или полный объем необходимых знаний?
У меня нет боевого опыта в программировании, но есть общее представление (институтские лабы на Delphi, минимальный ооп и скриптовые поделки на Python etc. + представление об архитектуре компьютера и C). Хочу с текущей работы перейти в программисты и для себя я вижу два пути, между которыми ерзаю уже почти год: либо делать эфемерный, но интересный мне, Pet-Project на Java/Android, который все равно в последствии потребует минимального бек-энда, либо пойти по более классическому для поздних junior-ов пути: html/css/js/React + Node | .NET | Django ...
Загвоздка в том, что android-проект в какой-то мере авантюрный и, хотя предпосылки для успеха есть, я могу по итогу оказаться в высококонкруентном android-dev сегменте с минимальными знаниями Java, для которой везде высокий порог входа и большое количество претендентов. Реализовать проект в виде SPA/PWA/React Native не вижу возможности...
Денис Загаевский, Если интересна моя позиция, то вот она.
Программирование - это новый эквивалент необходимых навыков человека в рабочей среде: чтение > арифметика > "уверенное пользование ПК" > умение программировать; и в той или иной степени уже мы все программисты-интерпретаторы, превращающие повседневные рабочие задачи в алгоритмы с помощью своих цифровых устройств. Есть только одно НО: еще сегодня тебя ждут, как программиста и заплатят за то, что ты будешь этим заниматься, а уже завтра ты должен будешь уметь это делать сам для себя (тот же таксомат, как минимум, требует навык "уверенного пользования ПК", чтобы просто денег на карту закинуть, да?). Ну и да, начну ли я с пет-проекта или буду идти по пути Full-Stack (что норма уже сегодня), у меня есть идеи в голове, которые я хочу реализовывать - мне не хватает практических знаний, чтобы знать где я смогу их претворить в жизнь и где быстрее это получится.
Я бы проголосовал за свой проект, потому что только в реальных условиях возникают вопросы и ситуации, о которых не прочитать в учебниках. Я когда начинал реальные проекты делать просто офигевал поначалу от объёма проблем, о которых в руководствах ни слова.
Никогда не думал, что существуют "классические" пути для junior-ов. Если сильно постараться, можно устроиться junior-ом и на haskell. Тут есть момент: работая в команде, вы обучаетесь намного быстрее, чем в одиночку. Так что как только появиться возможность сменить работу - дерзайте. Но как правило даже от junior-ов требуют определённый объём знаний. Есть такое наблюдение - первые 5 000 строк кода любого программиста - это шлак. Никто не наймёт человека, который пишет шлак. Поэтому вам стоит заняться своими проектами. Ждать от них коммерческого успеха я бы не стал. Вообще ни под каким соусом. Ставьте цели попроще. Получить такое приложение, которое сделает для меня всё супер: это куда как более подходящая цель. А в каком направлении развиваться - фронтенд или мобайл, или бэкэнд, а может быть пойти в BigData или ComputerVision? - тут важно что вам больше нравиться. Что именно вас привлекает - туда и идите. Потому что максимальных успехов добивается тот, кому максимально нравиться то, что он делает
Делать не обязательно "свой проект", можно какие-нибудь лабораторные делать для обучения. Про пусть тут просто - выучить азы языка и платформы на примерах, задачах с курсов или петпроджекте, после чего устраиваться на работу как можно раньше. При устройстве в первую очередь выбирать лида и команду, чтобы учили хорошему и было у кого учиться.
А выбор ниши - это индивидуальное.