Кодер или программист - есть ли разница?

27 сентября 2012
6 473

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

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

Кодер или программист

Постановка проблемы

Итак, диспозиция такая. В одном углу сторонники традиционного, более широкого, понимания деятельности программиста - программирование, работа с кодом. В этом случае кодер (от англ. coder) и программист (от англ. programmer) являются синонимами.

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

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

Бредовые мнения

Кроме двух указанных мнений, а также и в рамках них есть совсем уже бредовые высказывания, которые мы сразу и отфильтруем.

Кодер - это то же что быдлокодер.

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

С какого бодуна в головах некоторых антонимы стали синонимами абсолютно непонятно.

Программист - творец, кодер - ремесленник.

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

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

Программист в отличие от кодера ещё и дизайнер...

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

Происхождение слов

В английском языке, которому мы обязаны почти всеми околокомпьютерными словечками, coder, programmer и developer, имеют разное происхождение, но являются синонимами и имеют общий перевод на русский - программист. По крайней мере, являлись до того как началась эта кутерьма с разделением понятий. Этак дождемся, что вскоре и developer перестанет быть просто программистом.

Люди во всяком общении стремятся к краткости, особенно в письменном. Напечатать coder куда быстрее и проще, чем programmer, поэтому это слово очень распространено. Когда у нас уже был общепринятый термин программист, слово кодер начали использовать вместо него просто для краткости. Ведь для программиста, постоянно имеющего дело с англоязычной документацией это слово столь же привычно.

Показательно, что многие пишут программер вместо программист.

Это к тому что многие новые слова появляются не потому что они реально нужны для определения нового понятия, а просто потому что так писать проще, привычнее, ... или прикольнее. Последнее в современном мире очень весомый аргумент.

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

Кодер или программист

Аргументы и факты

Англоязычная Википедия не разделяет понятия coder и programmer, определяя их как синонимы, а вот в русскоязычной Википедии есть интересная строчка, что "кодер - программист, специализирующийся на кодировании — написании исходного кода по заданным спецификациям".

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

Спецификация - набор требований и параметров. Опять-таки, если я работаю над собственным проектом, то я программист, а если над чужим, то уже кодер? Ведь во втором случае я буду работать по чужим спецификациям. Требования задаются в ТЗ или определяются главой проекта, системным аналитиком или ещё кем-то, в чьи обязанности это входит. Кодер всё равно получается тот же, кто и программист.

Интересный факт абсолютно неожиданно я нашёл на... Луркморье. Если кто не в курсе, это такая неформальная альтернатива Википедии. Здесь можно встретить как несерьёзные определения серьёзных понятий, так и энциклопедические статьи о мемах и других сугубо нишевых явлений субкультуры интернет-троллей, хэйтеров, школоты и т.д. Я даже не знаю обобщающего все эти понятия термина.

В общем, воспринимать информацию с Луркморья всерьёз противопоказано.

Профессиональный стандарт

Однако в статье о программистах я натолкнулся на упоминание, что согласно Ассоциации Предприятий Компьютерных и Информационных Технологий кодером является программист самой низшей категории. На самом сайте АП КИТ такой информации не нашлось. Зато, как оказалось, в рамках проекта разработки профессиональных стандартов в области информационных технологий в 2007 году был разработан стандарт Квалификационные требования(профессиональный стандарт) в области информационных технологий. Стандарт разработан для различных профессий, в том числе и для программистов.

Согласно стандарту имеем четыре квалификационных уровня со следующими наименованиями должностей:

1. Стажер, кодировщик, младший программист, младший разработчик

Создает код модулей или тестовых наборов для модулей системы или небольших приложений низкого уровня сложности по готовым спецификациям под руководством специалиста более высокого квалификационного уровня.

2. Программист, разработчик, инженер

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

3. Инженер, старший разработчик, старший программист

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

4. Старший инженер, старший специалист, ведущий программист

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

Вот это уже серьезный разговор. Тут и понятие спецификаций в контексте программирования раскрыта. Вот только "кодер" тут не упоминается.

Зато есть кодировщик, по-английски coder. То есть, кодер и кодировщик могут подразумевать одно и то же. В таком случае всё верно: кодировщик - это программист с более низкой квалификацией, работающий по готовым спецификациям.

Но! Стандарт российский и никак не проливает свет на противопосавление "кодер" и "программист" в мировом масштабе. В стандарте упоминается кодировщик, что на английском языке звучит как coder, но как я указал выше, стандарт относится к российскому сегменту программирования, а значит кодировщик в понимании стандарта может не иметь никакого отношения к кодеру, как термину распространенному в IT-сфере.

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

Итоги

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

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

Related Posts Plugin for WordPress, Blogger...
Рубрики: Статьи

Один комментарий к записи “Кодер или программист - есть ли разница?”

  1. Никита

    Большое спасибо за подробный разбор, особенно, за найденные стандарты. :)

    [Ответить]

Комментируйте - автору важно ваше мнение!

Дополнительно: