Главная Веб-разработка Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

от admin

IT-дайджест: главные новости ноября 2024 года.

Встречаются как-то ChatGPT, Claude и Gemini в виртуальном баре. ChatGPT говорит: «Я научился писать код лучше джуниоров!» Claude отвечает: «А я могу заменить мидла!» Gemini хвастается: «А я уже на уровне сеньора!» Тут из-за стойки выглядывает старый добрый Stack Overflow и усмехается: «Ребята, а кто будет писать те кривые ответы, на которых вас обучали?»

Эту шутку мы нашли на Reddit в прошлом месяце. И хотя звучит забавно, нейросети действительно всё ближе к тому, чтобы конкурировать с программистами за рабочие места. Давайте разберёмся, как к этому адаптироваться, и заодно обсудим другие важные события ноября.

Как стать востребованным специалистом и сохранить работу в эпоху нейросетей

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

Первый совет — научитесь работать с теми технологиями, где ощущается нехватка специалистов:

«В настоящее время наблюдается высокий спрос на такие технологии, как Rust, Go, Google Cloud Platform, Terraform и AWS. При этом число соискателей значительно меньше количества открытых вакансий».

Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

Годовая динамика спроса на ключевые технологические навыки
Изображение: Indeed

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

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

Из прочих рекомендаций авторы выделяют следующие:

  • Быть готовым к переезду: готовность к релокации у 80% технических специалистов значительно увеличивает их шансы на трудоустройство.
  • Проявлять активность: поиск вакансий часто приносит лучшие результаты, чем пассивное ожидание предложений от рекрутеров.
  • Интересуйтесь программами повышения квалификации — спрашивайте о них на собеседованиях и у текущего работодателя. Это продемонстрирует работодателю вашу заинтересованность в профессиональном росте и намерение задержаться в компании.

Rust как первый язык программирования: почему это хороший выбор и с чего начать

Разработчик Джейсон Дукеран рекомендует всем новичкам учить Rust:

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

Джейсон отмечает следующие особенности языка Rust:

  • Подробное протоколирование ошибок — Rust не только сообщает об ошибке, но и предлагает способы её исправления.
  • Строгий, но дружелюбный компилятор — он не только чётко указывает на проблемы в коде, но и подсказывает пути их исправления.
  • Никакого ручного управления памятью — в отличие от C++, Rust использует умную систему автоматического управления памятью.
  • Активное сообщество разработчиков, готовое помочь в любой момент.

«Если бы я был новичком, я бы непременно начал изучать Rust, так как он с самого начала предотвращает плохие привычки в программировании».

Джейсон Дукеран также предлагает полезные ресурсы для изучения Rust:

  • Сайт rust-lang.org.
  • Книга The Rust Programming Language.
  • Проект на GitHub с подборкой упражнений Rustlings.

Хакеры использовали редкий язык программирования для обхода антивирусов

Компания Trustwave обнаружила новое вредоносное ПО Pronsis Loader, которое сложно выявить из-за его необычной структуры и поведения.

Программа Pronsis Loader написана на JPHP — малоизвестном языке программирования, который объединяет синтаксис PHP и JVM. Из-за особой структуры кода антивирусам сложно обнаружить вредоносное ПО на JPHP, поскольку оно не соответствует стандартным сигнатурам угроз.

Кроме того, Pronsis Loader действует в два этапа: сначала скрытно проникает в систему, а затем загружает другие вредоносные программы. На первом этапе Pronsis Loader может замаскироваться под обновление браузера, а после внедрения в систему — установить программу-вымогатель.

Если Pronsis Loader и другие подобные вирусы начнут быстро распространяться, то многим пользователям придётся усовершенствовать защиту — перейти на современные антивирусы, которые способны не только проверять сигнатуры, но и анализировать поведение программ.

Печальная история нового логотипа CSS

Таблицы стилей CSS получили новый логотип, который был утверждён голосованием сообщества в репозитории проекта CSS-Next на GitHub.

Особенность нового логотипа — цвет rebeccapurple (фиолетовый). Этот оттенок был добавлен в спецификацию CSS в 2014 году в память о Ребекке Мейер, дочери Эрика Мейера — значимого деятеля в CSS-сообществе.

Ребекка умерла в шесть лет от рака мозга. Сообщество предлагало назвать цвет beccapurple, однако Мейер настоял на rebeccapurple. Его дочь считала имя Бекка детским и хотела, чтобы с шести лет её звали Ребекка:

«Она дожила до шести. Почти двенадцать часов ей было шесть. Так что она Ребекка и должна быть ей».

Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

Новый логотип CSS в цвете rebeccapurple
Изображение: CSS-Next / GitHub

Не тратьте время на React — учите базу: советы опытного разработчика

