0,0
рейтинг
10 января 2012 в 10:58

Разработка → Coder vs. Developer vs. Engineer — а какой Job Title у тебя, %username%?

Computer Scientist, Software Engineer и Coder заходят в бар.
— О, а вот и программисты! — окликает их бармен...


Я знаю людей, которые программируют уже не один десяток лет, но обижаются, когда их называют "программистами". А по запросу Coder vs Developer vs Software Engineer в гугле находится 113 000 000 ссылок: 1 2 3 4 5 6 7 8 9 … 113 000 000. Что интересно, можно найти совершенно противоположные мнения об одном и том же. С чем-то я согласен, а с чем-то в корне нет.

Последние же несколько лет так вообще постоянно подливают масло в огонь, появляются какие-то совсем странные программисты, которые называют себя Creative Technologist, Creative Coder и Interactive Developer.

Давайте же попробуем разобраться.

А какой Job Title у тебя, %username%?


Итак, расслабьтесь, если говорить о России, то мы тут на самом деле все Инженеры-программисты (или вообще просто Программисты). Все эти непонятные тайтлы придумали где-то там, а здесь они звучат прикольно и пишутся необычно. Я вот вообще представляюсь как Lead Interactive Architect, что ничего не говорит о том, что я тут делаю.

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

Данная классификация не подразумевает какого-то абсолютного порядка и вложенности одних категорий в другие. Речь пойдет о следующих группах людей так или иначе относящихся к программированию:
  • Scripter
  • Coder
  • Hacker
  • Software Developer
  • Software Engineer
  • Computer Scientist
  • Creative coder

Scripter


Изначально, скриптами называли небольшие программы на простых языках. Вспомним Shell scripts, Batch files, AppleScript, JavaScript, ActionScript, VBScript. Их основное применение — автоматизировать повторяющиеся однотипные задачи.

Это сейчас на JavaScript можно написать Flash IDE в браузере, но «тогда» его использование ограничивалось в основном прокруткой дурацкого текста в статусной строке. Это сейчас ActionScript 3 является полноценным ООП языком, на котором пишут enterprise приложения, но «тогда» у самого первого не было даже текстового представления, действия надо было выбирать из списка, по одному на key frame.

Но смысл, тем не менее, остался. Сейчас даже дизайнер может при определенном желании написать себе скрипты для автоматизации чего бы то ни было в своей повседневной работе. Что я, кстати, весьма приветствую. Это довольно печально, смотреть, как дизайнер, например, рисует 100 «случайных» элементов руками. А еще печальнее, когда ему приходится их все перерисовывать.

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

Иногда можно услышать в корне неправильное определение скриптинга — писать инструкции, которые парсит и выполняет другая программа. Но ведь это и есть код. Инструкции, которые выполняет что-то другое.

Coder


Кодер — это человек, который переводит из одного языка в другой. Проще говоря, инструкции на «русском матерном» преобразует в инструкции на некотором языке программирования, будь то Java, PHP, C# или какой-нибудь другой, тысячи их. Разумеется, соблюдая правила и требования пратформы и окружения, где этому коду потом выполняться.

Я сам не люблю этот термин. Когда кто-то говорит «coder», я представляю себе человека, который бездумно пишет код, главное и единственное свойство которого — он компилируется; и этот человек не в состоянии делать что-то бОльшее из-за отсутствия знаний, опыта или желания; вместо того, чтобы включить мозг и разобраться в проблеме, придумать решение, он максимум способен соединить куски кода с гугла, которые он даже не понимает как работают.

Зачастую, не имеет никакого специального образования, поэтому и код у получается с запашком.

Yes, it is an open secret fact which Software Companies won’t say/accept — that Software Professionals specially in India are not programmers but mere coders, they are the assembly line workers. [via]

Отсюда идет ассоциация с обезьянами — Code Monkey.



Hacker


Под хакерами я подразумеваю совсем не аудиторию журнала Хакер, я просто не могу придумать подходящее название. В английском есть слово Tinkerer, возможно, оно подходит больше.

Сюда я отношу людей, которых можно назвать "geeks". Конечно, это стереотип еще тот, но многие как минимум частично ему соответствуют: необщительные, с посаженным ночным сидением перед плохим монитором зрением, имеют физическое или математическое образование, знают C, используют Linux, любят копаться в исходниках и пересобирать все под себя, часто одной рукой пишут код, а в другой держат паяльник, имеют обширные знания тонкостей работы железа и софта, хорошо разбираются в низкоуровневом программировании. Их можно встретить на олимпиадах, они пишут софт для демосцены, занимаются reverse engineering разнообразных устройств, и вообще чрезвычайно умные и образованные люди.

Но с ними невозможно работать в команде. По разным причинам, и да, бывают исключения.

Software Developer


Среднестатистический программист работающий в команде. Часто приклеен к языку/платформе, поэтому приписывает себе его название. Например,
  • Flash Developer
  • Java Developer
  • .NET Developer
  • ...

Принято делить на категории по знаниям/опыту:
  • Junior Developer
  • Developer
  • Senior Developer
  • Lead Developer

Взяв декартово произведение этих двух списков, получим более-менее устоявшиеся подкатегории: Junior Flash Developer, Lead Java Developer, Senior .NET Developer, ну и так далее.

Developer отличается от кодера тем, что непосредственно кодирование — это всего лишь одна из его обязанностей. Чаще всего в обязанности разработчика входят: предметный анализ, спецификация, дизайн, кодирование, отладка, юнит тесты, документация, оптимизация.

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

Существует миф, что одни разработчики в N раз более продуктивны, чем другие. Я очень рекомендую потратить час и посмотреть видео Greg Wilson — What We Actually Know About Software Development, and Why We Believe It's True. Если вам жалко времени, то конкретно по этому поводу он говорит с 18-й минуты.


Разумеется, чем «старше» разработчик, тем больше ему нужно знать. К сожалению, у нас в институтах не учат проектированию enterprise систем (по крайней мере, в мое время не учили). Поэтому, всему приходится учиться по книжкам, у умных людей или на своих ошибках.

Необходимые знания же из области в область отличаются. Неправильно говорить, что Вася плохой разработчик, потому что он не знает чего-то. Скорее всего, он и не должен, потому что у него совсем другая область. Что можно сказать, так это, например, что Flash разработчики в основном имеют более низкий уровень общей алгоритмической подготовки, чем C++ разработчики.

Lead Developer / Team Lead чаще всего отдаляется непосредственно от программирования и становится менеджером, поэтому нам не интересен. Есть много случаев, когда Senior Developer рос не в Lead Developer'а, а в Super Mega Senior Developer'а, превращаясь в ходячую энциклопедию по платформе/языку/фреймворкам — это заблуждение, что все хотят расти в менеджеров и руководить.

В небольших конторах / стартапах может быть вообще 1-2 программиста, которые цепляют себе тайтл Lead Flash Developer, а что, самый крутой девелопер тут и управляет всеми остальными 0 человеками. А потом его берут в нормальную контору джуниором. Так что это опять же не говорит ни о чем.

Software Engineer


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

По поводу значения слова Engineer в названии профессии в интернете ведутся холиворы и по сей день. Википедия говорит следующее:

Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.

Вообще, инженерное дело — это набор работающих методов и практик, которые позволяют что-то строить/делать с некоторой надежностью и уверенностью. Так вот, Software Engineering does not workReal Software Engineering – Glenn Vanderburg.


А во многих странах, чтобы называть себя инженером, нужно иметь лицензию. Беднягам, приходится быть простыми Software Developer'ами.

Но тем не менее, я четко выделяю отдельную группу Software Engineer и считаю, что слово инженер по отношению к разработке софта очень даже подходит. Инженер отвечает за то, чтобы построенное им тупо не развалилось. Главное не сравнивать со строительством мостов. Люди строят мосты уже тысячи лет, а софт пишут лет 30 от силы. В конце концов, кому какое дело, если от нагрузки упадет плохо спроектированный сервис? А вот, когда дело доходит до самолетов и атомных станций, наверняка, там есть свои аттестации и лицензии. А в будущем, я надеюсь, чтобы называться Software Engineer, нужно будет сдавать экзамены и получать корочки.

Software Engineer должен обладать большим опытом и кучей теоретических знаний не только из Math, Computer Science и Software Engineering. Знание разных языков вторично. В конце концов, принципы OOP и O(n^2) во всех языках имеют одинаковый смысл. У разработчика из этой категории обычно очень большой кругозор, у американцев есть отличная поговорка: когда у тебя есть только молоток, все вокруг выглядит как гвоздь.

Поэтому меня раздражают позиции с названиями типа Java Engineer или Ruby Engineer. Инженер не может быть привязан к языку. И, черт побери, где-то была статья ровно по этому поводу, а я не могу ее найти, чтобы процитировать.

Так что нет, чаще всего Senior/Lead Developer это не Software Engineer, хотя многими своими свойствами и обязанностями они пересекаются. Другое дело, человек может быть инженером, в свободное время делать что-то на одной платформе, читать умные книжки, а (чуть не сказал днём) на работе быть загнанным в рамки другой платформы Lead'ом, и сидеть править код за бездырями, потому что платят больше. Это да.

Software Architect

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

It is actually pretty sad that in this industry you pretty much have to tack-on architect at the end of your title after a certain number of years in the industry, otherwise you lose a level of credibility and earning potential. I believe the word architect should die as applied to software, it is not necessary and often harmful. [из комментариев к статье]

Аналогии со строительством тут не работают. Знаниями, которые нужны для создания архитектуры системы, должен обладать Software Engineer или Senior Developer. Это зависит от того, делается ли архитектура в рамках какой-то платформы, или нужно разработать что-то сложное межплатформенное.

Программистам в своей работе постоянно приходится принимать те или иные архитектурные решения. Более опытным и продвинутым доверяют приложить руки к архитектуре больших проектов. Вот и все.

А вообще, архитектуризм — это клиническая болезнь. Постоянно приходится сталкиваться с людьми, которые пишут свой движок со своей супер архитектурой. Годами. Идеальный движок в вакууме тысяч абстракций, который никогда не сталкивался с практическим применением, ибо о реальный мир он разобъется как стеклянный шар о каменный пол. Сами там были...

Computer Scientist


В отличие от инженеров, которые озабочены прикладным применением конкретных знаний, ученые от CS изучают их теоретические основы. Аналогично математикам-теоретикам, которые доказывают почему те или иные формулы и алгоритмы работают в абстрактных моделях, Computer Science берет свои корни из Математики и наследует от нее методы рассуждения и доказательства теорем. Как и в остальных науках, ученые специализируются в той или иной области, например: построение и доказательство корректности алгоритмов (в куче областей), теория вычислимости, функциональное программирование, machine learning, computer vision итд.

Про ученых в последнее время в массе известно лишь из-за функционального программирования. Например, набрав какой-то рост, Scala споткнулась о собственную сложность (еще бы, The type system in Scala is Turing complete), а в Haskell никто не понимает что такое Monad.

Хотя, казалось бы «A monad is just a monoid in the category of endofunctors, what's the problem?» [via]

Я лично не знаком ни с одним человеком, который занимается только наукой, но по крайней мере, я уверен, что такие существуют (не в нашей стране, разве что). Время от времени проскакивают интересные публикации. Вот, совсем недавно был шортлист по 2011-му году, который я опять же не могу найти теперь.

Creative coder


В последнее время, с развитием технологий и инструментов, из скриптеров стал вырастать совершенно другой и весьма интересный класс программистов. Во многом этому способствовали Flash, Processing, Max/MSP, vvvv, JavaScript, OpenFrameworks, Cinder.

Именно из скриптеров, потому что цель изначально другая — использовать код, чтобы что-то нарисовать, оживить, изобразить, сыграть. Прийдя из художников, VJ'ев и других нетехнических областей, они стали быстро впитывать поверхностные особенности программирования и окружения, в котором приходится работать.

Человек задает вопрос «А как мне сделать вот это?». Гугл подсказывает код и как соединить разные компоненты вместе. Компоненты не обязательно софтварные, время от времени возникает необходимость использовать разное железо, например датчики через Arduino. Поэтому у Creative Coder'а в основном есть обширный запас поверхностных знаний. Но, не имея достаточной подготовки, опыта, а часто нужного склада ума, он не в состоянии сделать чуть более чем простой продукт. Потому что код сделан из копипаст и заплаток между ними.

