В конце 2015 года я задумался о том, чтобы свалить со стека php+jquery на что-то более адекватное современным реалиям. Т.к. года с 2011 ajax/spa неумолимо все больше доминирует над старомодным рендерингом средствами php, мой выбор пал на клиентсайд с JS.
До того времени (начало 2016 года) я к JS относился весьма скептически, т.к. еще свежи были впечатления от нездоровых приключений с js3 vs ie6 и иже. Тем не менее проштудировав материалы JavaScript Weird Parts и ролики Зоракса я, внезапно, понял, простил и полюбил JS.
По мере же погружения в прелести ES6+ я стал фанатом JS.
Моё стремление в сторону JS крепчало.
Из фреймворков я сначала позарился на Ember.JS, но что-то путное на нем слепить с наскоку оказалось задачей непосильной, хотя он, безусловно, крут.
Angular v1 мне сразу не понравился чисто интуитивно, как оказалось, это решение было верным.
Внезапно я обратил внимание на React.JS и оно мне прям вот зашло в самую душу. Как оказалось, у этого айсберга не то чтобы двойное, а прям очень многослойное дно, я бы даже сказал днище. но было уже поздно, я уже подсел и, как снежный ком, несся на встречу своему фронтенд-счастью.
Параллельно, впервые за 20 лет практики, я внезапно стал дистанционно "ходить" по собесам, и .... круто обламываться. Особо больно было в первые 2-3 раза. Сказались дурные привычки юности - стремление изучать только то, что конкретно приносит пользу здесь и сейчас, игнорируя "тупую", "бесполезную" теорию. Сыпался на таких мелочах, что стыдно вспомнить...
Еще очень сильно сказывалось то, что 20 лет я работал человеком-оркестром и мастером на все руки сольно в непрофильных конторах. Не было никакой конкуренции от слова совсем и никто не направлял меня мудрой и крепкой рукой в верное русло. Поэтому я болтался как щепка в бурю куда судьба пошлет. Мог и могу везде и всё, но ничего толком и всегда требуется прилично времени, чтобы разобраться да вникнуть.
В общем я осознал, что дальше так продолжаться не может и нужно кардинально сменить парадигму и стратегию. Записал себя в джуны и стал прилежно учить все подряд, что касается тематики фронтенда и JS в частности. Этот финт ушами почти даже не жахнул по моему самолюбию и самооценке, т.к. багаж прошлых заслуг все равно рулит и весьма существенно помогает. Какие бы новые языки не изобрели, какие бы новые навороченные фреймворки не нарожали - базовые принципы всё те же, а когда ими владеешь, то все остальное - дело времени и усилий.
Так вот, чтобы переформатировать мозги с пыхи на JS мне нужно было попрактиковаться несколько сотен часов. Я весьма ленив, поэтому сам себе задачки придумывать бросил сразу после школы и школьных олимпиад - наигрался. Тем не менее без практики никуда, поэтому я пошел на кодварс (пруф:
https://www.codewars.com/users/iCoderXXI) и стал решать там всё подряд. Поначалу код был ужасен, но работал, постепенно мозг привык и качество кода стало расти. Параллельно стало сложно писать на пыхе, ибо кода получается существенно больше при аналогичном выхлопе. Подобный инцидент у меня случился году в 2006, когда я с клиппера мигрировал на пыху, потом было сложно писать на клиппере, ибо он убог. Пока я не знал пыхи, клиппер мне казался весьма недурным языком. :)
В общем материалов и приёмов пришлось освоить массу, на все про все у меня ушло более 1.5 лет в режиме 2-4+ часа ежедневных занятий. За это время я умудрился завалить порядка 10 собесов, пока, наконец, не выстрелило.
Тем не менее мне еще очень многому предстоит научиться, т.к., по сути, мой потенциал - это матёрый сеньёр/архитектор, а реально я пока мидл по части фронтенда. :) Рассчитываю за следующие пару лет устранить этот досадный разрыв.
Это я все к тому написал, что переучиться можно в любом возрасте (мне 36), было бы желание и упорство.
В общем я настоятельно рекомендую упор делать в JS/HTML5+/CSS3+ и React/Vue (хотя тут по вкусу, но на эти два "фреймворка" приходится существенная доля вакансий и заказов).
ВАЖНО! Если раньше не доводилось программировать, то в обязательном порядке параллельно с JS нужно освоить базовые знания/навыки в алгоритмах и структурах данных, а, так же, базовый уровень в информационных технологиях, иначе многое будет просто непонятно, будешь буксовать часами и днями на всяких глупостях.
P.S.: На htmlacademy курс мне нравится (я там подрабатываю наставником). Однако мне очень хочется, чтобы курсанты приходили несколько более подготовленные по части алгоритмов и структур данных.