Парни ваш спор не имеет предмета спора.
Я вообще не понимаю откуда вы выкопали такие разделения на "програмистов" и "кодеров". Лично я знаю только один случай при котором используется слово "кодер", или его производные. Это когда я разговариваю с другом-программистом и на его вопрос - "чем занимаешься?", я отвечаю "кодингом". Это означает, что я вожусь с программным кодом (в 90% случаях занимаюсь написанием кода). И мне минимум слов и он сразу всё понимает (особенно то состояние в котором сейчас находятся мой мозг). Очевидно отсюда и растут ноги значения слова "кодер" используемого в этой ветке.
Для начала дам определение:
Программист - Специалист по программированию
По этому кодер тоже программист. Программирование имеет свои стадии:
1. Постановка задачи. При этом чаще всего заказчик вместе с ведущим программистом составляют Техническое Задание.
2. Теоретическая разработка. Выполняет самый опытный программист или команда опытных программистов (в небольших предприятиях этим чаще всего занимается ведущий программист).
3. Распределение работы между специалистами участвующими в создании программы. Даётся задание дизайнерам, верстальщикам, программистам-кодерам, специалисту по разработке БД, и т. д.
4. Пробегая мимо тонкостей процесса создания программ, следующей стадией становиться тестирование.
5. Передача программы клиенту.
Это классический (упрощённый) пример коммерческого создания программ. Но есть много любителей которые в одиночку или в составе небольшой группы (2-4 человека), занимаются созданием программ (обратите внимание, именно "создания" программ, а не "написания", потому что из-за этого часто путают полный цикл создания программы и непосредственно кодинг). В таких группах некоторые стадии опускают или объединяют. Например постановка задачи и теоретическая разработка. Так же каждый участник чаще всего выполняет задачи нескольких профессий. Т. е. программист занимающийся теоретической разработкой занимается и кодингом. Дизайнер, занимается и вёрсткой. И т. д. Как ни странно продукты созданные такими группами часто бывают на порядок качественнее аналогов от серьёзных разработчиков.
Ваш же спор по разделению на "программистов" и "кодеров", просто смешон. Потому что, "программист" это название профессии, а "кодинг" это непосредственный процесс реализации кода, и программист занимающийся этим соответственно "кодер". Я знаю только одно разделение программистов, на имеющих таланты к теоретической разработке (теоретики) и на таланты технической реализации (технари). Но они по статусу равны. Просто реже встречаются именно "теоретики". Но они и в меньшей степени востребованы. Кроме того это не взаимоисключающие навыки. Любой теоретик свободно может заниматься кодингом, любой технарь сможет разработать теоретическую часть программы. По любому всё упирается в уровень владения языком программирования. Понятное дело если ты только выучил основы, то кроме как создать кусок невыразительного кода ничего и не сможешь. Из-за этого походу многие путают "начинающего программиста" и "кодера". Это не одно и то же:
Первый просто больше ничего и не может пока создать более толкового (кроме куска кода). Чаще всего такие программисты работают под началом опытного программиста. Через пол года если опытный программист нормально умеет объяснять и новичок станет опытным универсалом. Овладеет методикой разработки теории, и выучит много методов реализации.
Второй просто занимается реализацией кода, и тут нет какой либо привязки к квалификации. Этим может заниматься как начинающий программист, так и опытный.
По этому я и говорю ваш спор не имеет предмета спора. Банальная путаница понятий. Каждый в понятия "программист" и "кодер" вкладывает свои значения и от этого танцует.
(17.05.2012 23:11)Vic520 писал(а): 1. Программирование с математикой не связано никаким боком. Это обычная обывательская чушь.
Сие почти верно. Смотря какие программы создаёшь. Я например WEB-программист. И случаи когда я сталкивался с задачами требующими знание математики выходящие за 9 классов школы можно перечесть по пальцам одной руки. Но есть программы типа Autodesk 3ds Max, или движок какой нибудь навороченной игрухи, там везде используются последние наработки в высшей математике.
(17.05.2012 23:11)Vic520 писал(а): Програмер отличается от кодера, тем что никогда тупо не пишет, что надо сделать, а пишет так, как быстрее будет исполнятся.
Это взгляд пользователя о том как должен на их взгляд выглядеть идеальный программист.
Просто скорость выполнения программы не всегда стоит на первом месте. Опытный программист, прежде чем приступить к разработке сначала расставит приоритеты. Часто бывает нужно сделать продукт не столько быстрым, сколько безопасным. Бывают и другие приоритеты. Всё зависит от поставленной задачи. Например бывают и такие:
(17.05.2012 23:11)Vic520 писал(а): 6. Хороший программер, не тот который напишет прогу по тз, а тот который заткнет больше веток выходящих за алгоритм или краевые условия задачи.
(16.05.2012 22:17)Serge Sadov писал(а): Программист - это человек, который получив задание, способен сам разработать алгоритм его решения и реализовать его в коде. Кодер - человек, который реализовывает в коде готовые разработанные кем-то алгоритмы. Не задача начальника разрабатывать алгоритмы решения той или иной проблемы. Его задача - готовить план развития и подготовку ТЗ для задач стоящий и возможных будущих. Алгоритм решения задачи не равен ТЗ на задачу. ТЗ всего лишь описывает требования к задаче. Требования можно удовлетворить совершенно разными методами и алгоритмами.
С определением программиста согласен.
А вот определение кодера почти верно. Не ходите на поводу у других. Нет такого разделения как "программист" и "кодер".
По этому кодер - это программист находящийся в непосредственной работе над кодом. Не обязательно написание кода. Например правка кода тоже является кодингом.
А правка чужого когда требует вообще навыков опытного программиста.
Сергей, первый раз вижу вас таким возбуждённым. Неужели эта тема вам столь близка?