Но тем не менее, Creative Coder'ы показывают потрясающую способность быстро собирать прототипы с вынесенными наружу параметрами. Используя различные технологии и связки между ними. В то время как Engineer будет вникать в теорию, а Developer писать фреймворк (который понадобится лишь один раз, для конкретной задачи), Creative Coder нагуглит и соберет уже рабочую программу. Которая, разумеется, предназначена для дальнейшей поддержки ровно никак, но кого это волнует?

Зачастую, креативность выражается как раз в подгонке значений этих внешних параметров — «а что будет, если здесь поставить 0.1, а тут 42?.. Класс!». Поэтому, в узких кругах существует мем «заниматься креативным кодингом», что означает на глазок подгонять какие-то параметры в коде для достижения всеобщей радости или каким-то образом иметь у себя в коде кусок, которые не понятно как работает, но поставленную цель достигает.

Creative Coder'ы с одной стороны похожи на Coder'ов: качеством кода, копипастингом, отсутствием желания разобраться в теоретических основах этого кода; с другой стороны у них есть желание развиваться, делать что-то прикольное, экспериментировать, пробовать новые вещи.

Также, их можно было бы просто назвать Junior Developer'ами и поставить точку, но, как я уже сказал, у них другая изначальная цель, а код используется, потому что с его помощью можно делать креативные вещи. Если Junior Developer углубляется в основы программирования и растет в Developer'а и дальше, то Creative Coder'у такой процесс роста не интересен. Он хочет расти засчет небольших интересных (исследовательских, одноразовых) проектов.

И вот тут я, честно говоря, не понимаю как Creative Coder работает в команде с другими разработчиками, потому что в терминах команды он Junior Developer, никак иначе. Никто ему не даст самостоятельные интересные проекты, пока он не научится правильно проектировать программы и писать код. Получается, все они работают либо в одиночку, либо с единомышленниками непрограммистами?

Тем не менее, есть примеры Creative Coder'ов, которые не стали игнорировать теорию и обладают нужным складом ума для проектирования разумных алгоритмов и вменяемого софта. Не ограниченные платформой, они подошли к Software Engineer с противоположной стороны от Software Developer и в то же время проявляют качества из категории Hacker.

Creative Technologist

В совсем последнее время можно увидеть объявления, где профессия описывается как Creative Technologist. Требования везде разные: от полудизайнера/полу-js-кодера без опыта программирования (sic!), до мастеров С++ и OpenGL.

Позиция эта выросла из необходимости digital агентств воплощать креатив в код. Соответственно, казалось бы, человек с дизайнерским мышлением и умеющий кодить был бы идеальным кандидатом на данную позицию. Но, как показывает практика, в основном, люди с дизайнерским мышлением — плохие разработчики (именно разработчики). Как-то это связано с полушариями мозга, я не медик и не психолог — мне пофиг.

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

Поэтому, у меня нет специальной категории Creative Technologist. Так себя называет либо Creative Coder, либо Software Developer/Engineer, который работает в мире digital агентств.

Interactive Developer


Человек хочет подчеркнуть, что он пишет софт, который взаимодействует с пользователем. Помимо софта для интерактивных инсталляций, Interactive в последнее время приписывают себе Flash разработчики и JS разработчики, которые экспериментируют с WebGL, Canvas и всяким более другим HTML5.

Заключение


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

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

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

И, если у вас до сих пор нет подобного списка, попробуйте составить свой, или возьмите этот. В будущем пригодится.
Валентин Владимирович @valyard
карма
141,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

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

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

    Понравилось, читать легко, спасибо.
    • +2
      Ага, lvl 85 Software Engineer
      • +8
        А мне больше напоминает X-Com: Sectoid Leader, Snakeman Engineer
    • +2
      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.
  • 0
    Похоже, я таки девелопер, а не кодер. А вот юниор или дорос таки простого — сложно сказать.
  • 0
    Красиво написано. Узнаю и себя, и знакомых :)
    Согласен с тем, что должность «архитектора» довольно спорна.
    • +4
      Вся сложность в определении различий между девелоперами, архитекторами, инженерами, кодерами связана с тем, что эти термины вырваны из совершенно разных контекстов. Их и сравнить нереально. Аналогично, невозможно сравнивать, например, такие термины, как: автомобиль, машина, тачка, драндулет…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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