Как стать автором
Обновить

Комментарии 129

Наверное, мой мозг избит играми, которыми я злоупотреблял в школьное время, но первая ассоциация — именно описание персонажей (вернее, классов персонажей) в игрушке. Краткое описание скилов, примерный «урон» (уровень мастерства в данном случае) и т.п.

Понравилось, читать легко, спасибо.
Ага, lvl 85 Software Engineer
А мне больше напоминает X-Com: Sectoid Leader, Snakeman Engineer
Skill: Programming.

Specialization: Hacker.
                IQ/Very Hard
Defaults: other Programming skills except Coder at -4.

Specialization: Coder.
                IQ/Average
Defaults: other Programming skills at -4.
Похоже, я таки девелопер, а не кодер. А вот юниор или дорос таки простого — сложно сказать.
Красиво написано. Узнаю и себя, и знакомых :)
Согласен с тем, что должность «архитектора» довольно спорна.
Вся сложность в определении различий между девелоперами, архитекторами, инженерами, кодерами связана с тем, что эти термины вырваны из совершенно разных контекстов. Их и сравнить нереально. Аналогично, невозможно сравнивать, например, такие термины, как: автомобиль, машина, тачка, драндулет…

Инженер — это звание, подтверждающее какой-то специфический уровень знаний. Этот термин скорее из университетской среды. Заметьте, университеты не готовят кодеров или девелоперов, там одни инженеры.

Кодер — это в большей степени сленг.

Девелопер — это не очень формальный термин, широко использующийся в профессиональной среде. Почему неформальный? Потому что на ваших похоронах вас скорее будут называть уважительно инженером, чем девелопером.

А теперь насчет архитекторов… Кто вообще такое придумал? Я думаю, что этот термин получил широкое распространение в среде разработчиков ПО из-за его использования в различных методологиях разработки ПО. Например, в RUP существует такая роль, как архитектор. Другое дело, что мало кто может четко отделить архитектора от проектировщика, но это уже другой вопрос…

Я не согласен, что архитектор — это высосанное из пальца звание. Например, Брукс, автор книги «Мифически человеко-месяц», уж точно был самым настоящим архитектором.

Но я считаю, что архитектор — это именно роль, а не звание. Т.е. инженер может быть одновременно и архитектором. Это как в армии: есть звания и есть должности, одну и ту же должность могут занимать люди с разными званиями.
Мне нравится, как в одном коментарии можно противоречить самому себе (8
Вы в курсе когда была написана эта книга? В 1975м году. Не знаю как вы, но я еще не был жив в то время.

Про методологии согласен, в waterfall стадии проектирования отводится КОЛОССАЛЬНОЕ количество времени, так что те, кто этим занимается, вполне могут называться архитекторами. Но waterfall уже давно не модно.
> Мне нравится, как в одном коментарии можно противоречить самому себе
Не понял, в чем противоречие? Книга написана в 1975 г. и что?

Вот вы пишете в статье: «Архитекторов я не выношу в отдельную категорию, потому что либо их не существует, либо я их не видел и не понимаю кто они такие». Я понял, что вы не видели архитекторов, но они на самом деле существуют :) Это я пытался сказать.
я не видел людей, которые днями сидят на работе и придумывают архитектуру. про роль и должность согласен и сам же это и говорил.
А второй поинт следующий — я не пытаюсь понять различия между девелоперами, кодерами и инжинерами. Я определенным группам даю названия: девелопер, кодер и инжинер. Это совершенно разные вещи, ведущие к совершенно разным результатам.
>… я не пытаюсь понять различия между девелоперами, кодерами… я определенным группам даю названия: девелопер, кодер…

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

Мне кажется, что мыслить именованными стереотипами не очень продуктивно. Очевидно, что в каждом есть чуть-чуть от любой группы. Когда помещаешь собеседника в одну из категорий, общение становится довольно плоским: вместо того, чтобы узнать человека получше, замещаешь неизвестную информацию стереотипом. Во-первых, такое отношение может быть неприятно собеседнику. Во-вторых, просто упустить какой-нибудь факт, который может оказаться полезным. К примеру, беседуя с Junior Developer можно не узнать, что он построил недавно свой квадрокоптер, записал альбом «Волшебный Клавесин» и создал третий по популярности плагин для jQuery.

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

