[Перевод] Когда о человеке можно сказать, что он стал программистом?

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

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

Когда о человеке можно сказать, что он стал программистом?

  1. «Когда он способен абстрагироваться от инструментов. То есть может понять, что является ключевым для решения задачи вычислительными методами, независимо от того, какую технологию он использует».
  2. «Когда он задумывается о других разработчиках, создает код для людей, а не для машин. Соответственно, документация и читабельный код — обязательные условия».
  3. «Когда он начинает избегать споров по пустякам. Разговоры в духе «этот инструмент лучше, чем тот» — это занятие, которое человек, разбирающийся в программировании, оставил в прошлом: он понимает, что оба инструмента могут быть полезны для выполнения определенных задач».
  4. «Он делится знаниями и принимает участие в жизни сообщества. Взять, допустим, программиста, который выучился в основном по бесплатным материалам из интернета. Исходя из своего опыта, он понимает, что единственный способ поддержать эту область знания — внести свою крупицу на благо окружающих. Он ведь и сам в прошлом извлекал пользу из чужих».
  5. «Когда он может браться за новые задачи и, должным образом в них разобравшись, писать рабочий код, поэтапно доводя дело до завершения. Решение при этом ориентировано на будущее, его не придется реализовывать заново ради выживания продукта. Такой человек — хороший программист».
  6. «Когда он понимает принцип действия операторов if, then, else в сочетании с циклами for и так далее. Говорить о том, что человек стал программистом, можно только тогда, когда он всё это освоит и научится применять. Разумеется, под применением понимается не просто вывод слов hello world на экран при помощи какого-нибудь языка».
  7. «Когда он создает программные решения для проблем. Необязательно даже пользоваться при этом языкам программирования (HTML, CSS, SQL или Excel). Достаточно просто прописывать алгоритмы в записной книжке — с этого момента уже можно говорить о создании программного обеспечения».
  8. «Когда к нему приходит понимание, что каждый язык служит своей цели, имеет свои плюсы и минусы и что его применимость нужно определять исходя из того, к какой области относится проблема».

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

© Habrahabr.ru