Комментарии 129
Наверное, мой мозг избит играми, которыми я злоупотреблял в школьное время, но первая ассоциация — именно описание персонажей (вернее, классов персонажей) в игрушке. Краткое описание скилов, примерный «урон» (уровень мастерства в данном случае) и т.п.
Понравилось, читать легко, спасибо.
Понравилось, читать легко, спасибо.
Похоже, я таки девелопер, а не кодер. А вот юниор или дорос таки простого — сложно сказать.
Красиво написано. Узнаю и себя, и знакомых :)
Согласен с тем, что должность «архитектора» довольно спорна.
Согласен с тем, что должность «архитектора» довольно спорна.
Вся сложность в определении различий между девелоперами, архитекторами, инженерами, кодерами связана с тем, что эти термины вырваны из совершенно разных контекстов. Их и сравнить нереально. Аналогично, невозможно сравнивать, например, такие термины, как: автомобиль, машина, тачка, драндулет…
Инженер — это звание, подтверждающее какой-то специфический уровень знаний. Этот термин скорее из университетской среды. Заметьте, университеты не готовят кодеров или девелоперов, там одни инженеры.
Кодер — это в большей степени сленг.
Девелопер — это не очень формальный термин, широко использующийся в профессиональной среде. Почему неформальный? Потому что на ваших похоронах вас скорее будут называть уважительно инженером, чем девелопером.
А теперь насчет архитекторов… Кто вообще такое придумал? Я думаю, что этот термин получил широкое распространение в среде разработчиков ПО из-за его использования в различных методологиях разработки ПО. Например, в RUP существует такая роль, как архитектор. Другое дело, что мало кто может четко отделить архитектора от проектировщика, но это уже другой вопрос…
Я не согласен, что архитектор — это высосанное из пальца звание. Например, Брукс, автор книги «Мифически человеко-месяц», уж точно был самым настоящим архитектором.
Но я считаю, что архитектор — это именно роль, а не звание. Т.е. инженер может быть одновременно и архитектором. Это как в армии: есть звания и есть должности, одну и ту же должность могут занимать люди с разными званиями.
Инженер — это звание, подтверждающее какой-то специфический уровень знаний. Этот термин скорее из университетской среды. Заметьте, университеты не готовят кодеров или девелоперов, там одни инженеры.
Кодер — это в большей степени сленг.
Девелопер — это не очень формальный термин, широко использующийся в профессиональной среде. Почему неформальный? Потому что на ваших похоронах вас скорее будут называть уважительно инженером, чем девелопером.
А теперь насчет архитекторов… Кто вообще такое придумал? Я думаю, что этот термин получил широкое распространение в среде разработчиков ПО из-за его использования в различных методологиях разработки ПО. Например, в RUP существует такая роль, как архитектор. Другое дело, что мало кто может четко отделить архитектора от проектировщика, но это уже другой вопрос…
Я не согласен, что архитектор — это высосанное из пальца звание. Например, Брукс, автор книги «Мифически человеко-месяц», уж точно был самым настоящим архитектором.
Но я считаю, что архитектор — это именно роль, а не звание. Т.е. инженер может быть одновременно и архитектором. Это как в армии: есть звания и есть должности, одну и ту же должность могут занимать люди с разными званиями.
Мне нравится, как в одном коментарии можно противоречить самому себе (8
Вы в курсе когда была написана эта книга? В 1975м году. Не знаю как вы, но я еще не был жив в то время.
Про методологии согласен, в waterfall стадии проектирования отводится КОЛОССАЛЬНОЕ количество времени, так что те, кто этим занимается, вполне могут называться архитекторами. Но waterfall уже давно не модно.
Вы в курсе когда была написана эта книга? В 1975м году. Не знаю как вы, но я еще не был жив в то время.
Про методологии согласен, в waterfall стадии проектирования отводится КОЛОССАЛЬНОЕ количество времени, так что те, кто этим занимается, вполне могут называться архитекторами. Но waterfall уже давно не модно.
> Мне нравится, как в одном коментарии можно противоречить самому себе
Не понял, в чем противоречие? Книга написана в 1975 г. и что?
Вот вы пишете в статье: «Архитекторов я не выношу в отдельную категорию, потому что либо их не существует, либо я их не видел и не понимаю кто они такие». Я понял, что вы не видели архитекторов, но они на самом деле существуют :) Это я пытался сказать.
Не понял, в чем противоречие? Книга написана в 1975 г. и что?
Вот вы пишете в статье: «Архитекторов я не выношу в отдельную категорию, потому что либо их не существует, либо я их не видел и не понимаю кто они такие». Я понял, что вы не видели архитекторов, но они на самом деле существуют :) Это я пытался сказать.
А второй поинт следующий — я не пытаюсь понять различия между девелоперами, кодерами и инжинерами. Я определенным группам даю названия: девелопер, кодер и инжинер. Это совершенно разные вещи, ведущие к совершенно разным результатам.
>… я не пытаюсь понять различия между девелоперами, кодерами… я определенным группам даю названия: девелопер, кодер…
Очень оригинальная логика.
Очень оригинальная логика.
Общеизвестная научная логика. Перед тем, как что-то говорить о понятиях, нужно эти понятия определить. По поводу кодеров, девелоперов и инжинеров у каждого тут свои мысли. Чтобы не слиться в тупой холивар, я даю этим группам определения. Вот после этого можно разговаривать и делить людей по группам.
Мне это напомнило школу: ты кто, рокер, пацифист или анархист?
Мне кажется, что мыслить именованными стереотипами не очень продуктивно. Очевидно, что в каждом есть чуть-чуть от любой группы. Когда помещаешь собеседника в одну из категорий, общение становится довольно плоским: вместо того, чтобы узнать человека получше, замещаешь неизвестную информацию стереотипом. Во-первых, такое отношение может быть неприятно собеседнику. Во-вторых, просто упустить какой-нибудь факт, который может оказаться полезным. К примеру, беседуя с Junior Developer можно не узнать, что он построил недавно свой квадрокоптер, записал альбом «Волшебный Клавесин» и создал третий по популярности плагин для jQuery.
Подобные редукции могут быть необходимы когда надо анализировать большое количество людей. Однако, я бы не стал применять их при личном общении.
Примеров пагубной редукции в статье предостаточно. Взять хотя бы то, что лишь Creative Technologist «не лишен коммуникационных скилов и хорошего вкуса».
Мне кажется, что мыслить именованными стереотипами не очень продуктивно. Очевидно, что в каждом есть чуть-чуть от любой группы. Когда помещаешь собеседника в одну из категорий, общение становится довольно плоским: вместо того, чтобы узнать человека получше, замещаешь неизвестную информацию стереотипом. Во-первых, такое отношение может быть неприятно собеседнику. Во-вторых, просто упустить какой-нибудь факт, который может оказаться полезным. К примеру, беседуя с Junior Developer можно не узнать, что он построил недавно свой квадрокоптер, записал альбом «Волшебный Клавесин» и создал третий по популярности плагин для jQuery.
Подобные редукции могут быть необходимы когда надо анализировать большое количество людей. Однако, я бы не стал применять их при личном общении.
Примеров пагубной редукции в статье предостаточно. Взять хотя бы то, что лишь Creative Technologist «не лишен коммуникационных скилов и хорошего вкуса».
Можно перейти на следующий уровень и присваивать человеку не группу, а линейную комбинацию групп. Например, Вася = 0.8 х Developer + 0.2 x Hacker. Большая его часть соответствует Разработчику, но при этом необходимо учитывать, что он еще и на одну пятую хакер.
Больной вопрос: ну а верстальщики — кто они?
Что-то среднее между кодером и скриптером, полагаю.
верстальщики это верстальщики, правда бывают еще скриптеры (два в одном, что очень хорошо), от части верстка не является программированием… следовательно отнести верстальщика к какой либо группе сложно.
Если речь идёт чисто о верстальщиках, а не тех, кто на JS Gmail пишет :)
я всегда выделяю верстальщиков подальше от программирования, они создают структуру, разметку, не более…
Разумеется, если считаем, что верстальщик берет макет у дизайнера и отдает его в сверстанном виде уже JS-разработчику.
а если он и пишет js скрипты сам. то это скриптер + вверстальщик
Front-End Developer?
Обычно для верстальщика по умолчанию предполагается способность сделать что-нибудь простое на JQuery. Но если речь идет о составлении чего-то более сложного, чем «прикрутить такой-то плагин», то без разработчика уже не обойтись.
Вообще, все зависит от проекта, над которым ведется работа — от сроков, сложности и задач. Если речь не идет о построении сложного ajax-приложения, то всю работу может сделать обычный верстальщик, или вообще web-дизайнер, который рисовал исходный макет. Если же мы делаем онлайн-магазин на полном ajax — это совсем другая сложность разработки — и тут уже версткой может заниматься разработчик, которого скриптером назвать оскорбительно. :)
Но, в первом случае, поскольку, дизайнер не всегда силен в скриптинге, то для этого и используют верстальщика — который полностью реализует макет, определяя внутреннюю структуру сайта, и добавляет на него нужные скрипты.
Вообще, все зависит от проекта, над которым ведется работа — от сроков, сложности и задач. Если речь не идет о построении сложного ajax-приложения, то всю работу может сделать обычный верстальщик, или вообще web-дизайнер, который рисовал исходный макет. Если же мы делаем онлайн-магазин на полном ajax — это совсем другая сложность разработки — и тут уже версткой может заниматься разработчик, которого скриптером назвать оскорбительно. :)
Но, в первом случае, поскольку, дизайнер не всегда силен в скриптинге, то для этого и используют верстальщика — который полностью реализует макет, определяя внутреннюю структуру сайта, и добавляет на него нужные скрипты.
Junior Interactive Developer? :)
Есть такой класс как qa developer, что, по вашему, должно быть присуще данным пер онажам? Каким набором скиллов они должны обладать?
Ха!
В трудовой записано как «Инженер-программист».
Англоязычный вариант по (внутреннему регламенту компании) «Analyst-programmer».
А военнике вообще «Вычислитель электронно-вычислительных машин».
А на деле занимаюсь web-разработкой.
В трудовой записано как «Инженер-программист».
Англоязычный вариант по (внутреннему регламенту компании) «Analyst-programmer».
А военнике вообще «Вычислитель электронно-вычислительных машин».
А на деле занимаюсь web-разработкой.
Coder и Developer обычно различают, кодер по спецификации делает, а девелопер по общим требованиям работает формируя спецификацию.
А вот «инженер» это вообще не про нас, у меня друг на спеца по судовым движкам учился, вот там зрелая инженерная школа, а у нас пока детские шалости — качество и предсказуемость результата говорят сами за себя. Не случайно возникло: «Если бы строители строили как пишут программисты, то первый залётный дятел разрушил бы все постройки»
А вот «инженер» это вообще не про нас, у меня друг на спеца по судовым движкам учился, вот там зрелая инженерная школа, а у нас пока детские шалости — качество и предсказуемость результата говорят сами за себя. Не случайно возникло: «Если бы строители строили как пишут программисты, то первый залётный дятел разрушил бы все постройки»
Я написал свое мнение по поводу слова «инженер». Посмотрите видео из поста.
Ну если нарисовать спецификацию и архтитектуру для приложения с той точностью что рисуют для стройки, то можно написать довольно красивое и стабильное приложение.
Мне кажется что при строительстве не меняется 50 процентов плана :) Хотя было бы забавно посмотреть на результат :)
Мне кажется что при строительстве не меняется 50 процентов плана :) Хотя было бы забавно посмотреть на результат :)
Я вот могу в окно посмотреть — новая сцена Мариинского театра вместо изначального стеклянного «пузырика» строят какую-то крепость с узкими бойницами. Да и вообще для крупных объектов изменение проекта на разных стадиях работы нормальное дело. Особенно, почему-то, для бюджетных :-/
Бывает, что меняется, но фактически это означает, что стройка замораживается на момент принятия решения об изменении до их полного согласования, а заказчик оплачивает простой и переделку. Если, конечно, изменения не косметические, а несущих конструкций. Да и с косметическими не всё так просто — всё, в том числе порядок операций, строго нормировано обычно и сказать «клейте пока обои, а мы подумаем какие будут окна» не получится.
Что в строительстве хорошо для подрядчика (хотя смотря для какого) в этом плане — всё затраты на все операции нормированы. Хочет заказчик новые рюшечки — вот смета на демонтаж старых (вместе с несущими стенами), вот на монтаж новых (тоже со стенами), потому что новые на 1% грамм тяжелее и нарушат СНиП такой-то, а сидеть всем составом руководство подрядчика не хочет. А сама смета нормирована чуть ли не до секунд по операциям — ни заказчику не придраться «а что так много, там делов-то», ни подрядчику грамотного заказчика не надурить — сразу увидит лишние работы или даже лишнее время или повышенный разряд рабочих. Торг при заключении договоров по готовым проектам идёт фактически только о норме прибыли. В идеале это конечно всё. На практике разное бывает.
Бывает, что меняется, но фактически это означает, что стройка замораживается на момент принятия решения об изменении до их полного согласования, а заказчик оплачивает простой и переделку. Если, конечно, изменения не косметические, а несущих конструкций. Да и с косметическими не всё так просто — всё, в том числе порядок операций, строго нормировано обычно и сказать «клейте пока обои, а мы подумаем какие будут окна» не получится.
Что в строительстве хорошо для подрядчика (хотя смотря для какого) в этом плане — всё затраты на все операции нормированы. Хочет заказчик новые рюшечки — вот смета на демонтаж старых (вместе с несущими стенами), вот на монтаж новых (тоже со стенами), потому что новые на 1% грамм тяжелее и нарушат СНиП такой-то, а сидеть всем составом руководство подрядчика не хочет. А сама смета нормирована чуть ли не до секунд по операциям — ни заказчику не придраться «а что так много, там делов-то», ни подрядчику грамотного заказчика не надурить — сразу увидит лишние работы или даже лишнее время или повышенный разряд рабочих. Торг при заключении договоров по готовым проектам идёт фактически только о норме прибыли. В идеале это конечно всё. На практике разное бывает.
Ох уж эти тайтлы. Зайдёшь на ЛинкедИн, там такие крутые названия специальностей попадаются, что очуметь можно.
А на самом деле это просто своего рода пиар и ЧСВ. Ну хотят люди чувствовать себя особенными среди тысяч «обычных» программистов.
А на самом деле это просто своего рода пиар и ЧСВ. Ну хотят люди чувствовать себя особенными среди тысяч «обычных» программистов.
Ваша проблема с пониманием Software Architect вызвана тем, что это не job title, это роль. Поэтому он плохо вписывается в ряд остальных наименований.
Знаниями, которые нужны для создания архитектуры системы, должен обладать Software Engineer или Senior Developer.Это миф. Чтобы обладать знаниями, нужно либо чтобы тебе их кто-то передал (а у нас нигде не учат созданию архитектуры, насколько мне известно; более того, лет 10 назад даже литературы качественной на эту тему практически не было), либо получить их на собственном опыте. А какой процент из Software Engineer/Senior Developer реально имеют такую возможность — проектировать от и до много больших систем, изучать как полученные системы работают в реальном мире, экспериментировать изменяя архитектуру этих систем, и т.д.? Вот те, кому повезло получить такой опыт, и называются Software Architect. Хотя большую часть времени они действительно работают как Software Engineer/Senior Developer воплощая ранее разработанную архитектуру в коде.
Непонятно, почему Вы решили, что Java Engineer это привязка в языку? Я вот всегда полагал, что это привязка к технологии, которая гораздо шире языка. То же самое, что врач-ортопед отличается от врача-окулиста. =)
Спасибо за статью, очень познавательно, не давно думал а кто же все же я..?
в итоге пришел к выводу что отношусь к нескольким группам, Hacker и Developer, если привязываться к языку, то привязка может меняется от проекта к проекту (не один ведь язык используется во всех проектах), а если к опыту, то тут субъективно… я думаю проще оценить себя будет, если разбить категории в процентном соотношении знаний
Junior Developer 25%
Developer 25% (в сумме 50% знаний)
Senior Developer 25% (в сумме 75% знаний)
Lead Developer 25% (в сумме 100% знаний)
тогда можно и прикинуть на сколько ты умен…
в итоге пришел к выводу что отношусь к нескольким группам, Hacker и Developer, если привязываться к языку, то привязка может меняется от проекта к проекту (не один ведь язык используется во всех проектах), а если к опыту, то тут субъективно… я думаю проще оценить себя будет, если разбить категории в процентном соотношении знаний
Junior Developer 25%
Developer 25% (в сумме 50% знаний)
Senior Developer 25% (в сумме 75% знаний)
Lead Developer 25% (в сумме 100% знаний)
тогда можно и прикинуть на сколько ты умен…
Для этого нужно знать столько, сколько знает Lead Developer иначе как определишь 100% :)
тут получается потолок (100%) и пол (0%), ну и уже в интервалах между титулами смотришь.
сложность в том что это ни где не прописано, какими знаниями должен обладать Junior, Senior и т.д.
и получается, что суждение оказывается субъективным по отношению к каждому персонажу…
тут выходит как и с понятием качества, для одних кривые стены это качество а для других нет…
сложность в том что это ни где не прописано, какими знаниями должен обладать Junior, Senior и т.д.
и получается, что суждение оказывается субъективным по отношению к каждому персонажу…
тут выходит как и с понятием качества, для одних кривые стены это качество а для других нет…
Т.о. статус Lead Developer недостижим, т.к. познать всё невозможно.
При том, к познанию разработчики стремятся, но при этом быть lead'ом — не все.
Всё, взаимоисключающие пункты.
При том, к познанию разработчики стремятся, но при этом быть lead'ом — не все.
Всё, взаимоисключающие пункты.
можно попытаться определить рамки каждого уровня, что при достижении определенных знаний (проверять например тестами, заданиями, работой), будет происходить переход.
мм, кстати, на сколько я помню в ТК РФ нет этих рамок (у меня в трудной написано было «Программист», занимался я разработкой портала дистанционного образования).
должно быть ведь по классификатору для начислений всяких и т.д. я в вопросы трудового законодательства не вникал, могу ошибаться
должно быть ведь по классификатору для начислений всяких и т.д. я в вопросы трудового законодательства не вникал, могу ошибаться
Нету. И надеюсь, что не будет. А то будем сдавать госы по бейсику и php3 в лучшем случае. И получить неуд за использование функционала языка, который проверяющий не знает.
Там есть категории. Программист первой категории, например. Но, если прочитать описание професии Инженер-программист, бОльшая часть народу тут под него не подойдет.
Серьёзно? А какая статья? Почитать хоть на досуге, попробовать определиться.
На внимательность тест. В статье есть ссылка.
www.rabotka.ru/spravkval/116.php
www.rabotka.ru/spravkval/116.php
Под статьёй я подразумеваю не некую статью, а конкретный номер и кодекс.
Постановление Минтруда РФ от 21 августа 1998 г. N 37 (с изменениями) «Квалификационный справочник должностей руководителей, специалистов и других служащих»
Требования к квалификации.
Инженер — программист I категории: высшее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности инженера — программиста II категории не менее 3 лет.
Инженер — программист II категории: высшее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности инженера — программиста III категории или других инженерно — технических должностях, замещаемых специалистами с высшим профессиональным образованием, не менее 3 лет.
Инженер — программист III категории: высшее профессиональное (техническое или инженерно — экономическое) образование и опыт работы по специальности, приобретенный в период обучения, или стаж работы на инженерно — технических должностях без квалификационной категории.
Инженер — программист: высшее профессиональное (техническое или инженерно — экономическое) образование без предъявления требований к стажу работы или среднее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности техника I категории не менее 3 лет либо других должностях, замещаемых специалистами со средним профессиональным образованием, не менее 5 лет.
Ещё есть и техники-программисты, получается.
Требования к квалификации.
Инженер — программист I категории: высшее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности инженера — программиста II категории не менее 3 лет.
Инженер — программист II категории: высшее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности инженера — программиста III категории или других инженерно — технических должностях, замещаемых специалистами с высшим профессиональным образованием, не менее 3 лет.
Инженер — программист III категории: высшее профессиональное (техническое или инженерно — экономическое) образование и опыт работы по специальности, приобретенный в период обучения, или стаж работы на инженерно — технических должностях без квалификационной категории.
Инженер — программист: высшее профессиональное (техническое или инженерно — экономическое) образование без предъявления требований к стажу работы или среднее профессиональное (техническое или инженерно — экономическое) образование и стаж работы в должности техника I категории не менее 3 лет либо других должностях, замещаемых специалистами со средним профессиональным образованием, не менее 5 лет.
Ещё есть и техники-программисты, получается.
Ну грубо говоря достижим если человек будет обладать <75% знаний =)
и тут уже 100% могут определяться в компании, в статье упоминалось что в одно компании ты Lead, а пришел в другую ты Senior, все относительно…
и тут уже 100% могут определяться в компании, в статье упоминалось что в одно компании ты Lead, а пришел в другую ты Senior, все относительно…
Не не пойдет. Один великий сказал «Я понимаю что я ничего не понимаю».
Вон возьми хотя бы STL — чем глубже в лес тем толще дровосеки, иногда такие конструкции завернешь что мама дорогая объясните мне почему это работает :)
Вон возьми хотя бы STL — чем глубже в лес тем толще дровосеки, иногда такие конструкции завернешь что мама дорогая объясните мне почему это работает :)
В визитке написано Lead Algorithm Developer. А по описанию — нечто среднее между Hacker и Creative Coder (вот только куски, которые непонятно, почему работают, я не таскаю из сети, а всегда пишу сам). А что делать? Задачи в основном попадаются эвристические, без магической подгонки параметров их решения настроить трудно.
Нас в университете преподаватели непрофильных кафедр часто вообще называли «информатиками».
Работал как-то в конторе, которая разрабатывала на отечественный и зарубежный рынок. Так вот для этих двух рынков мой тайтл отличался :)
«Архитекторов я не выношу в отдельную категорию, потому что либо их не существует, либо я их не видел и не понимаю кто они такие. Все, кто приписывают себе в тайтл Architect, либо следуют моде, либо стебутся над модой, либо клинические идиоты.»
Видно, что вы не понимаете.
В IT архитектор — это человек, в чьи должностные обязанности входит прием и оценка решений уровнем выше определенного (чаще всего это начинается с уровня «какую платформу/БД/стек решений использовать»); для этого он должен постоянно держать в голове всю картину этого уровня.
Причем есть два принципиально разных архитектора — архитектор решений (solution architect) и архитектор предприятия (enteprise architect, простите кривую кальку). Первый принимает решения в рамках конкретного разрабатываемого решения; второй принимает решения в рамках общего ландшафта компании, за которую отвечает.
Если быть точным, то решения, которые постоянно принимает программист — это design decisions, а не architectural decisions. Из-за путаницы между этими вещами и возникает ваше недопонимание.
Видно, что вы не понимаете.
В IT архитектор — это человек, в чьи должностные обязанности входит прием и оценка решений уровнем выше определенного (чаще всего это начинается с уровня «какую платформу/БД/стек решений использовать»); для этого он должен постоянно держать в голове всю картину этого уровня.
Причем есть два принципиально разных архитектора — архитектор решений (solution architect) и архитектор предприятия (enteprise architect, простите кривую кальку). Первый принимает решения в рамках конкретного разрабатываемого решения; второй принимает решения в рамках общего ландшафта компании, за которую отвечает.
Если быть точным, то решения, которые постоянно принимает программист — это design decisions, а не architectural decisions. Из-за путаницы между этими вещами и возникает ваше недопонимание.
Возможно, у меня нет опыта работы в большом ентерпрайзе. Поэтому, я не знаю таких людей и специальной группы им не завожу. То, что вы описали, выглядит как уровень CTO и/или высокого менеджмента.
Да какой это менеджемент. Архитектор принимает решение о высокоуровневом дизайне комплекса, какие инструменты использовать. Причем часто это мотивируется "*опой чую", но все его *опе доверяют ибо она столько уже всего повидала :))
«принимает решение» — executive, на западе CTO.
Думаю, тут имеются ввиду консультанты крупных системных интеграторов, которые принимают участие в разработке архитектуры клиента.
CTO не будет заниматься выбором СУБД. Это классическая задача арча. А CTO подпишет бумажку.
Решение принял CTO, а руль у арча.
Решение принял CTO, а руль у арча.
Мне понравилось вот это:
1. «Я вот вообще представляюсь как Lead Interactive Architect»
2. «Все, кто приписывают себе в тайтл Architect, либо следуют моде, либо стебутся над модой, либо клинические идиоты.»
А, вообще, да, интересно написано. Добавил в избранное.
1. «Я вот вообще представляюсь как Lead Interactive Architect»
2. «Все, кто приписывают себе в тайтл Architect, либо следуют моде, либо стебутся над модой, либо клинические идиоты.»
А, вообще, да, интересно написано. Добавил в избранное.
>> Hacker
>>… они пишут софт для демосцены,
вообще-то демосценщики называют себя кодерами, а вовсе не хакерами/программистами
>>… они пишут софт для демосцены,
вообще-то демосценщики называют себя кодерами, а вовсе не хакерами/программистами
я вот когда работал в NetCracker там были архитекторы. они рисовали диаграммы, которые невозможно было использовать в силу их оторванности от реальности. Software Engineer'ы потом самостоятельно ещё раз разрабатывали архитектуру на основе бизнес-анализа, который, кстати, тоже выполняли сами вопреки бизнес-аналитикам, потому что их анализ был оторван от реалий системы. накипело, простите))
я присоединяюсь к мнению, что архитекторов по не существует. существую разработчики высокой квалификации, которые создают т.н. архитектуру. а те, кто называет себя архитекторами — нахлебники чаще всего.
я присоединяюсь к мнению, что архитекторов по не существует. существую разработчики высокой квалификации, которые создают т.н. архитектуру. а те, кто называет себя архитекторами — нахлебники чаще всего.
тайтл Web Developer куда отнесете?
google дает в результатах больше чем любой %Язык/Платформа% Developer
google дает в результатах больше чем любой %Язык/Платформа% Developer
я не программист, тружусь техписом. и то успел уже поработать документатором, техническим писателем и разработчиком документации )) а по сути одно и то же. при этом люди, далекие от айти, считают меня программистом )) а для программистов у нас в компании существует градация: разработчик, старший разработчик и ведущий разработчик, а тестеры, которые занимаются автоматическим тестированием — тоже какие-то там разработчики
читал тут недавно книгу джоела спольски «joel on programming», он там в числе прочего и про свои студенческие годы рассказывает, как у них в америке есть обязательные курсы и по выбору. наверное от того какой набор курсов ты в итоге прослушал будешь ты на выходе софтверным инженером или компьютерным ученым.
читал тут недавно книгу джоела спольски «joel on programming», он там в числе прочего и про свои студенческие годы рассказывает, как у них в америке есть обязательные курсы и по выбору. наверное от того какой набор курсов ты в итоге прослушал будешь ты на выходе софтверным инженером или компьютерным ученым.
«техпис» — звучит как какая-то болезнь, чесслово (8
а про курсы да, в штатах именно так и есть.
а про курсы да, в штатах именно так и есть.
В теории у нас тоже как бы выбор есть, даже две группы одной специальности на одной кафедре могут иметь разные программы, хотя бы на уровне соотношения часов по разным предметам. Но на практике — куда попал при зачислении там и остаешься, если речь не идёт о переводе из более «престижной» в менее. Про коррупцию промолчу.
Жаль, что «кодер» ныне приобрёл такой негативный смысл. Я вот наоборот, всегда считал «кодерами» тех, кто может «закодить» программу в уме сразу вписав машинные команды в память через Poke (многие, наверное, помнят на спектруме надписи на заставках «Coded by ...»). Потом такие же надписи были и на кейгенах, и демках… А потом пришли индусы и китайцы и всё испортили =)
Возник вопрос: к какой категории (примериваю на себя, есссно) отнести человека, который занимается подчисткой, рефакторингом и тому подобным доведением до ума того продукта, который появился в результате совместной работы «архитекторов», «девелоперов», «кодеров» (это из вышеперечисленных категорий), а также маркетологов, тестеров и боссов разной степени важности?
Причем ведь нельзя сказать, что каждая отдельная часть сделана плохо — проблема в совокупности.
Я не лид, потому как не раздаю таски и не контролирую совместную работу
Я не инженер/архитектор, так как мое влияние на сложившуюся исторически архитектуру минимально
Я не креатив-кодер, так как не генерирую чего-то нового, а довожу работающее
Я не жуниор, так как обладаю навыками и опытом, которого нет у других
Как это назвать? Ассенизатором? Гы-гы.
И неужели я один такой?
Причем ведь нельзя сказать, что каждая отдельная часть сделана плохо — проблема в совокупности.
Я не лид, потому как не раздаю таски и не контролирую совместную работу
Я не инженер/архитектор, так как мое влияние на сложившуюся исторически архитектуру минимально
Я не креатив-кодер, так как не генерирую чего-то нового, а довожу работающее
Я не жуниор, так как обладаю навыками и опытом, которого нет у других
Как это назвать? Ассенизатором? Гы-гы.
И неужели я один такой?
Странноватая у вас работа. Вы берете разные проекты и «подчищаете» их? А вы уверене что ваши подчищения не портят ничего? Вы хоть консультируетесь с теми кто этот продукт создал?
Простите, но я бы не доверил никакой продукт на вот такое оторваное от создавшей его команды «улучшение».
Простите, но я бы не доверил никакой продукт на вот такое оторваное от создавшей его команды «улучшение».
тут долго объяснять, да и мой конкретный пример судя по всему не показателен. (с вашего позволения я не стану пиариться).
метрики качества программного продукта на самом деле вычисляются достаточно просто и я с уверенностью могу сказать, что моя работа приносит ощутимый (вычисляемый, неоспоримый) результат.
метрики качества программного продукта на самом деле вычисляются достаточно просто и я с уверенностью могу сказать, что моя работа приносит ощутимый (вычисляемый, неоспоримый) результат.
В данный момент я занимаюсь тем же самым. Взял OpenSource проект (~100к строк в *.php файлах) почти со всеми признаками PHP-«быдлокода» (глобальные переменные, смесь функций и классов с непонятной ответственностью, формирование HTML в «контроллере», файлы под тысячу строк в процедурном стиле без какого либо разделения и т. п.) и «причёсываю» его, руководствуясь своим видением как оно должно быть, сформированном отчасти по книгам типа «Совершенный код» и т. п. и на хабре.
До глобальных изменений архитектуры не дошёл, но выработанная методика позволяет быть сильно уверенным, что ничего не портится. Собственно сначала выделяю кусок кода в функцию (вернее это делает IDE) — безопасно (если доверять ребятам из JetBrains :) ). Выношу функцию в метод объекта и заменяю вызов функции на создание объекта и его вызов (тоже безопасно логически, синтаксическую ошибку IDE подсветит, ошибку в названии — при тестовом прогоне). Заменяю вызовы типа mysql_query на вызовы метода своей примитивной обёртки (тоже безопасно логически) и вношу её в параметры конструктора или метода (хотя это и не обязательно, можно тестировать на БД). В итоге этот метод связан у меня только с параметрами конструктора и самого метода и могу писать на него тесты, покрывая все возможные ветвления (в рамках разумного, если вижу
Можете найти слабое место в моей методике? В принципе можно сделать её ещё жестче, введя настоящие интеграционные и приемочные тесты, но, имхо, излишне, по крайней мере пока — слишком много усилий для покрытия безопасных, по-моему, изменений. Вот растащу проект на кусочки и начну менять архитектуру глобально — тогда понадобятся, а пока занимаюсь только безопасной вроде декомпозицией.
До глобальных изменений архитектуры не дошёл, но выработанная методика позволяет быть сильно уверенным, что ничего не портится. Собственно сначала выделяю кусок кода в функцию (вернее это делает IDE) — безопасно (если доверять ребятам из JetBrains :) ). Выношу функцию в метод объекта и заменяю вызов функции на создание объекта и его вызов (тоже безопасно логически, синтаксическую ошибку IDE подсветит, ошибку в названии — при тестовом прогоне). Заменяю вызовы типа mysql_query на вызовы метода своей примитивной обёртки (тоже безопасно логически) и вношу её в параметры конструктора или метода (хотя это и не обязательно, можно тестировать на БД). В итоге этот метод связан у меня только с параметрами конструктора и самого метода и могу писать на него тесты, покрывая все возможные ветвления (в рамках разумного, если вижу
if ($a > 10 && $a <20)
, то проверяю только 10, 15 и 20). Кстати, нашёл так несколько вероятных ошибок, которые отправил в багтреккер апстрима с предполагаемыми фиксами и они были приняты с благодарностью и оперативно пофикшены. А с покрытым тестами кодом можно уже безболезненно извращаться, например, разделять «спагетти» в рамках MVC, абстрагировать хранение данных и т. п., превращая юнит-тест первоначального куска кода (просто юнит очень большой и сильносвязанный) в интеграционный для многих слабосвязанных объектов, каждый из которых покрыт уже нормальными юнит-тестами.Можете найти слабое место в моей методике? В принципе можно сделать её ещё жестче, введя настоящие интеграционные и приемочные тесты, но, имхо, излишне, по крайней мере пока — слишком много усилий для покрытия безопасных, по-моему, изменений. Вот растащу проект на кусочки и начну менять архитектуру глобально — тогда понадобятся, а пока занимаюсь только безопасной вроде декомпозицией.
Proffessional
А я Senior Technical Consultant. В нашей большой софтверной фирме это тоже программисты, но они выше по служебной лестнице всех * Software Engineer.
У многих выпускников мех-мата в военном билете написано офицер-алгоритмист ПВО…
Пока вы будете представляться как Lead Interactive Architect, никому это и дальше не будет говорить о том, чем Вы занимаетесь (интерактивный архитектор? WTF?). Interactive Developer туда же.
Lead Interaction Architect как-то поправильнее будет. Не в английский через русский из английского от «интерактив», а от «взаимодействие».
Lead Interaction Architect как-то поправильнее будет. Не в английский через русский из английского от «интерактив», а от «взаимодействие».
Ну и в целом, слово «архитектор» в связке со взаимодействием это что-то типа Ваших слов:
«Архитекторов я не выношу в отдельную категорию, потому что либо их не существует, либо я их не видел и не понимаю кто они такие. Все, кто приписывают себе в тайтл Architect, либо следуют моде, либо стебутся над модой, либо клинические идиоты.»
«Архитекторов я не выношу в отдельную категорию, потому что либо их не существует, либо я их не видел и не понимаю кто они такие. Все, кто приписывают себе в тайтл Architect, либо следуют моде, либо стебутся над модой, либо клинические идиоты.»
Ну, мой титул System Architect скорее означает Integration Ingeneer + Senoir на нескольких платформах, и работа заключается в разработке middleware, объединяющей несколько различных платформ (от java до flex, от php до haxe). Вполне, кажется нормальное определение для круга задач «спланировать развитие в общих чертах, чтобы потом все не развалилось в мелочах».
Писькомерство какое-то.
со мной всё просто — я Архитектор Матрицы
-А пошли ко мне на работу, криейтером…
-это творцом что ли?
-криейтером… криейтером… творцы нам тут на**й не нужны
(с)
-это творцом что ли?
-криейтером… криейтером… творцы нам тут на**й не нужны
(с)
А что тогда значит такой job-title: Software Development Engineer?
Очень часто в вакансиях глаза мозолит
Очень часто в вакансиях глаза мозолит
В вакансиях и не такое увидишь.
Причем составители — серьезные конторы, вот например
Software Developer пишет софт.
Softvare Engineer создает рабочий софт.
Видимо, и то, и другое. =)
Softvare Engineer создает рабочий софт.
Видимо, и то, и другое. =)
Класть я хотел на всякие мудрёные названия. Программистов называл и буду называть программистами. Ну можно ещё ведущий программист или старший.
Единственное для хакера могу сделать исключение, ибо имею как раз знакомого который вроде как и программист, но все задачи у него связаны со взломом… и для кодера, как для обозначения работы программиста любой квалификации, единственная задача которого «испортить» с одного языка на другой.
Единственное для хакера могу сделать исключение, ибо имею как раз знакомого который вроде как и программист, но все задачи у него связаны со взломом… и для кодера, как для обозначения работы программиста любой квалификации, единственная задача которого «испортить» с одного языка на другой.
>Описания Software Developer и Software Engineer взятые с salary.com весьма абстрактны и довольно похожи. Зарплаты тоже +- одинаковы, хотя мне говорили, что люди с тайтлом Software Engineer получают больше.
Да нет никакой зависимости «больше/меньше». Целиком и полностью зависит от конкретной конторы.
Как пример — из одной конторы я ушёл с тайтла Software Engineer в другую контору на тайтл Software Developer с прибавкой +$17K к зарплате. ИМХО, эти Software Developer и Software Engineer — полные эквиваленты, разве что второй звучит более понтово.
Да нет никакой зависимости «больше/меньше». Целиком и полностью зависит от конкретной конторы.
Как пример — из одной конторы я ушёл с тайтла Software Engineer в другую контору на тайтл Software Developer с прибавкой +$17K к зарплате. ИМХО, эти Software Developer и Software Engineer — полные эквиваленты, разве что второй звучит более понтово.
> Существует миф, что одни разработчики в N раз более продуктивны, чем другие.
А вы только что создали миф, что гипотеза о том, что одни разработчики в N раз более продуктивны, чем другие, является ложью.
На самом деле это пока неподтвержденная гипотеза, а не миф.
А вы только что создали миф, что гипотеза о том, что одни разработчики в N раз более продуктивны, чем другие, является ложью.
На самом деле это пока неподтвержденная гипотеза, а не миф.
Да, кстати, насчёт Architect: опираясь на свой опыт работы в нескольких канадских компаниях, у меня складывается ощущение, что под Architect-ом подразумевают следующую ступень после Senior Software Developer. По крайней мере в эту теорию укладывались и укладываются все Architect-ы, которых я знал и знаю.
Перечитал вашу статью (спасибо за неё) и решил себя обозвать «Interactive Web Engineer». Проектирую и делаю относительно сложные штуки на JS, придумывая свои решения + «рисую» свистелки-перделки.
System Administrator
Огромное спасибо за статью, и в частности за приложенные видео (хоть второе и испортило мне зрение).
Единственное что не дает теперь покоя — это «tinkerer». Google Dictionary выдал определение, противоречащее тому, что Вы хотели этим словом назвать.
Единственное что не дает теперь покоя — это «tinkerer». Google Dictionary выдал определение, противоречащее тому, что Вы хотели этим словом назвать.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Coder vs. Developer vs. Engineer — а какой Job Title у тебя, %username%?