Чем отличается программист от айтишника?

Как ни крути, а приходится как-то делить специальных людей на классы. Если с ролями всё понятно (фронтендер, девопс, админ, бекендер, нок и т.д.) и с приблизительным уровнем тоже (junior, middle, senior, Bozhenka)… есть ещё одно измерение, без введения которого можно не заметить разницу между очень разными специалистами.

Разработчик — тот класс, который почти целиком захватил IT/CS сектор. Считаю их пользователями. Водители. Одни менее опытные, другие более опытные. Совсем продвинутые могут перегнать тачку из Владивостока в Сомали по дну океанов. Знают правила. Разбираются в марках масла. Девопсы-водители даже умеют менять пробитые камеры и продуть свечу, чем восхищают водителей другого пола.

Но основная особенность именно в использовании. Разработчик существует на всём готовом. Готового всё больше. Настали благословенные времена, в которые 99% задач решаются методом «найди нужный кусок кода, почитай мануал (если не остался в душе junior’ом), прикрути клеем с изолентой в свой сервис, иди домой пить пиво”. Соответственно, в эту сторону разработчики и развиваются. Водитель какой-нибудь Subaru наизусть знает заправки с хорошим бензином, магазины нужных запчастей, вступает в клубы любителей Subaru, с удовольствием листает мануалы тюнинга. Становится уважаемым субароводом.

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

Подчеркну важное. Вышеописанное не означает, что разработчик глуп и / или бесполезен. Означает, что он мыслит и действует вполне определённым, пусть и ограниченным качественно образом. Качественно, не количественно. На то, чтобы освоить современный ассортимент «магазинов софтовой гречи”, можно жизнь положить, всё равно не хватит.

В крайнем проявлении разработчик относится к специальности без особых эмоций. Работа как работа. Восемь часов отработаю и точка. Мог клерком работать, бумаги перекладывая и печати ставя, а работаю разработчиком. Строчки кода перекладываю и enter нажимаю. Жду вечера, чтобы убежать и заняться чем-нибудь интересным. Таких тоже много.

Разработчики обычно привязаны к одному стеку. Один язык. Один привычный фреймворк. Одна любимая база. Хороший разработчик знает их хорошо. Средненький просто знает.

Программистами считаю другую категорию. Пожалуй, наиболее близки к ним пресловутые хакеры 70-х, для которых естественным было знать всё максимально глубоко и широко в области «как это работает”. Продолжая автомобильную аналогию… можно сказать, программист — это механик с образованием физика. Может не знать, как конкретно в данном двигателе прибиты клапаны, но объяснит, зачем они там, что с ними будет и на что их можно заменить без таких же на полке соседнего магазина.

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

При всей моей симпатии именно к этому классу… сложные ребята. Их работа подпитана эмоциями, любовью к специальности, к знаниям, к процессу. Им важен интерес. Соответственно, можно здорово промахнуться, поставив на задачу того, кто на бумаге спроектирует великолепный проект, но никогда не доведёт его до релиза (скучно, ведь интереснее было придумать). Также промахиваешься, не контролируя любителей перепробовать буквально всё в поисках оптимальности (и снова не будет релиза годами, ведь сервис может работать на секунду быстрее!). И ещё десятки способов промахнуться, не угадав момент, в который программист считает задачу выполненной, посчитав решением любопытную ему часть.

В крайнем проявлении программисты бесполезны. Если крайнее проявление разработчика можно хотя бы гвозди посадить забивать и гвозди будут забиты, то в случае с программистом даже к молотку не подойдёт. Сначала прочитает про гвозди. Узнает про молотки. Получит седьмое высшее гвоздезабивательное. Напишет пяток научных работ. Разработает теорию влияния фаз Меркурия (ещё и обоснует наличие фаз) на гвоздевую ржавчину. И вообще хорошо проведёт время, но ни один гвоздь забит не будет.

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

Между этими двумя классами и вокруг них есть другие. Переходные или «братские”. Но именно «разработчиков” и «программистов” хватает для того, чтобы уместно нанимать и уместно ставить людей на уместные задачи. Разработчики плохо проявляют себя в R&D, также ниочинь, если требуется построить что-то отличное от массового производства. Программисты не успевают себя проявить там, где специализированный разработчик (jQuery-программист) за сутки поднимет дом. Типовой, да, но за сутки и вполне пригодный.

Среди прочего хочется устойчиво донести две важных, мне кажется, мысли.

Во-первых, это не деление на глупых или умных. Было бы слишком примитивно, да и неверно по сути. Пишущие код являются людьми, зачастую очень разными, а люди сложны. Разработчик вполне может однажды стать программистом. Программист может стать разработчиком. С годами у многих меняются внутренние движители. То, что горячо любил вчера, завтра покажется пресным (и программист уходит водить Боинги). То, что ещё вчера пресное, сегодня вдруг раскрывается сотней граней и разработчик усаживается на попу перед изящной архитектурой микропроцессора с мыслью «это лучше клуба по пятницам”. Одним не хватает всего одного внешнего импульса (пинка по жопе), чтобы жизнь изменилась. Другие просто пока ещё не нашли себя. Всякое бывает.

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

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

Как на практике выяснить, кто есть кто? Допустим, собеседование. Достаточно задавать базовые вопросы, ответы на которые лежат вне плоскости обычной деятельности. Джавистов спросить про GC. Питонистов про GIL. В целом задавать вопросы из области «как работают ”. Обычно для написания сервисов эти знания не нужны. Соответственно, разработчик пожмёт плечами. Раз не нужны, он и не узнавал. Программист будет час рассказывать, вдаваясь в детали из других языков.

Такие вот пирожки с котятами.

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

Программер и девелопер Феликс в блоге своего имени разместил статью, в которой попробовал разграничить такие виды деятельности, как разработка и программирование. По его мнению, деление по уровням (junior, middle, senior) и ролям (front-end, back-end, админ) является недостаточным. Феликс предлагает различать разработчиков и программистов и учитывать этот раздел при найме специалистов.

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

Разработка программного обеспечения

Разработчиков уже очень много и становится все больше. Они практически захватили IT-сферу. Они создают приложения на разных языкам программирования, с применением разных фреймворков. Но Феликс считает их скорее пользователями, чем программистами.

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

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

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

Программирование

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

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

Как определить и кого выбрать?

Определить, кто перед вами, по мнению Феликса, довольно просто. На собеседовании стоит задать вопрос, не относящийся непосредственно к сфере деятельности потенциального работника. У специалиста по JavaScript спросите о Python и наоборот. Разработчик скорее всего не будет знать ответов, а программист погрузится в рассуждения.

И тут важно вспомнить, для чего вам нужен этот специалист. Если для создания чего-то уникального, – программист подойдет лучше. Возможно, для доведения продукта до ума потребуется потом нанять целый штат, но это будет потом. Если же вам нужно быстро создать нечто типовое, никто не справится лучше разработчика.

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

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

«Чем отличается айтишник от программиста?».

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

В чем заключается работа айтишника?

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

Можно выделить следующие виды айтишников:

  • Бизнес-аналитики, выступающие связующим элементом между IT-технологиями и владельцами фирм

  • Разработчики софта, ПО и утилит

  • Специалисты, занятые работой в сфере информационной безопасности

  • Специалисты по трафику

  • Сисадмины и др.

Программист

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

Эникейщик

Это понятие происходит от слов «any» (какой-либо) и «key» (кнопка), то есть нужно нажать на какую-либо клавишу, чтобы система продолжила работать. Эникейщиками в шутку называют сотрудников компании, в обязанности которых входит техническая поддержка ПК-пользователей в пределах компании. Для этого не обязательно иметь специальное образование, поэтому эникейщиками часто называют студентов, которые хорошо разбираются в компьютерах.

Системный администратор

В его обязанности входит обеспечение бесперебойной работы Интернета и корпоративной сети. Настроив однажды сеть, сисадмин в дальнейшем только поддерживает ее в работоспособном состоянии.

Компьютерщик

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

Компьютерный мастер

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

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

Так, по крайней мере, думают многие. На деле всё иначе. «Ты ж программист, помоги с компьютером!» — такие просьбы ИТ-специалисты слышат часто. Но если у вас проблемы со зрением, вы же не пойдете решать их к логопеду?

Кто такой ИТ-специалист на самом деле

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

Программист как главный пример айтишника

Программист занимается написанием кода. Но программист программисту рознь: так, фронтенд-разработчики создают видимые пользователю части сайта, бэкенд-разработчики — то, что «под капотом»: движок, который обрабатывает данные и позволяет сайту работать корректно.

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

Есть ещё embedded-разработчики — они пишут программы для конкретных устройств, например, бортовых компьютеров в автомобиле, систем «умный дом», роботов и т.д. Если вы попросите такого специалиста написать сайт, вряд ли будете довольны результатом. Возможно, он виртуозно владеет языком С++, а HTML и JavaScript в глаза не видел.

Системные администраторы — тоже айтишники?

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

Недавно появилась ещё одна интересная профессия — DevOps. Это люди, которые оптимизируют взаимодействие программистов и системных администраторов. DevOps нужен, чтобы программисты работали в лучших условиях и быстрее выпускали новые версии ПО.

Специалисты по кибербезопасности

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

И это далеко не полный список. Отрасль развивается, количество специализаций растет с каждым днем. К слову, и хакеры, и ваш учитель информатики — тоже формально айтишники.

Где и как учатся на айтишника?

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

Работа айтишником. Идти или не идти?

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

Записи созданы 8837

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие записи

Начните вводить, то что вы ищите выше и нажмите кнопку Enter для поиска. Нажмите кнопку ESC для отмены.

Вернуться наверх