Навеяно статьёй с тем же названием.
Вначале разберем сам вопрос: Что такое «можно сказать»? Кто это может сказать? Какая информация доступна оценивающему? Вариантов как минимум три, для которых хотя бы эти аспекты относительно известны. Первый — сам человек, второй — его ближнее окружение, включая работодателя (каковой может потянуть на отдельный пункт), третий — совершенно посторонний человек. И из этих вариантов ни один не является достаточно простым, чтобы сжать ответ на этот вопрос в один абзац.
Первый вариант - "я сам"
Вопрос в этом варианте звучит так: «Когда я смог сказать, что стал программистом?».
Сам человек о себе владеет достаточно большим объемом информации, включая личностный опыт, отношения к технике, скрытые переживания и многое другое, и подчас некоторые именно скрытые данные могут определить, когда именно произошло изменение внутреннего состояния индивидуума с «не программист» на «программист». В комментариях к исходной статье был описан один случай, где автор определил изменение состояния в момент, когда он понял скрытое за кодом действие, выполняемое компьютером. То есть, один из возможных ответов — «когда я первый раз понял алгоритм программы».
Моя история становления программистом не настолько яркая, и не имеет явной точки перехода, но в ней есть интервал перехода — от первого вопроса учителю программирования в ДНТТМ «а как вводить данные в Паскале?» вместо того, чтобы задавать значения переменным прямо в коде, когда я определил для себя, что именно хочу стать программистом, хочу уметь заставлять компьютеры слушаться меня, до первого курса института, где в качестве задания у нас была реализация трехмерной графики с заливкой по Гуро или как кто умел, и написанной самостоятельно даже не самой программы, занимающейся отрисовкой, а программы‑конвертера моделей из какого‑то трехмерного редактора, от которого я раздобыл файлы с моделями, в мой тупой как валенок бинарный формат данных. То есть, до момента, когда появившуюся у меня проблему я решил с использованием компьютера и самостоятельно написанной программы. Следовательно, второй из возможных ответов — «когда я первый раз написал программу для решения моей задачи или проблемы».
В процессе был как минимум один раз, когда я для отца писал программу расчета трансформатора по имеющимся требованиям — одна обмотка столько‑то вольт столько‑то ампер, вторая 220 вольт, требовалось узнать число витков и толщину провода для каждой из обмоток. Но в тот раз, хотя я и написал для этого код на бейсике ZX Spectrum, программистом я себя считать ещё не начал. А значит, какие‑то неучтенные факторы влияют на решение считать себя «уже программистом» или нет. То есть, общий ответ, если он существует, является рекурсивным: «Когда я сделал что‑то, что дает мне право считать, что я стал программистом». Как‑то недетерминированно, не находите? И это ещё до того, как было определено понятие «программист»...
Второй вариант - "ближайшее окружение"
Сюда входят родители, супруги, дети, одноклассники, родичи, коллеги и прочие люди, которые общаются с субъектом вопроса. И сам вопрос формулируется так: «Когда я смог сказать, что ТЫ стал программистом?». А вот здесь требуется определить, помимо слова «можно», или «я смог», ещё и слово «программист», так как для разных людей это понятие означает спектр знаний, умений, возможностей и занятий, подчас не имеющий совпадений для некоторых людей даже из ближнего окружения человека. В такой постановке ответ является субъективным чуть более, чем полностью, и для нахождения хотя бы общего знаменателя для большинства групп потребуется слишком развернутый анализ. Проще было бы просто отмести этот вариант как заведомо слишком субъективный для статьи, но некоторые частные случаи можно хотя бы нечетко описать, что постараюсь сделать.
Можно попробовать поискать ответы для обособленных групп, скажем, для одноклассников, при условии, что сам человек уже смог определить себя как «программиста» по одному из определений, разделяемых, хотя бы частично, одноклассниками. Вариантов ответа все равно будет спектр, начиная от «когда ты взломал игрушку на бесконечные жизни», даже если это был POKE 32 891,0, вычитанный из книги «300 игр для ZX Spectrum», до условного «когда ты мне дал списать на информатике, и я пятерку получил» или «когда ты показал мне, как рисовать линии на компьютере».
Для родственников, в частности, родителей, владеющих куда большим объемом данных о субъекте, может существовать более детерминированный критерий. Увлечение ребенка компьютерами бывает в разных формах, вплоть до залипания в каких‑то играх без видимой пользы (для родителей), и не всегда из увлекающихся компьютерами, да даже и «айти», получаются программисты. Таким образом, в качестве «вехи становления программистом» может выступать какое‑то достижение ребенка, которое родители относят к программированию в том смысле, в котором они это понимают. Это может быть и то, что отпрыск поделился впечатлениями от игры на МК-54, которую он успешно прошел или вообще «взломал», и победа (или участие) в каком‑то конкурсе в школе, институте или на работе (мало ли!), где нужно было что‑то алгоритмически решить, или дошедшее до них мнение учителей, одноклассников, ещё кого‑либо, что «ваш ребенок такой умный, он мне комп починил двумя пальцами!» и тому подобное. В том числе и помощь родителям в чем‑то с использованием компьютера. Обычно такие вехи становления запоминаются в семье, и потом являются поводом для хвастовства во внешнем кругу, и становятся известны и используемы самим человеком — если его собственный «фазовый переход» не произошел раньше.
Для работодателя, как отдельного человека в окружении программиста, чаще всего ответом будет «когда я о тебе узнал как о программисте». Если человек нанимается компанией‑разработчиком ПО, он априори считается программистом, неважно даже, на какой позиции — ни архитектор, ни тимлид, ни тестировщик, на QA, ни даже UI‑дизайнер не сможет нормально работать, если не будет хотя бы понимать в программировании, чего по мнению работодателя может быть достаточно, чтобы назвать человека программистом. Если деятельность человека напрямую не связана с программированием, подобное узнавание может произойти и позже. Например, оператор станков с ЧПУ может быть программистом, а может и не быть, смотря по тому, как он управляется со своим инструментом. Мой отец в этом плане программистом был, я помню, как он заявлял «эти программисты при написании программы обработки не учитывают крепеж детали, приходится переделывать». В то же время некоторые его коллеги на заводе так не умели, а возможно, и не хотели уметь, отчего программистами не считались. Какой‑нибудь завсклад, желающий облегчить себе работу, может написать какую‑то автоматизацию учета помимо той, что ведется в организации, или дополнить её какой‑то метрикой, и это может стать точкой отсчета для его начальства расценивать его как программиста. Или модное сейчас движение «войти вайти», прихватившее работника откуда попало и мотивировавшее его «стать программистом» в каком‑либо смысле, с заметным для его работодателя эффектом (в том числе увольнением для поиска работы по новой специальности) также может породить изменение отношения к нему.
Третий вариант - "посторонний"
Сюда входят люди, узнавшие или знающие некоторого человека, и имеющие доступ к каким‑либо публичным данным о нем, включая статьи на Хабре или профили в соцсетях. Так как их слишком много, то вопрос в формулировке второго варианта не имеет смысла, и задавать его следует в более общем виде. Например, так: «Когда достаточно большое множество посторонних данному человеку людей начало называть его программистом?».
Вот к этому варианту подходит большинство ответов из комментариев к исходной статье. «Когда он первый раз (implicit) начал работать программистом», «когда получил „программист“ в диплом», «когда его программа стала известной», и т. д. Здесь нет однозначно правильного ответа, мало того, люди, в отношении которых задается подобный вопрос, могут и слова‑то такого не знать — «программист» (была ли Ада Лавлейс программистом? Мой ответ — да, но самого понятия тогда могло не существовать), к части людей может быть неприменим любой из вариантов «общепринятого» ответа, вплоть до всех, кроме одного — если неприменимы все, то его программистом ещё не начали называть, некоторые персоны вообще могут быть виртуальными (привет, Алиса) и в то же время писать код (привет, ЧатГПТ‑бот), и так далее, поэтому в качестве «универсального» ответа предлагаю взять обобщенное ИЛИ на подмножество «элементарных» ответов из этого набора, с которыми согласны лично вы.
Комментарии к ответам, приведенным в самой статье
Вообще говоря, ответы, приведенные в изначальной статье, содержат в скрытой форме дополнительные классификаторы типа «хороший», определенные говорящим. Даже первый ответ «Когда он способен абстрагироваться от инструментов» уже содержит такой классификатор. Многие программисты, особенно для платформ, стесненных в ресурсах, не могут абстрагироваться от своей платформы, а инструмент у них в целом единственный — машинные коды или ассемблер для конкретной железки, плюс транслятор с Си‑подобного языка (или просто с Си с расширениями под платформу), потому что более «навороченный» код с абстракциями не сможет вместиться в его оперативную память. И если кто‑то скажет, что это не программисты, я ему скажу, что он глубоко неправ.
Из спектра ответов выделяется шестой, на который многие комментаторы указали: «Когда он понимает принцип действия операторов if, then, else в сочетании с циклами for и так далее». В сущности, этот ответ означает «когда человек понимает принципы в алгоритмах и способен их перенести в код». По мне, более точным был бы вариант «когда человек умеет алгоритмически мыслить». Просто преобразовать жестко заданный алгоритм в код уже и нейросеть умеет, а концепция RSL, если кто помнит, заключалась (для меня, когда его у нас проходили) в задании алгоритма в виде блок‑схемы, что просто снимало требования на знание языка программирования, но в явном виде требовало понимание блок‑схем как средства записи алгоритмов. И вот такой ответ больше похож на универсальный и объективный, и может подойти в качестве критерия необходимости для определения, является ли человек программистом, и в его собственной ретроспективе, когда он им стал.
А когда человек перестает быть программистом?
Когда умирает. И то это не точно.
Комментарии (25)
pae174
00.00.0000 00:00+2Ехал программист через Программист
Видит программист - в Программист programmist
Сунул программист "Программист" в Программист
Программист, программист, "Программист", programmist!
ifilonov
00.00.0000 00:00Не хватает продолжения "… и как навязать ему это придуманное мной правило."
vesper-bot Автор
00.00.0000 00:00А этого не нужно. Данная статья не ставит целью кому-то что-то навязывать.
AnB24
00.00.0000 00:00в одном из подкастов слышал такую байку:
Чувак, опытный фронтендер, придумал крутую фичу для проекта, рассказал о ней на совещании, а так же предложил свои услуги по реализации задуманного, а ему в ответ "крутая штука, но лучше пусть этим занимаются программисты. Передай бекендерам свои наработки"))))) И тут он понял, что его за программиста не считают))))))))))))
Вообще это интересная тема. Вот, например, взять меня. Постоянно прокачиваю свой скилл, пытаюсь быть на волне, так сказать... но "синдром самозванца" порой так душит, что хочется всё бросить. А бывает - проснулся утром и аж переполняют идеи. Сел, кодишь..всё получается - балдеешь с этого)))) НО! я как раз фронтендер)))))))) и ощущаю себя программистом низкого качества, что-ли...как говорится "третий сорт ещё не брак" но всё же... ))))))))
Но всё же мне дико нравится создавать и видеть результат))))) верю в JS)) и да, считаю себя программистом, но всё время кажется, что мало, мало, мало опыта...)))
У кого какие мыслишки на этот счёт?)venanen
00.00.0000 00:00+4Во-первых: первая мыслишка - у меня переизбыток скобок в организме.
Во-вторых: как синдром самозванца лечится - описано в куче статей, мое личное имхо - на него влияет зп, если за меня много платят - значит я чего-то стою. Тем более если довольно продолжительное время.
В-третьих: люди недалекого ума постоянно пытаются создать себе элитарное сообщество, и считать себя его частью. Человек, интеллектом не обделённый вряд-ли будет говорить что фронтендер - человек третьего сорта в приложении, написанном фронтами.
И самое главное - в каждом комьюнити есть такой прикол - в какой-то момент общение перерастает в стеб друг на другом и над своей средой выполнения. Сишники над си шутят, фронты над js, бекендеры про джаву, го и питон (те, кто с асмом работает - те вообще никогда не шутят) - из-за чего в локальном чате или группе начинает складываться ощущение, что твою специальность не уважают.
Dr_Dash
00.00.0000 00:00+1Программист - человек, создающий программы. Программа это прежде всего пошаговый план. Лиса Алиса и Кот Базилио тоже, своего рода программисты, правда не очень - произошло abnormal termination programm
????
alyxe
00.00.0000 00:00-1Ох.. давно собирался и копил силы.. и вот теперь наконец‑то решился.. с болью в сердце.. с небольшим дурманом в голове.. мам, пап, я — программист.. надеюсь вы не будете злиться...
Вот ещё идеи: когда о человеке можно сказать, что он спился или как обнаружить гея в офисе, где все - дизайнеры или пишут только под iOS... (сори, старые мемы в чате)
dynamica
00.00.0000 00:00+1Известный экономист, по призванию своему — библиотекарь. В народе — колхозник. В магазине — продавец. В экономике, так сказать, необходим.
ishmakov
00.00.0000 00:00Программист - это профессия с определённым набором требований к образованию и навыкам с определённым набором должностных обязанностей. В тот момент, когда ты начнёшь получать деньги за этот навык,в тот момент ты станешь программистом.
domix32
00.00.0000 00:00Будучи студентом мне никто не платил, но тем не менее некоторые штуки для собственных и не очень нужд я писал. Да и олимпиады всякие тоже были.
NurGeo
00.00.0000 00:00+4Где то недели две назад написал в Телеграм сообществе.
Когда мы можем сказать что ребенок научился читать?
когда выучил буквы? Нееет.
когда научился читать по слогам? Ну скажешь еще.
когда он научился читать согласно нормативов установленных министерством образования (что то вроде 120 слов в мин.). Глупость, та еще.
Так когда мы можно считать что ребенок научился читать?
тогда, когда он сможет ПОНЯТЬ то что он прочитал. А понять что он понял можно попросив пересказать или объяснить то что он прочитал. Если сможеть пересказать суть, значит не зря прочитано.
К чему это я? Вчера занимаясь со студентами понял когда можно считать что человек стал программистом.
само собой не тогда, когда он прочитал, просмотрел кучу материалов по программированию.
не тогда когда он овладел синтаксисом языка программирования.
не тогда когда он написал какое то количество строк кода
Можешь считать себя программистом если:
Задачу составленную на человеческом языке сможешь разложить на алгоритм годную для перевода в компьютерный код.
Сможешь написать код который реализует данный алгоритм.
Сможешь в уме смоделировать как компьютер пошагово, строчка за строчкой выполняет твой код и как изменяются данные.
Если эти навыки есть, то любой шаг алгоритма или любую строчку кода ты сможешь обяъснить, для чего ты его сюда вставил.
Если эти навыки появились, то поздравляю, твое мышление стало программистским, остальное это различные стадии мастерства программистского искусства.
geher
00.00.0000 00:00+1На самом деле подождем, когда значение слова утрясется окончательно. Причем не избежать того, что наверняка слово обрастет дополнительными смыслами, возможно, что и весьма неожиданными.
ximki-vinki
00.00.0000 00:00Это интересная тема, ведь программист абсолютно похож на другие профессии.Аналог с историей. Можно интересоваться программированием/историей, почитывать книжки и пописывать программы. Можно быть любителем, например разрабатывать, что то для себя или в узком круге. Или быть профессионалом. Естественно, сам ты не можешь себя назвать таковым. Значит, кто-то должен это сделать. Первый, кто это может сделать - это ВУЗ. Второй, кто может это сделать - это работодатель. Ну и третий - это другие программисты.
georgymukha
00.00.0000 00:00+1Про окружение.
Родители меня в 4 года начали называть программистом, когда я впервые в жизни настроил интерактивное телевидение в Израиле в 2007 году????
В итоге, так и оказалось...
Dart55
Если ты сам считаешь себя программистом, ты можешь называть себя программистом, ты не обязан выполнять какие-то условия, программист понятие абстрактное неограниченное какими-то рамками, если ты чувствуешь себя программистом ты будешь программистом, даже если ни когда в жизни не видел компьютер, и ни кто в мире не убедит тебя в обратном.
AlexWork22
Что-то мне это напоминает. How many genders in the world?
domix32
P.S. Не забываем глаголы: "How many X are in Y"
xaosxaos2
Поддерживаю, программист, это еще и состояние души, я вот например никогда не писал на питоне, но проблем что либо на нем написать у меня не будет, если так звёзды сложатся. Почему? Потому-что программист, это не важно на чем писать, это это образ мышления, когда ты понимаешь, ну или думаешь что понимаешь, что делать и почему.