О Настоящих Компьютерщиках и IT-профессионалах
Ещё двадцать лет назад, вскоре после Первого Подключения к Интернет, написал небольшую заметку под названием Моральный Кодекс Настоящего Компьютерщика. С тех пор, наблюдая за людьми на Хабре и других подобных ресурсах, обратил внимание, что есть и другая категория людей с чуть ли не противоположными ценностями, которые пришли в IT не потому что им интересно программировать, администрировать, тестировать или творить что-либо ещё в этой сфере, а просто зарабатывать. Хотя их уровень знаний и умений может быть не меньше, чем у Настоящих Компьютерщиков, подход и система ценностей при этом совершенно другая. Вот небольшая таблица, которая поможет понять разницу:
Напоследок уточню, что не следует рассматривать описанное как два взаимоисключащих варианта. Скорее уместно говорить о существовании континуума, в котором каждый тяготеет либо к одному, либо другому полюсу.
Настоящие Компьютерщики | IT-профессионалы |
---|---|
Приходят в IT потому что им интересно знать, как всё это работает и творить что-то в этой области самим | Приходят потому что IT-престижная отрасль, в которой хорошо платят |
Выбирают специализацию (область деятельности, языки программирования и т.п.) исходя из того, что интересно им самим | Выбирают специализацию из соображений «что будет востребовано рынком труда» |
Изучают основы — общие принципы, базовые алгоритмы и протоколы, низкоуровневые API | Изучают инструменты, необходимые для решения конкретных задач — библиотеки, frameworks и т.п. |
Из-за ориентированности на знание основ легко «перепрыгивают» на другой язык программирования или framework. | Узко специализируются, меняют привычный набор инструментов только под влиянием требований рынка |
Стремятся видеть картину целостно, с учётом всех уровней абстракций, для которых имеются знания (в идеале — от ассемблерных команд до интерфейса «человек-машина») | Пользуются только теми уровнями абстракции, которые нужны для решения поставленной задачи. На другие заглядывают только в случае «протечек абстракции». |
Используют готовые решения только тогда, когда задача неинтересна или не хватает квалификации для её качественного решения, или же есть неизбыточное решение, которое их полностью устраивает. | Стремятся к максимуму code reuse всегда и везде. |
Конечная цель создания софта — пользование им приносит радость конечным пользователям | Конечная цель создания софта — пользование им приносит прибыль бизнесу |
Не жалеют времени на оптимизацию, чтобы сэкономить память и сделать приложение быстрым | Руководствуются принципом «не оптимизируй, пока в этом нет явной необходимости» |
Напоследок уточню, что не следует рассматривать описанное как два взаимоисключащих варианта. Скорее уместно говорить о существовании континуума, в котором каждый тяготеет либо к одному, либо другому полюсу.