Прошлый мой краткий пост Не skillbox. Бесплатно освоить JavaScript + React вроде как зашел пикабушникам и в уведомления я даже получил "Им понравилось, давай исчо!", так что как и обещал, пишу больше информации о своем проекте, который, надеюсь, поможет желающим освоить профессию JS/TS Front/Back/Fullstack Developer. Другие профессии здесь пока не предлагаются, я в другое не умею и я не огромная контора, предлагающая 100500 курсов. Но зато бесплатно :) А главное - может и не менее эффективно. Во всяком случае свой профиль я знаю очень хорошо и охотно делюсь опытом.
Итак, в чем моя идея и чем мой проект https://freecode.academy отличается от других площадок? Повторюсь, что у меня за плечами 14 лет активного опыта в программировании, так что эту кухню всю знаю не по наслышке, и могу точно сказать: за последние несколько лет все очень сильно поменялось. Раньше все было сильно проще. Почему? Да потому что раньше специалисты делились просто по языку программирования и по уровню. В общих чертах все. Если ты пишешь на Java, то ты уважаемый джавист. Если ты на PHP пишешь, то ты пых-пых программист и джависты тычут в тебя пальцем и смеются:) Я сам более 10 лет на PHP писал. Если ты JavaScript, то ты или Java или Script просто фронт-программист и когда-то открыл для себя жуквери и стал молиться на нее за то, что теперь не приходится писать три версии кода под три разных браузера. А что сейчас? С Java и PHP примерно осталось все то же самое. А вот в мире JavaScript творится какая-то дичь. Технологий и направлений наплодилось столько, что даже если ты будешь не изучать их, а просто выписывать названия всяких библиотек, ты не будешь поспевать за вновь появившимися :) И вот что из всего этого изучать?
И тут, как мне видится, правильней отталкиваться все-таки от пожеланий заказчиков, потому что "кто платит, тот и музыку заказывает". Ведь какой смысл что-то учить, если за это не будут платить деньги, верно? И тут есть два основных варианта:
1. Заказчик - IT-компания или около того. Если вы хотите устроиться в штат, то там скорее всего будут знать, что от вас требовать. И требовать скорее всего будут что-то более современное, популярное. Соответственно, если вы будете знать что-то маловостребованное, то и выбор вакансий для вас будет весьма ограниченный и скорее всего за небольшие деньги. Для примера, я 10 лет проработал с MODX и был одним из сильнейших специалистов в мире. Но 3 года назад совсем с ним завязал, потому что они ну совсем выпали из тренда. Сейчас специально зашел на hh.ru, посмотрел вакансии по запросу MODX. 28 штук... Не густо. Для сравнения React - 2505 штук. Я совсем не прогадал, когда сменил стек.
2. Заказчик просто хочет продукт. То есть если заказчик разовый и просто хочет от вас какой-то продукт под свои нужды (сайт или типа того), то скорее всего такой заказчик мало разбирается в технологиях и его не особо парит на чем вы будете писать, главное - дали продукт. Здесь вы вольны выбирать стек как хотите в соответвии со своими предпочтениями и как бы все для вас хорошо. Но с такими заказчиками как правило fix price. То есть у вас будет какой-то оговоренный бюджет и срок, и чем быстрее и с меньшими издержками вы сдадите проект, тем больше вы получите чистую прибыль (или убыток). И здесь для вас опять-таки стек имеет значение. Вторая причина (и основная) почему отошел от MODX и PHP - это большие сроки разработки. Я тогда работал над не маленьким стартапом, где концепции часто менялись и приходилось много чего менять на уровне базы данных (а эти изменения конечно же затрагивали весь проект в целом). Бывали дни, когда я целый день с утра до вечера просто менял несколько колонок и связей между таблицами, затем актуализировал код. Целый день! Сейчас такие операции проходят за считанные минуты. То есть я не бросил проект, а переписал его на новый стек. Конечно не все сразу полетело и по началу было долго, но со временем я больше освоился, набил руку, познал более правильные методики, открыл для себя всякие полезные кодэгены и т.п., и сейчас многое просто автоматизированно.
В общем, рассмотрев кратко вот эти пару примеров, можно вывести следующее:
1. Не обязательно учить все и сразу. Достаточно выучить то, что нужно рынку здесь и сейчас.
2. Технологии и спросы меняются. То, что ты выучил вчера, сегодня может уже не понадобиться, надо учить другое.
3. Учиться надо всегда. Но парадокс в том, что надо знать, что учить.
В итоге я решил, что надо к решению этого вопроса подойти более технологически и разработал "Кривые обучения" или, как я в итоге это назвал - "Стратегии развития". Если коротко, то есть справочник Технологий и набиваются Отдельные стратегии типа
- Web Developer Junior, в рамках которого надо освоить CSS начальный, HTML начальный, JS начальный.
- React Developer Junior, в рамках которого надо освоить "Web Developer Junior", React начальный.
И так далее и т.п. Каждый сам себе выбирает свои Стратегии развития.
Я не буду еще сейчас рассказывать про систему уровней самих пользователей и связи этого со стратегиями, это очень много буков, но кому интересно, вот здесь подробней расписал: https://freecode.academy/topics/strategii-razvitiya
Здесь плюсы в том, что отдельные стратегии проще оценить с точки зрения сложности, трудозатрат и коммерческой привлекательности. И проще потом сделать выбор что стоит изучать, а что нет. Ведь если стратегия уже потеряла актуальность и рынком специалисты с такими технологиями не востребованы, то и учить ее не надо, верно же? В свою очередь если вырисовываются новые тренды и появляются интересные Стратегии, то вам проще сориентироваться что вы уже знаете, а чего не знаете и сколько на это учиться. При этом вам скорее всего не придется учить много всего лишнего, потому что далеко не все, что распиарено, на самом деле нужно и будет востребовано всегда.
Так что если вы хотите научиться веб-программированию, предлагаю рассмотреть и мой проект. Вполне возможно он вам в этом поможет. А если не поможет, то вы хотя бы не много потеряете, ведь все бесплатно :) А вообще здорово будет, если вы дадите обратную связь. Я все учитываю и самое интересное обязательно внедряю в проект.