Бесполезный софт, бредогенератор и 30 советов джуну: о чём писали IT-медиа в ноябре
Что происходило в IT, пока весь мир наблюдал за отставкой Сэма Альтмана.
Иллюстрация: Оля Ежак для Skillbox Media
Самая громкая новость ноября — это, бесспорно, неудавшийся дворцовый переворот в OpenAI, в ходе которого гендиректора НКО чуть не отправили на постоянную прописку в Microsoft (если не в курсе, что к чему, читайте здесь). Но не только ChatGPT и его создателями жива IT-сфера — в ней происходит много такого, что скрыто от глаз свидетелей пришествия Скайнета.
Специально для вас прошерстили техно-СМИ и форумы и выбрали самые немейнстримные публикации ноября. Но начнём, разумеется, с ИИ.
Сверхинтеллект нужно суперподравнять
Илью Суцкевера, одного из создателей ChatGPT, называют инициатором увольнения Сэма Альтмана. Но, как оказалось, в минувшем месяце он думал не только о том, как подсидеть надоевшего шефа.
В интервью MIT Technology Review Суцкевер заявил, что главное, что его сейчас заботит, — это вопрос, как ограничить сверхинтеллект. Примером такого сверхразума Илья считает программу AlphaGo, которая в 2016 году победила Ли Седоля, одного из лучших игроков в го в мире. Комментаторов озадачил знаменитый 37-й ход AlphaGo. Сначала они даже решили, что машина допустила ошибку. Но на самом деле это был не просто выигрышный ход, а ход, которого никто никогда раньше не видел в истории игры.
Этот случай привёл Суцкевера к неожиданному повороту в его карьере — он создал команду, которая работает над супервыравниванием. Чтобы понять, что это такое, нужно сначала разобраться с обычным выравниванием.
Выравнивание (alignment) — это когда вы настраиваете ИИ так, чтобы он вёл себя предсказуемо. Например, если вы покупаете умный пылесос, вы вряд ли обрадуетесь, если он начнёт убирать лестничную клетку из жажды показаться ещё более эффективным. Вам важно, чтобы решения ИИ совпадали с вашими ожиданиями: чтобы робот прошёлся по ковру в спальне и собрал пыль.
Загвоздка в том, что существующие методы выравнивания не сработают для моделей, превосходящих людей по интеллекту. В какой-то момент задачи станут настолько сложными, что люди не смогут их оценивать. Поэтому нужно супервыравнивание, то есть выравнивание для сверхинтеллекта.
«Как только вы преодолеете проблему неконтролируемого ИИ, что дальше? Есть ли вообще место для людей в мире с более умным ИИ? Одна возможность — нечто, что по сегодняшним стандартам может показаться безумным, но не будет таковым по критериям будущего — заключается в том, что многие люди решат стать частично ИИ».
Илья Суцкевер, MIT Technology Review
Сгенерированные лица (почти как настоящие)
Британские и австралийские учёные опубликовали результаты эксперимента, в котором сгенерированные нейросетями лица воспринимались как более реалистичные, чем фотографии реальных людей.
А пока испытуемые мучились, пытаясь отличить живые лица от синтетических, исследователи разработали систему машинного обучения, способную определять правильный ответ в 94 процентах случаев. В общем, двойной профит для искусственного интеллекта.
А вы сможете разобраться, где здесь настоящие лица, а где — сгенерированные?
Люди часами болтают с ChatGPT
Судя по всему, сюжет фильма «Она», в котором персонаж Хоакина Феникса влюбляется в девушку-нейросеть и большую часть времени проводит в разговорах с ней, постепенно воплощается в жизнь.
Согласно последним исследованиям, растёт число людей, которые общаются с ChatGPT с помощью функций распознавания и синтеза речи. Кто-то болтает просто так, а кто-то использует ChatGPT в качестве партнёра по мозговому штурму. Так, один реддитор с помощью ChatGPT продумал идею для романа во время прогулки, другой делится с ChatGPT своими безумными идеями, стоя в пробках, а третий нашёл в ИИ друга, с которым говорит обо всём на свете.
Психологические последствия подобной привязанности, а также вопросы конфиденциальности при обмене личной информацией с подключённой к облаку машиной — предмет дальнейших исследований.
Ошибка на 60 миллионов долларов
В блоге Engineer’s Codex вспомнили масштабный сбой в компании AT& T, произошедший зимой 1990 года. Из-за одного мелкого бага в обновлении сотовый гигант разом лишился 60 миллионов долларов, больше 60 тысяч американцев остались без связи и в довесок были задержаны рейсы 500 авиакомпаний.
А загвоздка была в одной-единственной строчке кода, которая по цепочке отправила в вечную перезагрузку 114 коммутаторов сети. Интересно, что злосчастное обновление не было даже толком протестировано — причём по настоянию руководства, которое сочло изменение несущественным.
Так что вот вам ещё один повод позлорадствовать о бесполезности айтишных менеджеров. Ну и перечитать нашу статью о тестировании программ, конечно.
Читайте также:
Больше бесполезного ПО
Программистка Николь Титц-Сокольская в своём блоге опубликовала заметку с призывом писать больше бесполезного ПО (интересно, что бы она сказала, увидев отечественные «Ягу» и «Ёжку»). По мнению автора, это лучший способ испытать радость от программирования. Многие люди начинают кодить из удовольствия, но, устроившись на работу, погружаются в рутину и выгорают.
Написание бесполезных программ — отличный способ встряхнуться и снова получить удовольствие от разработки. Если вы пишете что-то просто ради забавы, можно заниматься только тем, что нравится. Надоело писать тесты? Забудьте про них. Не хотите возиться с баг-трекером? Отрекитесь от него. Изучили всё, что хотели и больше не хотите продолжать проект? Здорово, отправьте его прямиком в корзину. Свобода!
Что касается Николь, то сама она успела написать немало бесполезных программ — например, отвратительный шахматный движок и дико забагованный интерфейс для него. Зато она отточила на нём свои навыки программирования игр, а также стала чуть лучше разбираться в устройстве шахматных движков (что тоже, конечно, даёт немалый профит).
Осторожно, бредогенератор
В то время как Илья Суцкевер беспокоится о контроле над сверхинтеллектом, профессор из Кембриджа Алан Блэквелл видит опасность в обратном. Риск не в том, что боты эволюционируют в сверхмощный Скайнет и всех нас поработят, а в том, что они будут нести суперубедительный бред.
Беда в том, считает Блэквелл, что языковые модели пылесосят из интернета не только реальные факты, но и огромное количество бреда из соцсетей. На основе этой солянки они могут выдавать вполне правдоподобные суждения, которые на поверку оказываются полной ерундой. А, как известно, нет более опасной лжи, чем полуправда.
Самое ценное качество инженера
Рядовому разработчику не так важно, станет ли ИИ сверхразумным или будет генерить фееричный бред. Больше всего его беспокоит вопрос, как не лишиться работы.
Автор блога Engineer’s Codex приводит ответ Джона Кармака, легендарного создателя id Software (Doom, Quake и др.), на вопрос о том, как искусственный интеллект повлияет на рабочие места программистов в будущем.
«Развивайте навыки создания полноценного продукта».
Джон Кармак, основатель id Software
Другими словами, умение мыслить в продуктовых терминах делает вас чрезвычайно ценным инженером. Лучшие разработчики не только обладают высоким техническим мастерством, но также способны применять свои знания таким образом, чтобы принести наибольшую пользу бизнесу и продукту.
30 советов джуну
Калеб Меллас из Level up Software Engineering даёт 30 советов, которые он сам хотел бы услышать, будучи джуном. Вот главные из них:
- Регулярность важнее случайных усилий.
- Программированию может научиться каждый.
- Берите сложные проекты, чтобы развиваться.
- Фриланс — это бизнес, здесь нужно быть не только хорошим программистом, но и умелым предпринимателем.
- Учитесь учиться, это поможет расти быстрее.
- Не бойтесь совершать ошибки.
- Развивайте склонность к действию, просто пробуйте.
- Глупых вопросов не существует, поэтому спрашивайте больше.
- Читайте одну или две книги в год (но только действительно хорошие).
- Соблюдайте баланс между отдыхом и работой.
- Синдром самозванца — признак роста.
- Софт-скиллы — это на самом деле хард-скиллы.
- Будьте добрым и искренним человеком.
- В первую очередь мы «решатели проблем», а не программисты.
- Навыки общения — это огромное преимущество.
А что там на Reddit?
В сабе r/InternetIsBeautiful участники делятся своими пет-проектами и оценивают чужие творения. Например, реддитор u/CogitoErgoDifference сделал сайт, где можно узнать, за какое время некоторое число обезьян напечатают определённую фразу. Так, например, слово «Скиллбокс» миллион приматов напечатает за 31 день.
А u/OrangePrototype сделал познавательный сайт, где собраны артефакты из истории интернета. Среди них карта ARPANET, первый смайлик и первый mp3-файл.
Реддитор u/hadiazzouni написал утилиту для тех, кто не может запомнить команды Linux — HeyCLI. Она переводит естественный язык в команды Linux.
К слову, есть и аналоги, например, llm-cli и llm-cli-helper.
Советы самоучки
В одном из фронтендерских сабов разбирали истории самоучек, которые смогли найти работу программистом. Из наиболее ярких — история Bridge4_Kal, разработчика, который перешёл из пекарни в IT в 31 год без мам, пап и кредитов, проучившись самостоятельно чуть больше 11 месяцев.
Вот его советы:
- Смотрите много видео на YouTube, наблюдая, как создаются проекты, а затем пытайтесь повторить самостоятельно по памяти. Это гораздо эффективнее, чем просто копировать код с экрана.
- Много-много откликайтесь на вакансии. По словам автора, лучших результатов он достиг, когда лично общался с теми, кто принимает решение о найме.
- Сосредоточьтесь на своём резюме и тщательно «отполируйте» портфолио. Включите в него свои реальные проекты, пускай они даже будут несколько забавными.
- Учите «ванильный» JavaScript — то есть чистый язык, без фреймворков и библиотек. Если вы глубоко понимаете JavaScript, то сможете освоить любой фреймворк гораздо быстрее, чем тот, кто начал с React или Vue.js.
Что? Радость от фронтенд-разработки?
Реддитор u/vozome поинтересовался, что приносит радость веб-разработчикам. Ответы самые разные:
- Я обожаю проекты «с чистого листа», создавать что-то полностью с нуля, когда ещё не приняты никакие важные решения.
- 16 часов между завершением работы и началом следующего дня.
- Просмотр видеоуроков Кевина Пауэлла.
- Когда создаёшь что-то и оно работает.
- Когда получаешь обратную связь от пользователя и клиент в восторге.
- Общение с коллегами, которые действительно увлечены фронтенд-разработкой, обсуждение новых спецификаций, языковых возможностей и перспектив.
- Анимации.
- Деньги.
Что сложнее всего дебажить?
В сабе r/Frontend поинтересовались, что самое сложное в отладке веб-приложений. Мнения, как обычно, разделились.
- Получение чётких требований, что считать багом.
- Баги, связанные с Safari и iOS.
- Работа с библиотеками, перезаписывающими встроенные методы.
- Отладка CSS в проекте с большим количеством унаследованных классов.
- Необходимость адаптировать код под множество платформ, ОС и браузеров.
- Отладка проблем, которые возникают только у одного клиента, когда невозможно воссоздать клиентское окружение или получить доступ к его тестовым данным.
Как овладеть базой
В сабе r/learnprogramming реддитор u/AgonisticSleet написал, что заканчивает обучение программированию в университете, ему всё нравится, но, как только дело доходит до написания кода, он «плавает» даже в базовых вещах. Как с этим быть? На этот вопрос автор получил исчерпывающий ответ.
Фишка программирования в том, что его можно по-настоящему освоить только путём программирования. То есть «освоение основ» на самом деле означает просто много кодить, а затем решать проблемы по мере их возникновения.
Ещё несколько советов для джунов
Реддитор u/Icy_Adhesiveness_347 обратился к сообществу с вопросом, какой лучший совет они получали, работая программистами. Вот что ему ответили:
- Дебажить код намного сложнее, чем писать его.
- Научись сохранять спокойствие под давлением. Будут баги, и на тебя будут давить, требуя всё быстро починить. Если в этой ситуации поддаться панике, можно упустить какие-то важные вещи.
- Так как от рефакторинга всё равно не уйти, я не пытаюсь писать идеальный код. Вместо этого стараюсь закрыть задачу.
- Читать код сложнее, чем писать. Научись хорошо читать код, и всегда будешь востребован.
- Не нужно покупать ещё один курс на Udemy, надо писать код.
- У всех есть синдром самозванца, независимо от уровня.
- Программируй как можно больше. Это действительно хороший совет.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!