Код
#подборки

Что почитать о программировании и IT: майская подборка

«Раздувание ИИ-пузыря приводит к огромным тратам энергии и фекализации интернета» — обсуждаем недовольство в Gentoo Linux и другие новости месяца.

Иллюстрация: Оля Ежак для Skillbox Media

В мае разработчики взламывали прачечную, собирали проект из веб-мусора, обсуждали Open Source, ИИ, фреймворки, выгорание и ложь ChatGPT. А ещё заметили, что из интернета пропадают страницы.

Содержание


Как Open Source может повлиять на карьеру

Реальные истории и советы разработчиков

В сообществе Lobsters разработчики обсуждали пользу Open Source. Одному из участников стало интересно, помогают ли такие проекты найти работу или стать лучшим программистом. Спора не возникло: благодаря Open Source многие прокачали скиллы и построили карьеру.

Одному разработчику Open Source заменил резюме:

Скриншот: Lobsters / Skillbox Media

Другой разработчик многократно использовал открытый исходных код для продвижения по карьере. Его история — пример того, как обычная заинтересованность превращает человека в востребованного эксперта:

Скриншот: Lobsters / Skillbox Media

Нашлись и те, кто предпочитает участвовать в Open Source ради расширения кругозора и развлечений:

Скриншот: Lobsters / Skillbox Media

Однако не все разработчики поддерживают Open Source. Многие видят в нём проблему и не видят смысла в нём участвовать. Поэтому, если планируете поработать над проектом с открытым исходным кодом, — рекомендуем изучить тему и почитать следующие статьи:

«Open Source — Зло! И вот почему»: мнение программиста Миши Ларченко
Видео: Миша Ларченко

Коллекция всего, что бесит в онлайне

Пример проекта в портфолио на заметку

Современный интернет переполнен раздражителями. Вас окружают всплывающие баннеры, навязчивая реклама, всевозможные уведомления, файлы cookie и бесконечные скидки на любой товар.

На раздражители можно злиться или поступить иначе — превратить их в проект для портфолио. На эту мысль нас вдохновил разработчик Ли Гуаньи, который собрал на одном сайте всё, что его отвлекает в вебе.

Многие оценили иронию, поделились с Ли своими раздражителями и попросили добавить их в проект. Получился отличный ресурс на случай прилёта инопланетян, которым нужно быстро объяснить концепцию современного интернета. Ну, и в портфолио такой проект пригодится.

Главная страница сайта how-i-experience-web-today.com
Скриншот: How I experience Web today / Skillbox Media

Нужен ли ИИ-код в проектах?

Аргументы скептиков и критиков технологии

В апреле 2024 года совет дистрибутива Gentoo Linux отказался использовать код, сгенерированный искусственным интеллектом. В мае аналогичное решение приняли руководители NetBSD. Они считают ИИ-код испорченным и неподходящим для внедрения в ядро системы.

Отказ связан с проблемами авторского права, низким качеством кода и вопросами этики. Слово Михаилу Горному, члену совета Gentoo Linux:

Проблемы с авторским правом. На данный момент ситуация с авторским правом вокруг сгенерированного контента остаётся неясной. Довольно очевидно, что почти все большие языковые модели обучаются на огромных массивах материалов, защищённых авторским правом, а всем этим крутым «ИИ-компаниям» плевать на нарушение авторских прав. В частности, существует большой риск того, что эти инструменты будут выдавать то, что мы не можем законно использовать.

Проблемы с качеством. Большие языковые модели (LLMs) действительно хороши в том, чтобы создавать правдоподобно выглядящую чушь. Полагаю, они могут оказать хорошую помощь, если быть достаточно осторожным, но мы не можем полагаться на то, что все наши авторы осведомлены о рисках.

Этические проблемы. Как уже отмечалось, корпорациям, занимающимся искусственным интеллектом, плевать на авторские права и на людей. Раздувание пузыря вокруг ИИ приводит к огромным тратам энергии. Это даёт прекрасный повод для сокращений и усиления эксплуатации IT-работников. Это ведёт к фекализации интернета, способствует распространению спама и мошенничества.

Все вышеперечисленные причины важны, но наш взгляд самая интересная часть касается генерации некачественного кода. Чтобы в этом разобраться — рекомендуем ознакомиться с интерактивным исследованием от Financial Times про нейросетевые трансформеры.

Основная идея: большие языковые модели (LLM) — это не поисковые системы, которые ищут факты. Это прокачанные механизмы выявления закономерностей, которые неплохо угадывают следующий вариант в последовательности. Однако из-за своей предсказательной природы LLM-модели склонны фабриковать информацию в процессе создания.

Фрагменты исследования Financial Times о принципах работы генеративного ИИ 
Скриншоты: Financial Times / Skillbox Media

В мае вопрос об отказе от ИИ-кода обсуждался и в сообществе Debian. Мнения разделились: некоторые участники выступали за запрет, но остальные не согласились. Противники запрета назвали генеративный искусственный интеллект очередным инструментом, который может быть полезен, если им правильно пользоваться. Также они отметили, что вряд ли какие-то запреты повлияют на стремительное развитие ИИ. Учитывая перечисленное, в Debian решили не торопиться с запретом.

20 ИИ-помощников для программиста

Подборка от Forbes

Журнал Forbes опубликовал список инструментов для кодинга. В подборке нет ChatGPT и других чат-ботов общего назначения. Ниже — краткое описание инструментов. Посмотрите, вдруг пригодится.

  • GitHub Copilot. Пишет код с нуля, предлагает автозаполнение, помогает в отладке и интегрируется во многие популярные IDE.
  • Amazon Q Developer. Входит в экосистему AWS, поэтому хорошо интегрируется с другими облачными сервисами и платформами. Умеет создавать персонализированных помощников под задачи.
  • IBM watsonx Code Assistant. Ориентирован на корпоративных клиентов и представлен в двух вариациях. Первая модель нужна для модернизации старых приложений — можно перевести код с COBOL на Java. Вторая модель помогает писать код для серверов, облачных сервисов и другой корпоративной IT-инфраструктуры.
  • CodeWP. Инструмент для работы с WordPress, умеет писать код для популярных плагинов.
  • aiXcoder. Предлагает автозавершение и оптимизацию кода.
  • AskCodi. Упрощает отладку, автозаполнение и написание кода.
  • Codacy. Автоматизирует код-ревью и отладку.
  • CodeComplete. Это продукт для корпоративных клиентов. Может редактировать, анализировать и объяснять код в лайв-режиме.
  • Code Llama. Инструмент создания, анализа и интерпретации кода.
  • CodePal. Пишет код на разных языках через простой интерфейс.
  • CodeSquire. Chrome-расширение для дата-сайентистов и аналитиков — переводит комментарии и запросы в код.
  • Metabob. Ищет баги и предлагает исправления.
  • PolyCoder. Генератор кода с открытым исходным кодом от исследователей из Университета Карнеги — Меллона.
  • Mintlify. Автоматизирует создание документации.
  • MutableAI. Ещё одна платформа для подготовки документации.
  • Replit. Облачная IDE для совместной работы с функциями генерации кода.
  • Android Studio с Gemini. Платформа для разработки мобильных приложений под Android с поддержкой Gemini-ассистента.
  • Tabnine. Безопасный ассистент для создания, тестирования, исправления и документирования кода.
  • Warp. Это терминал с поддержкой ИИ: предлагает контекстное автодополнение, исправление ошибок и советы по командам.
  • What The Diff. Помогает писать пул-реквесты и сравнивать версии исходного кода.

Почему веб-разработчики выгорают и что с этим делать?

Мнение опытного фронтендера

Бальдур Бьярнасон, исландский инженер с 25-летним опытом, поделился своим пониманием причины выгорания программистов. Он считает, что фронтендеры должны следить и развиваться в нескольких направлениях, каждое из которых тянет на самостоятельную сферу. Речь об HTML, CSS, JavaScript, фреймворках, тестах и многом другом.

Работодатели ждут, что разработчики будут отслеживать изменения. Однако технологии усложняются и быстро обновляются, поэтому в попытках преуспеть программисты эмоционально устают от работы.

По мнению Бьярнасона, выйти из ситуации можно путём разделения труда. Один человек должен отвечать за вёрстку, другой — за стили, третий — за тесты и так далее. Однако такое вряд ли случится, ведь компании действуют наоборот и стремятся набирать универсалов.

«Как справиться с эмоциональным выгоранием?» Вебинар социального психолога Елены Мечетиной
Видео: «Skillbox Управление»

Бейсику — 60!

Поздравляем и спасибо за всё 🎉🎂

1 мая 2024 года язык BASIC отметил 60-летие. Он появился в американском исследовательском университете Дартмута и назывался Beginner’s All-purpose Symbolic Instruction Code или «Дартмутский BASIC». На момент выхода в 1964 году BASIC стал одним из самых доступных языков, который можно было изучить и использовать.

Вслед за первой версией появились и другие: Atari BASIC, Commodore BASIC, Visual Basic от Microsoft и его производные. Именно с BASIC многие начали свой пусть и когда-то впервые написали эту строку:

PRINT "HELLO WORLD" 
«Язык программирования Basic: История Basic которую вы не знали»
Видео: «EngineerSpock — IT & программирование»

«Алло, это прачечная? Вы взломаны!»

История неравнодушных хакеров, еле уговоривших компанию закрыть уязвимость

Студенты Университета Калифорнии в Санта-Крузе Александр Шербрук и Яков Тараненко обнаружили уязвимость в системе безопасности местной прачечной. С помощью скрипта они могли отправлять команды стиральным машинам и бесплатно запускать стирку. Также у них получилось пополнить баланс на несколько миллионов долларов, который отобразился в приложении CSC Go. И так мог сделать каждый.

Студенты обратились в управляющую компанию CSC ServiceWorks и рассказали о проблеме. Компания их выслушала и проигнорировала. Не помогали звонки, письма и обращения через форму обратной связи.

Помогла широкая огласка. Студенты рассказали об обнаруженной уязвимости в клубе кибербезопасности своего университета, и о проблеме начали все говорить. Только после этого CSC ServiceWorks вышла на связь, поблагодарила хакеров и извинилась за свой игнор.

Герои этой истории могли до конца жизни бесплатно стирать одежду и пользоваться недальновидностью технической отсталой компании. Вместо этого они решили поступить по совести, как этичные хакеры.

Онлайн-контент исчезает

Минус 25% страниц за 10 лет. Чем не повод создать свою базу знаний

Центр исследований Pew опубликовал необычную статистику: больше недоступно четверть веб-страниц, существовавших с 2013 по 2023 год. Также удалось выяснить, что 23% новостных и 21% правительственных сайтов содержат по крайней мере одну битую ссылку. У «Википедии» ситуация хуже — на 54% страниц есть хотя бы одна нерабочая ссылка.

Когда-то для сохранения удалённых сайтов придумали интернет-архив, в котором уже более 866 миллиардов страниц. Можно обращаться к нему. Если вы не доверяете внешним ресурсам, попробуйте создать свою базу знаний. Для этого есть много программ, например Obsidian.

«Философия и практика Obsidian — организация знаний и жизни»
Видео: «Диджитализируй!»

ChatGPT наполовину врёт, но это не точно

GhatGPT генерирует 52% ложных ответов на вопросы, связанные с программированием. К такому выводу пришли учёные из Университета Пердью, которые задали чат-боту 517 вопросов с сайта Stack Overflow:

Мы обнаружили, что 52% ответов ChatGPT содержат дезинформацию, 77% ответов более развёрнуты, чем человеческие, и 78% ответов страдают от различных степеней несогласованности в сравнении с ответами человека.

В защиту GhatGPT мы бы хотели отметить, что учёные не адаптировали вопросы со Stack Overflow под промпты. То есть они писали вопросы так, как бы это понял человек. С чат-ботами так не работает, и это известная проблема. Для точного ответа нужно подробно описать задачу, указать тему и расписать больше деталей для контекста.

10 ошибок, которые могут погубить карьеру разработчика

На эти грабли наступили за вас

Южнокорейский инженер Хун Уи поделился в блоге десятью ошибками, которые не стоит совершать разработчику. Многие из этих советов он прочувствовал лично и рекомендует не повторять. Мы поддерживаем.

Не будьте перфекционистом. Разработка ПО — итеративный процесс: пишешь код, получаешь обратную связь, рефакторишь. Идеального кода не существует. То, что работает сегодня, может сломаться завтра.

Просите время на рефакторинг. Разработчики хотят переписывать код, чтобы его улучшить. Но остальным нужны новые фичи и как можно быстрее. Поэтому делайте рефакторинг в процессе написания кода.

Легаси — это не просто старый код. Легаси-код — это код без тестов. Такой код не получится отрефакторить и качественно поддерживать.

Не думайте, что функциональное программирование лучшее. Это мощный инструмент, который может повысить качество и надёжность вашего кода. Однако, как и у любого инструмента, у функционального программирования есть свои ограничения. Оно не подходит для задач, где нужно тесное взаимодействие с аппаратным обеспечением. Ещё оно может быть менее производительным, нежели императивный код.

Не следуйте слепо лучшим практикам. В программировании много хороших подходов: чистая архитектура, SOLID, DRY, KISS, YAGNI и так далее. Для примера возьмём TDD — принцип разработки через тестирование. В целом это отличная практика, которая проверяет предсказуемость кода. Однако если в языках программирования есть инструменты для взаимодействия с кодом в режиме реального времени, то вам может не понадобиться использовать принцип TDD для большинства задач.

Не боритесь в одиночку. Многие джуны пытаются придумать решение проблемы, которую не нужно решать. Не изобретайте велосипед — пользуйтесь существующими практиками. Работая в команде, учитесь у более опытных коллег, прислушивайтесь к советам и развивайтесь.

Работайте интервалами. В некоторые дни вы можете оказаться в состоянии, когда код пишется сам собой. Здесь важно не переработать. Используйте технику Pomodoro: 25 минут пишите код, пять минут отдыхайте, повторите четыре раза и сделайте длинный перерыв на 20 минут. Это поможет сохранить концентрацию и избежать выгорания.

Почаще разминайте тело. Программисты могут часами сидеть перед компьютером и забыть про здоровье. Но это важно, ведь мозг почти бесполезен, если организм не в порядке. Поэтому старайтесь двигаться каждые 25–30 минут: вставайте, разминайтесь и пейте побольше воды.

Не забывайте веселиться. Если сосредоточиться только на работе, то можно забыть об увлекательных возможностях программирования. А это быстрый путь к выгоранию. Не делайте так. Попробуйте выделить время для пет-проектов, учитесь новому и создавайте что-то крутое.

Будьте инженером, а не кодером. Кодеры просто пишут код, а инженеры с помощью кода решают проблемы. В будущем кодеров может заменить ИИ. А вот человека, решающего проблемы, — вряд ли.

«Карьера веб-разработчика»: вебинар директора по развитию в Progressive Media Живетьева Александра
Видео: «Skillbox Программирование»

Интересное на Reddit

Обсудили редкие навыки. В сабе LearnProgramming участники делились необычными навыками, которыми должен обладать программист. Было несколько интересных ответов. Во-первых, многие отметили долгосрочное мышление. Чтобы не просто уметь написать новую фичу, но и подумать, какие изменения в коде понадобятся позже.

Во-вторых, программист должен обладать терпением. Немногие, столкнувшись с проблемой, могут посидеть подольше и найти её причину. Большинство сразу начинают искать обходные пути.

Поделились ютуб-каналами. Держите подборку полезностей:

Пример одного из видео с рекомендованных каналов — бесплатный полный курс по Python на английском языке
Видео: Bro Code

Предложили идеи пет-проектов. Один из участников пожаловался на отсутствие мотивации и попросил накидать весёлых идей для проекта. Посмотрите, может, что-то из предложенного и вам захочется сделать:

  • Викторина. Программа ищет случайные репозитории на GitHub и отображает фрагмент кода. Нужно угадать, из какого проекта код.
  • Сайт знакомств на одного. Фишка в поиске, когда при любых критериях всегда будет предлагаться только один партнёр.
  • Сборник рецептов на GitHub. Получится кулинарная книга, в которой каждый сможет сделать форк и добавить ингредиентов.
  • Необычная кнопка. Добавляем надпись и делаем так, чтобы на неё было невозможно кликнуть из-за убегающего курсора.
Пока мы готовили подборку, кто-то уже поработал над убегающим курсором
Изображение: Fabricio Teixeira / Medium

Восхитились инфографикой. В сабе CoolGuides пользователи опубликовали эволюцию латинского алфавита:

Инфографика: r/coolguides / Reddit

А вот распространённые четырёхзначные PIN-коды из 3,4 миллиона:

Изображение: r/dataisbeautiful / Reddit

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Фронтенд-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована