Что почитать о программировании и IT: июльская подборка
Экзаменуем ChatGPT, смотрим на доисторический курсор, учим журналистов кодить и ищем звёзды в глазах.
Иллюстрация: Оля Ежак для Skillbox Media
В дайджесте рассказываем: как увлечение криптовалютами связано с садизмом, как стать идеальным кандидатом и понравиться руководству, почему менеджеры мешают разработчикам. Также делимся полезными советами реддиторов и показываем лучшие парки.
Содержание
- Свершилось! Zed теперь доступен на Linux
- «Сегодня он купил биткоин, а завтра…» — шокирующее исследование для владельцев криптовалюты
- Он не бот, просто болел: случай, когда все решили, что ИИ подался в политику
- Из журналистов в программисты: замечен новый профессиональный тренд
- Хотите распознать фейк на фото? Ищите звёзды в глазах
- Как стать идеальным кандидатом, которого работодателям захочется нанять или повысить
- Сокращение данных для ИИ: как ограничения и платный доступ влияют на развитие технологий
- Чем сложнее, тем хуже: как ChatGPT справляется с задачами LeetCode на разных языках программирования
- Как построить хорошие отношения в инженерной команде: советы того, кто справился
- Кодекс настоящего сеньора: 6 главных правил
- Необычные сайты, которые стоит посетить
- Интересное на Reddit
Свершилось! Zed теперь доступен на Linux
Zed — это высокопроизводительный многопользовательский редактор кода от создателей Atom и Tree-sitter. Ранее он был доступен только для macOS, но теперь появилась версия для Linux. К сожалению, для Windows официальных сборок пока нет, но редактор можно собрать из исходников.
Zed написан на Rust и отличается эффективным использованием всех ядер CPU и GPU. Редактор из коробки поддерживает GitHub Copilot, режим Vim и всплывающие подсказки для тех, кто только осваивает горячие клавиши. Также разработчики могут работать в общем виртуальном пространстве в режиме реального времени и обсуждать задачи в специальных каналах, планируя проекты.
«Сегодня он купил биткоин, а завтра…» — шокирующее исследование для владельцев криптовалюты
Исследователи из Университета Торонто и Университета Майами опросили две тысячи американцев, выяснив их политические, психологические и социальные пристрастия. Выводы оказались довольно необычными:
«Мы обнаружили, что владение криптовалютами связано с верой в теории заговора и „тёмной тетрадой“ нарциссизма, макиавеллизма, психопатии и садизма».
Если вы владеете криптовалютой и хотите ознакомиться с полным исследованием, прочитайте статью «The Political, Psychological, and Social Correlates of Cryptocurrency Ownership».
Он не бот, просто болел: случай, когда все решили, что ИИ подался в политику
Этот случай произошёл с кандидатом от ультраправой британской партии Reform UK Марком Мэтлоком. Он пропустил предвыборные мероприятия, и в соцсетях начали распространяться слухи, что он бот. Люди были убеждены, что партия выставила на выборы ИИ-кандидата.
Причиной шумихи стала неудачно отфотошопленная фотография, на которой фон был удалён, цвет галстука изменён, а кожа и волосы политика выглядели неестественно.
На самом деле Мэтлок просто заболел пневмонией и не мог выйти из дома. Так что никакого искусственного интеллекта в политике пока не будет, но пиарщикам не мешало бы лучше освоить Photoshop.
Из журналистов в программисты: замечен новый профессиональный тренд
Новое исследование сообщества State of Data Journalism показало, что программирование стало неотъемлемой частью работы многих журналистов. Если в 2022 году код для решения рутинных задач использовали 32% специалистов, то в 2023 году их доля выросла до 58%.
Эти цифры могут показаться необычными, но они объяснимы. Для работы с различными темами журналистам необходимы цифры, данные и способы их визуализации. Простых инструментов, таких как «Google Таблицы» или Excel, уже недостаточно, особенно при обработке больших объёмов данных. Поэтому журналистам приходится прибегать к программированию.
Например, с помощью Python-библиотек BeautifulSoup или Scrapy журналисты могут настроить автоматический сбор данных с веб-сайтов. Для создания интерактивных графиков и визуализаций подойдут библиотеки D3.js и Plotly. Для анализа данных можно использовать библиотеки Pandas и SQL, которые помогают эффективно обрабатывать и интерпретировать большие объёмы данных.
Существуют специализированные книги и курсы для журналистов, которые вы можете изучить самостоятельно. Вот несколько из них: «The Data Journalism Handbook 2», «Coding for Journalists» и «Python for journalists».
Кто знает, возможно, вскоре некоторые из этих журналистов так хорошо освоят свои инструменты, что задумаются о смене профессии.
Читайте также:
Хотите распознать фейк на фото? Ищите звёзды в глазах
Учёные Университета Халла провели исследование и выяснили, что фотографии людей, созданные искусственным интеллектом, можно распознать по глазам. Метод, похожий на тот, что они использовали, применяют астрономы при изучении снимков галактик.
Исследователи проанализировали отражение света в глазах на реальных и искусственных изображениях. Они использовали астрономические методы для оценки этих отражений и сравнили левый и правый глаза. Оказалось, что на сгенерированных фото отражения в глазах часто не совпадают, в то время как на настоящих изображениях они обычно одинаковы.
Как стать идеальным кандидатом, которого работодателям захочется нанять или повысить
Журнал ZDNET попросил четырёх известных бизнесменов дать советы тем, кто хочет построить успешную карьеру в IT-компании. Ниже мы расскажем, что они порекомендовали.
Будьте открыты к освоению новых навыков. Способность учиться особенно важна для начинающих специалистов, которые после университета обычно не готовы самостоятельно справляться с задачами компании:
«Они не знают, как всё устроено, никогда не работали в скрам-команде и не использовали Agile-практики».
Саша Джори,
IT-директор страховой компании Hastings Direct
О важности обучения также говорит Мигель Моргадо, старший продуктовый менеджер Performance Hub:
«Иногда встречаются люди, которые приходят из колледжа и не знают, чего хотят. Мне нужны кандидаты, у которых есть страсть и желание быстро научиться».
Покажите, что вы умеете общаться с людьми. Это особенно важно при взаимодействии с коллегами, чья работа не связана с технологиями:
«Если вы не вписываетесь в культуру, вы отнимаете энергию. Сотрудники должны доверять вам настолько, чтобы поделиться своей проблемой, а затем вы будете решать её уже с помощью своих технических навыков».
Амброуз Эрл,
IT-директор компании Southwest Traders
Выбирайте правильное место для старта карьеры. Не соглашайтесь работать там, где у вас не будет возможности для развития, а коллектив не поддерживает благоприятную рабочую атмосферу:
«По своему опыту знаю, что вы даже не представляете, насколько сильно эти первые несколько мест работы определяют направление вашей дальнейшей карьеры».
Джон Грейнджер,
техдир юридической компании DWF
Сокращение данных для ИИ: как ограничения и платный доступ влияют на развитие технологий
Новое исследование организации Data Provenance Initiative выявило резкое сокращение объёма данных, необходимых для обучения ИИ-моделей.
Издатели и онлайн-платформы начинают ограничивать доступ к информации или требуют плату за её использование. Компании блокируют веб-краулеры, Reddit и StackOverflow ввели плату за доступ к данным, а The New York Times подала в суд на OpenAI и Microsoft за нарушение авторских прав:
«Мы наблюдаем стремительное снижение уровня согласия на использование данных в интернете, что будет иметь последствия не только для IT-компаний, но и для учёных и некоммерческих организаций».
Шейн Лонгпре,
ведущий автор исследования
Создатели ИИ-моделей пытаются решить проблему разными способами: расшифровывают видеоролики на YouTube, заключают сделки с издательствами или используют синтетические данные, сгенерированные ИИ. Однако эти меры выглядят как временные решения, поскольку вряд ли позволят полностью заменить данные, созданные человеком.
Чем сложнее, тем хуже: как ChatGPT справляется с задачами LeetCode на разных языках программирования
Учёные провели исследование, в рамках которого оценивали, как GPT-3.5 решит 728 задач с LeetCode на пяти языках программирования: C, C++, Java, JavaScript и Python. Доля успешно решённых задач разных типов варьировалась от 0,66 до 89% в зависимости от сложности задания, языка программирования и других факторов.
ChatGPT хорошо справлялся с задачами, опубликованными на LeetCode до 2021 года, так как они часто встречаются в обучающем наборе данных. Наиболее трудными для него оказались задачи на языках C, C++ и Python, которые по уровню сложности близки к задачам, решаемым опытными разработчиками. Чтобы помочь ИИ лучше понимать контекст и избегать ошибок, разработчикам следует предоставлять ему дополнительную информацию на этапе составления промпта.
Как построить хорошие отношения в инженерной команде: советы того, кто справился
Сотрудничество — чит-код для быстрого карьерного роста. Грегор Ойстерсек, CTO и автор рассылки Engineering Leadership, поделился ценными советами для инженеров. Вкратце пересказываем основные рекомендации.
Не пишите код в одиночку. Высокоэффективные программисты не только обладают отличными техническими навыками, но и умеют хорошо общаться и сотрудничать. Разработка ПО — это командная работа.
Что отдаёшь, то и получаешь. Доверяйте коллегам, и они доверятся вам в ответ. Будьте уважительны, и вас будут уважать. Интересуйтесь людьми и почаще обсуждайте хобби, семью, спорт и другие нерабочие темы.
Никогда не обвиняйте коллег в ошибках — это непродуктивно. Вместо этого всегда признавайте свои ошибки перед коллегами и руководством. Это укрепит доверие и покажет вашу способность брать на себя ответственность:
Во время код-ревью не пишите: «Так делать нельзя, вот моё решение, которое намного лучше». Вместо этого спросите: «Что ты думаешь вот о таком подходе в сравнении с тем, который выбрал ты?»
Читайте также:
Кодекс настоящего сеньора: 6 главных правил
Познакомьтесь с Ником Ходжесом, человеком с необычной биографией: бывшим официантом, поваром, школьным учителем, офицером военно-морской разведки, программистом, а также экс-менеджером по продукту и руководителем группы исследований Delphi. Ник расскажет, как сеньорам удаётся писать качественный код:
«Обычно говорят, что разработчик должен писать код так, как будто человек, который в итоге будет поддерживать его, жестокий психопат, знающий, где вы живёте». Как же этого добиться?»
1. Сеньор уделяет фанатичное внимание деталям. Он следит за отступами, использует линтер и соблюдает регистр переменных, даже если язык программирования нечувствителен к регистру.
2. Сеньор тщательно именует переменные и функции. Короткие имена — это пережиток прошлого, когда окна терминалов были шириной 80 символов. Не стоит экономить на нескольких нажатиях клавиш. Лучше использовать grossWeight вместо gw и netWeight вместо nw.
3. Сеньор пишет код на основе абстракций. Так легче вносить изменения и рефакторить программу.
4. Сеньор вносит и тестирует изменения по одному за раз. Чтобы было проще найти и устранить проблему.
5. Сеньор не допускает разрастания кода. Если метод не помещается в окно редактора, то это сигнал к рефакторингу. Попробуйте использовать не более трёх строк в одном методе, чтобы код стал чистым и удобным для чтения.
6. Сеньор избегает комментариев в коде. Если вам нужно добавлять пояснения, то это признак запутанного кода, который лучше переписать.
Читайте также:
Необычные сайты, которые стоит посетить
Для начала загляните в миниатюрный виртуальный музей курсоров и посмотрите на редкий доисторический экспонат.
После этого посетите сайт One Minute Park и полюбуйтесь парками со всего мира. Это не веб-камеры в реальном времени, а минутные видеоролики от посетителей. Обычно сайт работает, но иногда может подтормаживать.
И напоследок посетите сайт One Million Particles и попробуйте расщепить слово на миллион частиц. Это впечатляющий пример использования технологий GPGPU и WebGL. Если вы захотите разобраться в процессе, на сайте доступны исходный код и поясняющее видео.
Интересное на Reddit
В сабреддите Compsci предположили, когда может закончиться мода на ИИ. Один из участников привёл примеры технологий, которые когда-то были на пике популярности, но сегодня уже не так широко известны. Этот список подчёркивает, что технологические тренды приходят и уходят. То, что сегодня кажется революционным, может утратить свою актуальность или, наоборот, стать неотъемлемой частью нашей жизни.
1950–1960-е годы:
- искусственный интеллект (ИИ);
- мейнфреймовые компьютеры;
- кибернетика.
1970–1990-е годы:
- персональные компьютеры (ПК);
- графический интерфейс пользователя (GUI);
- объектно-ориентированное программирование;
- компьютерное проектирование (CAD);
- Всемирная паутина;
- бум доткомов;
- мультимедиа.
2000-е годы:
- Web 2.0;
- социальные медиа;
- облачные вычисления;
- смартфоны;
- интернет вещей (IoT);
- большие данные;
- виртуальная реальность (VR).
2010-е годы:
- блокчейн и криптовалюты;
- машинное обучение;
- дополненная реальность (AR);
- сети 5G;
- цифровая трансформация;
- квантовые вычисления;
- DevOps.
2020-е годы:
- возрождение искусственного интеллекта (ИИ);
- большие языковые модели;
- генеративный ИИ;
- метавселенная;
- Web3;
- NFT;
- расширенная реальность (XR);
- цифровые двойники.
В сабреддите LearnProgramming обсудили, как выйти из ада обучения (tutorial hell) — ситуации, когда человек проходит один курс по программированию за другим, смотрит видео и постоянно учится, не зная, как начать самостоятельно программировать. Совет, который часто повторяют, но о котором стоит напомнить: после нескольких обучающих курсов начните работать над своим проектом. Это поможет освоить три важных вопроса:
- понять, с чего начать;
- находить ответы на вопросы без руководства;
- создавать что-то своё, а не просто копировать.
В сабреддите Webdev рассказали, о чём чаще всего врут веб-разработчики. Автор поста рассказал о своём брате, которого на собеседованиях или уже на работе спрашивали: «Ты можешь это сделать?» На что он отвечал: «Да». Затем брат тратил следующие две недели на то, чтобы научиться этому. Он утверждает, что почти все свои знания и навыки получил таким способом.
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!