Если вы цените своё время — не тратьте его на изучение React. К такому выводу пришёл Кейт Сиркел, веб-разработчик с двадцатилетним опытом.

Первая причина. Современный React строится на хуках — специфичной технологии, которая больше нигде не используется. Поэтому вместо псевдофункциональных парадигм Кейт рекомендует освоить настоящие функциональные языки программирования, такие как Haskell или Elixir.

Вторая причина кроется в пользовательском интерфейсе:

«Сторонники React утверждают, что он научит вас современному UI. Однако в реальности автофокус работает нестабильно, а пользовательские элементы ведут себя непредсказуемо в разных версиях. Это не современный UI, а интерфейс образца 2013 года — времён его создания».

Вместо React Сиркел рекомендует изучать чистый JavaScript — без TypeScript и React. Суть в том, чтобы освоить базовые концепции и получить универсальные навыки, которые можно применить к любому фреймворку.

Для развития универсальных навыков программирования Кейт рекомендует осваивать современные языки со строгой типизацией:

«Я бы посоветовал Golang, Zig или Rust. Попробуйте создать на них приложение для командной строки. После этого вам будет проще разобраться с TypeScript. К тому же изучение системного языка научит вас управлению памятью и даст более глубокое понимание того, как работают динамические языки под капотом».

Дополнительно Кейт Сиркел советует изучать различные спецификации: HTTP, HTML, CSS, базы данных и Wi-Fi. По его мнению, это поможет выделиться среди коллег и приобрести ценные фундаментальные знания.

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

«Если вы будете заниматься чем-то из вышеперечисленного (или всем сразу), вы окажетесь в намного более выгодном положении. Не тратьте время на изучение React — лучше изучите что-то действительно полезное».

Вот интересно, если бы Кейт Сиркел был начинающим разработчиком в поиске работы, последовал бы он своим советам? Или сначала освоил бы React, устроился на работу, а потом изучал всё остальное ради интереса?

WordPress против WP Engine: битва за права опенсорс-сообщества

Основатель WordPress Мэтт Мулленвег подал судебный иск против хостинг-провайдера WP Engine. В ответ WP Engine подала встречный иск против Мулленвега и компании Automattic, которая разрабатывает WordPress.

Суть конфликта в том, что WP Engine много лет пользуется торговой маркой WordPress. Мэтт предложил компании заплатить лицензионный сбор или внести свой вклад в проект с открытым исходным кодом:

«Мы считаем, что если бизнес зарабатывает сотни миллионов долларов на опенсорс-проекте, то он обязан делиться с сообществом. Если же компания отказывается, то она теряет право на использование торговой марки».

Читать также:
10 пакетов Python, которые улучшат вашу кодовую базу

Это разбирательство напомнило о ключевой проблеме опенсорса, которую назвал Дрис Бёйтарт, создатель системы управления контентом Drupal:

«Создатели программного обеспечения с открытым исходным кодом вынуждены наблюдать, как их труд используется для извлечения прибыли. Часто это делают те, кто не вносит достойного вклада в развитие проекта».

Чад Уитакер, глава отдела открытых исходных кодов в Sentry, предлагает три способа решения этой проблемы:

  • Коммерциализация — создание устойчивых бизнес-моделей для поддержки опенсорс-проектов. Например, это можно реализовать через платное сопровождение и техническую поддержку продуктов.
  • Финансовая поддержка через прямые инвестиции от государственных органов и частных компаний. По этой модели сейчас работают FreeBSD, PHP Foundation, OpenJS Foundation и другие проекты.
  • Система вознаграждений. Например, сообщество Drupal внедрило систему кредитов для поощрения активных участников. За свой вклад они получают различные бонусы: размещение рекламы на сайте Drupal, приоритетный доступ к обновлениям и специальные скидки.

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

Как перейти от прокрастинации к действию: советы эксперта

Около 20% взрослых постоянно откладывают дела на потом и не могут с этим поделать. Если вы тоже страдаете от прокрастинации, возможно, вам помогут советы Эрика Баркера, автора бестселлера The Wall Street Journal.

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

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

Далее важно отпустить мысли о результате и сфокусироваться на процессе:

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

Наконец, поговорите со своим «будущим я» — тем, кому вы сейчас портите жизнь. Когда вы начнёте испытывать чувство ответственности перед будущим собой, у вас появится мотивация действовать в настоящем.

Советы неплохие, но даже автор признаёт, что иногда вы можете срываться. В такие дни важно себя понять, простить и… накормить 🍕

Будущее уже здесь: AI-ассистенты в современных редакторах кода

Какой редактор кода с функциями искусственного интеллекта вы считаете лучшим? Такой же вопрос задал своим читателям Гергели Орос, инженер и автор рассылки The Pragmatic Engineer Newsletter. Вот результаты опроса:

Всего Орос получил 145 ответов. Помимо основных редакторов, участники отметили Cody от Sourcegraph, v0 от Vercel, Replit Agent, Bolt.new от StackBlitz, Neovim от Avante, Eclipse Theia, Augment Code и Continue.dev.

Гергели отмечает, что результаты опроса указывают на революцию в мире редакторов кода. За последние полтора года появилось множество новых IDE, и процесс их развития продолжается. Некоторые стартапы, такие как Magic и Cognition AI, уже привлекли многомиллионные инвестиции и вскоре планируют представить свои продукты в публичный доступ.

Кажется, будущее разработки уже невозможно представить без нейросетей и всевозможных умных помощников. Поэтому, если вы до сих пор их не использовали, пожалуй, время начать. Хотя бы просто попробуйте 🚀 ✨

Необычные сайты, которые стоит посетить

Если вы изучаете фронтенд, посмотрите, как устроен этот велосипед:

Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

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

Не очень впечатлило? Тогда вам на виртуальную муравьиную ферму:

Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

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

На сайте draw.audio вы можете нарисовать музыку — или, правильнее сказать, сыграть рисунок 🤔 В любом случае обязательно попробуйте:

Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

Скриншот: Draw.Audio / Skillbox Media

«Правда ли песни о любви умирают?» — таким вопросом задались исследователи Дэвид Мора и Мишель Джиа. Они проанализировали 5100 хитов Billboard с 1958 по 2023 год и обнаружили, что любовные песни не умирают, а эволюционируют: «Люди любят, теряют и воссоединяются больше, чем когда-либо прежде». Но самое интересное — визуализация результатов исследования, которую мы рекомендуем посмотреть:

Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

Скриншот: pudding.cool / Skillbox Media

И напоследок представляем вам машину Тьюринга из Lego. Машина Тьюринга — это теоретическая модель вычислительного устройства, демонстрирующая принципы работы современных компьютеров. Она работает как механизм, который действует по заданной программе: перемещается по ленте, считывает и записывает новые символы.

Зачем учить Rust, как победить прокрастинацию и почему не стоит тратить время на React

Машина Тьюринга из 2900 деталей Lego
Источник: Lego Ideas

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

В сабреддите ExperiencedDevs один из пользователей поделился наблюдением, к которому пришёл после пяти лет работы в IT:

«Почти все компании сильно недооценивают важность владения английским языком. Сотрудники настолько плохо описывают задачи, что приходится тратить много времени только на то, чтобы понять суть написанного».

Мы согласны: разработчику полезно знать английский язык. Но не менее важно развивать и другие качества — дисциплину, инициативность, критическое мышление, навыки командной работы и другие soft skills.

Другой участник того же саба рассказал историю про джуна, которому он поручил написать несколько скриптов на Python. Джун использовал ChatGPT и принёс проблемный код с ненужными функциями.

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

Бывает, конечно. Но, может, этот джун просто не умеет писать промпты?

На сабреддите LearnProgramming пользователь поинтересовался, как попасть в 1% лучших разработчиков мира. Вот что ему ответили:

«Секрет прост: нездоровый перфекционизм и полное отсутствие личной жизни на протяжении как минимум 20 лет».

Совет может быть действенным, но звучит довольно пессимистично. Мы бы посоветовали найти ментора, чтобы ускорить прогресс.

В сабреддите Frontend обсудили ключевую концепцию фронтенд-разработки — пользовательский опыт (UX). Если человеку трудно взаимодействовать с приложением, то это обесценивает всё остальное.

Представим интернет-магазин с современным дизайном, который быстро работает, адаптирован под различные устройства и написан на React с TypeScript. А теперь допустим, что в таком магазине часто не работает форма заказа и разработчики по каким-то причинам это не исправляют. В таком случае большинство клиентов, скорее всего, уйдут к конкурентам.

Большинство вредоносных программ создаётся на популярных языках программирования — Python, Java, C++ и других. Для обнаружения таких программ антивирусы обычно используют сигнатурный метод — они ищут характерные для вредоносного ПО шаблоны кода и поведения. Например, если в коде программы встречается команда delete system32, она становится сигнатурой, по которой антивирус идентифицирует угрозу.

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

Хук — это специальная функция в React, которая помогает управлять состоянием и другими возможностями компонента. Например, если мы создадим на сайте счётчик, то хук useState будет выполнять три задачи:
— сохранять текущее значение счётчика (например, count);
— предоставлять функцию изменения значения (setCount);
— задавать начальное значение счётчика (например, 0).

С помощью классов реализовать такой же счётчик сложнее: нужно создавать конструктор, инициализировать начальное состояние, привязывать методы через bind и использовать специальный метод setState для обновления. Всё это делает код более громоздким и запутанным.

Похожие статьи