Примеров пагубной редукции в статье предостаточно. Взять хотя бы то, что лишь Creative Technologist «не лишен коммуникационных скилов и хорошего вкуса».
Можно перейти на следующий уровень и присваивать человеку не группу, а линейную комбинацию групп. Например, Вася = 0.8 х Developer + 0.2 x Hacker. Большая его часть соответствует Разработчику, но при этом необходимо учитывать, что он еще и на одну пятую хакер.
Это уже как в RPG составляющей :)

Достижение «Профильное высшее»:
Теоретические знания +4
Практический опыт +5
Умение экстренного решения проблем +8
Новые связи +2
А про это есть отдельная статья.
Пропустил эту статью. Спасибо.
НЛО прилетело и опубликовало эту надпись здесь
Вы молодец
Больной вопрос: ну а верстальщики — кто они?
Что-то среднее между кодером и скриптером, полагаю.
верстальщики это верстальщики, правда бывают еще скриптеры (два в одном, что очень хорошо), от части верстка не является программированием… следовательно отнести верстальщика к какой либо группе сложно.
Если речь идёт чисто о верстальщиках, а не тех, кто на JS Gmail пишет :)
я всегда выделяю верстальщиков подальше от программирования, они создают структуру, разметку, не более…
если уж пошла пьяна, то можно поместить их в Interactive Developer, но у автора в классификации Interactive Developer это именно программист по интерфейсам, если исходить из этого то верстальщика сюда не поместить
Разумеется, если считаем, что верстальщик берет макет у дизайнера и отдает его в сверстанном виде уже JS-разработчику.
а если он и пишет js скрипты сам. то это скриптер + вверстальщик
Front-End Developer?
да, получается что так
Обычно для верстальщика по умолчанию предполагается способность сделать что-нибудь простое на JQuery. Но если речь идет о составлении чего-то более сложного, чем «прикрутить такой-то плагин», то без разработчика уже не обойтись.
Вообще, все зависит от проекта, над которым ведется работа — от сроков, сложности и задач. Если речь не идет о построении сложного ajax-приложения, то всю работу может сделать обычный верстальщик, или вообще web-дизайнер, который рисовал исходный макет. Если же мы делаем онлайн-магазин на полном ajax — это совсем другая сложность разработки — и тут уже версткой может заниматься разработчик, которого скриптером назвать оскорбительно. :)
Но, в первом случае, поскольку, дизайнер не всегда силен в скриптинге, то для этого и используют верстальщика — который полностью реализует макет, определяя внутреннюю структуру сайта, и добавляет на него нужные скрипты.
Junior Interactive Developer? :)
Почему джуниор? Верстальщик — это отдельная специализация, а вы его хотите навечно Джуниором оставить? :)
Сужу с точки зрения написания кода, где верстальщикам не требуется богатой теоретической базы и большого опыта программирования. Ведь статья именно о программистах, а не о ИТшниках вообще.
Есть такой класс как qa developer, что, по вашему, должно быть присуще данным пер онажам? Каким набором скиллов они должны обладать?
Я не знаком ни с одним таким, поэтому соответствующей категории у меня нет.
Это не класс, это скорее область где приходится работать. Они так же могут быть junior, developer, senior, leader. И отдельно бывают hacker, когда требуется заниматься реверсингом.
Ха!
В трудовой записано как «Инженер-программист».
Англоязычный вариант по (внутреннему регламенту компании) «Analyst-programmer».
А военнике вообще «Вычислитель электронно-вычислительных машин».
А на деле занимаюсь web-разработкой.
ахаха порадовала ваша запись в военнике :-)
много машин вычислили?
Все крайне логично, на самом деле. У электронно-вычислительной машины, очевидно, две части: электронная и вычислительная. Электронная в розетку втыкается, а вычислительная рядом на стуле сидит. И вычисляет.
Угу. «А внутре у ней неонка» :)
«Оператор ЭВМ» — классика уже… В разных конторах кодеров именно так именовали когда-то.
У меня в свидетельстве о квалификации (1992 г.) записано «Оператор ЭВМ, программист».
Coder и Developer обычно различают, кодер по спецификации делает, а девелопер по общим требованиям работает формируя спецификацию.
А вот «инженер» это вообще не про нас, у меня друг на спеца по судовым движкам учился, вот там зрелая инженерная школа, а у нас пока детские шалости — качество и предсказуемость результата говорят сами за себя. Не случайно возникло: «Если бы строители строили как пишут программисты, то первый залётный дятел разрушил бы все постройки»
Я написал свое мнение по поводу слова «инженер». Посмотрите видео из поста.
Ну если нарисовать спецификацию и архтитектуру для приложения с той точностью что рисуют для стройки, то можно написать довольно красивое и стабильное приложение.

