Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Достаточно ли для звания программиста освоить язык, ООП, кучу паттернов и не знать, как работает созданная программа внутри компьютера?

ПрограммированиеПрограммы+3
Крехта Виталий
  ·   · 5,1 K
Программист. Пишу десктопные приложения на императ...  · 3 нояб 2021
Для того чтобы быть программистом:
  1. ООП и паттерны очень желательно, но не обязательно. Ниже объясню почему.
  2. Абстрактные типы данных (АТД) и алгоритмы.
  3. Дискретная математика, хотя-бы кое-что оттуда: математическая логика точно нужна, с множествами в том или ином виде тоже работать придётся.
  4. Какой-нибудь язык программирования, с помощью которого можно применять знания из первых трёх пунктов.
За пределами этого списка будет математический анализ (он же матан), линейная алгебра, аналитическая геометрия и уравнения теоретической физики - это нужно далеко не всем программистам.
А вот как работает программа на уровне железа очень многие смутно догадываются, и даже если когда-то учили, то уже даже не помнят.
======================
Программисты бывают очень разного уровня! От младших (junior), которые скрипты пишут на LUA (и вообще мало что знаю и умеют), до людей с суперквалификацией.
Программисты разные нужны: работы много, и поручать несложную работу, с которой справится человек с минимальной квалификацией, человеку с суперквалификацией (senior-developer) очень расточительно. По моему опыту на одного senior'а на предприятиях приходится 2 средних разработчика (middle) и один junior.
Однако для разработки, кроме паттернов и ООП, необходимо хотя-бы что-то знать об АТД и алгоритмах. Уметь писать работающий код всё-же нужно: ООП и паттерны - это всё-таки методы структурирования кода. При собеседовании на работу очень много людей отсеивается, которые не могут даже обойти дерево.
Программист - это всё-таки инженерная специальность, и если в дипломе ничего не написано про программное обеспечение, или даже самого диплома нет, то программистом тебя могут назвать на работе. Для этого нужно как минимум собеседование пройти, а без АТД и алгоритмов это вряд-ли удастся. Притом иногда ООП даже не нужно: например, если идёшь писать на вышеупомянутом LUA, то там про ООП могут и не спросить, однако знание таких АТД как массив, строка, список, стэк и т.д. необходимо.
Иногда нужна математика: разработчикам встроенных систем часто приходится писать на C (без плюсов), и там иногда никаким ООП даже не пахнет, зато бывает физика с математикой.
Кроме того, (практически) всем очень не помешает знание дискретной математики - иногда без неё вообще никуда. Однако, когда вы откроете учебник по "дискретке", то неожиданно для себя обнаружите, что как минимум кое-что из дискретки вы уже знаете - проходили раньше на других предметах. Пройдите по последней ссылке, посмотрите - наверняка кое-что вам знакомо.
А зачем ваши списки, листинги если у вас в работе Atm, Arduino. О какой математике может идти речь, если у вас 512... Читать дальше
Веб-разработчик, геймер, специалист по этике  · 5 дек 2021
На каком уровне абстракции вы задаёте вопрос "как работает созданная программа внутри компьютера"? Ответ на мой вопрос напрямую покажет квалификацию разработчика ПО. Нельзя взять и "освоить язык, ООП, кучу паттернов". Что вы... Читать далее
2 эксперта согласны
программист c#, чтец православной церкви, транспор...  · 18 нояб 2021
Для звания программиста достаточно устроиться на работу программистом. Можно при этом быть электриком и не уметь программировать вообще. Это реальный случай в моей практике - в одном из городов нашей необъятной родины, в... Читать далее
программист  · 3 нояб 2021
Нет «звания программиста». более того доя разных областей программирования требования к знанию архитектуры ЭВМ и технологического стека разные. если «экспертео» (т.е. без ссылок, а по наитию) отвечать на ваш вопрос, то ответ... Читать далее
Диванный философ, по совместительству инженер  · 29 дек 2021
Один мой ВУЗовский преподаватель еще в начале 90-х сказал очень правильную вещь. Задал вопрос, чем профессиональный программист отличается от любителя-энтузиаста. Ну мы естественно ответили ну типа: "знаниями". На что... Читать далее
Head of the Testing Expertise. Индивидуальное...  · 3 нояб 2021
Программист - это человек, который может создать алгоритм решения задачи. Кодер - это человек, который может писать программы на 1-2-3 языках. Знает паттерны, ООП и т.д. Программист все же инженер, который создаёт решение задач... Читать далее
1 эксперт не согласен
Ваша классификация не совпадает ни с одной более или менее современной. программист (programner или software... Читать дальше
Учитель - увлекаюсь нейронными сетями, создаю...  · 7 янв 2022
Мне нравится постановка вопроса - "внутри компьютера". Глубоко и надолго. Если бы все сороконожки задумывались как работает внутри её 25-я нога, то, наверное было бы трудно ходить. Программисты не думают, что там внутри - они... Читать далее
Лучший ИТ-журналист РФ по версии Минцифры...  · 2 нояб 2021
Думаю, что достаточно. Электрику ведь необязательно знать, как именно работают современные лампы, его задача — правильно подключить люстру, чтобы светильники загорались в нужных сочетаниях.
1 эксперт согласен
О чем и речь. Будет ли программист, программистом, если научился собирать программу из больших модулей. А потом с... Читать дальше
В программировании с 1977 года. Последние года...  · 3 нояб 2021
Забавный вопрос. Звание #тыжепрограммист присваивают ламеры всем, кто каким-либо боком имеют отношение к IT: Системным администраторам Тестировщикам Архитекторам "Продинутым ламерам" (например, умеющим использовать функции в... Читать далее
1 эксперт согласен
Точно-точно :) Кого у нас только "программистом" не называют, в том числе тех, кто никогда ничего не программировал... Читать дальше