Семь признаков того, что ты не станешь программистом
Но всегда можно попытаться
Людей, которые пишут код, можно разделить на два типа: кодеры и программисты. Дмитрий Соколов, сооснователь Alef Development, на примерах из рабочей практики объясняет, как отличить их друг от друга, и рассказывает, почему любить код, стараться не использовать «грязные» методы программирования и решать задачу не быстро, а качественно — крайне важно.
В чем отличие?
Для начала стоит разобраться с терминами. Кодером может быть любой человек, чей IQ позволяет заниматься интеллектуальной деятельностью. Он решает набор типовых задач по образцу. В целом это не сложнее, чем решать школьные и институтские задачи по математике.
Программист — это образ мышления. Он не впадает в ступор, столкнувшись с задачей, решение которой не знает с ходу. Программист придумывает свои подходы к работе и стремится разобраться, как все системы и алгоритмы устроены изнутри.
Фундаментальными отличиями программиста от кодера являются:
- влюбленность в дело (если человек в жизни не написал ни единой строчки кода для себя, потому что нравится, — вряд ли он является программистом);
- подход к программированию как к искусству (стремление к построению архитектуры, которая радует глаз, и поиску красивых решений задач, а, главное, получение от этого неподдельного удовольствия).
Все остальное — уже следствия из этих базовых различий:
- программист смотрит на любую задачу шире, продумывая и предусматривая все особенности, а кодер решает задачу поверхностно и очень редко заглядывает за рамки формулировки;
- программист заинтересован в том, чтобы его решение работало как можно лучше – кодер хочет сдать задачу побыстрее.
Например, у нас есть задание «сделать программу, которая при нажатии на кнопку рассчитывает ближайшее простое число, начиная с числа, введенного в поле ввода, и показывает его на экране».
Типичный подход кодера: найти первый попавшийся алгоритм поиска простых чисел в интернете и реализовать его. Или найти готовый код, добавить кнопку, прикрепить к ней обработку нажатия, проверить пару раз. Все, программа готова.Возможный подход программиста:
- найти разные алгоритмы поиска простых чисел, изучить их и выбрать наиболее подходящий,
- реализовать его,
- внедрить проверку введенных данных и продумать уведомление об ошибке, если число написано в недопустимом формате,
- проверить алгоритм на большом количестве разных примеров и прийти к выводу, что для больших простых чисел расчет занимает много времени,
- добавить индикатор загрузки и заблокировать кнопку, чтобы избежать повторного нажатия.
Программист постарается избежать решения задачи «грязными» способами, если есть другой выход.
Вот пример из реальной жизни. В базе данных одной системы была негласная закономерность: идентификаторы объектов начинались с цифр, соответствующих дате их создания (908157567437 — обозначало, что объект создан в 2009 году, 15 августа).
Это не было задокументированной особенностью, такой вывод можно было сделать только на основе наблюдений. Никакой гарантии, что так будет работать всегда, не было. Вместе с этим существовала надежная возможность узнать дату создания объекта, обратившись по связке к другой таблице, — такой способ требовал больше времени и усилий.
Нашлись люди, которые из-за банальной лени много лет делали отчеты, пользуясь закономерностью совпадения первых цифр идентификатора. В январе 2010 года эта закономерность неожиданно перестала работать, и все даты в отчетах стали отображаться некорректно.
Ошибка получилась, потому что люди сэкономили время и не стали подтягивать фактические данные из таблицы. Хороший же программист не сможет спать нормально, если в решении задачи используются предположения, вместо фактов.
В этом примере сбой было легко обнаружить и исправить. Но бывает так, что ошибка не проявляется годами, возникает в каком-то сложном случае и снова исчезает, а все вокруг ломают голову, что же это было. Если такая халатность будет иметь место в программе по управлению марсоходом, реактором на АЭС или автопилотом самолета — цена может быть очень высокой.
Важно отметить формулировку «постарается избежать», приведенную выше в тезисе. В реальной жизни хороший программист все же иногда прибегает к «грязным» решениям, взвешивая все «за», «против» и цену вопроса.
Допустим, что программисту понадобился инструмент для единоразового анализа большого объема специфических данных. Для разработки красивой архитектуры понадобится неделя работы, но можно выполнить задачу и за 30 минут. Получится некрасиво, зато инструмент отработает как надо и никогда больше не понадобится. Искусство быть хорошим программистом заключается и в том, чтобы осознанно нарушать «красоту», когда это оправдано.
Признаки непрограммиста
Вернусь к заголовку статьи. Итак, программистом никогда не станет человек, который:
- не получает удовольствия от написания кода;
- не использует законы логики в повседневной жизни;
- при виде сложных вычислений или страницы кода впадает в уныние и хочет, чтобы это поскорее убрали с его глаз долой;
- не готов проводить много часов, анализируя свои ошибки и занимаясь поиском лучших решений;
- не умеет самостоятельно обучаться новому;
- не интересуется фундаментальным устройством компьютера: что такое процессор и его команды, как устроена оперативная память, во что превращаются программы после компиляции;
- печатает двумя пальцами и не планирует переучиваться.
Материалы по теме:
«Если человек — гик, то это не только в рабочее время, это круглосуточно и на всю жизнь»
Что нужно сделать, чтобы мыслить, как программист: руководство по решению проблем
12 признаков плохого программиста – выявляем непрофессионала
«Рынок перегрет». Как нанять крутых разработчиков и не разорить компанию
Фото на обложке: Unsplash
-
Партнёрский материал Онлайн-инкассация: как превратить наличную выручку в рабочий капитал 01 июня 2026, 10:00
-
Личное Лионель Месси. Как мальчик с дефицитом гормона роста стал самым титулованным футболистом в истории 11 июля 2026, 20:02
-
Личное Оливер Блюме. Немецкий инженер, который должен снова сделать Volkswagen великим 09 июля 2026, 21:27
-
Личное Сундар Пичаи. Как эмигрант из Индии за 11 лет прошёл путь от продакт-менеджера до CEO Google 08 июля 2026, 23:19
-
Личное Криштиану Роналду. Как сын уборщицы первым в истории футбола заработал 1 млрд $ 06 июля 2026, 20:16
-
Ритейл Когда ручная отчётность мешает компании расти: как ускорить аналитику в фешен-ретейле 16 апреля 2026, 18:29
-
Искусственный интеллект Цифровизация начинается не с ИИ: эксперты рынка — о том, почему для трансформации бизнеса нужно изменить мышление 03 июля 2026, 11:58
-
Личное Дарио Амодеи. Как обыграть OpenAI и создать самый дорогой ИИ-стартап в мире 16 июня 2026, 12:05
-
IT Новую часть Fallout создадут авторы культовой игры New Vegas — разработкой займётся студия Obsidian 13 июля 2026, 15:15
-
IT Стали известны новые подробности о юбилейном iPhone 20 — релиз ожидается уже в 2027 году 13 июля 2026, 13:45
-
Автомобили В России открылся предзаказ на электрокроссовер UMO 5: стоимость авто — от 2,59 млн рублей 13 июля 2026, 14:30
-
Автомобили Новые модели «Москвича» почти не продаются — за четыре месяца реализовали лишь 491 автомобиль 13 июля 2026, 13:20
-
Автомобили В Volkswagen отказались закрывать заводы ради экономии — вместо этого компания вдвое сократит модельный ряд 13 июля 2026, 12:28
-
Бизнес Посещаемость общепита сократилась на 10% в 2026 году — россияне всё чаще выбирают готовую еду из магазинов 13 июля 2026, 11:45
-
Бизнес Мосбиржа переходит на 17-часовой режим работы на срочном рынке — платформа шла к этому почти два года 11 июля 2026, 16:00
-
Искусственный интеллект Китай может ограничить иностранцам доступ к передовым ИИ-моделям — российский бигтех не видит повода для паники 11 июля 2026, 08:00