Мне кажется что при строительстве не меняется 50 процентов плана :) Хотя было бы забавно посмотреть на результат :)
Я вот могу в окно посмотреть — новая сцена Мариинского театра вместо изначального стеклянного «пузырика» строят какую-то крепость с узкими бойницами. Да и вообще для крупных объектов изменение проекта на разных стадиях работы нормальное дело. Особенно, почему-то, для бюджетных :-/

Бывает, что меняется, но фактически это означает, что стройка замораживается на момент принятия решения об изменении до их полного согласования, а заказчик оплачивает простой и переделку. Если, конечно, изменения не косметические, а несущих конструкций. Да и с косметическими не всё так просто — всё, в том числе порядок операций, строго нормировано обычно и сказать «клейте пока обои, а мы подумаем какие будут окна» не получится.

Что в строительстве хорошо для подрядчика (хотя смотря для какого) в этом плане — всё затраты на все операции нормированы. Хочет заказчик новые рюшечки — вот смета на демонтаж старых (вместе с несущими стенами), вот на монтаж новых (тоже со стенами), потому что новые на 1% грамм тяжелее и нарушат СНиП такой-то, а сидеть всем составом руководство подрядчика не хочет. А сама смета нормирована чуть ли не до секунд по операциям — ни заказчику не придраться «а что так много, там делов-то», ни подрядчику грамотного заказчика не надурить — сразу увидит лишние работы или даже лишнее время или повышенный разряд рабочих. Торг при заключении договоров по готовым проектам идёт фактически только о норме прибыли. В идеале это конечно всё. На практике разное бывает.
Ох уж эти тайтлы. Зайдёшь на ЛинкедИн, там такие крутые названия специальностей попадаются, что очуметь можно.
А на самом деле это просто своего рода пиар и ЧСВ. Ну хотят люди чувствовать себя особенными среди тысяч «обычных» программистов.
Повторюсь — X-COM Sectoid Leader :))))))
Ваша проблема с пониманием Software Architect вызвана тем, что это не job title, это роль. Поэтому он плохо вписывается в ряд остальных наименований.
Знаниями, которые нужны для создания архитектуры системы, должен обладать Software Engineer или Senior Developer.
Это миф. Чтобы обладать знаниями, нужно либо чтобы тебе их кто-то передал (а у нас нигде не учат созданию архитектуры, насколько мне известно; более того, лет 10 назад даже литературы качественной на эту тему практически не было), либо получить их на собственном опыте. А какой процент из Software Engineer/Senior Developer реально имеют такую возможность — проектировать от и до много больших систем, изучать как полученные системы работают в реальном мире, экспериментировать изменяя архитектуру этих систем, и т.д.? Вот те, кому повезло получить такой опыт, и называются Software Architect. Хотя большую часть времени они действительно работают как Software Engineer/Senior Developer воплощая ранее разработанную архитектуру в коде.
Developer/Engineer с необходимыми навыками, как я и написал.
Непонятно, почему Вы решили, что Java Engineer это привязка в языку? Я вот всегда полагал, что это привязка к технологии, которая гораздо шире языка. То же самое, что врач-ортопед отличается от врача-окулиста. =)
Java Developer
лекарь-глазник? =)
Врач-окулист — что вас в этом смущает?
Меня как раз ничего в этом не смущает. Просто если Java Developer это не инженер, то врач-окулист получается не врач, а всего лишь человек, который лечит глаза.
Спасибо за статью, очень познавательно, не давно думал а кто же все же я..?
в итоге пришел к выводу что отношусь к нескольким группам, Hacker и Developer, если привязываться к языку, то привязка может меняется от проекта к проекту (не один ведь язык используется во всех проектах), а если к опыту, то тут субъективно… я думаю проще оценить себя будет, если разбить категории в процентном соотношении знаний
Junior Developer 25%
Developer 25% (в сумме 50% знаний)
Senior Developer 25% (в сумме 75% знаний)
Lead Developer 25% (в сумме 100% знаний)
тогда можно и прикинуть на сколько ты умен…
Для этого нужно знать столько, сколько знает Lead Developer иначе как определишь 100% :)
тут получается потолок (100%) и пол (0%), ну и уже в интервалах между титулами смотришь.
сложность в том что это ни где не прописано, какими знаниями должен обладать Junior, Senior и т.д.
и получается, что суждение оказывается субъективным по отношению к каждому персонажу…
тут выходит как и с понятием качества, для одних кривые стены это качество а для других нет…
Т.о. статус Lead Developer недостижим, т.к. познать всё невозможно.
При том, к познанию разработчики стремятся, но при этом быть lead'ом — не все.

Всё, взаимоисключающие пункты.
можно попытаться определить рамки каждого уровня, что при достижении определенных знаний (проверять например тестами, заданиями, работой), будет происходить переход.
мм, кстати, на сколько я помню в ТК РФ нет этих рамок (у меня в трудной написано было «Программист», занимался я разработкой портала дистанционного образования).
должно быть ведь по классификатору для начислений всяких и т.д. я в вопросы трудового законодательства не вникал, могу ошибаться
Нету. И надеюсь, что не будет. А то будем сдавать госы по бейсику и php3 в лучшем случае. И получить неуд за использование функционала языка, который проверяющий не знает.
Там есть категории. Программист первой категории, например. Но, если прочитать описание професии Инженер-программист, бОльшая часть народу тут под него не подойдет.
Серьёзно? А какая статья? Почитать хоть на досуге, попробовать определиться.
На внимательность тест. В статье есть ссылка.
www.rabotka.ru/spravkval/116.php
Под статьёй я подразумеваю не некую статью, а конкретный номер и кодекс.
Постановление Минтруда РФ от 21 августа 1998 г. N 37 (с изменениями) «Квалификационный справочник должностей руководителей, специалистов и других служащих»

Требования к квалификации.

Инженер — программист I категории: высшее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности инженера — программиста II категории не менее 3 лет.

Инженер — программист II категории: высшее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности инженера — программиста III категории или других инженерно — технических должностях, замещаемых специалистами с высшим профессиональным образованием, не менее 3 лет.

Инженер — программист III категории: высшее профессиональное (техническое или инженерно — экономическое) образование и опыт работы по специальности, приобретенный в период обучения, или стаж работы на инженерно — технических должностях без квалификационной категории.

Инженер — программист: высшее профессиональное (техническое или инженерно — экономическое) образование без предъявления требований к стажу работы или среднее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности техника I категории не менее 3 лет либо других должностях, замещаемых специалистами со средним профессиональным образованием, не менее 5 лет.


Ещё есть и техники-программисты, получается.
А ещё есть техники — джуниоры и стажёры.
Ну грубо говоря достижим если человек будет обладать <75% знаний =)
и тут уже 100% могут определяться в компании, в статье упоминалось что в одно компании ты Lead, а пришел в другую ты Senior, все относительно…
Ага, и возвращаемся к основополагающему вопросу: в каких критериях считать.
Не не пойдет. Один великий сказал «Я понимаю что я ничего не понимаю».

Вон возьми хотя бы STL — чем глубже в лес тем толще дровосеки, иногда такие конструкции завернешь что мама дорогая объясните мне почему это работает :)
В визитке написано Lead Algorithm Developer. А по описанию — нечто среднее между Hacker и Creative Coder (вот только куски, которые непонятно, почему работают, я не таскаю из сети, а всегда пишу сам). А что делать? Задачи в основном попадаются эвристические, без магической подгонки параметров их решения настроить трудно.
Такой код пугает.
Приходится вести документацию с указанием таких мест, влиянием параметров и приемами обращения.
что то типа «компилировать только при растущей Луне но не позднее чем через день после затмения и только когда Юпитер находиться с Сатурном в противостоянии»?
О! Спасибо за идею!
Нас в университете преподаватели непрофильных кафедр часто вообще называли «информатиками».
Работал как-то в конторе, которая разрабатывала на отечественный и зарубежный рынок. Так вот для этих двух рынков мой тайтл отличался :)
И как именно? :)
«Архитекторов я не выношу в отдельную категорию, потому что либо их не существует, либо я их не видел и не понимаю кто они такие. Все, кто приписывают себе в тайтл Architect, либо следуют моде, либо стебутся над модой, либо клинические идиоты.»
Видно, что вы не понимаете.

