IT-дайджест: главные новости февраля 2025 года.
Звезда нашей подборки — искусственный интеллект. В этом месяце он менял отрасль, портил джунов, сдавал тесты и проходил собеседования. Обо всём расскажем. А ещё вас ждут советы по продуктивности от опытного менеджера, инструменты для голосового кодинга и обсуждения с Reddit.
Как писать код без рук: инструменты для голосового программирования
Разработчица Сальма Алам-Нейлор столкнулась с сильной болью в руках из-за давления на лучевой нерв. Врач посоветовал ей больше отдыхать и на время отказаться от клавиатуры. Однако работу никто не отменял, поэтому Сальма освоила инструменты голосового набора и собрала их в подборку.
Сальма предупреждает, что диктовать код — это сложный навык, который не освоить за день. Поэтому не торопитесь, начинайте с небольших задач и в процессе делайте регулярные перерывы. А если у вас нет такой острой проблемы, возможно, достаточно просто сменить клавиатуру.
Как ИИ меняет профессию программиста: взгляд Тима О’Райли
С развитием искусственного интеллекта программирование никуда не исчезнет, оно лишь в очередной раз эволюционирует — такой вывод сделал известный издатель технической литературы Тим О’Райли. Судите сами:
- Изначально программированием занимались исключительно инженеры-электротехники: они создавали первые компьютерные программы на вычислительных машинах типа ENIAC за счёт физического соединения проводов и коммутации электрических схем.
- Затем программисты перешли на двоичный код, и это стало важным шагом к абстрагированию программирования от физических компонентов компьютера. Например, слово hello в двоичном коде будет выглядеть так: 01101000 01100101 01101100 01101100 01101111.
- С появлением ассемблера и других низкоуровневых языков стало возможным писать код в более понятном для человека виде. К примеру, вместо двоичного кода 01001000 можно было задать команду MOV AX, BX для перемещения данных между регистрами процессора.
- И наконец, появились высокоуровневые языки программирования вроде Python, JavaScript и Java. Благодаря их простому синтаксису программирование перестало быть прерогативой бородатых университетских математиков и стало доступным каждому.
При этом ни одна новая технология не оставила программистов без работы. Напротив, каждый технологический прорыв только увеличивал потребность в разработчиках. Так, появление веб-технологий привело к массовому спросу на фронтенд- и бэкенд-разработчиков, а развитие мобильных устройств создало целую индустрию мобильной разработки.
По мнению Тима О’Райли, появление LLM — это очередной этап в эволюции программирования, который изменит работу программистов. Вместо написания кода с нуля они будут регулярно использовать нейросети для прототипирования и автоматизации рутинных задач, что позволит сосредоточиться на архитектуре и бизнес-логике приложения. Поэтому важно не цепляться за устаревшие подходы и поскорее переходить на новые.
Промышленная революция автоматизировала физический труд на фабриках, и точно так же современные IT-гиганты автоматизируют интеллектуальный труд. Программисты в таких компаниях напоминают операторов производства: они контролируют и настраивают работу сложных систем, вместо того чтобы писать код вручную. С развитием нейросетей эта тенденция усилится — разработчики будут меньше заниматься рутинным кодированием и больше фокусироваться на решении сложных задач, которые пока недоступны ИИ
Изображение: Congressional Hispanic Caucus / The Library of Congress
Замена людей на ИИ: как IT-индустрия стреляет себе в ногу и к чему это приведёт
Инженер Франческо Гадалета представил свой взгляд на проблему замены программистов искусственным интеллектом. По его мнению, раньше новички обучались в основном на собственных ошибках и под присмотром опытных коллег. Теперь, делая ставку на ИИ, компании перестали вкладываться в джуниоров. В результате следующие поколения программистов будут полагаться на нейросети и не научатся отлаживать программы, исправлять неожиданные баги и решать другие важные задачи:
«Это всё равно что учить человека водить автомобиль, но разрешать пользоваться только автопилотом — однажды программа даст сбой и водитель не будет иметь представления о том, как с этим справиться».
Чрезмерная зависимость от ИИ приведёт к серьёзным последствиям:
«Допустим, вы — крупная финтех-компания и уволили половину своих разработчиков, потому что „ИИ умеет писать код“. Спустя полгода вы обнаруживаете, что из-за ИИ в вашей системе безопасности появились уязвимости. Упс! База данных с конфиденциальной финансовой информацией утекает, регуляторы дышат в затылок, а клиенты разбегаются быстрее крыс с тонущего корабля. Вы пытаетесь вернуть уволенных программистов, но они уже работают в других местах».
Ещё больше возрастёт ценность программистов, которые не только глубоко разбираются в технологиях, но и умеют эффективно работать с готовыми ИИ-решениями. За таких разработчиков будет бороться каждая компания.
На наш взгляд, опасения Франческо Гадалеты вполне обоснованны, однако компании вряд ли откажутся от популяризации ИИ. Поэтому желаем вам стать тем самым специалистом, который вскоре окажется нужным всем.
Чат-боты вместо Stack Overflow: что теряют джуны, выбирая простые решения
Индийский веб-разработчик Наманьяй Гоэл считает, что из-за доступности ИИ современным джунам не хватает фундаментальных знаний, которые раньше они приобретали в процессе самостоятельного решения проблем:
«Недавно я обнаружил удивительный факт: оказывается, существует целое поколение разработчиков, которые даже не слышали о Stack Overflow».
В прошлом, когда программист сталкивался с проблемой, он искал решение через Google, изучал документацию, а если это не помогало — задавал вопрос на Stack Overflow. В ответах экспертов он находил не только нужное решение, но и получал дополнительные знания. Сегодня начинающий разработчик просто обращается к чат-боту за мгновенным ответом. Это удобно, но не способствует развитию его профессиональных навыков.
Чтобы использовать нейросети с пользой, Наманьяй Гоэл рекомендует не просто копировать полученный ответ, а всегда разбираться, почему это так работает. Например, если ИИ предлагает решение проблемы с асинхронными запросами в JavaScript, стоит изучить, как работает event loop, промисы и async/await, а не просто вставить непонятный готовый код.
Кроме того, полезно следить за обсуждениями в различных сообществах и иногда создавать что-то с нуля. Да, ИИ может сгенерировать для вас систему аутентификации, но попробуйте сначала написать её сами. Даже если решение будет неидеальным, вы будете понимать каждую его строчку.
Что выберете вы — скорость или знания?
Источник: New Junior Developers Can’t Actually Code
Разработчик Шив Шанмуган подтвердил эффективность рекомендаций Наманьяй Гоэла. Он изучал программирование до бума чат-ботов и очень этому рад. Шив использовал документацию Python, обучающие видео и советы на форумах — он задавал вопросы и никогда не копировал код вслепую. Хотя процесс был утомительным и отнимал много времени на исправление ошибок, именно так он приобрёл все необходимые навыки:
«Оглядываясь назад, я рад, что тогда не было ИИ. Я получил важный опыт, экспериментируя с кодом и вручную исправляя тривиальные ошибки».
Сейчас Шив использует Cursor в повседневной работе, но, когда изучает новую технологию, предпочитает это делать без помощи нейросетей.
ИИ сломал собесы: к чему готовиться
Менеджер по безопасности Кейн Нарравей недоволен ИИ, поскольку он изменил технические собеседования. Теперь кандидаты легко решают алгоритмические задачи и отвечают на вопросы по основам информатики и языков программирования. Несмотря на сложности с вопросами по архитектуре ПО, Кейн предполагает, что это всего лишь вопрос времени.
При этом вариантов решения этой проблемы не так много:
- Проводить технические собеседования только в очном формате.
- Разрешить использование ИИ и оценивать не решение задач, а навыки рефакторинга кода и умение формулировать эффективные промпты.
- Сочетать удалённые интервью с очными встречами.
- Изменить формат собеседований: перейти от решения простых задач к разработке полноценных приложений с применением нейросетей.
Вероятно, такие менеджеры встречаются во многих компаниях, и благодаря им формат технических собеседований действительно может измениться. Мы следим за ситуацией на рынке и обязательно будем держать вас в курсе.
OpenAI признаёт: ИИ пока не может заменить разработчиков
На фоне многочисленных дискуссий о пользе и вреде искусственного интеллекта исследователи OpenAI сделали важный вывод:
«Даже самые совершенные модели искусственного интеллекта по-прежнему уступают программистам-людям».
Исследователи использовали новый бенчмарк SWE-Lancer, который основан на 1400 задачах по разработке с платформы Upwork. С его помощью они протестировали три крупные языковые модели: собственные o1 и GPT-4o, а также Claude 3.5 Sonnet от Anthropic. Цель тестирования заключалась в оценке способности LLM выявлять и исправлять ошибки.
В процессе тестирования моделям намеренно ограничили доступ в интернет, чтобы они не копировали чужие решения. Им поручили задачи, общая стоимость которых на Upwork составляла сотни тысяч долларов.
В результате модели оказались предсказуемо быстрее человека, но смогли исправить только поверхностные проблемы. Они не понимали контекст и не могли оценить, насколько широко распространены ошибки программах. Поэтому большинство задач завершились неверными или неполными решениями, хотя Claude 3.5 Sonnet показала немного лучшие результаты.
Как уведомления убивают продуктивность разработчиков
Техдиректор Tech World With Milan Милан Миланович пишет, что для программиста нет ничего хуже, чем переключение контекста:
«Каждый раз, когда вы отправляете кому-то „быстрое“ сообщение в Slack, это отнимает у получателя 23 минуты продуктивной работы».
Переключение внимания заставляет мозг заново сосредотачиваться и восстанавливать рабочий контекст из памяти. Для программистов такие переключения особенно разрушительны, ведь при работе над сложной задачей нужно удерживать в голове множество аспектов: архитектуру системы, текущую проблему, возможные пограничные случаи и прочее. Все эти элементы быстро исчезают из памяти даже при малейшем отвлечении.
Восстановление продуктивности разработчика после пятиминутной встречи: ожидание (красный пунктир) и реальность (фиолетовая линия)
Изображение: Tech World With Milan
Вместо постоянных прерываний Милан предлагает стремиться к потоку:
«Это состояние, в котором сложные проблемы становятся кристально ясными, а элегантные решения приходят словно сами собой».
Однако помните: состояние потока крайне хрупкое и его может разрушить даже одно уведомление. Лучше всего выделять 90-минутные периоды для непрерывной сосредоточенной работы или использовать метод помидора.
Допустим, вам предстоит поработать над сложной задачей рефакторинга в 10:00. Приступайте к работе и отключите все уведомления. После 90 минут продуктивной работы в состоянии потока (до 11:30) сделайте перерыв, проверьте сообщения и ответьте коллегам. Так вы сможете быстрее достигать результатов и не выпадать из коммуникации с командой.
Необычные сайты, которые стоит посетить
Хотите почувствовать себя Джексоном Поллоком? Загляните на jacksonpollock.org, где каждое движение мышью превращается в произведение искусства. Сайт также будет интересен всем, кто увлекается веб-разработкой — это наглядный пример работы с графикой в HTML. Более того, в нём спрятана пасхалка: если вы откроете инструменты разработчика (F12) и перейдёте во вкладку Elements, то обнаружите спрятанного зайца.
Посмотрите, какой шедевр получился
Скриншот: JacksonPollock.org / Skillbox Media
Как вам? И это всего лишь небольшой фрагмент 796-го этажа!
Скриншот: Floor796 / Skillbox Media
Интересное на Reddit
В сабе cscareerquestions спросили: «Что в IT-индустрии есть такого, о чём все знают, но никто не хочет признавать?» Мнения разделились. Одни указали на сложность оценки сроков выполнения задач, другие отметили нехватку качественного кода, а третьи признались, что карьерный рост зависит больше от отношений с руководством, чем от технических навыков.
Также в сабе обсуждали софт-скиллы и алгоритмы, завышенные зарплаты некоторых специалистов, живучесть языка COBOL, увеличение числа индийских разработчиков, вездесущий ChatGPT и неэффективность менеджеров. Получилась большая дискуссия обо всём, что волнует современных разработчиков. Рекомендуем прочитать всем новичкам.
Участник learnpython поделился историей о наставнике, который утверждал, что неправильный код на Python может повредить компьютер на аппаратном уровне. Он спросил сообщество, возможно ли такое.
Ему ответили, что раньше действительно существовали системные команды, способные нанести физический урон устройствам. Например, определённая комбинация частоты обновления и разрешения в ранних версиях Linux могла вывести из строя ЭЛТ-монитор. К счастью, современные системы оснащены защитой от подобных проблем.
Единственное исключение — утилиты в пространстве ядра операционной системы, которые имеют прямой доступ к устройствам. В теории, если их написать с ошибками, они могут повредить оборудование. Получается, наставник прав, но вероятность столкнуться с этим в жизни почти нулевая.
В сабе commandline реддитор поделился интересным открытием: оказывается, комбинация Ctrl + R позволяет быстро искать ранее введённые команды в терминале. Например, если вы раньше использовали команду git push origin main, достаточно нажать Ctrl + R и начать вводить git, чтобы быстро найти её в истории. Другие участники дополнили обсуждение и упомянули утилиту hiSHtory и инструмент Atuin. Они позволяют настроить синхронизацию, шифрование, поиск и импорт истории команд.
Пол Джексон Поллок (1912—1956) — американский художник, идеолог и лидер абстрактного экспрессионизма. Прославился своей техникой разбрызгивания жидкой бытовой краски на горизонтальную поверхность.