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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

После того как вы с большим трудом запустите свой первый продукт. вы уже будете знать и уметь в десятки раз больше, чем студент, окончивший пятилетний курс по специальности "программирование" и прочитавший пару толстых теоретических книг.
Ответ написан
maxminimus
@maxminimus
просто или ничего
падавану юному говорить для начала свободно надо на основных языках веб-программирования -
js css html

js фирст, потом css и html
надо сразу понять что ты при желании можешь совсем не использовать возможность декларативного программирования стилей оформления и структуры дерева документа

учебник Фленагана надо полностью переварить
и php немного для начала - только основные серверные функции для работы с папками и файлами
или лучше - изучить api node.js - и делать сервер на js

js - очень простой язык, проще некуда, «Лисп в шкуре Си»
и самый кросплатформенный - новичкам самое то
не забываем принцип KISS - ценим минимализм-простоту-легкость
без чужих фремворков и библиотек ты получишь максимальную производительность js - в 3-5 раз ниже чем на Си

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

программирование это решение поставленной задачи -
сам придумай себе задачу в интересной области и решай ее несколько лет пока учишься

клиент толстый, сервер тощий -
сервер используй только для простых функций - чтение-запись данных, сканирование папок, авторизация ...

офлайн и мобайл фирст -
надо сразу понять что мобильный планшет или сенсорный экран - это основное средство ввода 21го века

велосипайд фирст -
чтобы научиться - делать ты должен сам

просветление неизбежно после этого обретешь
и настоящим веб-мастером станешь
или даже джедаем или нинзем, если пребудет с тобой СИла
три-пять лет для этого надо грызть гранит

84e114455f594424ab60590ae6da6dea.jpg

и есть другой путь - темная сторона программирования:
работа по чужому готовому стандартному шаблону-фреймворку
бесконечный круговорот в сансаре капиталистической индустрии
общение с дебилами, психопатами, жуликами, лентяями и тд
офисное или фриланс страдание
легкая заменяемость программиста
вечная доделка-переделка чужого кода
неспособность делать нужный функционал самостоятельно
постоянное гугление готовых решений
депрессия и уныние
//а самые ленивые становятся верстальщиками-недопрограммистами))

нормальные программисты делятся на два типа:
1) инженеры - те кто могут написать шаблон для себя или для других
2) слесари-монтажники и чесальщики-мотальщики - те кто работают в рамках готового шаблона
- оба типа нужны, всё зависит от твоих способностей и талантов
Ответ написан
w1ld
@w1ld
Программирую
Кажется, тут какой-то перекос в веб-разработку. Вот Гугл предлагает путь на https://www.google.com/about/careers/students/guid... . Наверно, разработчик это не о технологиях, а скорее о навыках решать задачи.
Ответ написан
@Ymamoro
Я тоже новичок и меня всегда занимал этот вопрос , мучил просто....
По моему - карта всё таки есть, но пишется она индивидуально! Потому не карта, а надежные ориентиры, для начала....
https://www.youtube.com/watch?v=T70qJndjYi0
Ответ написан
@osem
Есть отличная карта на frontend-science.com, а вот прилагающийся к ней вебинар: https://www.youtube.com/watch?v=H-V3eOafGcQ
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
21 мая 2019, в 22:46
15000 руб./за проект
21 мая 2019, в 22:44
6400 руб./за проект
21 мая 2019, в 22:02
1000 руб./за проект