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

Так или иначе, нет никакой нужды хвататься сразу за всё. Изучение всегда начинается с одного, ну может есть смысл выбрать отталкиваясь от текущих задач.
Сергей писал(а):се таки во фронтэнд слегка ударяюсь, так то, что раньше делалось просто изучением html+css+js сейчас не прока
Тебя наверное вводит в заблуждение, что уеб-программирование нынче считается самым востребованным и самым оплачиваемым? Только там до жопы рукожопов и говнокодеров, кто только и умеет как готовые фреймвёрки использовать. С точки зрения ИЗУЧЕНИЯ программирования и освоения технологий - там делать нечего: если сразу в веб-дизайн - высок шанс, что станешь говняным псевдопрограммистом. Работать сможешь, но упрёшься в потолок зарплаты: так как не сможешь в этом сегменте конкурировать с настоящими программистами.
Сергей писал(а):столько инструментов и технологий, что только чтобы их изучить нужно потратить прорву времени,
Они все - похожи. И концепции везде одинаковые. Это если (пока) ты ничем не владеешь - тебе все инструменты и технологии кажутся непонятными и пугающе-разными. А как с одной-двумя разберешься - увидишь, что "всё говно, акромя мочи"

И это не шутка.
Сергей писал(а):ыстро и часто, так же как и умирают и разрабы даже документацию не успевают оформить. Тот же вебпак взять - сколько нервов он мне попортил, инструмент не плохой и развивается, а доков нормальных нет, даже е
Ты похоже не в курсе ситуации

Это такой кромешный АДЪ - что для уеб-разработки бесконечно придумывают фрэймвёрки. А выбор тех или иных определяется (внимание!)
модой, которая форматирует головы заказчиков. Вчера им на Ruby подавай проекты, сегодня на Ангуляр, завтра на АСП.нет и так далее. Глубинной причиной является убожество голого JS и особенно ПХП - они изначально не создавались для тех задач, что ими решают сегодня. Они сломаны на уровне изначальной идеи и с тех пор (с 1995г) всё это тянется. Поэтому для них и придумывают обёртки - чтобы было не так противно работать с чистыми html+css+js+php; чтобы убирать всю нечесть, недостатки языков и особенности работы в разных браузерах "под капот" с глаз долой.
Но к изучению (искусства, хехе) программирования это не относится вообще!
Обязательно почитай:
https://habrahabr.ru/post/312022/И вот это ещё:
https://habrahabr.ru/post/142140/Сергей писал(а):Такие и программки получаться, не более hello world или консольных приложений типа 2*2=4 и вывести резу
Надо просто сразу задачи ставить!
Я когда в ~2010 Flash\AS3 начал осваивать - сразу свой 3Д движок писать начал и к концу первого дня у меня уже трухмерный мир рендерился.
В 13 - на JS\HTML5 пришёл на работу и сразу начал игру писать.
В 2015 - открыл C# и сразу начал на нём делать ПО для анализа сигналов с прибора (с графикой - отображение данных, с вычислениями для обработки этих самых данных и т.д.).
Вообще, ИМХО, нельзя научиться программированию, если сам для себя, из внутреннего интереса, не делаешь ничего... Чуть дальше поясню свою мысль.
Сергей писал(а):А вакансии открываешь - им там нужно знание всего стека технологий .net, MVC и до кучи сайты уметь делать скажем с использованием какого-нибудь Redux+React.js и никак не ме...
1. В вакансиях зачастую пишут лишнего (см. картинку

);
2. Знание фрэймвёрков - не относится к умению программировать. Вообще, редкий HR-менагер способен проверить человека именно на владение программированием, а не на знание каких-то там терминов и-или технологий.
3. Также верно и то, что когда на рынке есть конкуренция (сегмент веб-разработки) - то изволь быть более опытным и знающим, чтобы получать больше денег. Логично же
Что такое уметь программировать:Это нфига не знание какого-то конкретного языка, который вдруг стал популярным, или какого-то фрэймвёрка. Это прежде всего опыт.
Постараюсь кратко:
1. Программист должен уметь спланировать архитектуру своей программы. Так, чтобы потом не пришлось мучительно тянуть дохлый проект до релиза и чтобы не возникало желания переписать всё с нуля. Уметь разделить задачу на части по принципу необходимой достаточности;
2. Спланировать структуру данных, чтобы потом не было проблем, схожих с проблемами предыдущего пункта;
3. Навыки оптимизации. Нужны не всегда, но когда встаёт проблема быстродействия или памяти - программист должен уметь с этим разбираться;
4. Навыки отладки, особенно чужого кода (особо тяжкая и стрёмная штука

). Для начала хотя-бы в своём коде уметь быстро косяки находить и исправлять

5. Знать типовые подходы к решению тех или иных типовых (похожих) задач. Банальный пример: берешь новый для себя язык, на котором ни разу не программировал. начинаешь делать программу. Доходишь до момента, когда тебе нужен цикл: из своего опыта ты знаешь, что в любом (в почти любом

) ЯП есть циклы и надо просто сходить в гугл и посмотреть, как описывается цикл в этом конкретном языке. Бац - загуглил, сделал, херачешь дальше. При реальной современной разработке вообще постояно в гугл приходится подглядывать - обычное дело. В том числе для копирования готовых кусков кода. Пример чуть сложнее: понадобился тебе анализ Фурье на Питоне. Тут можно просто предположить, что это уже наверняка кем-то делалось и тебе жопу рвать не зачем. лезешь опять-же в гугл - и через 3 минуты у тебя кусок готового кода для Фурье-анализа. Или питоновский модуль, у которого это внутри.
6. Очень похожая ситуация со всякими сторонними фрэймвёрками и, допустим, графическими библиотеками: когда у тебя есть опыт - ты берешь какой-то новый для себя фрэймвурк. Этот фрэймвёрк рисует UI. А тебе нужно нарисовать кнопку и рядолм с кнопкой - поле для ввода цифры. Ты знаешь, что эти элементы типовые и они почти наверняка есть среди функций этого фрэймвурка! Тебе просто надо эти элементы инициализировать: или в виде объектов создать, или они какой-то командой внутри самого фрэймвурка создаются. Зная это - ты целенаправленно набираешь запрос в гугл или в документацию по данному фрэймвурку - бац и вот у тебя кнопка и поле ввода для цифры. Или надо изменить внешний вид кнопки. Ты, из опыта, знаешь, что скорее всего где-то описывается стиль. И очень быстро находишь точную информацию, как этот стиль описать и как применить. Самое важное - что всё это НИКАК не зависит от конкретного языка программирования или от конкретного фрэймвйрка! Это везде одинаково! Ты как программист знаешь принцип - и он везде работает...
7. Тоже самое про инструменты - ты знаешь, что бывают компиляторы, а бывают виртуальные машины для байт-кода (в зависимости от конкретного ЯП). Что бывают команды компиляторов и виртуальных машин. Ты знаешь, что в IDE, в любой (!!!) есть горячие кнопки для сохранения файла, есть отмена изменений, есть возможность запуска в режиме дебага, а есть возможность запуска в режиме продакшина. Чьо бывают (опять-же, для любых ЯП и платформ!) профайлеры - которые позволяют определить узкие места в быстродействиии. Что во многие современные IDE встрена интеграция с системой контроля версий, допустим GIT почти всеми поддерживается. Что почти во всех современных IDE есть автозаполнение и есть подсказки. И так далее. И это - одинаково везде, отличия самые минимальные и зачастую эти отличия даже запоминать не надо

8. При этом совершенно НЕ обязательно знать какие-то редко используемые особенности конкретного языка или платформы. То, что называют синтаксический сахар. Не знаешь лямбы в джаве? Да [член] с ними. Или не знаешь, как тернарная операция записывается? Или на собеседовании любят спрашивать всякую дичь, вроде: "а что будет, если a = 1; k = ++a - a-- + a++; " - в реальном программировании это нафиг не нужно, если в реальном коде кто-то такое напишет - ему надо по лицу постучать.
9. На вершине всего находится недоступное для многих знание - что это значит, доводить программу до релиза. Когда ты не программулинку себе в стол написал, а коммерческий продукт, с которым реальные пользователи взаимодействуют. Там фишка в том, что с момента, когда у тебя есть работающая бетта-версия - до завершения остаётся примерно 90% трёдоёмкости

Эта цифра может сильно меняться в зависимости от твоего уровня владения пунктами 1-3. С опытом, трёдоемкость доделки сильно уменьшается. Без опыта - можно вообще не доделать, разработка попадает в так называемый development hell.
Если бы вакансии для водителей писали как вакансии для программистов:
