Эта статья является результатом моих умозаключений в процессе самообразования по профессии — программист, разработчик. Два понятия близки по значению, но всё же разработчик это более высокий уровень, это человек умеющий принимать стратегические решения, как правило на начальном этапе создания программного продукта. А программист выступает в роли исполнителя, работает на тактическом уровне в решении поставленных задач. Самый нижний уровень — кодер, человек просто пишущий исходный.
Представим себе некоего «абстрактного» разработчика/программиста который создаёт программный продукт. Будем рассматривать его не как живого человека, а как некоторое облако знаний, накопившихся в его голове за годы работы. Наш абстрактный программист — профессионал практически во всех областях, это наш идеал к которому нужно стремиться. Недостижимый идеал! Но как сформировать облако знаний в своей голове? В каком порядке эти знания должны поступать? Как эти знания классифицировать?
Начнём с того, что совокупность информации, знаний, вобще трудно поддаётся классификации. Это как органы человека — каждый для чего-то нужен, каждый по своему уникален, как детали автомобиля — отсутствие важного узла делает невозможным эксплуатировать всю систему. Зададимся вопросом: «Что должен уметь программист?» или «Что нужно знать разработчику?» Поискав информацию по этим вопросам в Интернете нашел много похожих стаей с «кашей» в виде советов перечисляющих некоторые популярные языки программирования, фреймворки и другие модные тренды.