@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты

Существует ли «карта программиста»? Что и за чем учить?

Доброго времени суток!
Подскажите, кто-нибудь находил ресурс, на котором была бы представлена интерактивная карта пути становления веб-разработчиком/программистом? Что я имею ввиду: например, вы начинаете изучение с HTML. Следующей технологией/языком (ступенью) для вас может быть JavaScript и CSS. Изучив HTML и CSS вам предлагают обратить внимание, например, на препроцессоры или постпроцессоры CSS. Изучив HTML, CSS и базовый JavaScript вам уже открываются различные фреймворки (JQuery, Bootstrap и т.д.). Ну и так далее, так далее. То есть под картой я имею ввиду список всех (ну не всех, самых популярных, известных или хорошо поддерживаемых) технологий, языков программирования, Фреймворков с указанием необходимых минимальных знаний для его использования. Лично я представляю это как упорядоченный граф, где вершины - это технологии, ребра и направление показывают связь между технологиями, а вес показывает сложность изучения технологии.

Может немного сумбурно сформулировал, но надеюсь вы поймете.
  • Вопрос задан
  • 65158 просмотров
Решения вопроса 5
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Нет одинаково эффективного пути для всех и каждого.

Я учился на конкретных задачах. Обучение практически всегда начиналось с состояния хочу сделать вот это (четко осознаваемый конечный результат), но вообще понятия не имею как это делать, и даже с какой стороны подойти и за что хвататься...

Тут главное - настолько сильно хотеть достичь результата, чтобы любые препятствия только добавляли азарта. Чтобы ночами спать не мог и думал о задаче. Это ключевой момент обучения. Все остальное - декорации, способы, инструменты...

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

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

Далее из модулей, как из кубиков лего пытаешься собрать функциональные блоки. Тут важно понимать, что чем более автономные модули и блоки у тебя получаются, тем лучше, особенно для целей тестирования. Если ты забиваешь болт на тестирование, то тебе нечего делать в разработке.

На первых порах, тестирование будет занимать до 99% времени и сил. Заодно подтягивается синтаксис используемых языков (вообще не важно каких), вырабатывается внимательность, концентрация, тренируется память и пр.

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

С этим не рождаются, это выкристаллизовывается за сотни и тысячи часов жесткого баттхерта от неспособности найти, где ты забыл поставить запятую... Когда код из 10 строк прочитан сотни раз вдоль, поперек и наискосок...

Только так, только жесткий хардкор! Если ты не прошел эту фазу, то ты либо родился гением, либо тебе нечего делать в профессии... Это как детские болезни - ими нужно переболеть в детстве.

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

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

Ах да, обложись справочниками по любому инструменту и научись быстро вникать и подхватывать необходимый минимум. Обычно достаточно на 20% владеть инструментом, чтобы решать 80% задач.

В любом случае я за критерий истины держу платежеспособный спрос.
Ответ написан
Пригласить эксперта
Ответы на вопрос 9
Epsiloncool
@Epsiloncool
Программер, веб-девелопер, гейм-девелопер
Я программист с 15-летним стажем активной работы. Программирование - это инструмент для разработки ПО. Такой же как умение ходить для свободного перемещения из точки А в точку Б. Когда ребёнок рождается, нет никакой карты, в которой бы было указано - в какой последовательности он должен изучать ходьбу, чтобы стать в итоге полноценным человеком. Так и в разработке ПО - нет никакой последовательности. Вам нужно изучать всё сразу, понемногу. Причём не теоретически, а практически. Ребёнок не читает книг по развитию умения ходить, не слушает лекции от родителей. Он сразу пробует. Падает, и снова пробует. Пока не научится. С разработкой ПО в точности так же.

Нет никакого смысла читать книги по изучению конкретного языка. Ставьте задачу - "переместиться из точки А в точку Б" (сделать какое-то конкретное приложение) и гуглите по каждому непонятному моменту, пока программа не будет написана. Научитесь правильно строить поисковые запросы.

После того как вы с большим трудом запустите свой первый продукт. вы уже будете знать и уметь в десятки раз больше, чем студент, окончивший пятилетний курс по специальности "программирование" и прочитавший пару толстых теоретических книг.
Ответ написан
w1ld
@w1ld
Программирую
Кажется, тут какой-то перекос в веб-разработку. Вот Гугл предлагает путь на https://www.google.com/about/careers/students/guid... . Наверно, разработчик это не о технологиях, а скорее о навыках решать задачи.
Ответ написан
dkutergin
@dkutergin
Java developer
Ответ написан
Комментировать
@pgamesorg
Ответ написан
Комментировать
shifaley
@shifaley
Маркетолог
Понятные и обновляемые дорожные карты по разным направлениям (frontend, backend, android): https://roadmap.sh/
Визуализация необходимых для веб-разработчика навыков, разбитых на категории: https://andreasbm.github.io/web-skills/
Ответ написан
Комментировать
@MISHA9300
вот самое полное и исчерпывающее руководство.
pastebin.com/8ygzT3qf
Ответ написан
Комментировать
@Ymamoro
Я тоже новичок и меня всегда занимал этот вопрос , мучил просто....
По моему - карта всё таки есть, но пишется она индивидуально! Потому не карта, а надежные ориентиры, для начала....
https://www.youtube.com/watch?v=T70qJndjYi0
Ответ написан
@osem
Есть отличная карта на frontend-science.com, а вот прилагающийся к ней вебинар: https://www.youtube.com/watch?v=H-V3eOafGcQ
Ответ написан
Комментировать
Без уклона именно в веб могу порекомендовать глянуть в сторону SWEBOK - своду знаний по программной инженерии, который принят в качестве международного стандарта ISO/IEC.

Страница по SWEBOK на Википедии.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы