Этот вопрос — один из самых экзистенциальных в нашей профессии |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2026-08-23 01:44 Этот вопрос — один из самых экзистенциальных в нашей профессии. Он бьет прямо в синдром самозванца, заставляет нас оправдываться за открытые вкладки с документацией и разделяет "ремесленников" от "волшебников". Если задать этот вопрос честному специалисту в лоб, он не скажет "Да, конечно" и не начнет цитировать сортировку пузырьком наизусть. Скорее всего, он ухмыльнется, посмотрит на потолок и выдаст одну из трех фаз ответа в зависимости от уровня сениорности: Джун: "Я умею заставлять компьютер делать то, что Я хочу, но пока медленно и с багами." Мидл: "Я умею заставлять компьютер делать то, что нужно Бизнесу, и при этом не ломаться по ночам." Сеньор: "Я умею так сформулировать задачу, чтобы ее мог выполнить даже ИИ, а потом объяснить коллегам, почему это решение — единственно верное в текущих ограничениях." Но давайте разберем объективные критерии, которые отличают программиста от человека, просто умеющего вставлять код из StackOverflow. Критерий №1: Парадигмальное мышление (а не знание синтаксиса) Непрограммист думает: "Мне нужно сохранить данные. Напишу список и цикл for". Программист думает: "Какова природа этих данных? Они будут часто меняться? Мне нужен быстрый доступ по ключу или порядок добавления? Может, это вообще не список, а очередь или граф?" Критерий: Программист оперирует абстракциями (потоки, события, состояния, инварианты), а не конкретными командами. Если вы переносите логику с Python на Go или с JS на Rust, вы пишете не "перевод команд", а заново реализуете архитектуру паттернами, свойственными новому языку. Язык — это лишь инструмент, как молоток. Уметь забивать гвозди — не значит быть строителем. Строитель знает, где несущая стена. Критерий №2: Декомпозиция (Умение дробить слона) Дайте непрограммисту задачу: "Сделай Твиттер". Он впадет в ступор. Дайте программисту: он разобьет это на: — Аутентификация (как хранить пароли?). — Лента (как кешировать?). — Публикация (как гарантировать доставку?). — Поиск (как индексировать?). Критерий: Программист видит в любой задаче сущности и их взаимодействие, а не монолитную стену кода. Он может взять "приготовить завтрак" и описать это как асинхронный конвейер с обработкой ошибок (вдруг яйца кончились?). Критерий №3: Ощущение сложности (Big O в голове) Непрограммист напишет вложенный цикл для поиска элемента в миллионном массиве и удивится, почему всё тормозит. Программист еще до написания кода прикинет: "Если у нас N пользователей и M заказов, эта O(N*M) операция убьет сервер при 1000 RPS. Надо инвертировать индекс или использовать хеш-таблицу". Критерий: Программист оценивает эффективность решения до его реализации, а не после. Он чувствует "запах" тормозов алгоритма еще на этапе проектирования. А как же интернет и «всё помнить невозможно» ? Это самый каверзный пункт. Здесь кроется главная подмена понятий. Непрограммист ищет в интернете готовое решение ("Как сделать кнопку"). Программист ищет в интернете синтаксис ("Какой метод в Python 3.11 для работы с датами в часовом поясе Киева?"). Программист знает, ЧТО искать. У него в голове есть карта территории. Он точно знает, что существует паттерн "Декоратор" или функция map, но забыл, в каком порядке идут аргументы. Документация нужна ему для справки, а не для обучения. Если у программиста отключить интернет, он напишет рабочий код на любом известном ему языке, но он будет чуть менее идиоматичным (он может сам реализовать сортировку, раз забыл название функции). Если отключить интернет у непрограммиста — его код не скомпилируется, потому что он скопировал 90% строк и не понимает, как их соединить. Критерий №4: Отладка (Сверхспособность) Это лакмусовая бумажка. Непрограммист видит ошибку (NullPointerException) и читает стектрейс как заклинание на эльфийском. Программист видит ошибку и воспроизводит причину в голове. Он мысленно проходится по состояниям переменных: "Ага, сюда пришел null, потому что на предыдущем шаге я забыл проверить ответ от БД, а БД упала по таймауту". Критерий: Программист — это детектив. Его суперсила не в написании кода, а в чтении чужого кода и логов. Умение задавать правильные вопросы к системе важнее умения печатать. Критерий №5: Ответственность за время и ресурсы (Инженерный подход) Программист знает, что его код будет жить в продакшене 10 лет. Поэтому он задается вопросами, которые непрограммисту кажутся паранойей: "А что, если одновременно придет 1000 запросов?" "А что, если жесткий диск заполнится?" "А что, если пользователь введет эмодзи вместо имени?" "А как это будут поддерживать стажеры через 2 года?" Он пишет код для людей, а не для машины. Машине всё равно на нейминг и структуру, а людям — нет. Программист — это тот, кто может взять абстрактную проблему пользователя и, пройдя через уровни "Бизнес-логика -> Архитектура -> Алгоритм -> Синтаксис", выдать работающее, масштабируемое и поддерживаемое решение. Если человек просто переводит требования в код — он кодер. Если он переводит потребности в структуру — он программист. И интернет здесь совершенно ни при чем. Physics.Math.Code (t.me/physics_lib) — крупнейшее русскоязычное сообщество с лучшим контентом для физиков, математиков и разработчиков. В VK : vk.com/physics_math Учебные фильмы (t.me/maths_lib) — фильмы по физике, математике, программированию, технологиях, химии, биологии. Самые интересные видео для развития. Эпсилон (t.me/epsilon_h) — канал с книгами по информационной безопасности и всем, что с ней связано. Репетитор IT mentor (t.me/mentor_it) — блог с заметками преподавателя по физике, математике, IT, железе. Разборы интересных задач, рассуждения о науке, образовании и методах обучения. Chemistry.Biology.Anatomy (t.me/chemistry_lib) — канал для химиков, биологов и медиков. Техника .TECH (t.me/tech_pac) — эстетика технологий различных времен Телеграм: t.me/ainewsline Источник: vk.com Комментарии: |
|