В IT архитектор — это человек, в чьи должностные обязанности входит прием и оценка решений уровнем выше определенного (чаще всего это начинается с уровня «какую платформу/БД/стек решений использовать»); для этого он должен постоянно держать в голове всю картину этого уровня.

Причем есть два принципиально разных архитектора — архитектор решений (solution architect) и архитектор предприятия (enteprise architect, простите кривую кальку). Первый принимает решения в рамках конкретного разрабатываемого решения; второй принимает решения в рамках общего ландшафта компании, за которую отвечает.

Если быть точным, то решения, которые постоянно принимает программист — это design decisions, а не architectural decisions. Из-за путаницы между этими вещами и возникает ваше недопонимание.
Возможно, у меня нет опыта работы в большом ентерпрайзе. Поэтому, я не знаю таких людей и специальной группы им не завожу. То, что вы описали, выглядит как уровень CTO и/или высокого менеджмента.
Да какой это менеджемент. Архитектор принимает решение о высокоуровневом дизайне комплекса, какие инструменты использовать. Причем часто это мотивируется "*опой чую", но все его *опе доверяют ибо она столько уже всего повидала :))
«принимает решение» — executive, на западе CTO.
Думаю, тут имеются ввиду консультанты крупных системных интеграторов, которые принимают участие в разработке архитектуры клиента.
CTO не будет заниматься выбором СУБД. Это классическая задача арча. А CTO подпишет бумажку.
Решение принял CTO, а руль у арча.

Это все зависит от размеров компании.
Чем больше компания, тем чаще приходится придумывать тайтлы, чтобы оправдать присутствие человека в пищевой цепочке.
Мне понравилось вот это:
1. «Я вот вообще представляюсь как Lead Interactive Architect»
2. «Все, кто приписывают себе в тайтл Architect, либо следуют моде, либо стебутся над модой, либо клинические идиоты.»

А, вообще, да, интересно написано. Добавил в избранное.
На внимательность тест (8 И это не единственный стеб над собой любимым в тексте.
>> Hacker
>>… они пишут софт для демосцены,
вообще-то демосценщики называют себя кодерами, а вовсе не хакерами/программистами

я вот когда работал в NetCracker там были архитекторы. они рисовали диаграммы, которые невозможно было использовать в силу их оторванности от реальности. Software Engineer'ы потом самостоятельно ещё раз разрабатывали архитектуру на основе бизнес-анализа, который, кстати, тоже выполняли сами вопреки бизнес-аналитикам, потому что их анализ был оторван от реалий системы. накипело, простите))

я присоединяюсь к мнению, что архитекторов по не существует. существую разработчики высокой квалификации, которые создают т.н. архитектуру. а те, кто называет себя архитекторами — нахлебники чаще всего.
я тоже работал в НетКрекере. Те кто там назывались архитекторами таковыми не являются ;)
Правильнее было бы их называть «родственники директора»?
Или люди всё таки в чём-то «шарили»?
Это сложный мультипарадигменный вопрос, и я воздержусь от ответа на него ;)
тайтл Web Developer куда отнесете?

google дает в результатах больше чем любой %Язык/Платформа% Developer
Developer же. В девелоперы и отнесу.
я не программист, тружусь техписом. и то успел уже поработать документатором, техническим писателем и разработчиком документации )) а по сути одно и то же. при этом люди, далекие от айти, считают меня программистом )) а для программистов у нас в компании существует градация: разработчик, старший разработчик и ведущий разработчик, а тестеры, которые занимаются автоматическим тестированием — тоже какие-то там разработчики

читал тут недавно книгу джоела спольски «joel on programming», он там в числе прочего и про свои студенческие годы рассказывает, как у них в америке есть обязательные курсы и по выбору. наверное от того какой набор курсов ты в итоге прослушал будешь ты на выходе софтверным инженером или компьютерным ученым.

«техпис» — звучит как какая-то болезнь, чесслово (8

а про курсы да, в штатах именно так и есть.
В теории у нас тоже как бы выбор есть, даже две группы одной специальности на одной кафедре могут иметь разные программы, хотя бы на уровне соотношения часов по разным предметам. Но на практике — куда попал при зачислении там и остаешься, если речь не идёт о переводе из более «престижной» в менее. Про коррупцию промолчу.
НЛО прилетело и опубликовало эту надпись здесь
заменить где?
Жаль, что «кодер» ныне приобрёл такой негативный смысл. Я вот наоборот, всегда считал «кодерами» тех, кто может «закодить» программу в уме сразу вписав машинные команды в память через Poke (многие, наверное, помнят на спектруме надписи на заставках «Coded by ...»). Потом такие же надписи были и на кейгенах, и демках… А потом пришли индусы и китайцы и всё испортили =)
Возник вопрос: к какой категории (примериваю на себя, есссно) отнести человека, который занимается подчисткой, рефакторингом и тому подобным доведением до ума того продукта, который появился в результате совместной работы «архитекторов», «девелоперов», «кодеров» (это из вышеперечисленных категорий), а также маркетологов, тестеров и боссов разной степени важности?

Причем ведь нельзя сказать, что каждая отдельная часть сделана плохо — проблема в совокупности.

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

Как это назвать? Ассенизатором? Гы-гы.
И неужели я один такой?

Странноватая у вас работа. Вы берете разные проекты и «подчищаете» их? А вы уверене что ваши подчищения не портят ничего? Вы хоть консультируетесь с теми кто этот продукт создал?

Простите, но я бы не доверил никакой продукт на вот такое оторваное от создавшей его команды «улучшение».

тут долго объяснять, да и мой конкретный пример судя по всему не показателен. (с вашего позволения я не стану пиариться).
метрики качества программного продукта на самом деле вычисляются достаточно просто и я с уверенностью могу сказать, что моя работа приносит ощутимый (вычисляемый, неоспоримый) результат.
В данный момент я занимаюсь тем же самым. Взял OpenSource проект (~100к строк в *.php файлах) почти со всеми признаками PHP-«быдлокода» (глобальные переменные, смесь функций и классов с непонятной ответственностью, формирование HTML в «контроллере», файлы под тысячу строк в процедурном стиле без какого либо разделения и т. п.) и «причёсываю» его, руководствуясь своим видением как оно должно быть, сформированном отчасти по книгам типа «Совершенный код» и т. п. и на хабре.

До глобальных изменений архитектуры не дошёл, но выработанная методика позволяет быть сильно уверенным, что ничего не портится. Собственно сначала выделяю кусок кода в функцию (вернее это делает IDE) — безопасно (если доверять ребятам из JetBrains :) ). Выношу функцию в метод объекта и заменяю вызов функции на создание объекта и его вызов (тоже безопасно логически, синтаксическую ошибку IDE подсветит, ошибку в названии — при тестовом прогоне). Заменяю вызовы типа mysql_query на вызовы метода своей примитивной обёртки (тоже безопасно логически) и вношу её в параметры конструктора или метода (хотя это и не обязательно, можно тестировать на БД). В итоге этот метод связан у меня только с параметрами конструктора и самого метода и могу писать на него тесты, покрывая все возможные ветвления (в рамках разумного, если вижу if ($a > 10 && $a <20), то проверяю только 10, 15 и 20). Кстати, нашёл так несколько вероятных ошибок, которые отправил в багтреккер апстрима с предполагаемыми фиксами и они были приняты с благодарностью и оперативно пофикшены. А с покрытым тестами кодом можно уже безболезненно извращаться, например, разделять «спагетти» в рамках MVC, абстрагировать хранение данных и т. п., превращая юнит-тест первоначального куска кода (просто юнит очень большой и сильносвязанный) в интеграционный для многих слабосвязанных объектов, каждый из которых покрыт уже нормальными юнит-тестами.

Можете найти слабое место в моей методике? В принципе можно сделать её ещё жестче, введя настоящие интеграционные и приемочные тесты, но, имхо, излишне, по крайней мере пока — слишком много усилий для покрытия безопасных, по-моему, изменений. Вот растащу проект на кусочки и начну менять архитектуру глобально — тогда понадобятся, а пока занимаюсь только безопасной вроде декомпозицией.
Proffessional
А я Senior Technical Consultant. В нашей большой софтверной фирме это тоже программисты, но они выше по служебной лестнице всех * Software Engineer.
Кстати, ещё выше есть Technical Fellow. Выше идут уже технические директора. Это, так сказать, для полноты картины. STC, кстати, выше manager, которые идут по параллельной ветке карьеры. Это так у нас в фирме (большая американская софтверная фирма).
У многих выпускников мех-мата в военном билете написано офицер-алгоритмист ПВО…
Пока вы будете представляться как Lead Interactive Architect, никому это и дальше не будет говорить о том, чем Вы занимаетесь (интерактивный архитектор? WTF?). Interactive Developer туда же.

Lead Interaction Architect как-то поправильнее будет. Не в английский через русский из английского от «интерактив», а от «взаимодействие».
Ну и в целом, слово «архитектор» в связке со взаимодействием это что-то типа Ваших слов:

«Архитекторов я не выношу в отдельную категорию, потому что либо их не существует, либо я их не видел и не понимаю кто они такие. Все, кто приписывают себе в тайтл Architect, либо следуют моде, либо стебутся над модой, либо клинические идиоты.»
да, так и есть
Ну, мой титул System Architect скорее означает Integration Ingeneer + Senoir на нескольких платформах, и работа заключается в разработке middleware, объединяющей несколько различных платформ (от java до flex, от php до haxe). Вполне, кажется нормальное определение для круга задач «спланировать развитие в общих чертах, чтобы потом все не развалилось в мелочах».
со мной всё просто — я Архитектор Матрицы
В своё время у нас был внутренний проект, «Matrix» называется, я тоже для него архитектуру разрабатывал. :-)
-А пошли ко мне на работу, криейтером…
-это творцом что ли?
-криейтером… криейтером… творцы нам тут на**й не нужны
(с)
А что тогда значит такой job-title: Software Development Engineer?
Очень часто в вакансиях глаза мозолит
В вакансиях и не такое увидишь.
Причем составители — серьезные конторы, вот например
Software Developer пишет софт.
Softvare Engineer создает рабочий софт.

Видимо, и то, и другое. =)
Класть я хотел на всякие мудрёные названия. Программистов называл и буду называть программистами. Ну можно ещё ведущий программист или старший.

Единственное для хакера могу сделать исключение, ибо имею как раз знакомого который вроде как и программист, но все задачи у него связаны со взломом… и для кодера, как для обозначения работы программиста любой квалификации, единственная задача которого «испортить» с одного языка на другой.
>Описания Software Developer и Software Engineer взятые с salary.com весьма абстрактны и довольно похожи. Зарплаты тоже +- одинаковы, хотя мне говорили, что люди с тайтлом Software Engineer получают больше.

Да нет никакой зависимости «больше/меньше». Целиком и полностью зависит от конкретной конторы.
Как пример — из одной конторы я ушёл с тайтла Software Engineer в другую контору на тайтл Software Developer с прибавкой +$17K к зарплате. ИМХО, эти Software Developer и Software Engineer — полные эквиваленты, разве что второй звучит более понтово.
> Существует миф, что одни разработчики в N раз более продуктивны, чем другие.

А вы только что создали миф, что гипотеза о том, что одни разработчики в N раз более продуктивны, чем другие, является ложью.
На самом деле это пока неподтвержденная гипотеза, а не миф.
Да, кстати, насчёт Architect: опираясь на свой опыт работы в нескольких канадских компаниях, у меня складывается ощущение, что под Architect-ом подразумевают следующую ступень после Senior Software Developer. По крайней мере в эту теорию укладывались и укладываются все Architect-ы, которых я знал и знаю.
Перечитал вашу статью (спасибо за неё) и решил себя обозвать «Interactive Web Engineer». Проектирую и делаю относительно сложные штуки на JS, придумывая свои решения + «рисую» свистелки-перделки.
Огромное спасибо за статью, и в частности за приложенные видео (хоть второе и испортило мне зрение).
Единственное что не дает теперь покоя — это «tinkerer». Google Dictionary выдал определение, противоречащее тому, что Вы хотели этим словом назвать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации