<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Stack Overflow</title>
    <description>Статистика по популярности тем на StackOverflow и информация о том, как устроен этот популярнейший проект изнутри.</description>
    <link>https://tproger.ru/tag/stack-overflow</link>
    <atom:link href="https://tproger.ru/tag/stack-overflow/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sun, 04 Oct 2026 14:21:47 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Stack Overflow</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения</title>
      <link>https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch</link>
      <comments>https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Василенков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch</guid>
      <description><![CDATA[<p>Разбор архитектуры E2EE-мессенджера на Spring Boot 3, React и WebCrypto: X3DH, symmetric ratchet, AES-GCM, WebSocket, multi-device и ограничения реализации.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch">Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Алиса]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 May 2026 05:35:02 GMT</pubDate>
      <content:encoded><![CDATA[<figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/240e412b-4307-49f9-b24f-bde7e0a7fd9a.webp" alt="" /></figure><p>Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно находится за интерфейсом.</p><p>В какой-то момент я поймал себя на мысли: я каждый день пользуюсь мессенджерами, но плохо понимаю, как они устроены внутри. Окей, JWT, WebSocket, PostgreSQL, Redis — это понятно. Но что технически означает фраза "end-to-end encryption"? Как сервер доставляет сообщения, если он не должен их читать? Где живут ключи? Что хранится в базе? Что происходит, если у пользователя два устройства?</p><p>Решил разобраться через практику. Написал мессенджер с нуля. Назвал Chaos Messenger.</p><p>Сразу честно: криптографическую часть я изучал вместе с Claude и ChatGPT — читал спецификации X3DH и Double Ratchet, разбирал примеры, задавал вопросы, пока не сложилась цельная картина. Frontend тоже делался с активной помощью ChatGPT: я backend-разработчик, React для меня не основная среда. Но архитектура, backend, интеграция WebCrypto, модель конвертов, хранение сообщений и принципиальные решения — мои.</p><p>Для меня AI здесь был не заменой понимания, а инструментом — примерно как документация, Stack Overflow и ревью коллег. Без понимания threat model и архитектуры такой проект всё равно не собрать.</p><p>В статье расскажу, как работает E2EE изнутри: как устанавливается сессия через X3DH, как каждое сообщение получает отдельный ключ через Symmetric Ratchet, почему сервер хранит только зашифрованные конверты, и какие ошибки я допустил по дороге.</p><p>Стек: Spring Boot 3, React 18, WebCrypto API, PostgreSQL, Redis, WebSocket/STOMP, Prometheus, Grafana.</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/4b028f37-2de1-46ea-a247-567f74fb3081.webp" alt="" /></figure><h2>Важная оговорка про web-E2EE</h2><p>Когда я говорю, что сервер не может прочитать сообщения, я имею в виду backend, базу данных, WebSocket-слой и уже сохранённые ciphertext-конверты. У них нет ключей и plaintext.</p><p>Но у web-E2EE есть отдельная проблема: frontend-код тоже приходит с сервера. Теоретически скомпрометированный сервер может отдать изменённый JavaScript, который украдёт ключи или plaintext до шифрования. Это ограничение не конкретно моего проекта, а браузерной модели в целом.</p><p>Поэтому корректная формулировка такая: backend не получает ключи и не может расшифровать уже переданные или сохранённые сообщения. Защита от подмены клиентского кода — отдельный слой безопасности: подпись сборок, независимая верификация клиента, desktop/mobile-приложения, reproducible builds.</p><h2>Почему обычный подход не работает</h2><p>Большинство "мессенджеров" на GitHub выглядят примерно так:</p><p>Сервер знает всё. Видит каждое сообщение. Если БД утекла — утекла вся переписка. Если сервер взломали — читай что хочешь. Если завтра компания решит продать данные — технически ничего не мешает.</p><p>E2EE решает это радикально: backend не получает ключи и не хранит plaintext. Сообщение шифруется на устройстве отправителя до отправки в сеть, а расшифровывается только на устройстве получателя.</p><p>Это уже не вопрос политики конфиденциальности в стиле "мы обещаем не читать". Это архитектурное ограничение: если у сервера нет ключа, он не может превратить ciphertext обратно в текст.</p><p>Звучит как магия. На самом деле — два протокола и немного WebCrypto.</p><h2>Главная идея: конверты</h2><p>Представь что Алиса хочет написать Бобу. Вместо того чтобы положить письмо на стол и надеяться что никто не прочитает — она кладёт его в запечатанный конверт. Конверт может открыть только Боб своим ключом. Сервер просто передаёт конверт не заглядывая внутрь.</p><p>Именно так это работает в коде. В базе данных у меня это выглядит так:</p><p>Когда я впервые увидел</p><p>в своей БД вместо текста — стало понятно, что модель наконец работает правильно: сервер создал сообщение, доставил его, сохранил метаданные, но так и не узнал содержимое.</p><p>А вот что сервер возвращает при запросе списка чатов через API:</p><p>Не</p><p>. Не</p><p>. Буквально</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/b466ad91-20da-4e64-8b78-f6e08d2851d5.webp" alt="" /></figure><p>(DevTools → Network → ответ API с</p><p>)</p><h2>Откуда берутся ключи: X3DH</h2><p>Главный вопрос: как Алиса и Боб получают общий секрет, если они никогда раньше не общались? И как сделать это так, чтобы сервер только помог передать публичные данные, но сам не смог вычислить итоговый ключ?</p><p>Для этого используется X3DH — Extended Triple Diffie-Hellman, протокол из экосистемы Signal. Его задача — установить общий секрет между двумя устройствами, используя долгосрочные и временные ключи.</p><h2>Что хранится на сервере</h2><p>Когда пользователь регистрирует устройство, он загружает на сервер пакет публичных ключей:</p><p>На сервер уходят только публичные части. Приватные ключи сериализуются и хранятся локально в браузере — и никогда не покидают устройство в сеть.</p><p>Здесь важно сказать честно: хранение приватных ключей в</p><p>Более строгий вариант — использовать Web Crypto API с</p><p>, чтобы приватный ключ жил внутри браузерного crypto runtime и его нельзя было экспортировать в байты. Но у этого подхода есть практическая сложность: ключи нужно переживать между перезагрузками страницы, синхронизировать с IndexedDB, аккуратно восстанавливать состояние устройства и не сломать UX.</p><p>В браузерных E2EE-приложениях обычно приходится выбирать между несколькими вариантами:</p><ul><li>Сериализуемые ключи в localStorage или IndexedDB — проще реализовать, но нужно очень серьёзно относиться к XSS и целостности frontend-кода.</li><li>extractable: false + IndexedDB — безопаснее, но сложнее в реализации и восстановлении состояния.</li><li>Нативное secure storage вроде Android Keystore или iOS Secure Enclave — лучший вариант для мобильных клиентов, но он недоступен обычному web-приложению.</li></ul><p>В текущей версии Chaos Messenger используется первый вариант. Это осознанный компромисс для pet/open-source проекта и удобного запуска в браузере. Переход на non-extractable ключи и более строгую модель хранения стоит в roadmap.</p><p>Ключевой момент: backend всё равно не получает приватные ключи и не может расшифровать сохранённые ciphertext-конверты. Но защита ключей на клиенте — отдельная задача, и её нельзя честно замалчивать.</p><h2>Установка сессии</h2><p>Когда Алиса открывает переписку с Бобом впервые, происходит следующее:</p><p>В классическом X3DH четвёртая DH-операция с one-time prekey опциональна: она выполняется, если сервер выдал доступный OPK получателя. В моей реализации устройство публикует набор one-time prekeys при регистрации, поэтому первое сообщение обычно использует DH4. Если OPK закончились, сессию всё равно можно установить через остальные DH-компоненты, но это уже менее сильный вариант.</p><p>Боб, получив конверт с эфемерным публичным ключом Алисы, повторяет те же операции со своими приватными ключами и получает тот же самый</p><p>. Математика симметрична.</p><p>Сервер в этот момент видит только публичные ключи и зашифрованный конверт. Он помогает устройствам найти друг друга, но не участвует в вычислении секрета.</p><p>Получить</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/e7bbacf3-4fd2-4710-863a-2c710b1f6759.webp" alt="" /></figure><h2>Как шифруется каждое сообщение: Symmetric Ratchet</h2><p>X3DH даёт нам стартовый</p><p>. Но использовать один и тот же ключ для всех сообщений — плохая идея. Если использовать один ключ для всей переписки, компрометация этого ключа сразу открывает весь поток сообщений.</p><p>Решение — симметричный ratchet. После каждого сообщения цепочка ключей продвигается вперёд:</p><p>Визуально это выглядит так:</p><p>используется для шифрования одного сообщения через AES-GCM, после чего уничтожается. Если атакующий компрометирует</p><p>— он прочитает только второе сообщение.</p><p>В рамках такой симметричной цепочки это даёт forward secrecy назад по цепочке: зная текущий или отдельный</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/939a74f7-60c5-4816-85f0-05b5afdc9845.webp" alt="" /><figcaption>(диаграмма схемы chainKey → messageKey)</figcaption></figure><p>Само шифрование сообщения:</p><p>А вот что уходит на сервер — живой пример из DevTools:</p><p>Сервер получает</p><p>и</p><p>. Расшифровать без</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/b5e24cda-6fd9-4b15-9f27-3eb9b4f843b0.webp" alt="" /></figure><h2>Важная оговорка: это ещё не полный Double Ratchet</h2><p>В этом проекте реализован Symmetric Ratchet — цепочка, где из</p><p>для каждого сообщения выводится отдельный</p><p>Это защищает прошлые сообщения: если атакующий узнает текущий ключ или отдельный</p><p>, он не сможет откатить HMAC назад и получить старые ключи.</p><p>Но это не полный Double Ratchet из Signal Protocol.</p><p>В полном Double Ratchet есть ещё DH ratchet step: стороны периодически выполняют новый Diffie-Hellman обмен и обновляют root key. Это даёт break-in recovery — возможность восстановить безопасность будущих сообщений после компрометации части состояния.</p><p>В моей реализации DH ratchet step пока нет. Если атакующий получит актуальное состояние сессии на устройстве и сможет продолжать его читать, он сможет расшифровывать будущие сообщения до переустановки сессии. Это честное ограничение текущей версии, и оно стоит первым пунктом в roadmap.</p><h2>Мультиустройство: один пользователь, несколько конвертов</h2><p>Первый неочевидный момент: в E2EE сообщение адресуется не просто пользователю, а конкретным устройствам пользователя.</p><p>Если у Боба два устройства — телефон и ноутбук — нужен отдельный encrypted envelope для каждого устройства. Сервер не может взять один конверт, расшифровать его и "переупаковать" для второго устройства: у него нет ключей и он не знает plaintext.</p><p>Значит при отправке сообщения нужно зашифровать его отдельно для каждого устройства каждого участника чата.</p><p>Для чата где у каждого по 2 устройства — 4 конверта на одно сообщение. Для группы из 10 человек — потенциально 20 конвертов. Это нормально, это цена безопасности.</p><h2>Сервер: хранение и доставка конвертов</h2><p>На сервере сообщение создаётся с контентом</p><p>, а конверты сохраняются отдельно:</p><p>После сохранения — fanout по WebSocket. Каждое устройство получает свой конверт и только его:</p><p>Это важное отличие от обычного WebSocket-чата. В обычном чате сервер рассылает одно и то же событие всем участникам. В E2EE-чате сервер рассылает разные события разным устройствам: payload для каждого устройства содержит свой</p><p>Топик</p><p>— строго персональный. Устройство А не получает конверт устройства Б. Никакого broadcast — только адресная доставка.</p><h2>Архитектура целиком</h2><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/de0e3257-d893-459f-86ed-7ed8eace5d56.webp" alt="" /></figure><h2>Баг который долго не замечал</h2><p>В панели чатов показывается превью последнего сообщения. Я реализовал это через</p><p>Запускаю — в списке чатов у всех написано</p><p>.</p><p>Конечно. Сервер же не знает что там написано.</p><p>Я полчаса думал как решить это на сервере. Потом дошло: нельзя решить это на сервере — у него нет ключей. Решение только на клиенте.</p><p>После того как пользователь открыл чат и сообщения расшифровались — кешируем последнее в памяти:</p><p>Это хороший пример того, как E2EE меняет привычное мышление backend-разработчика. В обычном приложении preview — это поле в SQL-запросе. В E2EE-приложении preview — это локальное клиентское состояние, потому что только клиент видел plaintext.</p><p>Простое решение. Но чтобы к нему прийти нужно было полностью принять идею что сервер здесь просто не при делах — и перестать пытаться решить задачу на его стороне.</p><h2>Rate limiting: дыра которую легко не заметить</h2><p>Эндпоинт</p><p>отправляет SMS с кодом. Без защиты любой скрипт может дёргать его тысячи раз — это называется SMS pumping fraud, SMS стоят реальных денег.</p><p>Redis у нас уже был для хранения онлайн-статусов. Добавил rate limiting поверх него:</p><p>При превышении — HTTP 429 с заголовком</p><p>. Клиент знает через сколько секунд можно повторить.</p><p>Важный нюанс: в текущей реализации, если Redis недоступен, сервис не блокирует авторизацию полностью. Для pet-проекта это приемлемый компромисс: лучше рискнуть одним лишним SMS, чем положить вход в приложение.</p><p>В production я бы сделал строже: fallback in-memory лимит на инстанс, отдельные лимиты по IP и телефону, антифрод-логику и алерты на всплески отправки кодов.</p><h2>Авторизация WebSocket</h2><p>Отдельная история — авторизация WebSocket соединений. HTTP-эндпоинты защищены Spring Security автоматически, но WebSocket — другое дело. STOMP-соединение устанавливается один раз, и нужно проверять JWT при каждом подключении.</p><p>Отдельно важно не только проверить JWT, но и связать WebSocket-соединение с конкретным устройством. Пользователь может быть один, но устройств у него несколько, а encrypted envelope адресован именно</p><p>Поэтому при подключении я проверяю не только токен, но и</p><p>: устройство должно быть зарегистрировано и принадлежать текущему пользователю. Иначе легко случайно превратить per-device E2EE-доставку обратно в обычный broadcast по пользователю.</p><h2>Что получилось — живые скрины</h2><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/1fdfa006-f5c6-4731-a40f-50559be8832d.webp" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/c99164a5-021c-49ac-bcc4-3e38f9cd1c31.webp" alt="" /></figure><p>Что реализовано:</p><ul><li>E2EE-модель с per-device encrypted envelopes</li><li>X3DH session setup + Symmetric Ratchet + AES-GCM</li><li>Мультиустройство</li><li>Личные и групповые чаты</li><li>Realtime доставка через WebSocket/STOMP</li><li>Статусы SENT → DELIVERED → READ</li><li>Редактирование и soft delete сообщений</li><li>Online presence, typing indicator</li><li>Фото-вложения</li><li>Поиск пользователей</li><li>Rate limiting на SMS через Redis</li><li>Prometheus метрики + Grafana дашборд</li><li>Swagger UI с JWT авторизацией</li><li>24 backend-теста на Testcontainers, 12 frontend на Vitest, E2E на Playwright</li><li>GitHub Actions CI</li></ul><p>Что ещё не сделано:</p><ul><li>Полный Double Ratchet с DH ratchet step и break-in recovery</li><li>Ротация signed prekey и аккуратное пополнение one-time prekeys</li><li>Более строгая модель хранения приватных ключей на клиенте: non-extractable CryptoKey + IndexedDB</li><li>Защита от подмены frontend-кода: подпись сборок, независимая верификация клиента, reproducible builds</li><li>Android-клиент с Android Keystore</li><li>Реальный SMS-провайдер вместо кода в backend-логах</li><li>Push-уведомления без утечки содержимого сообщений</li><li>Более строгая metadata-модель для групповых чатов</li></ul><h2>Главный инсайт</h2><p>E2EE — это архитектурное решение, а не библиотека.</p><p>Нельзя взять обычный Spring Boot чат и просто "включить шифрование". Нужно с самого начала проектировать систему так, чтобы backend не был участником доверенной зоны: он не должен получать plaintext, не должен иметь ключи и не должен уметь пересобирать сообщение из данных в базе.</p><p>Это меняет почти всё:</p><ul><li>структуру БД — вместо текста появляются encrypted envelopes</li><li>API — сервер отдаёт [encrypted], а не preview сообщения</li><li>WebSocket — доставка идёт не по пользователю, а по конкретному устройству</li><li>мультиустройство — одно сообщение превращается в несколько ciphertext-конвертов</li><li>frontend — становится полноценной криптографической частью системы, а не просто UI</li></ul><p>Второй инсайт: мессенджер — это не "чат с WebSocket". В E2EE-модели это система доставки зашифрованных конвертов с адресацией по устройствам. Как только это принимаешь, многие странные на первый взгляд решения становятся логичными.</p><h2>Репозиторий</h2><p>Код открыт: <a href="https://github.com/vaazhen/chaos-messenger">github.com/vaazhen/chaos-messenger</a></p><p>В репозитории есть README на русском и английском, диаграммы, скриншоты, security audit, Docker Compose и запуск одной командой.</p><p>Проект не претендует на уровень production-криптомессенджера вроде Signal. Это учебный и инженерный open-source прототип, цель которого — показать, как E2EE меняет архитектуру backend, frontend и realtime-доставки.</p><p>Если вы делали что-то похожее — особенно интересно сравнить подходы к ротации prekey-ов, хранению non-extractable ключей в браузере и реализации DH ratchet step. Вопросы и критика приветствуются.</p>]]></content:encoded>
    </item>
    <item>
      <title>Парадокс Stack Overflow: он умирает как форум, но выручка удвоилась из-за ИИ!</title>
      <link>https://tproger.ru/news/paradoks-stack-overflow--forum-umiraet--no-dohody-kompanii-vyrosli-iz-za-ii-</link>
      <comments>https://tproger.ru/news/paradoks-stack-overflow--forum-umiraet--no-dohody-kompanii-vyrosli-iz-za-ii-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/paradoks-stack-overflow--forum-umiraet--no-dohody-kompanii-vyrosli-iz-za-ii-</guid>
      <description><![CDATA[<p>Смерть от LLM оказалась не окончательной

</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/paradoks-stack-overflow--forum-umiraet--no-dohody-kompanii-vyrosli-iz-za-ii-">Парадокс Stack Overflow: он умирает как форум, но выручка удвоилась из-за ИИ!</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 10 Jan 2026 04:15:20 GMT</pubDate>
      <content:encoded><![CDATA[<p>Stack Overflow как площадка для вопросов мертва, но как компания жива и зарабатывает больше, чем когда-либо.  В декабре 2025 года на платформе<a href="https://tproger.ru/news/stack-overflow-teryaet-auditoriyu--s-pika-v-200-000-voprosov-do-3862-v-mesyac"> было зафиксировано всего 6 866 вопросов</a> — это уровень 2008 года, когда сайт только запускался.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-01-10/afa65cf0-f28a-45e8-b4a8-675149f87afc.jpg" alt="" /><figcaption>Sherwood News</figcaption></figure><p>Когда Илон Маск в июле 2023 года назвал ситуацию с платформой «смертью от LLM», он оказался прав в отношении форума, но не бизнеса. В отличие от Chegg и других образовательных площадок, которые пали жертвой генеративного ИИ, Stack Overflow научилась монетизировать свой огромный архив контента.</p><p><b>Stack Overflow удалось удвоить годовую выручку до 115 млн долларов</b>. Убытки компании также <b>сократились с 84 млн до 22 млн долларов </b>благодаря жесткой оптимизации расходов и массовым сокращениям.</p><h2>Как мёртвый форум приносит живые деньги</h2><p>Компания радикально изменила бизнес-модель. Вместо рекламы на форуме основной источник дохода теперь — <b>корпоративное решение Stack Internal</b>. Это генеративный ИИ-инструмент, обученный на миллионах вопросов и ответов платформы за годы её существования. Продуктом пользуются 25 000 компаний по всему миру .</p><p><b>Второй поток выручки — лицензирование данных ИИ-компаниям по модели Reddit,</b> который заработал более $200 миллионов на продаже пользовательского контента в 2024 году. Убытки компании сократились с $84 миллионов в 2023 финансовом году до $22 миллионов благодаря массовым увольнениям и оптимизации расходов .</p><h2>Сложные вопросы никуда не делись</h2><p>CEO Stack Overflow Прашант Чандрасекар объясняет падение активности так: в начале 2023 года исчезли простые вопросы, на которые LLM легко отвечают . Сложные же кейсы по-прежнему задают на Stack Overflow, потому что альтернатив нет.</p><blockquote>Если LLM настолько хороши, насколько хороши данные, на которых их обучают, а эти данные обычно курируются людьми, то мы — одно из лучших мест для этого, если не лучшее для технологий.</blockquote><h2>Замкнутый круг технологий</h2><p>Stack Overflow стала индикатором новой, циркулярной экономики в технологической индустрии. Языковые модели нуждаются в данных о проблемах программирования и их решениях. У Stack Overflow есть огромный цифровой склад такой информации, но он стареет, поскольку запросы переместились в приватные чаты с LLM. А этим моделям для работы нужны массивы данных — которые больше не пополняются в прежнем объёме.</p><p>Компания нашла способ выжить в эпоху ИИ, но вопрос остаётся открытым: откуда следующее поколение моделей возьмёт свежие знания о новых технологиях, если сообщество разработчиков перестало делиться опытом публично?</p><p>Следите за тем, как ИИ меняет привычные ИТ-инструменты, в нашем тг-канале <a href="https://t.me/neuro_channel">Нейроканал</a>. Только актуальные тренды и глубокая аналитика нейросетей.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow теряет аудиторию: с пика в 200 000 вопросов до 3862 в месяц</title>
      <link>https://tproger.ru/news/stack-overflow-teryaet-auditoriyu--s-pika-v-200-000-voprosov-do-3862-v-mesyac</link>
      <comments>https://tproger.ru/news/stack-overflow-teryaet-auditoriyu--s-pika-v-200-000-voprosov-do-3862-v-mesyac?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-teryaet-auditoriyu--s-pika-v-200-000-voprosov-do-3862-v-mesyac</guid>
      <description><![CDATA[<p>Эпоха закончилась тихо</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-teryaet-auditoriyu--s-pika-v-200-000-voprosov-do-3862-v-mesyac">Stack Overflow теряет аудиторию: с пика в 200 000 вопросов до 3862 в месяц</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 07 Jan 2026 09:06:46 GMT</pubDate>
      <content:encoded><![CDATA[<p>В декабре 2025 года пользователи Stack Overflow задали всего 3862 вопроса . Для сравнения: в 2014 году, на пике популярности платформы, этот показатель превышал 200 000 вопросов ежемесячно. Падение активности составило более 98% за одиннадцать лет.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2026-01-07/3b3352b8-c9f7-4f4c-83cd-e4bbee8108cb.jpeg" alt="" /></figure><p>Свежая статистика показывает драматичный спад. Однако важная деталь: рост числа вопросов остановился ещё в 2014 году — задолго до появления ChatGPT и массового внедрения больших языковых моделей . Платформа стагнировала десять лет, а ИИ-инструменты лишь ускорили процесс упадка.</p><h2>Три причины коллапса</h2><h3>LLM как зеркало Stack Overflow</h3><p>Языковые модели обучались на миллионах ответов с платформы и теперь выдают ту же информацию мгновенно, без необходимости регистрации и ожидания ответа сообщества . При этом нейросети не осуждают за «глупые вопросы» — психологический барьер снят.</p><h3>Культура модерации</h3><p>Токсичное отношение модераторов к новичкам годами отпугивало потенциальных участников . Агрессивное закрытие вопросов как «дубликаты», придирки к формулировкам и высокомерный тон комментариев создали репутацию недружелюбной площадки.</p><h3>Поисковики держат трафик у себя</h3><p>Google и другие поисковые системы интегрировали ИИ-ответы прямо в выдачу, пользователям больше не нужно переходить на сторонние ресурсы для решения типовых задач .</p><h2>Парадокс обучающих данных</h2><p>При текущей скорости падения активности (вдвое каждые 2,2 месяца) к 2028 году на Stack Overflow будут задавать примерно один вопрос в день . Это создаёт парадокс: языковые модели, обученные на данных платформы, убивают источник своих же знаний. Откуда будущие версии ИИ получат актуальную информацию о новых технологиях и фреймворках — открытый вопрос.</p><p>Впрочем, существует и альтернативная версия происходящего: <b>возможно, за десятилетия на платформе уже накопились ответы на все базовые и большинство продвинутых вопросов</b>. И любой новый запрос действительно можно закрыть как дубликат. Но даже если это так, отсутствие притока свежих кейсов делает платформу музеем, а не живым сообществом.</p><p>Больше новостей про ИИ, нейросети и их влияние на индустрию — в нашем <a href="https://t.me/neuro_channel">тг-канале Нейроканал</a>. Подписывайтесь, чтобы первыми узнавать о трендах и изменениях рынка.</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft сломала localhost в Windows 11 — миллионы разработчиков не могут локально тестить проекты</title>
      <link>https://tproger.ru/news/microsoft-slomala-localhost-v-windows-11---milliony-razrabotchikov-ne-mogut-lokalno-testit-proekty</link>
      <comments>https://tproger.ru/news/microsoft-slomala-localhost-v-windows-11---milliony-razrabotchikov-ne-mogut-lokalno-testit-proekty?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/microsoft-slomala-localhost-v-windows-11---milliony-razrabotchikov-ne-mogut-lokalno-testit-proekty</guid>
      <description><![CDATA[<p>Обновление Windows 11 KB5066835 сломало localhost: HTTP.sys перестал работать, и миллионы разработчиков не могут тестировать проекты</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/microsoft-slomala-localhost-v-windows-11---milliony-razrabotchikov-ne-mogut-lokalno-testit-proekty">Microsoft сломала localhost в Windows 11 — миллионы разработчиков не могут локально тестить проекты</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Отладка]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Windows 10]]></category>
      <category><![CDATA[Asp.NET]]></category>
      <category><![CDATA[Баги и ошибки]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Windows 11]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 17 Oct 2025 10:31:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Не прошло и двух дней после официального завершения поддержки Windows 10, как пользователи <b>Windows 11</b> <a href="https://www.techpowerup.com/341976/microsoft-breaks-localhost-with-windows-11-october-update-users-forced-to-revert">столкнулись</a> с серьезной ошибкой.</p><p>Последнее октябрьское обновление системы — <b>KB5066835</b> — нарушило работу localhost, что фактически лишило разработчиков возможности тестировать веб-приложения локально.</p><p>Проблему активно обсуждают на <b>Microsoft Support Forums</b>, <b>Stack Overflow</b> и <b>Server Fault</b>: серверы перестали отвечать на запросы, отвалилась отладка в Visual Studio, а ASP.NET-приложения не компилируются.</p><p>По оценкам экспертов, сбой затронул <b>миллионы веб-разработчиков и инженеров</b>, использующих Windows 11 в качестве локальных серверов и рабочих станций.</p><h2>Что пошло не так</h2><p>Пакет <b>KB5066835</b> был задуман как <b>обновление безопасности</b>, улучшавшее сентябрьский релиз <b>KB5065789</b>, но именно он привел к поломке <b>HTTP.sys</b> — системного компонента ядра Windows, отвечающего за маршрутизацию локального HTTP-трафика.</p><p>После установки апдейта, <b>localhost перестал отвечать на запросы</b>, а соединения по HTTP/2 начали обрываться.</p><h2>Как временно исправить</h2><p>Microsoft пока официально не подтвердила проблему, но сообщество уже нашло обходное решение:</p><ol><li>Удалить октябрьское обновление <b>KB5066835</b>.</li><li>Если не помогло — удалить и предыдущее <b>KB5065789</b>.</li><li>После этого localhost начинает работать штатно. Однако это <b>временная мера</b> и пользователи рискуют остаться без последних исправлений безопасности.</li></ol><h2>Неудачи Microsoft продолжаются</h2><p>Это уже <b>второй крупный сбой за неделю</b>. В понедельник компания случайно «сломала» <b>Media Creation Tool</b> — утилиту для установки Windows — всего за день до окончания поддержки Windows 10.</p><p>А на прошлой неделе Microsoft окончательно обязала пользователей <b>входить в Windows 11 только через онлайн-аккаунт</b>, что вызвало волну критики.</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработчики всё чаще используют ИИ, но доверяют ему всё меньше</title>
      <link>https://tproger.ru/news/razrabotchiki-vsyo-chashhe-ispolzuyut-ii--no-doveryayut-emu-vsyo-menwe</link>
      <comments>https://tproger.ru/news/razrabotchiki-vsyo-chashhe-ispolzuyut-ii--no-doveryayut-emu-vsyo-menwe?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/razrabotchiki-vsyo-chashhe-ispolzuyut-ii--no-doveryayut-emu-vsyo-menwe</guid>
      <description><![CDATA[<p>Опрос Stack Overflow 2025 года показал, что 80% разработчиков применяют ИИ в работе, но доверие к нему снизилось до 29%. Основная проблема — скрытые ошибки в коде, генерируемом ИИ, которые усложняют отладку.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/razrabotchiki-vsyo-chashhe-ispolzuyut-ii--no-doveryayut-emu-vsyo-menwe">Разработчики всё чаще используют ИИ, но доверяют ему всё меньше</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 11 Aug 2025 08:11:41 GMT</pubDate>
      <content:encoded><![CDATA[<p>1 августа 2025 года результаты ежегодного <a href="https://stackoverflow.blog/2025/07/29/developers-remain-willing-but-reluctant-to-use-ai-the-2025-developer-survey-results-are-here/">опроса</a> Stack Overflow показали, что 80% профессиональных разработчиков уже используют инструменты искусственного интеллекта в работе — но доверие к ним падает. Лишь 29% опрошенных считают ИИ надёжным, что значительно ниже 40% в прошлых исследованиях.</p><h2>Немного цифр</h2><p>Внедрение инструментов ИИ продолжает расти: 80% разработчиков уже используют их в рабочих процессах.</p><p>Однако это не привело к росту доверия. Более того, доверие к точности ИИ упало с 40% в предыдущие годы до  29% в этом году. Также снизилось положительное отношение к ИИ с 72% до 60% в годовом исчислении.</p><ul><li>За последний год 69% разработчиков потратили время на изучение новых методов кодирования или нового языка программирования; 44% изучили это с помощью инструментов на базе ИИ в сравнении с 37% в 2024 году.</li><li>За последний год 36% разработчиков научились писать код специально для ИИ.</li></ul><p>Популярность инструментов вроде GitHub Copilot или Cursor растёт стремительно: они помогают писать код, подсказывают решения и экономят время. Однако вместе с этим увеличивается число случаев, когда ИИ генерирует код, выглядящий корректно, но содержащий скрытые логические ошибки. По данным опроса, 45% разработчиков сталкивались с такими «почти правильными» фрагментами, на исправление которых уходит много часов. 66% разработчиков отмечают, что тратят больше времени на исправление «почти верного» кода, сгенерированного ИИ. Чем сложнее код, тем чаще разработчики обращаются за помощью к людям, а не к моделям.</p><p>Треть респондентов призналась, что обращалась на Stack Overflow из-за проблем, вызванных кодом, предложенным ИИ. Особенно уязвимы начинающие разработчики, которые склонны бездумно доверять подсказкам. 72% опрошенных отвергают практику «вайб кодинга» — вставки автогенерированного кода без тщательной проверки перед продакшеном.</p><p>Эксперты советуют рассматривать ИИ как «спарринг-партнёра», а не второго пилота, и использовать его для проверки гипотез, поиска ошибок или ускорения изучения новых технологий. При правильном подходе инструменты могут облегчить освоение языков и фреймворков, дополняя традиционную документацию.</p><p>По словам Джоди Бейли, директора по продуктам и технологиям Stack Overflow, сервис переосмысляет свою роль на фоне изменений в поиске знаний разработчиками. Несмотря на падение трафика, она отметила, что ситуация не столь драматична, как может показаться, и призвала к адаптации подходов к оценке успеха в цифровую эпоху.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как 5-минутная привычка спасает разработчиков от выгорания</title>
      <link>https://tproger.ru/articles/kak-5-minutnaya-privychka-spasaet-razrabotchikov-ot-vygoraniya</link>
      <comments>https://tproger.ru/articles/kak-5-minutnaya-privychka-spasaet-razrabotchikov-ot-vygoraniya?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-5-minutnaya-privychka-spasaet-razrabotchikov-ot-vygoraniya</guid>
      <description><![CDATA[<p>Что делать, если хочется бросить программирование? Разбираем, как выгорание подкрадывается к разработчикам, почему одна 5-минутная привычка может вернуть интерес к коду и почему не надо гнаться за продуктивностью, чтобы остаться в профессии.
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-5-minutnaya-privychka-spasaet-razrabotchikov-ot-vygoraniya">Как 5-минутная привычка спасает разработчиков от выгорания</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Статистика]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Пет-проект]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 06 Aug 2025 10:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Выгорание в ИТ — не редкость. Оно подкрадывается незаметно: пет-проекты забрасываются, открывать редактор кода по выходным становится тяжело, даже чтение о новых технологиях вызывает усталость. В какой-то момент программирование, которое когда-то приносило радость, превращается в рутину. Для многих разработчиков это становится точкой, где проще уйти, чем продолжать.</p><p>Но что, если вместо ухода попробовать минимальное действие? Пятиминутная ежедневная привычка может стать спасением, вернув интерес к профессии без радикальных перемен. Поговорим о том, как выгорание захватывает разработчиков, почему бросить кажется легче, чем исправить, и как одна простая практика помогает восстановить связь с программированием.</p><p><i>P.s. Это <a href="https://medium.com/devlink-tips/burned-out-done-ready-to-quit-coding-but-a-5-minute-habit-changed-everything-a9fc77ab1a7b">перевод</a> зарубежной статьи. Предлагаем подискутировать о вопросе в комментариях.</i></p><h2>Как выгорание подкрадывается к разработчикам</h2><p>Через несколько месяцев после того, как вы почувствуете усталость, console.log() начнет казаться непосильной задачей, а баг, который обычно исправлялся за час, ломает изнутри.</p><p>Так выгорание медленно вытесняет любопытство апатией. Разработчик уже не испытывает злости, он просто устает. Становится проще уйти, чем продолжать.</p><p>И статистика это подтверждает: по данным Stack Overflow, 32% разработчиков несчастны на работе, а еще 47% выживают на автомате, не чувствуя вовлеченности. Это значит, что почти 80% специалистов находятся в зоне риска эмоционального выгорания, хотя снаружи всё выглядит стабильно.</p><p>Даже автоматическая генерация кода с помощью ИИ не помогает вернуть интерес: код продолжает работать, но человек — нет. В какой-то момент уход из профессии начинает казаться логичным выходом.</p><p>Но есть и другой путь. Иногда достаточно вернуть в день всего пять минут программирования без давления и ожиданий, чтобы постепенно вернуть ритм и интерес к работе. Маленькая привычка становится якорем, который помогает вспомнить, зачем всё это начиналось, и даёт пространство для восстановления.</p><h2>Пятиминутная привычка, которая меняет всё</h2><p>Чтобы преодолеть выгорание, не нужно переворачивать жизнь с ног на голову. Достаточно одной маленькой привычки — пяти минут в день, посвященных программированию без давления и ожиданий. Это может быть что угодно: написание нескольких строк кода, разбор простого алгоритма или чтение документации. Главное — последовательность.</p><p>Формула успеха звучит так: <b>Минимальные усилия → Последовательность → Идентичность → Восстановление связи</b>. Начав с малого, можно постепенно вернуть уверенность и интерес к профессии.</p><p><b>Как работает эта практика:</b></p><ol><li>Выберите простое действие: например, написать одну функцию или изучить один метод в документации.</li><li>Установите таймер на 5 минут: это снижает порог входа и делает задачу необременительной.</li><li>Делайте это каждый день: даже если результат минимален, регулярность формирует привычку.</li><li>Не ждите вдохновения: действие само по себе создает мотивацию.</li></ol><p>Микро-привычки эффективны, потому что опираются на принцип «атомарных изменений», описанный Джеймсом Клиром в книге «Атомные привычки». Маленькие действия требуют минимальной энергии, но со временем накапливаются, формируя новую идентичность. Для разработчика это означает переход от «я устал от кода» к «я человек, который каждый день делает шаг в программировании».</p><p>Исследования показывают, что регулярные небольшие усилия укрепляют нейронные связи, связанные с выполнением задачи, и снижают сопротивление к действию. Это особенно важно при выгорании, когда даже открытие редактора кода кажется неподъемным.</p><h2>Как вернуться к программированию и не выгореть снова</h2><p>Если хочется вернуться к программированию без риска снова выгореть, помогут простые принципы:</p><p><b>Опустите планку — и опустите её ещё раз. </b>Если на старт уходит больше минуты, задача слишком сложная.</p><p><b>Не отслеживайте результат.</b> Никаких счётчиков строк, коммитов и диаграмм продуктивности. Задача — восстановить доверие к себе, а не нарастить темп.</p><p><b>Избавьтесь от чувства вины</b>. Пропустили день? Не страшно. Один пропуск не должен превращаться в цикл стыда. Выход из выгорания — не марафон продуктивности.</p><p><b>Не ставьте цели слишком рано.</b> Позвольте любопытству проявиться. Работайте над чем-то странным или бесполезным. Там чаще всего и прячется вся соль.</p><p><b>Празднуйте даже маленький прогресс.</b> Открыли редактор — уже успех. Написали одну строку — отлично. Задача не в том, чтобы действовать как машина, а в том, чтобы снова почувствовать себя разработчиком.</p><h3>Инструменты и ресурсы для тех, кто выгорел и не знает, что с этим делать</h3><ul><li>Книги: «Атомные привычки» Джеймса Клира для понимания силы маленьких шагов.</li><li>Курсы: платформы вроде Codecademy или freeCodeCamp для легкого возвращения к основам.</li><li>Сообщества: нишевые Discord-серверы (например, по Python или Rust) или Reddit (r/learnprogramming).</li><li>Трекеры привычек: приложения вроде Habitica для отслеживания прогресса.</li></ul><h2>Вместо итогов</h2><p>Если однажды показалось, что с программированием покончено, и появилось желание уйти, важно помнить: вы не одиноки.</p><p>Многие разработчики знают, каково это — смотреть на редактор и не чувствовать ничего. И знают, сколько смелости требует простой шаг: попробовать снова.</p><p>Если вы уже прошли через это или проходите сейчас, расскажите, что помогло вернуться к работе. Какая привычка или маленькое изменение сыграли решающую роль? Если ответа пока нет — это тоже нормально.</p><p>Иногда именно пять минут дают больше, чем любой лайфхак продуктивности.</p><h2>Бонус от экспертов: как пережить выгорание и вернуться к работе</h2><p>Если вы узнаёте себя в описании из статьи — не переживайте, вы не одиноки. Мы попросили двух экспертов из индустрии поделиться личным опытом: как они справлялись с выгоранием, что для них сработало и какие вопросы помогают себе задать в непростые периоды.</p><p><i>Елизавета Якушева, тестировщик, автор тг-канала</i> <a href="https://t.me/izzalypu">Press F to Debug</a>:</p><blockquote>Для меня выгорание — самая большая и страшная проблема в карьере. Абсолютно всё зависит от неправильно выстроенных ожиданий</blockquote><p>Елизавета выделяет два разных типа выгорания:</p><ol><li>От самой работы — стресс, рутина, груз ответственности.</li><li>От постоянной учёбы и самосовершенствования — давление трендов, ощущение собственной «недостаточности», переизбыток бесполезной информации.</li></ol><p>На её взгляд, большинство советов работают только в рамках «программирования для себя», но они не решают главного — внутренней мотивации.</p><p>Чтобы справиться, она предлагает задать себе простой, но важный вопрос:</p><p>«<i>Зачем я это делаю? Что будет, если я перестану?</i>»</p><blockquote>Мы ходим на работу, чтобы получать деньги. Без этого мы не можем оплатить свои счета за ипотеку или продукты.<br /><br />Стресс от груза ответственности решается простой мыслью:
"Я здесь, чтобы выполнять работу так, как могу. Если я не успеваю что-то сделать вовремя, я умираю, у меня температура под 40, у меня отвалилась нога — вселенная не остановится, если ты возьмёшь тайм-аут в виде отпуска или day-off. Ракета не полетит в космос, и никто глобально не умрёт."</blockquote><p>Для пет-проектов помогает осознанность: понимание, зачем ты вообще этим занимаешься.</p><blockquote>Я веду образовательный ютуб-канал, чтобы люди могли узнать что-то новое и разобраться в сложной теме. Мне важно, чтобы человек нашёл своё комьюнити и мог прийти куда-то за советом. Мысль о глобальной помощи другим вдохновляет меня даже в самые тёмные моменты</blockquote><p><i>Анастасия Егорова, фронтенд-разработчик, автор канала «</i><a href="https://t.me/CosyFrontendNastia">Код и кофе</a><i>»:</i></p><p>Анастасия комментирует технику «5-минутных привычек», описанную в оригинальной статье, и делится, как адаптировала её под свой сложный ритм:</p><blockquote>У меня был период жизни, когда я полтора года работала на двух фуллтайм-работах… Иногда, просыпаясь зимним утром в 6:45, чтобы выйти на удалённый созвон в 7:00, я думала, что больше всего хочу уволиться со второй работы. Но нужно было работать.</blockquote><p>В такие моменты она договаривалась с собой: поработать всего 5 минут, а потом дать себе что-то приятное — сериал, эклер, отдых.</p><blockquote>Где-то на второй–третьей пятиминутке меня затягивало, и 5 минут превращались в полноценный час-два работы без переключения. Несколько таких подходов в течение дня — и к вечеру работа была сделана, а иногда ещё и сварен борщ, и приготовлены котлетки.</blockquote><p>Да, бывают и провальные дни — но даже тогда, по её словам, важно просто не бросить всё совсем.</p><blockquote>Я реально работала 5 минут, а потом 10 минут отдыхала… и к концу дня с помощью этих пятиминуток было сделано не так много. В такие дни я просто от себя отставала, радовалась, что я сделала хотя бы эти пятиминутные задачи, а не прокрастинировала весь день.</blockquote><p>Возможно, этот подход поможет и вам — особенно в моменты, когда ощущение выгорания слишком близко.</p>]]></content:encoded>
    </item>
    <item>
      <title>Опрос Stack Overflow 2025: что там с ИИ и вайб-кодингом, какие настроения у разрабов. Разобрали ключевое</title>
      <link>https://tproger.ru/news/opros-stack-overflow-2025--chto-tam-s-ii-i-vajb-kodingom--kakie-nastroeniya-u-razrabov--razobrali-klyuchevoe</link>
      <comments>https://tproger.ru/news/opros-stack-overflow-2025--chto-tam-s-ii-i-vajb-kodingom--kakie-nastroeniya-u-razrabov--razobrali-klyuchevoe?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/opros-stack-overflow-2025--chto-tam-s-ii-i-vajb-kodingom--kakie-nastroeniya-u-razrabov--razobrali-klyuchevoe</guid>
      <description><![CDATA[<p>Опрос Stack Overflow 2025: 84% девелоперов используют ИИ, но доверяют ему лишь треть. Вайб-кодинг не прижился, а ChatGPT — всё ещё лидер</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/opros-stack-overflow-2025--chto-tam-s-ii-i-vajb-kodingom--kakie-nastroeniya-u-razrabov--razobrali-klyuchevoe">Опрос Stack Overflow 2025: что там с ИИ и вайб-кодингом, какие настроения у разрабов. Разобрали ключевое</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 01 Aug 2025 03:37:48 GMT</pubDate>
      <content:encoded><![CDATA[<p>По <a href="https://survey.stackoverflow.co/2025/">данным</a> ежегодного опроса Stack Overflow, 84% разработчиков по всему миру уже используют или планируют использовать инструменты на базе ИИ. В 2024 году этот показатель был 76%.</p><p>Особенно активно ИИ внедряется в повседневную практику профессиональных разработчиков: 51% признались, что используют такие инструменты каждый день.</p><p>Однако вместе с ростом использования стремительно падает уровень доверия. Только треть опрошенных действительно верит в точность ИИ-решений, а 46% заявляют, что не доверяют результатам генерации — по сравнению с 31% год назад.</p><h2>«Почти правильный» код — головная боль, а не помощь</h2><p>ИИ действительно может ускорять работу — но только если результат точный. 66% разработчиков жалуются, что нейросети предлагают «почти правильный» код, из-за чего они тратят больше времени на отладку, чем если бы писали все сами.</p><p>Почти половина (45%) говорят, что отлаживать ИИ-код сложнее, чем просто начать с нуля.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-08-01/1b9dd373-697b-4b84-be75-b8250e73c3d2.jpeg" alt="" /></figure><h2>ChatGPT лидирует, но агентов пока боятся</h2><p>Наиболее популярным ИИ-инструментом остается ChatGPT от OpenAI — его используют 82% разработчиков. На втором месте — Claude Sonnet от Anthropic, который особенно популярен среди профессионалов.</p><p>Но вот ИИ-агенты, которые умеют выполнять цепочки задач, пока не прижились: 52% респондентов не используют их и не планируют.</p><p>Среди тех, кто попробовал — 70% отмечают рост продуктивности, но только 17% считают, что агенты помогли улучшить командное взаимодействие.</p><h2>Вайб-кодинг? Пока нет</h2><p>Попытки использовать ИИ для генерации целых приложений (вайб-кодинг) пока остаются экспериментом. 77% разработчиков говорят, что такие практики не используются в продакшене.</p><p>Главным источником решений остаются люди: 84% все еще обращаются к Stack Overflow, 67% — к GitHub, а 35% идут на Stack Overflow именно после того, как не смогли разобраться с ИИ-кодом.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-08-01/8f7a6b44-ebec-4f2c-ac38-345d03831344.jpeg" alt="" /></figure><h2>Настроение и зарплаты: немного лучше, но не у всех</h2><p>После падения морального состояния в 2024 году, в этом году 24% разработчиков заявили, что довольны своей работой — против 20% годом ранее.</p><p>Основная причина — рост зарплат. Особенно это чувствуют топ-менеджеры и техдиректора (средняя зарплата $130 000 и выше). А вот архитекторы и продакт-менеджеры получают заметно меньше — от $92 000 до $104 000.</p><h2>Удаленка жива, но доступна не всем</h2><p>Удаленная работа сохраняет позиции, но зависит от страны и компании.</p><p>В США полностью удаленно работают 45% разработчиков. В Германии — всего 21%. Вопрос гибкости остается важным фактором в оценке качества работы.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ против разума: битва за навыки программиста</title>
      <link>https://tproger.ru/articles/kak-ii-ubivaet-mozg-programmista</link>
      <comments>https://tproger.ru/articles/kak-ii-ubivaet-mozg-programmista?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ii-ubivaet-mozg-programmista</guid>
      <description><![CDATA[<p>ИИ — мощный инструмент, но он может сделать своим бездумным ретранслятором. Читайте, как сохранить мастерство, создавать с нуля, разбираться в ошибках и развивать мышление, чтобы побеждать в эпоху искусственного интеллекта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ii-ubivaet-mozg-programmista">ИИ против разума: битва за навыки программиста</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 24 Jul 2025 12:10:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Мы вошли в эру, где автодополнение от искусственного интеллекта в IDE позволяет писать код быстрее, чем когда-либо. Но вместе со скоростью пришла новая проблема: разработчики всё чаще забывают, как устроены базовые конструкции языка, и теряют навык понимать, что происходит в их коде. Рассмотрим, чем же так опасен ИИ и почему разработчик — машина в руках машины.</p><p><i>P.s. Это<a href="https://medium.com/devlink-tips/ai-killed-my-coding-brain-but-im-rebuilding-it-8de7e1618bca"> перевод зарубежной статьи</a> от издания <a href="http://run.it">Run.it</a>.Bare — медиа, в котором публикуются практические советы по DevOps, разработке программного обеспечения и искусственному интеллекту. Предлагаем подискутировать о вопросе в комментариях.</i></p><h2>Почему программисты перестают помнить, как работает цикл</h2><p>Многие замечали: открываешь редактор кода и вдруг не можешь вспомнить, как правильно написать простой цикл for. Кажется, что это мелочь, но за ней скрывается системная проблема.</p><p>Использование инструментов вроде Copilot, Cursor и CodeWhisperer превращает процесс написания кода в автоматическое подтверждение предложенных вариантов. Разработчик видит сработавший автокомплит и просто принимает его, не задумываясь, как и почему работает решение.</p><p>Это не единичный случай. В профессиональных чатах и на Reddit регулярно появляются признания: после перехода на ИИ-инструменты многим стало сложнее писать код самостоятельно и разбираться в логике решений.</p><p>Речь не о том, чтобы отказаться от использования ИИ в разработке. Автодополнение действительно ускоряет работу. Но важно понимать цену: за быструю скорость разработки часто расплачиваются глубиной понимания и способностью к анализу кода.</p><p>Это не безвыходная ситуация. Вернуть навык думать во время программирования можно, если задать себе простой вопрос: действительно ли изучается процесс решения задачи, или просто копируется готовое решение без понимания сути.</p><h2>Как ИИ убивает мышечную память разработчика</h2><p>Раньше программирование было ремеслом: одни и те же циклы, функции и паттерны писались десятки раз, пока не отпечатывались на кончиках пальцев. Разработчик мог набрать бинарный поиск с закрытыми глазами. Теперь всё иначе: пишется промпт, появляется готовый кусок кода, проверяется на бегу — и сразу уходит в прод.</p><h2>Что изменилось?</h2><p>ИИ-инструменты убирают повторение, подставляя готовые решения. Это кажется удобным, но невозможно «прокачаться» в программировании, наблюдая, как код пишут за тебя.</p><p>Возьмём синтаксис. Да, это не самая захватывающая часть программирования, но именно она соединяет логику и работу кода. Можно не заучивать синтаксис специально, пока всё не сломается в самый неудобный момент: например, при отладке.</p><p>Наступает момент, когда автодополнение не срабатывает, и если нет навыка писать руками, работа заканчивается. Это напоминание: память важна, синтаксис важен, а преодоление сложностей формирует навык.</p><p>Когда вся сложность передана ИИ, удивляться отсутствию навыка уже не приходится.</p><h2>Скорость — это не всегда про развитие</h2><p>ИИ действительно помогает ускориться. Пишешь половину названия функции — получаешь сразу готовый блок кода. Работать становится легче, задачи закрываются быстрее, фичи выкатываются за вечер.</p><p>Молодые разработчики сегодня могут почти за секунду собрать и задеплоить фичу. Но если спросить, почему этот код работает, как он устроен внутри и в чём могут быть уязвимости, ответы обычно расплывчатые. «Это Copilot подсказал, я проверил и отправил». Быстро — да. Но за этой скоростью нередко нет опоры.</p><p>Код, который просто работает, выглядит удобным, пока не меняются требования или не растёт нагрузка. Любая строка в проде становится будущей зоной обслуживания и местом для потенциальных багов. А баги в таких местах обходятся дорого: и финансово, и психологически.</p><p>ИИ не думает о долгосрочной архитектуре. Он даёт шаблонное решение, которое подходит большинству. Но то, что подходит большинству, не всегда подходит вашему проекту.</p><p>Быстрая доставка кода важна. Но развитие разработчика и стабильность проекта требуют другого: времени на разбор, осознанности и выстраивания архитектуры, которая выдержит рост.</p><h2>Отладка: момент, когда ИИ отходит в сторону</h2><p>ИИ может помогать писать код, но как только приложение падает в неожиданный момент, вся ответственность возвращается к разработчику. Потому что ИИ не понимает, как работает ваш проект. Он может лишь догадываться.</p><p>Отладка — это момент истины. Здесь проявляется, насколько вы понимаете, как устроена система, и где у неё слабые места. Если вы за последний год просто копировали подсказки ИИ и запускали код без разбора, именно в момент отладки всё это всплывает.</p><p>Представьте ситуацию: приложение падает на граничном кейсе, логи непонятны, ИИ не даёт внятных ответов. В какой-то момент вы столкиваетесь с багом, который не описан в Stack Overflow, и подсказки ИИ кажутся бесполезными. Потому что ИИ не видит ваш проект целиком: он не знает, как менялось состояние за последние 30 вызовов, не замечает редкие гонки в асинхронных вызовах и не понимает контекст ваших архитектурных решений.</p><p>Иногда ИИ дает несуществующие методы, иногда уверенно предлагает ошибочную логику, иногда подтаскивает старые решения с багами из интернета. Всё это выглядит правдоподобно, пока не начинаешь разбираться, почему ночью падает прод.</p><p>ИИ может помочь с отладкой, но он не несёт ответственность за продукт. Понимание архитектуры, системного взаимодействия и слабых мест кода остаётся на стороне разработчика. И если вы не разбирались в коде, который запускали, исправлять баги в нём будет в разы сложнее.</p><p>Нельзя отлаживать то, что никогда не понимал. И невозможно починить то, что сам не написал осознанно.</p><h2>Stack Overflow уходит, а вместе с ним — уходит и понимание</h2><p>Раньше, когда в коде всплывал странный баг или нужно было разобраться с особенностями языка, разработчики шли за ответами на Stack Overflow. Да, там могли ответить резко, указать на ошибку в скобках или заставить читать документацию, но именно это формировало привычку задавать правильные вопросы и искать причины, а не просто готовые решения.</p><p>Вместо одного-единственного правильного ответа вы видели несколько подходов, спорили, тестировали, сравнивали. Этот процесс обучал, даже если разработчик не всегда это осознавал.</p><p>Сегодня многие начинающие прогеры даже не открывают Stack Overflow. Вместо обсуждений и разборов они получают готовый фрагмент кода из ChatGPT или Copilot и сразу вставляют его в проект. ИИ не спрашивает, правильно ли вы формулируете запрос. Он выдаёт ответ, даже ошибочный, но похожий на правду.</p><p>Stack Overflow, при всех его минусах, формировал культуру: чтобы получить хороший ответ, нужно было изучить проблему, корректно задать вопрос, столкнуться с критикой и разобраться, что именно вы сделали не так. Эти обсуждения между опытными разработчиками позволяли видеть логику и контекст за каждым решением.</p><p>С ИИ мы получаем ответы без вопросов, код без обсуждения, фиксы без понимания архитектуры. Это быстрый путь, но он лишает возможности учиться через сообщество, ошибки и разбор чужих подходов.</p><p>И эта потеря обходится нам гораздо дороже, чем кажется.</p><h2>Скорость даёт результат, понимание даёт рост</h2><figure><img src="https://media.tproger.ru/user-uploads/116654/2025-07-23/388dbf06-1aae-4000-ae95-a2064c1c0dfe.png" alt="" /></figure><p>Когда говорят про ИИ в разработке, обычно упоминают скорость. И правда, Copilot, ChatGPT, Cursor позволяют писать фичи за часы, а не дни. На старте это выглядит впечатляюще, особенно если сравнивать с разработчиком, который читает документацию, отлаживает ошибки и пишет без автокомплита.</p><p>Но со временем картина меняется.</p><p>Разработчик, который проходит весь путь руками, строит у себя в голове модель системы: как работают паттерны, как течёт код, где и почему он ломается, как его оптимизировать. Ошибки и баги становятся точками роста: решая одну проблему, такой разработчик учится решать три следующие.</p><p>ИИ даёт скорость здесь и сейчас. Но без понимания эта скорость перестаёт масштабироваться. Разработчик, который только вставляет готовые фрагменты из ИИ, не учится проектировать систему целиком и видеть взаимосвязи, не становится сильнее в сложных, нестандартных ситуациях.</p><p>Использовать ИИ можно и нужно, но если не проходить «медленные» и «нудные» этапы понимания кода, роста не будет. Будет лишь иллюзия скорости, которая не превращается в настоящий скилл.</p><h2>Найди своё сообщество: рост происходит в общении</h2><p>Можно сидеть в одиночку с ChatGPT и VS Code, запускать фичи и чувствовать себя продуктивным. Но настоящий рост происходит не в вакууме.</p><p>Прогресс начинается, когда другие разработчики задают неудобные вопросы, делают ревью, указывают на слабые места и предлагают более надёжные решения. Это тот случай, когда тебе показывают, что можно лучше, а не просто подтверждают твои догадки.</p><p>Сильные программисты не становятся такими благодаря самым хитрым промтам для ИИ. Они растут в общении с другими — в дискуссиях, в ревью чужого кода, в разборе архитектурных решений.</p><p>Где это искать:</p><ul><li>Участие в нишевых Discord-серверах по языкам и стеку, которые тебе интересны (Rust, Elixir, Zig и другие).</li><li>Чтение обсуждений в Reddit, где разбирают особенности дизайна языков и библиотек.</li><li>Обсуждение pull request в open-source, где реальные инженеры спорят о производительности, надёжности и архитектуре.</li><li>Вопросы — и не единичные, а пока не разберёшься, как и почему это работает.</li></ul><p>Discord часто оказывается самым полезным местом: там можно поговорить с разработчиками, которые сильнее тебя, но готовы делиться опытом и помогать.</p><p>Важно не просто «присутствовать» в таких сообществах. Стоит обсуждать свои идеи, помогать новичкам, комментировать чужие решения и делать ревью кода. Обучение через объяснение — один из самых эффективных способов роста.</p><h2>Code review — это про совместное мышление</h2><p>Большинство код-ревью в командах сейчас выглядят так:</p><p>— «Переименуй переменную»;</p><p>— «Пропустил точку с запятой»;</p><p>— «Окей, мержим».</p><p>Так можно быстро влить изменения в main, но упускается главное: код-ревью может быть мощным инструментом роста и обмена опытом в команде.</p><p>Каждое ревью — это возможность взглянуть на решение задачи глазами другого разработчика. Не стоит закрывать эту возможность односложным «норм».</p><p>Что можно добавить в код-ревью, чтобы оно стало инструментом роста:</p><ul><li>Почему выбрано именно это решение?</li><li>Какие альтернативы рассматривались?</li><li>Что сломается, если завтра поменяется X?</li><li>Можно ли решить задачу проще?</li></ul><p>Такие вопросы превращают ревью из формальности в совместное обсуждение архитектуры и выбора подходов. Каждый pull request становится точкой роста не только для автора, но и для всей команды.</p><p>Конечно, на практике часто нет времени на идеальное ревью: горят дедлайны, прилетают новые тикеты, уведомления сыпятся одно за другим. И никто не требует устраивать «архитектурный клуб» на каждый PR.</p><p>Но даже один продуманный вопрос в ревью может заметно повлиять: помочь разработчику задуматься о структуре, выявить потенциальные проблемы, показать, что есть более удобные решения.</p><p>Если ты сам отправляешь код на ревью, не бойся просить о таком фидбэке:</p><p>— «Как думаешь, здесь перебор с абстракциями?»</p><p>— «Есть ли идеи, как упростить эту логику?»</p><p>Код-ревью — это про развитие навыка думать над кодом, видеть архитектуру и обоснованно выбирать решения.</p><p>И если использовать ревью именно так, оно перестаёт быть очередным этапом в пайплайне и становится частью системного роста всей команды.</p><h2>Создание с нуля: почему разработчикам стоит иногда отказываться от готовых решений</h2><figure><img src="https://media.tproger.ru/user-uploads/116654/2025-07-23/237eeb1f-3109-4efa-9dbf-259f2dd9b02a.png" alt="" /></figure><p>Создание чего-то с нуля для разработчика — это как тренировка ног в спортзале: никто не хочет, но без этого не обойтись. Речь не о запуске npx create-next-app или копировании кода из ChatGPT. Мы говорим о настоящем процессе: когда вы, например, только что разобрались, что такое сокет, и пытаетесь построить что-то с этим знанием.</p><p>«ИИ может сгенерировать полноценную систему аутентификации, но попробуйте написать свою хотя бы раз. Почувствуйте всю сложность. Поймите, как это работает», — советуют опытные разработчики.</p><p>Выберите что-то фундаментальное. Например:</p><ul><li>Реализуйте WebSocket с нуля, начиная с TCP.</li><li>Напишите маршрутизатор на чистом JavaScript.</li><li>Разберите файл .env вручную.</li><li>Создайте рендерер, похожий на React, используя только DOM API.</li></ul><p>Будет ли это медленно? Однозначно. Будет ли код неидеальным? Скорее всего. Но знания, которые вы получите, окупятся, как проценты на сберегательном счете: на собеседованиях, при отладке или в спорах об архитектуре.</p><p>«Я переписал систему интеграции с Twitch за два 7-часовых перелета без интернета. И это было круто», — делятся разработчики.</p><p>Создание с нуля дает уверенность, которую не заменит автодополнение кода от Copilot. А современные инструменты помогут пережить этот процесс:</p><ul><li><a href="https://github.com/crossbario/autobahn-testsuite">Autobahn WebSocket Test Suite</a> — для тестирования вашей реализации WebSocket.</li><li><a href="https://boot.dev/">Курс HTTP from TCP на Boot.dev</a> — чтобы разобраться, как работает интернет на уровне битов.</li><li>Zig’s Discord — сообщество, где обсуждение низкоуровневого кода с единомышленниками прокачивает навыки.</li></ul><p>ИИ хорош для создания шаблонов, но иногда стоит отказаться от готовых решений и заложить фундамент самостоятельно. Когда вы понимаете каждую строку кода, ошибки перестают пугать, «черные ящики» становятся прозрачными, а вопросы на собеседовании — лишь возможностью блеснуть.</p><p>Ваш самый неудачный код станет лучшим учителем. Так что создайте что-то, что не работает, и почините это самым сложным путем.</p><h2>ИИ — не враг, а соблазнительная опора: как использовать его с умом</h2><p>ИИ — не злодей, разрушающий карьеры разработчиков. Он просто слишком хорош. Как тот одногруппник, который делает весь проект сам, а потом удивляется, почему остальные ничему не научились.</p><p>ИИ позволяет избегать сложностей, но именно в преодолении трудностей рождается понимание. Как сказал один разработчик: «Мы не обречены из-за использования ИИ. Мы обречены, если полагаемся только на ИИ».</p><p>Вопрос не в том, использовать ли Copilot или ChatGPT — это отличные инструменты. Вопрос в том, как вы их используете.</p><ul><li>Берете первое предложенное решение и идете дальше? Или останавливаетесь и спрашиваете: «Почему так? Есть ли вариант лучше?»</li><li>Позволяете ИИ писать функции и слепо отправляете их в продакшен? Или переписываете код вручную, чтобы разобраться, как он работает?</li></ul><p>Один разработчик использует ИИ как реактивный ранец, ускоряющий работу. Другой — как костыль, заменяющий собственные усилия. Угадайте, кто справится с поддержкой устаревшего кода?</p><p>Так что используйте языковые модели, пусть они иногда «автозаполняют» ваш код. Но подвергайте каждый ответ сомнению, как будто он может быть ошибочным. Потому что иногда так и есть.</p><p>Разработчик, который умеет отличать правильное решение от сомнительного, всегда будет на шаг впереди.</p><h2>Вы — не ретранслятор ИИ: как оставаться настоящим разработчиком</h2><p>Если ваш рабочий процесс сводится к копированию, вставке и отправке кода, поздравляем — вы превратились в посредника. Это не программирование, а курирование автозаполнения. Ваши навыки теперь ограничены качеством ваших запросов к ИИ, и это тревожный сигнал.</p><p>Работа разработчика — не в скорости набора текста, а в умении думать. Моделировать проблемы, разрабатывать решения, понимать компромиссы, устранять хаос, задавать правильные вопросы, объяснять и создавать. ИИ не справится с этим без вас.</p><p>Если вы ограничиваетесь поверхностными решениями, вас легко заменит стажер или новая модель, которая генерирует код на 20% лучше. Но если вы глубоко понимаете системы, шаблоны, архитектуру и компромиссы, вы становитесь тем, к кому обращаются, когда ИИ не справляется.</p><p>Не нужно заучивать алгоритмы или писать красно-черные деревья вручную (разве что вам это нравится). Но важно вернуть мышление разработчика, пока автозаполнение не вытеснило его из вашей головы.</p><p>Создавайте, ломайте, спрашивайте «почему», даже если это раздражает коллег. Используйте ИИ, но не позволяйте ему использовать вас. Ваша задача — не передавать ответы, а создавать понимание. И это то, что ни одна модель не сможет подделать.</p><h2>Настоящий Dev Flex: глубокое понимание в эпоху ИИ</h2><p>В 2025 году ИИ с легкостью решает задачи LeetCode, создает лендинги, рефакторит спагетти-код и генерирует каркасы приложений по одному запросу. Что остается разработчику? Многое.</p><p>Настоящий профессионализм сегодня — это умение:</p><ul><li>Проектировать системы с нуля, опираясь на фундаментальные принципы.</li><li>Отлаживать сбои, с которыми ИИ не справляется.</li><li>Четко объяснять ошибки, их исправления и компромиссы.</li><li>Заметить, что код «выглядит правильно», но на деле ошибочен, и доказать это.</li></ul><p>Когда ИИ буксует, ваша глубина знаний спасает спринт.</p><p>Разработчики, чрезмерно полагающиеся на ИИ, рано или поздно упираются в потолок. Они принимают поверхностные решения, предложенные алгоритмами. А вы? Вы инвестируете в долгосрочные навыки.</p><p>Однажды команда столкнется с нестандартной проблемой, которую ИИ не может объяснить. И тогда вы скажете: «Круто, давайте разберемся». Это и есть настоящая сила разработчика.</p><h2>Как оставаться на шаг впереди</h2><ol><li>Используйте ИИ как инструмент обучения. Не берите первый предложенный ответ. Разберитесь в компромиссах. Попросите решить задачу тремя разными способами. Относитесь к ИИ как к младшему разработчику, которому нельзя доверять на 100%.</li><li>Участвуйте в сообществах, которые заставляют думать. Не просто читайте Discord или форумы. Задавайте вопросы, изучайте код других, получайте критику. Нишевые сообщества полны разработчиков, которые бросят вызов вашим идеям — и это лучший способ расти.</li><li>Создавайте проекты без ИИ. Выделите выходные и попробуйте написать проект без подсказок ИИ. Ищите решения в Google, отлаживайте вручную, как в 2014 году. Да, это медленно, но именно так вы учитесь держать баланс без «дополнительных колес».</li><li>Рецензируйте код с вопросом «Почему?». Даже если код работает, копайте глубже. Какие альтернативы рассматривались? Что может пойти не так? Это тренирует ваше распознавание паттернов и учит понимать чужой ход мысли.</li><li>Пересоздайте что-то с нуля. Возьмите знакомую систему — маршрутизацию, аутентификацию или управление состоянием — и напишите свою мини-версию. Это сложно, но невероятно полезно.</li></ol><p>Эти шаги не дадут мгновенных результатов. Но они сделают вас разработчиком, который решает задачи, недоступные ИИ, и выделят вас среди тех, кто просто ретранслирует автозаполненный код.</p><h2>Не становитесь игрушкой в руках ИИ: как сохранить мастерство разработчика</h2><p>Мы живем в золотой век инструментов для разработчиков. ИИ и современные фреймворки позволяют создавать код быстрее, чем когда-либо. Но есть подвох: чем мощнее инструменты, тем меньше нам нужно разбираться в сути. И это ловушка.</p><p>Цель разработчика — не просто писать самый быстрый код, а создавать правильные, долговечные системы. Устранять хаос и объяснять решения не только компилятору, но и людям.</p><p>Чем больше вы полагаетесь на ИИ, тем выше риск стать «инженером-подсказчиком» — человеком, который лишь перекладывает автозаполненный код. Это не то, ради чего вы выбрали разработку.</p><p>Используйте ИИ. Доводите его до предела. Но не забывайте:</p><ul><li>Задавать вопросы, даже если ответ кажется очевидным.</li><li>Периодически создавать простые вещи с нуля.</li><li>Разбираться в сломанном коде, пока не поймете, почему он не работает.</li></ul><p>Когда вы знаете больше, чем автозаполнение, вы обретаете то, что ИИ не может повторить: суждение, проницательность, мастерство.</p><p>В будущем, когда все станут быстрее, победа будет за разработчиком, который копает глубже.</p>]]></content:encoded>
    </item>
    <item>
      <title>Эволюция программиста 2005–2025: от CRT-мониторов до квантовых алгоритмов</title>
      <link>https://tproger.ru/articles/evolyuciya-programmista-2005-2025--ot-crt-monitorov-do-kvantovyh-algoritmov</link>
      <comments>https://tproger.ru/articles/evolyuciya-programmista-2005-2025--ot-crt-monitorov-do-kvantovyh-algoritmov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/evolyuciya-programmista-2005-2025--ot-crt-monitorov-do-kvantovyh-algoritmov</guid>
      <description><![CDATA[<p>Эпохи развития программирования в России и в мире. Какие стадии прошли разработчики и к чему пришли в настоящий момент. Прогнозы на будущее. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/evolyuciya-programmista-2005-2025--ot-crt-monitorov-do-kvantovyh-algoritmov">Эволюция программиста 2005–2025: от CRT-мониторов до квантовых алгоритмов</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Ruby]]></category>
      <category><![CDATA[MySQL]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[jQuery]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[TypeScript]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[Mozilla]]></category>
      <category><![CDATA[WebAssembly]]></category>
      <category><![CDATA[Образование]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Soft Skills]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Дата-центр]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[Vue]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Fullstack]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 25 Jun 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>За последние 20 лет программирование изменилось до неузнаваемости. Если в 2005 году разработчики писали код на PHP 4.0 под мерцание CRT-экранов, то в 2025-м нейросети помогают им генерировать целые модули, а квантовые компьютеры становятся частью исследовательских проектов.</p><p>Эта статья — подробная хроника эволюции программистов: какие языки и технологии они осваивали, как менялись их рабочие места, методы обучения и даже само восприятие профессии. Мы разберем ключевые этапы, от первых веб-гигантов до эпохи совместного программирования с ИИ, и попробуем представить, что ждет нас дальше.</p><h2>2005-2009: Эпоха авторских решений и первых веб-фреймворков</h2><p>В середине 2000-х типичный рабочий инструмент программиста — это громоздкий системный блок с процессором Intel Pentium 4 или новеньким Core 2 Duo. Мониторы с ЭЛТ-трубкой постепенно уступали место LCD-экранам с разрешением 1024×768 — именно на таких дисплеях создавались первые версии Wikipedia и набирающих популярность соцсетей. Оперативная память в 1-2 ГБ считалась нормой, а жесткие диски на 80-160 ГБ часто заполнялись до отказа — проекты редко весили меньше нескольких гигабайт.</p><p>Серьезная разработка велась преимущественно на стационарных компьютерах. Ноутбуки только начинали входить в обиход — их брали в офис, но для реальной работы предпочитали мощные десктопы. Операционная система Windows XP доминировала на рабочих станциях, в то время как серверы чаще всего крутили на Linux — Red Hat Enterprise или Debian.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-13/d5fca723-5450-4b72-8e8d-4cd57627fb99.jpg" alt="" /></figure><p>Среды разработки того времени сегодня кажутся архаичными. Eclipse и NetBeans потребляли гигабайты памяти, Visual Studio 2005 требовала серьезных ресурсов. Многие разработчики предпочитали простые текстовые редакторы вроде Notepad++, а для отладки использовали примитивные методы вроде вывода значений переменных через print. Контроль версий только начинал входить в практику — Git появился в 2005 году, но большинство команд продолжали использовать SVN или вообще заливали файлы по FTP напрямую на продакшен.</p><p>Языковая экосистема этого периода вращалась вокруг трех основных технологий. PHP версий 4 и 4.3 доминировал в веб-разработке — на нем работало около 80% всех сайтов в интернете. Однако его объектно-ориентированные возможности были крайне ограничены до выхода PHP 5 в 2004 году.</p><p>Java в лице J2EE оставалась стандартом для корпоративных решений — банковских систем, крупных порталов и ERP-комплексов. Spring Framework только начинал набирать популярность, а Hibernate упрощал работу с реляционными базами данных. C++ сохранял свои позиции в разработке игр (особенно с использованием Unreal Engine), драйверов и высоконагруженных сервисов.</p><p>Фронтенд-разработка в те годы была невероятно простой по современным меркам. Верстали преимущественно таблицами, а всю динамику реализовывали через jQuery, который появился в 2006 году и быстро вытеснил нативный JavaScript из повседневной практики. AJAX-запросы казались революционной технологией, позволяющей обновлять части страницы без ее полной перезагрузки.</p><p>Обучение программированию в этот период кардинально отличалось от современных подходов. Онлайн-курсы практически отсутствовали. Основными источниками знаний служили бумажные книги:</p><ul><li>«Философия Java» Брюса Эккеля;</li><li>«Совершенный код» Стива Макконнелла;</li><li>«PHP и MySQL. Разработка веб-приложений» Люка Веллинга.</li></ul><p>Русскоязычное сообщество активно обсуждало вопросы разработки на форумах RSDN.ru и CyberForum.ru. В 2008 году появился Stack Overflow, который постепенно стал главной площадкой для профессиональных обсуждений.</p><p>Университетское образование давало хорошую теоретическую базу — алгоритмы, структуры данных, принципы ООП. Однако практическим навыкам приходилось учиться самостоятельно, методом проб и ошибок. Документацию часто скачивали в формате CHM-файлов или читали непосредственно на сайтах вроде php.net и MSDN.</p><p>Типичный стек начинающего разработчика в 2009 году:</p><ul><li>HTML/CSS с jQuery для фронтенда;</li><li>PHP или Ruby on Rails для бэкенда;</li><li>MySQL в качестве базы данных.</li></ul><p>ORM-технологии еще не получили широкого распространения, поэтому SQL-запросы писали вручную. Многие проекты представляли собой монолитные приложения, где весь код хранился в единой кодовой базе без четкого разделения на модули.</p><p><b>Показательный кейс</b>:</p><p>В 2007 году разработчик PHP-приложений из МЭСИ (Москва) столкнулся с типичной для того времени проблемой — SQL-инъекциями. Вместо стандартных решений он создал DLAC (Data Logic Access Component) — обертку для работы с базой данных, которая автоматически экранировала параметры запросов. Это выглядело революционно на фоне типичного кода того периода, где строки запросов часто собирали через конкатенацию с пользовательским вводом.</p><p>Компонент использовал новую для 2005 года технологию Generics в C#. Он генерировал параметризованные запросы, что резко снижало риски взлома.</p><p><i>Разработчики в университетской среде тогда редко задумывались о безопасности — многие проекты содержали уязвимости вроде  </i>SELECT * FROM users WHERE name = ‘.$_POST[‘name’]<i>. </i></p><p><i>DLAC стал локальным спасением для внутренних систем МЭСИ, пока в 2009 году не появился NHibernate — порт популярного Java-фреймворка Hibernate.</i></p><p>Этот кейс хорошо иллюстрирует дух эпохи: отсутствие готовых безопасных решений заставляло программистов изобретать велосипеды. Многие подобные наработки позже легли в основу ORM-библиотек, но тогда они рождались в муках — через пробелы в безопасности и километры самописного кода.</p><h2>2010-2014: Мобильная революция и рассвет JavaScript</h2><p>Начало нового десятилетия ознаменовалось стремительным ростом мобильных технологий. Выход iPhone 4 в 2010 году и Android 2.3 Gingerbread задал новые стандарты мобильной разработки.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-13/7b640694-b2cd-4f03-a68f-51ed138557b2.jpg" alt="" /></figure><p>Программисты массово переходили на MacBook Pro — не столько из-за преимуществ macOS, сколько благодаря появлению Retina-дисплеев в 2012 году, которые кардинально улучшили качество отображения кода.</p><p>Железо продолжало стремительно эволюционировать. Твердотельные накопители (SSD) начали вытеснять традиционные жесткие диски в рабочих станциях. Облачные платформы вроде AWS и Heroku стали реальной альтернативой локальным серверам, которые раньше часто стояли прямо под рабочими столами в офисах. Оперативная память в 8 ГБ стала стандартом для комфортной разработки, а четырехъядерные процессоры ускорили сборку крупных проектов.</p><p>Языковая палитра этого периода значительно расширилась. Objective-C стал основным языком для iOS-разработки и оставался таковым до появления Swift в 2014 году. Python 3 начал набирать популярность благодаря веб-фреймворку Django и научным библиотекам NumPy и Pandas, которые открыли дорогу для анализа данных в массовом сегменте.</p><p>JavaScript пережил настоящий ренессанс — после выхода AngularJS в 2010 и Node.js в 2009 году он перестал быть просто «языком для анимаций на сайте», превратившись в полноценную платформу для fullstack-разработки.</p><p><b>Важный факт</b>. В 2011 году разработчик из Сан-Франциско Райан Даль представил Node.js — среду выполнения JavaScript на стороне сервера. За первые 24 часа после релиза проект собрал 10 000 звезд на GitHub, что для того времени стало рекордом. Многие скептически относились к идее использовать JavaScript вне браузера, но уже через год такие компании как LinkedIn и Walmart перевели части своего бэкенда на Node.js, получив прирост производительности в 2-3 раза по сравнению с традиционными решениями на Java и Ruby.</p><p>Образовательная сфера претерпела значительные изменения. В 2011 году запустилась Coursera с первым массовым курсом по программированию — Machine Learning от Эндрю Ына. В 2012 году в Кремниевой долине открылся Hack Reactor, ставший прототипом современных coding bootcamps (интенсивов по программированию). Эти форматы предложили альтернативу традиционному университетскому образованию, сделав акцент на практических навыках.</p><p>Параллельно в России:</p><ul><li>В 2012 году появился Hexlet — одна из первых русскоязычных платформ с практико-ориентированными курсами по программированию. Особенность: выполнение заданий в реальной среде разработки через браузер. Платформа до сих пор работает: на текущий момент 80% выпускников трудоустраиваются в IT, <a href="https://ru.hexlet.io/blog/posts/hse-research">согласно исследованию ВШЭ</a>. В 2012 этот показатель был еще выше.</li><li>«Нетология» (основана в 2011) к 2013 году запустила курсы по веб-разработке с акцентом на JavaScript и Python, сотрудничая с российскими tech-компаниями. Их модель включала менторство и проектные работы.</li><li>В 2013 году стартовал Stepik — платформа с открытыми курсами от ведущих вузов (ИТМО, МФТИ). Особенность: интерактивные задачи с автоматической проверкой кода, что было прорывом для местного рынка.</li></ul><p>Курс «Введение в Linux» от Stepik (2014) за полгода собрал 50 тыс. студентов — рекорд для Рунета. Задания включали настройку виртуальных серверов, что сразу применялось в работе.</p><p>Эти проекты заложили основу для бума EdTech в России после 2015 года, доказав, что онлайн-формат может давать актуальные навыки быстрее вузов.</p><p>Типичный разработчик среднего уровня в 2014 году:</p><ul><li>понимал принципы REST API;</li><li>начинал осваивать основы DevOps с появлением Docker в 2013;</li><li>экспериментировал с микроконтроллерами вроде Arduino или Raspberry Pi, создавая собственные IoT-устройства.</li></ul><p>В профессиональной среде начал формироваться консенсус о том, что PHP устаревает для сложных коммерческих проектов.</p><h2>2015-2019: Эра больших данных и облачных технологий</h2><p>Аппаратные возможности сделали очередной рывок вперед. Многоядерные процессоры Intel i7 и AMD Ryzen стали стандартом для рабочих станций. 16 ГБ оперативной памяти перестали быть роскошью, а мониторы с разрешением 4К стали доступны широкому кругу разработчиков. В 2015 году появился Visual Studio Code, который быстро обогнал по популярности Sublime Text и Atom благодаря удачному сочетанию функциональности и производительности.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-13/c92b70be-b3eb-4924-a40a-587ed3d43592.png" alt="" /></figure><p>Языковая экосистема продолжила развитие. TypeScript, представленный в 2014 году, предложил решение проблемы масштабируемости JavaScript-кода в крупных проектах. Go от Google, созданный еще в 2009, нашел свою нишу в разработке микросервисов и инструментов оркестрации вроде Kubernetes (2015). Rust от Mozilla начал завоевывать доверие системных программистов благодаря уникальной системе владения памятью.</p><p>JavaScript-сообщество столкнулось с первыми серьезными проблемами. В 2016 году инцидент с пакетом left-pad показал уязвимость экосистемы npm — удаление одного небольшого модуля привело к сбоям в работе тысяч проектов по всему миру. Это заставило разработчиков задуматься о зависимости от сторонних библиотек.</p><p>Типичный senior-разработчик в 2019:</p><ul><li>разбирался в микросервисной архитектуре и понимал, как избежать vendor lock-in (привязки к поставщику) при работе с облачными провайдерами;</li><li>имел опыт работы с React или <a href="http://vue.js">Vue.js</a>;</li><li>знал, что понимание принципов работы алгоритмов становится менее важным, чем развитие soft skills для работы в команде.</li></ul><p>Ключевые технологии этого периода включали Kubernetes, который стал стандартом де-факто для оркестрации контейнеров, а также TensorFlow (2015) и PyTorch (2016), открывшие эру машинного обучения для широкого круга разработчиков. Появились первые серьезные инструменты для работы с большими данными — Apache Spark, Hadoop.</p><p><i>Ключевой момент. В 2016 году Netflix раскрыл детали своего перехода на облачную инфраструктуру AWS. Компания полностью перенесла все сервисы — от рекомендательной системы до биллинга — в облако за семь лет. Главным триггером стала катастрофа 2008 года, когда три дня простоя дата-центра оставили 8,4 млн подписчиков без доступа к сервису. Миграция потребовала перепроектирования архитектуры: инженеры разбили монолит на 500 микросервисов и внедрили Chaos Monkey — инструмент для тестирования отказоустойчивости, который случайно отключал серверы в продакшене.</i></p><p>Этот кейс стал хрестоматийным примером cloud-native подхода. Облачные технологии стали активно использоваться в разработке, а обращение с ними — обязательным навыком для прогеров.</p><h2>2020-2024: AI-assisted разработка и новые парадигмы</h2><p>Пандемия COVID-19 ускорила переход на удаленную работу. Программисты по достоинству оценили макбуки на чипах M1 (2020) за их энергоэффективность и производительность. Домашние офисы оснащались 32-дюймовыми 4К-мониторами и механическими клавиатурами, ставшими своеобразным профессиональным стандартом.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-13/65ba41e0-844c-419f-8656-e78905e93540.jpg" alt="" /></figure><p>Языковая палитра продолжала обогащаться. Rust официально вошел в ядро Linux в 2022 году, подтвердив свой статус системного языка нового поколения. Zig появился как современная альтернатива «C» с акцентом на безопасность. WebAssembly (Wasm) позволил запускать ресурсоемкие приложения прямо в браузере, открыв новые возможности для веб-разработки.</p><p>Искусственный интеллект начал проникать в повседневную работу программистов. GitHub Copilot на базе GPT-3, представленный в 2021, изменил сам процесс написания кода, предлагая контекстные подсказки. Low-code платформы вроде Retool упростили создание внутренних инструментов для бизнеса.</p><p>Типичный lead-разработчик в 2024 году:</p><ul><li>умел эффективно работать в гибридных командах (офис + удаленка);</li><li>автоматизировал рутинные задачи через ChatGPT API;</li><li>следил за развитием квантовых вычислений, хотя практическое применение пока оставалось ограниченным.</li></ul><p><i>Ключевой момент. В 2023 году GitHub Copilot, разработанный совместно с OpenAI, стал катализатором перемен в индустрии. За первый год после релиза инструмент использовали более 1,3 млн разработчиков — каждый десятый подписчик GitHub. Система анализировала контекст кода и предлагала целые функции: например, при написании SQL-запроса она автоматически генерировала соответствующую модель данных на Python. Amazon внедрил аналогичный инструмент Amazon Q Developer для внутренних команд — по заявлению CEO Энди Джесси, это сэкономило компании 4,500 человеко-лет работы и $260 млн ежегодно.</i></p><p><i>Но были и курьезы. В 2024 году разработчик из Берлина случайно отправил в продакшен код, полностью сгенерированный Copilot. Система использовала фрагмент из GPL-лицензированной библиотеки, что нарушило политику компании по открытому ПО. Инцидент заставил пересмотреть процессы ревью: теперь 78% команд требуют ручной проверки AI-кода перед мержем (слиянием).</i></p><p><i>Параллельно выяснилось, что Copilot в 40% случаев предлагает уязвимый код при работе с СУБД — это привело к взлому API стартапа через SQL-инъекцию. Такие кейсы показали, что ИИ пока не заменяет программистов, а требует от них новых навыков — критического анализа машинных предложений и понимания юридических аспектов кода.</i></p><h2>2025: Современное состояние профессии</h2><p>Современные рабочие станции программистов оснащены ноутбуками с процессорами Apple M4 (3 нм) или Windows-машинами на Snapdragon X Elite. Мониторы с разрешением 8К используются для разработки AR-приложений, а OLED-экраны с HDR стали стандартом для работы с графикой. Появляются первые экспериментальные IDE с нейроинтерфейсами, способные предсказывать код на основе анализа мозговой активности.</p><p>Среди языков программирования выделяется Mojo (2023) — «Python для GPU», набирающий популярность в сфере машинного обучения. Carbon как потенциальный наследник C++ пока остается в тени Rust. Квантовые языки вроде Q# и Cirq интересуют в основном энтузиастов и исследователей.</p><p>Профессия претерпела значительные изменения. ИИ стал не конкурентом, а помощником — по некоторым оценкам, около 60% рутинного кода в 2025 году (тесты, документация) генерируется автоматически. Знание английского языка стало важнее знания сложных алгоритмов — без него невозможно эффективно работать с современными AI-инструментами. Понятие «fullstack-разработчик» трансформировалось — теперь оно подразумевает владение фронтендом, одним бэкенд-языком и основами машинного обучения.</p><p>За два десятилетия программисты прошли путь от одиночек за CRT-мониторами до участников глобальных распределенных команд. Если в 2005 ключевым навыком было умение написать работающий код, то в 2025 главное — способность эффективно взаимодействовать с ИИ-ассистентами. Однако основы профессии остались неизменными — логическое мышление, способность к абстракции и желание автоматизировать рутинные задачи.</p><p>Будущее обещает новые трансформации. К 2030 году нейроинтерфейсы смогут заменить традиционные устройства ввода, а квантовые компьютеры — перевернуть основы криптографии. Но пока актуальными остаются проверенные временем принципы: изучать перспективные технологии (вроде Rust и Mojo), осваивать работу с ИИ и, конечно, совершенствовать главный навык любого программиста — умение быстро и грамотно гуглить.</p><p>Ты уже программист, если читаешь это! Больше о кодинге <a href="https://t.me/+ezugB7gnIEsxNGMy">тут</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>ChatGPT убил Stack Overflow — в мае появилось менее 15 000 вопросов, впервые за 15 лет</title>
      <link>https://tproger.ru/news/--chatgpt-ubil-stack-overflow---v-mae-poyavilos-menee-15-000-voprosov--vpervye-za-15-let</link>
      <comments>https://tproger.ru/news/--chatgpt-ubil-stack-overflow---v-mae-poyavilos-menee-15-000-voprosov--vpervye-za-15-let?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--chatgpt-ubil-stack-overflow---v-mae-poyavilos-menee-15-000-voprosov--vpervye-za-15-let</guid>
      <description><![CDATA[<p>В мае на Stack Overflow задали менее 15 000 вопросов — минимум за 15 лет. ChatGPT заменил сообщество и стал новой точкой входа для разработчиков</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--chatgpt-ubil-stack-overflow---v-mae-poyavilos-menee-15-000-voprosov--vpervye-za-15-let">ChatGPT убил Stack Overflow — в мае появилось менее 15 000 вопросов, впервые за 15 лет</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 27 May 2025 05:11:40 GMT</pubDate>
      <content:encoded><![CDATA[<p>Stack Overflow <a href="https://newsletter.pragmaticengineer.com/p/the-pulse-134">переживает</a> стремительное падение. По данным Stack Overflow Data Explorer, в мае 2025 года пользователи задали около 15 000 вопросов — уровень, с которым сайт сталкивался разве что в первые месяцы после запуска.</p><p>Для сравнения: в сентябре 2009 года было 17 668 вопросов, а за первую половину мая этого года — всего 6667.</p><p>Это падение стало продолжением многолетнего тренда. Количество новых вопросов на платформе снижается с 2014 года, но особенно резкий обвал начался после появления ChatGPT в ноябре 2022 года.</p><p>С тех пор темпы снижения ускорились, и теперь активность на сайте достигла самого низкого уровня за 15 лет.</p><h2>Как Stack Overflow начал умирать</h2><p>Если оглядываться назад, то у популярности платформы было несколько ключевых моментов:</p><ul><li><b>2014</b>: усиление модерации и массовое закрытие «низкокачественных» вопросов оттолкнули многих пользователей;</li><li><b>2020</b>: пандемия вызвала кратковременный всплеск интереса — разработчики чаще искали ответы онлайн;</li><li><b>2021</b>: сайт продали за $1,8 млрд фонду Prosus — на пике, задолго до начала падения;</li><li><b>2022</b>: релиз ChatGPT стал точкой невозврата. ИИ оказался не только быстрее, но и вежливее: он не закрывает вопросы и не указывает на «дубликаты», как это делали модераторы на Stack Overflow.</li></ul><p>С того момента популярность сайта начала стремительно падать. По сути, ChatGPT стал альтернативой Stack Overflow, обученной, в том числе, на его же данных.</p><h2>Что будет дальше</h2><p>На фоне новых реалий, Stack Overflow пробует переосмыслить себя. Компания объявила о ребрендинге и диверсификации: теперь она хочет не только отвечать на вопросы, но и строить экосистему вокруг карьеры и сообщества.</p><p>Но многие пользователи настроены скептически: разработчики не нуждаются в новом логотипе, им просто нужен живой и открытый форум для обмена знаниями.</p><p>Некоторые наблюдатели уже всерьез обсуждают вопрос не если, а когда сайт прекратит работу. Или будет продан за бесценок.</p><h2>Кто заменит Stack Overflow</h2><p>Несмотря на упадок платформы, потребность в обмене знаниями никуда не делась. Просто теперь разработчики уходят в другие форматы: чаты в Discord, Telegram, Slack и другие площадки, где атмосфера менее формализованная и более дружелюбная.</p><p>Тем не менее, исчезновение Stack Overflow — это символ конца целой эпохи. В начале 2010-х платформа действительно помогла тысячам разработчиков «стартовать», а система репутации превращала помощь другим в азартную игру. Сегодня все чаще за ответом идут не к сообществу, а к нейросети.</p>]]></content:encoded>
    </item>
    <item>
      <title>Rust исполнилось 10 лет: как язык из личного проекта стал мировым стандартом</title>
      <link>https://tproger.ru/news/--rust-ispolnilos-10-let--kak-yazyk-iz-lichnogo-proekta-stal-mirovym-standartom</link>
      <comments>https://tproger.ru/news/--rust-ispolnilos-10-let--kak-yazyk-iz-lichnogo-proekta-stal-mirovym-standartom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--rust-ispolnilos-10-let--kak-yazyk-iz-lichnogo-proekta-stal-mirovym-standartom</guid>
      <description><![CDATA[<p>Rust исполнилось 10 лет — язык безопасности и надежности стал мировым стандартом для системного программирования и инфраструктуры</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--rust-ispolnilos-10-let--kak-yazyk-iz-lichnogo-proekta-stal-mirovym-standartom">Rust исполнилось 10 лет: как язык из личного проекта стал мировым стандартом</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Amazon]]></category>
      <category><![CDATA[Firefox]]></category>
      <category><![CDATA[Mozilla]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 21 May 2025 08:18:31 GMT</pubDate>
      <content:encoded><![CDATA[<p>В 2006 году инженер Mozilla Грейдон Хоар устал подниматься по 21 этажу — лифт в его доме постоянно ломался. Он подозревал: дело в ошибках управления, написанного на C или C++.</p><p>Тогда Хоар задался вопросом: почему программисты до сих пор не создали язык, на котором нельзя случайно сломать даже лифт? Так родился <a href="https://www.zdnet.com/article/rust-turns-10-how-a-broken-elevator-changed-software-forever/">Rust</a> — язык с прицелом на безопасность и надежность. Имя он получил в честь жестких выживающих грибов: «переинженеренных, чтобы не умереть».</p><h2>В чем сила Rust</h2><p>Rust избавляет от целого класса типичных ошибок, вроде утечек памяти, нулевых указателей и гонок данных.</p><p>Все благодаря уникальной системе владения: переменная всегда имеет одного владельца, а память очищается автоматически. Это позволяет писать безопасный и параллельный код — без рисков на ровном месте.</p><p>В 2009 году Mozilla увидела в Rust перспективу и стала его спонсировать. В 2010 — проект впервые представили публике. А 15 мая 2015 года вышла стабильная версия Rust 1.0.</p><h2>За 10 лет — из нишевого языка в глобальный инструмент</h2><p>Сегодня Rust — это не просто язык, а инфраструктурный стандарт. Его используют в браузерах, ядрах ОС, облачных сервисах, криптографии, базах данных, системах телеметрии и кодеках.</p><p>Его официальный пакетный менеджер crates.io вырос с 2000 пакетов до более чем 180 000. Библиотека стандартных функций утроилась. А каждый релиз проверяется на 600 000 публичных проектах.</p><p>Rust развивается быстро, но без сбоев: релизы выходят каждые 6 недель, без разрушения обратной совместимости. Уже внесено 246 000 изменений от 6700 контрибьюторов.</p><h2>Язык, который создает инфраструктуру</h2><p>Rust не пытается быть всем сразу. Это не замена Python или JavaScript. Rust — язык «труб и фитингов»: он нужен для создания тех самых фундаментальных систем, на которых работает все остальное.</p><p>Именно поэтому он стал любимцем среди системных разработчиков. В опросе Stack Overflow язык восьмой год подряд занимает первое место по симпатии: более 80% пользователей хотят продолжать с ним работать.</p><h2>От Firefox до ядра Linux</h2><p>Сегодня Rust применяют Google, Microsoft и Amazon. Mozilla внедрила его в Firefox, Google — в Android и ChromeOS, Microsoft — в ядро Windows и облачные сервисы Azure.</p><p>Rust даже начал проникать в ядро Linux. Линус Торвальдс признал, что разработчикам непросто учиться новому языку, особенно с таким отличием от привычного C. Но сам он Rust в ядре активно поддерживает.</p><h2>Учиться сложно, но оно того стоит</h2><p>Rust не назовешь простым для новичков — особенно из-за системы заимствований и проверки времени жизни переменных. Но качественная документация делает путь легче.</p><p>Среди лучших источников — The Rust Programming Language (в народе просто «The Book»), Rust for Rustaceans и бесплатные онлайн-курсы Rust by Example и Comprehensive Rust от Google.</p><h2>Главное — не язык, а сообщество</h2><p>По словам самого Хоара, Rust — это не только о коде. Это история о большом сообществе, которое объединилось ради создания надежной технической основы для будущего. Он называет Rust «языком для создания инфраструктуры» — и в этом его миссия.</p><p>В мире, где все зависит от качественного, безопасного и масштабируемого софта, Rust за первые 10 лет доказал: системное программирование может быть и мощным, и приятным.</p>]]></content:encoded>
    </item>
    <item>
      <title>Трафик Stack Overflow рухнул на 90% с 2020 года — сервис ждет ребрендинг</title>
      <link>https://tproger.ru/news/trafik-stack-overflow-ruhnul-na-90--s-2020-goda---servis-zhdet-rebrending</link>
      <comments>https://tproger.ru/news/trafik-stack-overflow-ruhnul-na-90--s-2020-goda---servis-zhdet-rebrending?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/trafik-stack-overflow-ruhnul-na-90--s-2020-goda---servis-zhdet-rebrending</guid>
      <description><![CDATA[<p>Трафик Stack Overflow рухнул на 90% с 2020 года — платформа готовится к ребрендингу и расширению миссии, чтобы вернуть разработчиков</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/trafik-stack-overflow-ruhnul-na-90--s-2020-goda---servis-zhdet-rebrending">Трафик Stack Overflow рухнул на 90% с 2020 года — сервис ждет ребрендинг</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 14 May 2025 12:06:24 GMT</pubDate>
      <content:encoded><![CDATA[<p>Stack Overflow, когда-то крупнейшая платформа для вопросов и ответов для разработчиков, <a href="https://devclass.com/2025/05/13/stack-overflow-seeks-rebrand-as-traffic-continues-to-plummet-which-is-bad-news-for-developers/">теряет</a> популярность с рекордной скоростью.</p><p>Больше новостей — в нашем тг-канале «<a href="https://t.me/your_tech">Представляешь»</a></p><p>Согласно данным из официального Data Explorer, количество постов на сайте в апреле 2025 года сократилось более чем на 64% по сравнению с тем же месяцем 2024 года и упало более чем на 90% по сравнению с пиком активности в 2020 году.</p><p>Основной причиной называют взрывной рост ИИ-инструментов вроде ChatGPT и других языковых моделей, которые стали альтернативой для быстрого поиска технической информации.</p><p>Многие разработчики теперь предпочитают использовать ИИ для решения задач, избегая классических Q&amp;A-платформ.</p><h2>Почему Stack Overflow планирует ребрендинг</h2><p>На фоне падения трафика, компания Stack Exchange, владеющая Stack Overflow, объявила о планах по ребрендингу.</p><p>Руководители компании — SVP по сообществу Филип Бодетт и SVP по маркетингу Эрик Мартин — отмечают, что текущий бренд стал причиной «ежедневной путаницы, неэффективности и непоследовательности». По их словам, фокус на разработчиках иногда отталкивает более широкое сообщество пользователей.</p><p>Кроме того, CEO Stack Overflow Прашант Чандрасекар сообщил, что компания хочет расширить свою миссию с одного основного направления (Q&amp;A) до трех, добавив «сообщества» и «карьерные возможности» в свою бизнес-модель.</p><p>Уже сейчас платформа тестирует новые инструменты, включая AI Answer Assistant, Question Assistant, расширенные интеграции с GitHub Copilot, Slack и Visual Studio Code, а также обновленный сайт для поиска работы, созданный в партнерстве с Indeed.</p><h2>Что этот шаг значит для сообщества</h2><p>Переход к новой бизнес-модели означает, что Stack Overflow может меньше полагаться на традиционные формы контента, такие как текстовые вопросы и ответы. Однако для многих разработчиков именно эти разделы были основой сообщества.</p><p>Некоторые пользователи уже выражают недовольство такими изменениями, опасаясь, что фокус на карьерах и комьюнити ослабит основное преимущество платформы — точные и профессионально проверенные ответы на сложные технические вопросы.</p><h2>Что дальше</h2><p>Несмотря на падение трафика, бизнес Stack Overflow остается относительно стабильным. Платформа, принадлежащая инвестиционной компании Prosus, все еще получает доход от корпоративных версий сайта (Stack Overflow for Teams), рекламы и сервисов для рекрутинга.</p><p>По данным финансового отчета Prosus, выручка компании выросла, а убытки сократились в первой половине 2024 года.</p><p>Тем не менее, сокращение разработческого трафика ставит под вопрос долгосрочную жизнеспособность Stack Overflow. Платформа, которая когда-то была основной базой знаний для программистов, теперь сталкивается с серьезным вызовом: как оставаться полезной в эпоху, когда ИИ способен давать ответы быстрее и удобнее.</p>]]></content:encoded>
    </item>
    <item>
      <title>Генеративные модели: как нейросети создают изображения, музыку и код</title>
      <link>https://tproger.ru/articles/generativnye-modeli--kak-nejroseti-sozdayut-izobrazheniya--muzyku-i-kod</link>
      <comments>https://tproger.ru/articles/generativnye-modeli--kak-nejroseti-sozdayut-izobrazheniya--muzyku-i-kod?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/generativnye-modeli--kak-nejroseti-sozdayut-izobrazheniya--muzyku-i-kod</guid>
      <description><![CDATA[<p>Что такое генеративные модели. Показываем, как нейросети создают изображения, музыку и код. Рассматриваем основные нюансы ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/generativnye-modeli--kak-nejroseti-sozdayut-izobrazheniya--muzyku-i-kod">Генеративные модели: как нейросети создают изображения, музыку и код</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Музыка]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Промпты]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 10 Apr 2025 14:19:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Модели генеративного искусственного интеллекта предназначены для создания оригинального контента — картинок, анимации, музыки, текста. Такие нейросети работают на основе машинного обучения. Примеры сценариев использования в теории не ограничены — ИИ может сгенерировать реалистичные образы людей, животных, написать рассказ в стиле Набокова или Лю Цысиня, сочинить токкату или «снять» видеоклип на песню вашего авторства.</p><p>Узнаем, какие типы генеративных моделей бывают, чем они отличаются и как работают, как обучаются нейросети, создающие изображения, музыку и программный код.</p><h2>Основные типы генеративных моделей</h2><p>Генеративный ИИ — это технология, которая работает на основе глубокого машинного обучения многослойных нейронных сетей. Такие модели AI анализируют большие объемы информации и создают новые цифровые продукты, которые непросто отличить от созданных человеком.</p><p>Генеративные модели проходят машинное обучение. Они настроены реализуют почти любые запросы, сформулированные человеком. Картинки, текст, музыка, новый дизайн — все это продуцируется за считанные секунды. Главное, правильно сформулировать техническое задание. Если автор хочет изображение единорога, играющего на гитаре, он его получит.  Если нужна мелодия в стиле «Metallica для медитации», сеть решит и эту задачу. Модель даже напишет код или целое приложение — <a href="https://tproger.ru/articles/prodvinutyj-promting-v-chatgpt--20-luchwih-zaprosov-k-nejroseti-dlya-programmista">здесь</a> мы собрали крутые промпты с примерами.</p><p>Реалистичность и адекватность таких продуктов во многом зависят от качества обучения, но в идеале контент, созданный ИИ, может использоваться для решения самого широкого круга задач — от разработки прототипов и извлечения ключевых паттернов из научных статей до рисования котиков.</p><p>Модели генеративного типа уже применяются в научной отрасли, индустрии моды, маркетинге, сфере цифровых продуктов и услуг. Generative AI уже внедрен в ряд приложений в качестве виртуального помощника, используется в бизнесе и образовании, упрощая рабочие процессы и снижая затраты компаний.</p><p>Пример такого внедрения — AI Claude в Blender.</p><p>В отличие от стандартных ИИ, которые работают по заданным программам и алгоритмам, генеративные модели не нуждаются в явном программировании. Такие системы способны самостоятельно адаптироваться к потоку новых данных, анализировать их и делать выводы.</p><p>Более того, генеративный ИИ способен создавать синтетические данные, на которых обучаются другие нейросети — это особенно актуально в ситуациях, когда сбор информации затруднен или требует больших затрат.</p><p>Однако не стоит думать, что такой ИИ мыслит, как человек. Ему доступно только машинное обучение и интерпретация данных. С технической точки зрения Generative AI — это особый класс вычислительных методов, ориентированных на производство новых данных, похожих на реальные образцы. Можно провести параллель с творческой работой человека, но в отличие от людей модели оперируют заданными алгоритмами и обучаются на огромных информационных массивах. Создать что-то из ничего эти инструменты не в состоянии.</p><p>Типы генеративных моделей различаются по своим технологическим начинкам. Рассмотрим наиболее востребованные варианты.</p><h2>Генеративно-состязательные сети</h2><p>Generative Adversarial Networks (GAN) относятся к наиболее востребованному и эффективному классу моделей ИИ. Их создатель Иэн Гудфеллоу изначально разрабатывал программу для создания реалистичных изображений и после многочисленных неудачных попыток понял, что эту задачу сможет решить только нейросеть. Затем ему в голову пришла еще одна гениальная мысль — нейросетей должно быть две. Одна генерирует картинки, вторая их оценивает — если результат неудовлетворительный, изображение уходит на доработку.</p><p>Таким образом, генератор и дискриминатор постоянно состязаются, обучают друг друга. Задача генератора — «обмануть» дискриминатор, который в свою очередь учится лучше различать реалистичные изображения и подделки под них. Такая динамика создает эффективную обратную связь и обеспечивает генерацию данных высокого качества.</p><p>Интересный факт. Нейросеть Иэн Гудфеллоу создала полотно, названное «Портрет Эдмонда Белами». Это произведение было продано на аукционе Christie’s почти за полмиллиона долларов.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-02/1e2bba9a-92a5-4fc8-9777-2b0866a48bea.png" alt="" /></figure><p>Принцип работы GAN можно сравнить с отношениями художника и строго критика. Художник (генератор) рисует картинку, критик (дискриминатор) говорит: «Это фейк!».</p><p>Творец старается лучше, критик снова недоволен. И так до тех пор, пока генератор не начнет создавать изображения, которые дискриминатор не отличит от настоящих.</p><p>Еще одна удачная аналогия — фальшивомонетчик и полицейский-криминалист. Первый делает фальшивые купюры, второй сравнивает их с настоящими. Стороны состязаются друг с другом до тех пор, пока подделку будет невозможно от реальных денег.</p><p>Сферы применения технологии:</p><ul><li>генерация реалистичных лиц;</li><li>статичные изображения и анимация;</li><li>дизайн одежды и интерьеров;</li><li>создание дипфейков (этический аспект таких продуктов пока не затрагиваем, но помнить о нем стоит всегда).</li></ul><p>GAN-ы могут сойти с ума и нарисовать, например, котика с пятью лапами, так что контроль со стороны человека обязателен.</p><p>Примеры GAN — нейросети, созданные на фреймворке TensorFlow, а также DCGAN — одна из первых нейросетей для создания изображений.</p><h2>Вариационные автоэнкодеры</h2><p>VAE (Variational Autoencoder) состоят из двух частей: энкодера, преобразующего входные данные в сжатое представление, и декодера, восстанавливающего данные из этого латентного пространства.</p><p>Вариационный автоэнкодер дополняет архитектуру случайными процессами, добавляя новые данные методом выборки и ориентируясь на вероятностное распределение. На выходе получается реалистичный результат.</p><p>Технология используется:</p><ul><li>для генерации новых дизайнов;</li><li>для анимации и 3D-моделирования;</li><li>в медицине — для создания синтетических данных для исследований.</li></ul><p>По сути VAE работает по принципу архиватора, но с воображением. Из разных векторов, дополняющих друг друга, AI создает оригинальный контент. По такому принципу работает, например, библиотека Keras для глубокого машинного обучения нейросетей.</p><h2>Трансформеры</h2><p>Transformers — это так называемые авторегрессионные модели, составляющие основу текстовых генераторов (таких, как ChatGPT, GitHub Copilot). Они анализируют огромные объемы текста и учатся предсказывать следующее слово. Аналогично (пиксель за пикселем) создаются изображения.</p><p>Нейросети такого типа широко применяются для обработки естественного языка, создания текстового контента и музыки. Они используются также для внедрения в приложения для бизнеса рекомендательных систем.</p><p>Трансформеры умеют генерировать код. Например, GitHub Copilot может дописать за вас функцию, но иногда предлагает что-то вроде:</p><h2>Диффузионные модели</h2><p>Diffusion Models  — это нейросети, созданные для генерации изображений и видео. Типичные примеры AI-моделей на основе такой технологии — DALL·E, Midjourney, Stable Diffusion, Flux.</p><p>Это новое поколение генераторов изображений, работающих по принципу диффузии. Если объяснять совсем просто, то нейросети берут произвольный информационный шум, убирают из него все лишнее, пока не получится заданное изображение. Это как размазать много красок по холсту, а потом снять большую часть и оставить Мону Лизу.</p><p>Плюсы таких нейросетей — высокое качество изображений и гибкость. Можно генерировать что угодно: от фотореализма до аниме.</p><p>Пример реализации простого текстового промпта:</p><p>Нарисуй старика в шляпе на фоне реки Волги в стиле фотореализма.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-02/35700a01-bb72-40d3-8eb9-2db6014cc515.png" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-02/e56f8846-932a-436e-916e-2774a44ce84e.png" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-02/180b896a-a237-42de-bd70-c77579872999.png" alt="" /></figure><p>В целом удовлетворительно, но со стилизованными башнями явный перебор.</p><h2>Генерация изображений</h2><p>Создание изображений — наиболее обширная и популярная сфера применения генеративного искусственного интеллекта. Основное преимущество всех AI такого типа — способность обучаться на многочисленных примерах. Нейросети могут даже изменить внутренние настройки, если это требуется для улучшения результатов работы.</p><p>Модели создают изображения на основе текстовых описаний («нарисуй мне зеленое яблоко на дереве»). Для понимания таких описаний нейросети переводят их в цифру с помощью модели NLP для обработки естественного языка. Например, DALL·E преобразует текстовое описание в высокоразмерные векторы, улавливающие не только смысл, но и контекст запроса. Координаты на полученных векторах представляют отдельное свойство входящего текста (яблоко, зеленое, дерево). Затем модель преобразует полученные коды в изображения.</p><p>Топ-3 нейросетей, которые создают изображения — это DALL·E, Midjourney и Stable Diffusion. У каждой из них есть свои достоинства:</p><ul><li>DALL·E — умеет рисовать по абсурдным запросам («авокадо в образе римского патриция» и т.д.).</li><li>Midjourney — король арт-стилей. Можно сделать изображение под Ван Гога, а можно — в стиле киберпанк.</li><li>Stable Diffusion — это открытая и гибкая модель с самым широким функционалом и возможностью кастомизации.</li></ul><p>Пользователи вовсю используют эти нейросети для генерации мемов, создания концепт-артов для игр, «оживления» исторических личностей (например, «Как бы выглядел Наполеон в джинсах и с айфоном?»).</p><p>Есть и реальные кейсы в индустрии. Студия Marvel использовала Midjourney для быстрого создания концепт-артов неземных миров в своих продуктах. Coca-Cola запустила рождественскую рекламу с AI-сгенерированными изображениями «вкуса будущего».</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-04-02/0fc9b6e5-a9aa-46f6-b24c-8d70cd044e4d.jpg" alt="" /></figure><p>DALL·E, Midjourney и Stable Diffusion — это диффузионные модели, принцип работы которых мы объясняли в предыдущем разделе. Добавим, что нейросеть, которая уже научилась убирать шум, создает изображение почти мгновенно.</p><p>На основе диффузионной модели работает также нейросети семейства Adobe Firefly — с их помощью пользователь создает реалистичные изображения и редактирует загруженные фото (например, дорисовывает пляж на заднем фоне).</p><p>В дизайне, рекламе и игровой индустрии диффузионные генеративные AI используются для создания:</p><ul><li>логотипов — нейросеть может сгенерировать 100 вариантов за минуту;</li><li>рекламных баннеров — не придется нанимать дизайнера;</li><li>спецэффектов в кино — ИИ может реалистично омолодить и состарить актера, сделать фон и т.д.;</li><li>новых дизайнов одежды и аксессуаров;</li><li>персонажей для игр (пишешь «герой-гоблин с копьем» и готово);</li><li>реалистичных текстур (камня, металла);</li><li>фоновых изображений — можно сгенерировать целые города для open-world игр;</li><li>NPC — эти персонажи не клоны, а уникальные.</li></ul><p>При этом интеграция генеративных моделей в реальные процессы сопряжена с определенными сложностями. Важно, чтобы сгенерированный контент соответствовал намерениям человека. Для достижения нужного результата пользователям приходится постоянно развивать модели через обратную связь.</p><p>Релевантность и соответствие ожиданиям напрямую зависят от качества потребляемого сетями контента: чем разнообразнее и интереснее исходный датасет (набор данных), тем убедительнее генерации. Значение имеет и архитектура модели — чем она сложнее, тем будет больше найдено закономерностей и особенностей, но при этом важно избегать переобучения.</p><h2>Генерация музыки</h2><p>Основное преимущество таких нейросетей — способность к анализу и воспроизводству множества музыкальных паттернов. В программу загружаются в огромном количестве треки, после чего сеть разбирает каждый из них на составные части — ритм, мелодию, гармонию. AI анализирует данные и на их основе может создать похожие продукты, улучшить исходные записи либо сгенерировать абсолютно новый трек.</p><p>Нейросети для генерации музыки типа Jukebox, Magenta, Boomy, AIVA тоже воспринимают текстовые запросы. Например, можно дать задание: «Напиши трек в стиле группы Queen, но с другим голосом». Уже через минуту задание будет выполнено.</p><p>Генеративные модели для музыки работают по тем же принципам, что и их «коллеги» для текста или изображений, но со своими фишками:</p><ol><li>Разбор музыки на части. Нейросеть анализирует тонны треков, запоминая аккорды (например, что после C#m часто идет F#), ритм (как сочетаются ударные и бас), структуру (куплет- припев-соло).</li><li>Токенизация. Мелодии разбиваются на еще более мелкие элементы (ноты, аккорды, тембры). Например, в OpenAI Jukebox музыка кодируется в виде последовательности чисел — почти как слова в ChatGPT.</li><li>Генерация: от простого к сложному. Сначала нейросеть учится создавать ритм (ударные), потом добавляет гармонию (аккорды), в финале мелодию и вокал (да, ИИ может петь!).</li></ol><p>У нейросетей-музыкантов даже есть некоторые достижения. Например, в треке Drowned in the Sun нейросеть «оживила» стиль Nirvana. Существует альбом, названный «Hello World», полностью написанный ИИ в стиле поп-панка.</p><p>В числе преимуществ:</p><ul><li>быстрота — демо-трек за минуту вместо недель в студии;</li><li>эксперименты — можно смешивать стили («классика с элементами фри-джаза»).</li><li>доступность — не нужно знать нотную грамоту.</li></ul><p>Есть минусы:</p><ul><li>бездушность — пока ИИ не хватает эмоций живых исполнителей;</li><li>копирование — нейросети иногда «воруют» куски из реальных песен;</li><li>авторские права — кто владеет треком: вы, ИИ или тот, чьи песни были в обучающей выборке?</li></ul><p>Если вы хотите попробовать себя в деле сочинения музыки, начните с Boomy. Это самый простой вариант: выбираете жанр, жмете кнопку — получаете трек.</p><p>Через 5-10 лет нейросети, вероятно, смогут:</p><ul><li>Писать саундтреки персонализировано — под ваше настроение прямо сейчас.</li><li>Генерировать живые концерты с виртуальными артистами в VR.</li><li>Ассистировать музыкантам — например, подбирать аккорды «на лету» во время джема.</li></ul><p>ИИ никогда не сможет заменить The Beatles или Моцарта, но он уже отлично справляется с фоновой музыкой для стримов, подкастов и игр. В таком качестве их применение будет только развиваться.</p><h2>Генерация кода</h2><p>Применение AI генеративного типа упрощает и ускоряет разработку программ. Нейросети анализируют запросы разработчика и создают код на всех топовых языках программирования, включая Python и JavaScript.</p><p>Пока генераторы кода не могут заменить прогера, но они избавляют его от рутины, минимизируют ошибки, допущенные по вине человеческого фактора, и повышают качество кода. Для профи это незаменимый инструмент, упрощающий однообразный труд, а новичкам такие нейросети помогут освоить основы написания кода.</p><p>Глубокое обучение предполагает анализ нейросетями миллиардов строк кода. В остальном такие технологии работают по уже знакомой нам схеме — предсказывают наиболее вероятный код, который хочет написать программист.</p><p>Представьте: вы набираете в IDE комментарий: #напиши функцию, которая парсит JSON и выводит список пользователей, и код появляется сам собой. Это не фантастика — это уже реальность. Современные генеративные модели умеют писать, дополнять и даже исправлять код. Более того, они уже способны создавать прототипы ПО на основе текстовых промптов, что позволяет оперативно оценивать идеи.</p><p>Как это работает:</p><ol><li>Нейросети считывают тонны публичного кода из GitHub, Stack Overflow и других открытых источников. Они запоминают синтаксис языка, популярные алгоритмы (сортировки, работа с API), шаблоны. И не просто запоминают, а фиксируют закономерности.</li><li>Далее происходит токенизация: нейросеть разбивает код на токены — «кирпичики». Это ключевые слова (например, if, for, def), имена переменных, операторы. ИИ предвидит, какие токены должны идти дальше почти так же, как в чат-ботах, но с упором на правильный синтаксис.</li><li>В работе с генеративным AI, контекст — ключ к качественному результату. Запрос должен быть максимально точным.</li></ol><p>Пример правильного запроса:</p><p>При исправлении ошибок сети анализируют кодовый контекст вместе с функциями и комментариями. ИИ оценивает, как каждый фрагмент кода связан с остальными частями программы, ищет синтаксические ошибки (некорректное применение скобок, отсутствие точек с запятой и т.д.). Возможно и исправление семантических ошибок, завязанных на логике программы, а также рефакторинг — улучшение качества и читаемости.</p><p>Конкретные примеры использования генераторов кода:</p><ul><li>Автодополнение. Copilot дописывает код в реальном времени, может написать за вас SQL-запрос или функцию на Python.</li><li>Обучение новичков. ChatGPT (GPT-4) объясняет код, исправляет ошибки, генерирует фрагменты.</li><li>Amazon CodeWhisperer настроен на работу с облачными сервисами.</li></ul><p>У этих во многом полезных инструментов есть определенные риски:</p><ul><li>данные, на которых они обучаются, могут быть устаревшими;</li><li>есть риск для безопасности — если слепо доверять AI, можно получить уязвимый код;</li><li>иногда нейросеть копирует куски из открытых проектов — технически это плагиат.</li></ul><p>Совет. Всегда проверяйте сгенерированный код — пока что ИИ все-таки больше умный помощник, чем полноценный программист.</p><p>Что будет дальше? Вероятно, нейросети научатся автоматически исправлять баги и предлагать полноценные патчи для уязвимостей. Возможно, они смогут писать целые программы по подробному ТЗ и оптимизировать код под конкретные устройства.</p><p>Однако разработчики, которые занимаются созданием оригинальных продуктов, могут не опасаться за свое будущее. ИИ пока не сможет заменить их труд полностью, а скорее станет «умной клавиатурой» для прогеров. Причина проста — даже самая продвинутая версия ChatGPT не поймет до конца логики бизнес-проекта, это под силу только человеку.</p><p>Но есть все основания полагать, что будет создан реальный «Бизнес-ИИ», который поможет организациям автоматизировать бизнес-процессы, вывести на новый уровень взаимодействие с клиентами и многократно повысить эффективность.</p><p>Генеративные модели — это умелые помощники программистов, дизайнеров, маркетологов, музыкантов и представителей других профессий. Нейросети такого типа еще развиваются, но уже сейчас они могут создать оригинальный арт для стартапа, написать демо-трек для игры или стрима, помочь с рутинным кодом. Но нельзя забывать, что ИИ — это лишь инструмент. И только от вас зависит, что вы сделаете с его помощью.</p><p>Кстати, забрать все самые топовые нейронки для айтишников можно в нашем большом <a href="https://tprg.ru/LN8a">гайде с 70+ ИИ-инструментами</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>«Код как по нотам? Не с ИИ-копилотом»: senior рассказал о реальной работе с ИИ-помощниками</title>
      <link>https://tproger.ru/news/-kod-kak-po-notam--ne-s-ii-kopilotom---senior-rasskazal-o-realnoj-rabote-s-ii-pomoshhnikami</link>
      <comments>https://tproger.ru/news/-kod-kak-po-notam--ne-s-ii-kopilotom---senior-rasskazal-o-realnoj-rabote-s-ii-pomoshhnikami?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/-kod-kak-po-notam--ne-s-ii-kopilotom---senior-rasskazal-o-realnoj-rabote-s-ii-pomoshhnikami</guid>
      <description><![CDATA[<p>Senior-разработчик объяснил, почему ИИ-помощники не заменят программистов: они ускоряют рутину, но не отвечают за архитектуру и защиту</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/-kod-kak-po-notam--ne-s-ii-kopilotom---senior-rasskazal-o-realnoj-rabote-s-ii-pomoshhnikami">«Код как по нотам? Не с ИИ-копилотом»: senior рассказал о реальной работе с ИИ-помощниками</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[BASIC]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 01 Apr 2025 05:13:46 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчик Матейс Лагерберг <a href="https://mlagerberg.com/blog-ai-copilot/">поделился</a> своим взглядом на работу с ИИ-копилотами — без хайпа и иллюзий.</p><p>Он почти 25 лет пишет код и пережил уже не одну «революцию» в индустрии. Сейчас, по его мнению, мы наблюдаем не конец профессии, а очередной виток развития инструментов.</p><p>Больше новостей — в нашем тг-канале «<a href="https://t.me/your_tech">Представляешь»</a></p><h2>«Когда я был маленьким…»</h2><p>Матейс вспоминает, как начинал программировать на стареньком 486-м ПК отца, с книжкой по DOS-командам и QBasic. Без автодополнения, без подсветки синтаксиса, без Stack Overflow.</p><p>Только PRINT, библиотеки и надежда, что после очередного запуска программа не вылетит. Каждый новый инструмент — будь то ConTEXT, Eclipse или Stack Overflow — упрощал жизнь, сокращал время на рутину и освобождал место для настоящей работы: понимания задач, архитектуры и решений.</p><p>ИИ сегодня — просто следующий шаг в этой цепочке. Как и IDE раньше, он помогает быстрее писать код. Но, как подчеркивает Лагерберг, это не революция. И уж точно не повод увольнять разработчиков.</p><h2>Что ИИ умеет хорошо — и где спотыкается</h2><p>ИИ-помощники вроде ChatGPT, Codeium и Windsurf действительно ускоряют повседневную рутину. Надо сгенерировать перевод, сэкономить на бойлерплейте, быстро понять, как устроен новый фреймворк — пожалуйста.</p><p>В этом смысле ИИ работает почти как персональный наставник: объясняет сложное простыми словами, не скатываясь в обучалку для новичков.</p><p>Но стоит копнуть глубже — и начинаются проблемы. Лагерберг вспоминает, как на коленке сгенерированный бэкенд оказался абсолютно незащищенным от SQL-инъекций. Код работал, но был уязвим до абсурда.</p><p>ИИ знал, как защитить — но не сделал этого сам. Надо было явно спросить. А чтобы задать правильный вопрос, ты уже должен понимать, как работает защита.</p><h2>ИИ — не магия, а просто дорогой предсказатель</h2><p>Многие забывают, что ИИ — это всего лишь продвинутое угадывание следующего слова. Та же логика, что и в автозамене на смартфоне, только с огромными вычислительными мощностями.</p><p>Никакого «разумного понимания» нет. Поэтому ИИ может не только ошибаться, но и выдумывать функции, стирать код, ломать архитектуру — просто потому, что не понял контекста. Особенно если контекста много.</p><h2>Почему нужен человек — и, возможно, даже больше, чем раньше</h2><p>Лагерберг отмечает: даже если ИИ выглядит уверенным, его решения могут быть опасны. Неопытные разработчики, копируя с Stack Overflow, рисковали и раньше. Сейчас они рискуют в разы больше — потому что доверяют коду, который выглядит идеально, но может оказаться полным бредом.</p><p>Поэтому, по мнению автора, сейчас требуется не меньше, а больше экспертизы: нужно уметь распознавать, когда ИИ ошибается. А для этого надо читать и понимать код.</p><h2>Вывод: пусть копилот сидит на пассажирском</h2><p>Лагерберг продолжит пользоваться ИИ, но с оглядкой.</p><p>Он не против помощника — но пусть тот сидит сбоку, а не за рулем. Потому что карту он читает, может, и хорошо. Но рулить всё равно должен человек.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как отличить реальный код от AI-сгенерированного: шпаргалка для программистов</title>
      <link>https://tproger.ru/articles/kak-otlichit-realnyj-kod-ot-ai-sgenerirovannogo--wpargalka-dlya-programmistov</link>
      <comments>https://tproger.ru/articles/kak-otlichit-realnyj-kod-ot-ai-sgenerirovannogo--wpargalka-dlya-programmistov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-otlichit-realnyj-kod-ot-ai-sgenerirovannogo--wpargalka-dlya-programmistov</guid>
      <description><![CDATA[<p>Узнайте, как отличить реальный код от AI-сгенерированного. В этой статье мы поделимся простыми способами выявления сгенерированных алгоритмов и расскажем, на что стоит обращать внимание программистам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-otlichit-realnyj-kod-ot-ai-sgenerirovannogo--wpargalka-dlya-programmistov">Как отличить реальный код от AI-сгенерированного: шпаргалка для программистов</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Жиза]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 27 Feb 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>С развитием ИИ-программирования всё сложнее определить, писал ли код человек или алгоритм. AI-генераторы уже умеют создавать чистые, рабочие решения, но у них есть характерные признаки, которые выдают их искусственное происхождение. Сегодня мы разберёмся, как отличить реальный код от сгенерированного ИИ: на что обращать внимание, какие паттерны встречаются чаще всего и почему важно уметь это распознавать.</p><h2>Почему это вообще важно?</h2><p>AI-инструменты уже не просто помогают разработчикам — они активно пишут код. GitHub Copilot, ChatGPT, Codeium и другие способны за секунды сгенерировать сложные алгоритмы, SQL-запросы, тесты и даже целые API. С одной стороны, это удобный способ ускорить разработку, снизить рутину и сделать код чище. Но с другой — AI-код не всегда надежен, а слепое копирование может привести к багам и уязвимостям.</p><p>Если раньше единственной угрозой было «гуглить решения на Stack Overflow», то теперь ситуация сложнее: AI-код может быть логически неверным, не соответствовать бизнес-требованиям или использовать устаревшие практики. При этом его сложно сразу раскритиковать — он выглядит идеально, четко структурирован и, на первый взгляд, работает.</p><p>Собрали основные причины, почему важно уметь отличать AI-код от написанного человеком:</p><ul><li>AI не всегда понимает контекст и может предложить небезопасные решения, например, SQL-инъекции или некорректную обработку данных.</li><li>AI не знает внутренних договоренностей команды, поэтому может генерировать код, который не вписывается в общую архитектуру.</li><li>AI не знает внутренних договоренностей команды, поэтому может генерировать код, который не вписывается в общую архитектуру.</li><li>AI может выдавать хоть и корректный, но совсем не соответствующий требованиям бизнеса код.</li><li>Некоторые AI-решения обучены на коде с лицензиями, несовместимыми с коммерческими проектами, что может привести к юридическим проблемам.</li></ul><p>Кроме того, AI-код всё чаще встречается не только в продакшн-решениях, но и на собеседованиях. Работодатели начали сталкиваться с кандидатами, которые просто копируют ответы из ChatGPT и не могут объяснить, как работает их код.</p><p>По данным <a href="https://survey.stackoverflow.co/2024/ai">Stack Overflow Developer Survey 2024</a>, более 70% разработчиков уже используют AI в кодинге, а 40% признались, что нейросети хоть раз предлагали им потенциально небезопасные решения. Поэтому сейчас важно не просто уметь пользоваться AI, но и понимать, где он может навредить.</p><h2>Где чаще всего встречается AI-код?</h2><p>AI-сгенерированный код может появиться где угодно: от свежего pull request’а в репозитории до ответа на Stack Overflow или тестового задания кандидата. Иногда это просто вспомогательные сниппеты, а иногда — полноценные фрагменты, которые выглядят слишком «чисто», но вызывают ощущение, что что-то не так.</p><p>Разберем, в каких ситуациях чаще всего встречается AI-код и как его распознать.</p><h3>Кодовые ревью</h3><p>Допустим, в репозиторий приходит pull request, и он выглядит… странно. Формально код работает, но:</p><ul><li>Он слишком абстрактный и не учитывает специфику проекта.</li><li>Переменные и методы названы шаблонно: processData(), getResponse(), handleRequest().</li><li>Комментарии избыточны или выглядят так, будто их писал учебник: «Этот метод сортирует массив по возрастанию» (да, спасибо, КЭП).</li><li>Код слишком формальный, без характерных для команды решений или оптимизаций.</li></ul><h4>Пример:</h4><p>Вы просите разработчика написать логику валидации email-адреса, а в PR прилетает нечто такое:</p><p>Формально всё корректно. Но если в вашем проекте уже есть встроенные механизмы валидации (например, DataAnnotations в .NET), такой код выглядит излишним. Кроме того, регулярка взята из учебников и не учитывает edge-кейсы. Это может быть явным признаком AI-генерации.</p><h3>Форумы и Stack Overflow: кто-то выкладывает красивый, но подозрительно академичный код</h3><p>AI-код часто появляется в ответах на Stack Overflow, GitHub Discussions или Reddit. На первый взгляд, он идеален, но:</p><ul><li>Не учитывает контекст задачи;</li><li>Не использует упрощения, принятые в реальной разработке;</li><li>Выглядит так, словно его писал преподаватель для учебного пособия.</li></ul><h4>Пример:</h4><p>Кто-то спрашивает: «Как перевернуть строку в Python?»</p><p>Ответ от AI:</p><p>Код технически правильный, но выглядит слишком заумно. Человеческий ответ скорее выглядел бы так:</p><p>Или</p><p>Люди обычно пишут проще и без ненужных комментариев.</p><h3>AI-код в legacy-проектах: «быстро сгенерили, а потом никто не разобрался»</h3><p>AI помогает быстро закрыть задачу, но иногда это оборачивается проблемами для будущих разработчиков. Представьте, в legacy-коде уже начали появляться фрагменты, которые никто не может понять, потому что их сгенерировал AI, а автор ушел из проекта (надеемся, не жиза).</p><h4>Пример:</h4><p>Вы находите в коде функцию, которая вроде бы что-то делает, но написана так, что ее никто не понимает:</p><p>Комментариев нет, названия переменных обобщенные. Оказывается, это было быстрое AI-решение для шифрования, но никто не знал, что тут XOR с чередующимися ключами.</p><p>Еще один тревожный сигнал — фрагменты кода, которые выглядят слишком универсально, но плохо вписываются в логику проекта. Например, в коде на C# встречается сложная реализация сортировки, хотя в .NET уже есть встроенные методы, делающие то же самое.</p><h3>Интервью и тестовые задания: как отличить, решал ли кандидат сам или просто скормил задачу нейросети?</h3><p>С ростом AI-разработки на собеседованиях всё чаще встречаются кандидаты, которые приносят решения из ChatGPT. Важно понять, действительно ли человек писал код сам, или просто скопировал без понимания.</p><p>Как распознать AI-код на интервью:</p><ul><li>Кандидат использует нестандартные или слишком формальные конструкции, которые редко встречаются в индустрии;</li><li>В коде много избыточных комментариев, будто их писал учебник;</li><li>Кандидат не может объяснить, почему использовал именно это решение;</li><li>В коде встречаются устаревшие или малоиспользуемые подходы.</li></ul><h4>Пример:</h4><p>Вы даете тестовую задачу: «Напишите функцию для поиска всех простых чисел до N».</p><p>AI-кандидат приносит это:</p><p>Формально всё правильно, но человек, скорее всего, объяснил бы решение проще и без таких заумных комментариев.</p><p>Как проверить такого кандидата? Лучший способ — попросить изменить или оптимизировать код. Если он не может объяснить каждую строчку или предложить альтернативный вариант, он, скорее всего, просто скопировал ответ из AI.</p><h2>Шпаргалка: 6 признаков, что код написан AI</h2><p>AI-код часто выглядит идеально с точки зрения синтаксиса, но его выдаёт стиль, структура и некоторые неестественные решения. Разберем шесть главных признаков, которые помогут быстро понять, что перед вами код от нейросети.</p><h3>Слишком академичный стиль</h3><p>AI часто пишет код так, будто это учебное пособие: использует полный формальный синтаксис, лишние комментарии и развернутые определения.</p><p><b>Пример:</b></p><p>Кто-то просит написать функцию на Python для поиска максимального значения в списке. Человек бы написал так:</p><p>AI же может предложить развернутый вариант:</p><p>Этот код работает, но выглядит так, словно вышел из учебника.</p><h3>Избыточные и очевидные комментарии</h3><p>AI очень любит комментировать вещи, которые понятны и без пояснений.</p><p><b>Пример:</b></p><p>Разработчики так не пишут — слишком очевидные комментарии просто мешают читать код.</p><h3>Неестественные или шаблонные названия переменных</h3><p>AI генерирует код по шаблону и часто использует слишком общие, но «правильные» названия.</p><p><b>Пример:</b></p><p>В реальности разработчик скорее назвал бы класс  CsvParser или LogAnalyzer, а не абстрактный DataProcessor.</p><h3>Неоптимизированные решения, игнорирующие стандартные библиотеки</h3><p>AI может создать велосипед, даже если есть готовое стандартное решение.</p><p><b>Пример:</b></p><p>Запрос: «Написать код, который объединяет строки в список с запятыми».</p><p>AI-код:</p><p>Но в Python есть встроенный join(), и нормальный разработчик написал бы просто:</p><h3>Код слишком универсален, но не учитывает реальный контекст</h3><p>AI пытается писать универсальные решения, даже если это не нужно.</p><p><b>Пример:</b></p><p>Допустим, нужна функция, которая складывает два числа. Человек просто сделает:</p><p>AI же может предложить универсальный метод с кучей проверок:</p><p>На вид хорошо, но зачем здесь проверка на отрицательные числа?</p><h3>Используются устаревшие или редко применяемые методы</h3><p>AI может выдавать код, который выглядит нормально, но использует уже неактуальные или малоиспользуемые подходы.</p><p><b>Пример:</b></p><p>Для чтения файлов в Python AI может предложить:</p><p>Хотя уже давно правильный вариант:</p><p>Так код выглядит безопаснее и не оставляет открытые файловые дескрипторы.</p><p>Хотя AI часто можно вычислить, это не значит, что его нельзя применять. Наоборот, в ряде случаев нейросети могут здорово ускорить работу разработчиков. Главное — понимать, где AI будет полезным помощником, а где может навредить. Рассмотрим несколько сценариев, в которых сгенерированный код действительно помогает.</p><h2>AI-код не всегда плох: когда его можно (и нужно) использовать</h2><h3>Генерация шаблонного кода (CRUD-операции, конфигурации, тесты)</h3><p>Разработчики часто сталкиваются с задачами, которые повторяются от проекта к проекту. Например, создать REST API с базовыми CRUD-операциями, написать конфигурационные файлы или сгенерировать unit-тесты.</p><p><b>Пример:</b></p><p>Допустим, нужно быстро создать контроллер для работы с сущностью User в Node.js + Express. Человек может вручную писать стандартные GET, POST, PUT и DELETE, а может поручить это AI:</p><p>Такой код вполне можно доверить AI, потому что он шаблонный и не требует сложной бизнес-логики.</p><h4>Когда стоит использовать?</h4><ul><li>Генерация стандартных CRUD-операций;</li><li>Создание базовых конфигурационных файлов (например, docker-compose.yml);</li><li>Автоматическое написание тестов для базовых сценариев.</li></ul><h3>Автоматизация рутинных задач (генерация SQL-запросов, скрипты для CI/CD)</h3><p>AI отлично справляется с рутинными задачами, которые требуют знаний синтаксиса, но не требуют креативности. Например, он может быстро сгенерировать сложный SQL-запрос или YAML-скрипт для CI/CD.</p><p><b>Пример:</b></p><p>Нужно составить SQL-запрос для получения списка клиентов, которые сделали заказ в последние 30 дней. AI может сразу предложить готовое решение:</p><p>Вручную писать такие запросы несложно, но если их много, AI может сэкономить кучу времени.</p><h4>Когда стоит использовать?</h4><ul><li>Написание SQL-запросов на основе простых описаний;</li><li>Генерация конфигураций CI/CD (например, .gitlab-ci.yml или Jenkinsfile);</li><li>Создание вспомогательных скриптов для автоматизации (например, bash-скриптов для деплоя).</li></ul><h3>Помощь в написании boilerplate-кода и документации</h3><p>Boilerplate — код, который нужен для работы приложения, но не несет уникальной бизнес-логики. Это могут быть шаблонные классы, интерфейсы, обработчики исключений и т. д.</p><p><b>Пример:</b></p><p>AI может быстро создать интерфейс для TypeScript на основе JSON-данных. Так:</p><p>AI-сгенерированный TypeScript-интерфейс:</p><p>Кроме того, AI может помочь с генерацией документации. Например, если нет комментариев, он их добавит, что особенно полезно при работе с чужим кодом.</p><h4>Когда стоит использовать?</h4><ul><li>Написание интерфейсов и типов для TypeScript или Java;</li><li>Генерация обработчиков исключений и логирования;</li><li>Автоматическое создание документации (например, для API в OpenAPI/Swagger).</li></ul><h3>Генерация идей, но не слепое копирование (AI как ассистент, а не разработчик)</h3><p>AI может быть полезен не только в коде, но и на этапе обсуждения архитектуры или поиска решений. Например, если есть задача оптимизировать алгоритм, можно спросить AI, какие методы использовать.</p><p>Пример:</p><p>Разработчик хочет ускорить поиск в огромном массиве данных. AI  предложит несколько алгоритмов (B-дерево, бинарный поиск, хеш-таблицы), а уже сам программист выберет, что подходит лучше.</p><h4>Когда стоит использовать?</h4><ul><li>Когда нужна структурированная подборка идей.</li><li>При изучении новых технологий — AI может быстро объяснить базовые принципы.</li><li>При генерации альтернативных решений, чтобы оценить их плюсы и минусы.</li></ul><p>AI — не замена разработчиков, а инструмент, который помогает ускорять работу. Его можно и нужно использовать для рутинных задач, но всегда с проверкой и пониманием контекста.</p><h2>Как научиться быстро определять AI-код?</h2><p>Понимание того, что перед вами код, сгенерированный AI, — не просто навык, а важная часть профессиональной гигиены разработчика. Поэтому важно научиться быстро отличать машинный код от человеческого. Разберем несколько стратегий.</p><h3>Задавайте себе правильные вопросы</h3><p>Когда видите код (в PR, на форуме, в тестовом задании), попробуйте мысленно пройтись по этим вопросам:</p><ul><li>Логична ли структура? Если код выглядит идеально отформатированным, но при этом содержит нелогичные или избыточные конструкции, это подозрительно.</li><li>Есть ли повторения? AI любит дублировать куски кода, даже если их можно оптимизировать.</li><li>Реализация слишком академичная? Если код выглядит так, будто его писал профессор компьютерных наук, но без учета реального использования — возможно, его сгенерировал AI.</li><li>Код соответствует задаче или просто «выглядит умно»? Иногда AI генерирует код, который слишком сложен для простой задачи. Например, вместо for-цикла он может предложить рекурсивный алгоритм без реальной необходимости.</li></ul><h3>Сравнивайте с примерами из реального продакшен-кода</h3><p>Если вам кажется, что код написан AI, попробуйте сравнить его с примерами из проектов, над которыми работали вы или ваши коллеги. Настоящий код часто:</p><ul><li>содержит «следы» работы команды (специфичные комменты, соглашения по именованию, использование внутренних утилит),</li><li>ориентирован на реальное использование, а не «идеальный синтаксис»,</li><li>имеет свою логику форматирования (не всегда академически правильную).</li></ul><h3>Проверяйте код на избыточность и неестественные конструкции</h3><p>AI часто генерирует код, который формально правильный, но содержит странные избыточные решения. Например:</p><ul><li>Ненужные проверки (if True:);</li><li>Лишние константы вместо прямых значений;<br /></li><li>Чрезмерная типизация в языках, где это необязательно;<br /></li><li>Странные циклы, когда можно использовать встроенные методы.</li></ul><p>Определять AI-код — навык, который развивается с опытом. Главное — обращать внимание на логику, осмысленность и соответствие реальным сценариям использования. Если код кажется слишком правильным, но при этом странным — скорее всего, его написал не человек.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow медленно умирает. ИИ и виноват, и не виноват в этом</title>
      <link>https://tproger.ru/news/--stack-overflow-medlenno-umiraet--ii-i-vinovat--i-ne-vinovat-v-etom</link>
      <comments>https://tproger.ru/news/--stack-overflow-medlenno-umiraet--ii-i-vinovat--i-ne-vinovat-v-etom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--stack-overflow-medlenno-umiraet--ii-i-vinovat--i-ne-vinovat-v-etom</guid>
      <description><![CDATA[<p>Активность на Stack Overflow падает, сократившись на 75% с 2017 года. И причина не только в популярности ИИ, таких как ChatGPT, заменяющих запросы к сообществу</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--stack-overflow-medlenno-umiraet--ii-i-vinovat--i-ne-vinovat-v-etom">Stack Overflow медленно умирает. ИИ и виноват, и не виноват в этом</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 13 Jan 2025 06:10:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Stack Overflow, некогда главный ресурс для разработчиков, ищущих ответы на вопросы о программировании, столкнулся с серьёзным спадом активности.</p><p>По <a href="https://data.stackexchange.com/">данным</a> StackExchange Data Explorer, количество новых вопросов сократилось на 75% по сравнению с пиком 2017 года и на 60% за последний год к декабрю 2024 года.</p><p>Снижение началось ещё до появления ChatGPT в 2022 году, но с его запуском ситуация резко ухудшилась.</p><p>Разработчик Теодор Смит, один из бывших топовых участников платформы, отметил, что «Stack Overflow осталось менее года жизни», связывая падение с популярностью ИИ-ассистентов и проблемами внутренней культуры сайта.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-01-12/45a8adc3-5cd8-4605-96fb-b7b5c744b6b3.jpeg" alt="" /></figure><h2>Роль ИИ и политика Stack Overflow</h2><p>Универсальные ИИ-ассистенты, такие как ChatGPT, стали причиной того, что разработчики реже обращаются к Stack Overflow за помощью. Вместо того чтобы создавать новые вопросы, они могут получить ответы в реальном времени. Однако это не единственная причина спада.</p><p>Stack Overflow запретил использование генеративного ИИ для ответов на вопросы в 2022 году, мотивируя это низким качеством таких ответов и сложностью их модерации. Несмотря на улучшение качества ИИ-ответов, запрет остаётся в силе, вызывая споры в сообществе.</p><h2>Последствия снижения активности</h2><p>Меньшее количество новых вопросов ограничивает покрытие современных технологий. Это приводит к тому, что Stack Overflow становится менее полезным для поиска решений по новым инструментам и фреймворкам.</p><p>При этом Stack Overflow остаётся бизнесом. Платформа монетизирует свою базу знаний через сделки с Google, OpenAI и GitHub. Также компания предлагает продукт OverflowAI — генеративный инструмент для корпоративных пользователей, который интегрируется с Stack Overflow Teams.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow навсегда запретил ИИ-контент на сайте. Разбираемся, почему</title>
      <link>https://tproger.ru/news/stack-overflow-navsegda-zapretil-ii-kontent-na-sajte--razbiraemsya--pochemu</link>
      <comments>https://tproger.ru/news/stack-overflow-navsegda-zapretil-ii-kontent-na-sajte--razbiraemsya--pochemu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-navsegda-zapretil-ii-kontent-na-sajte--razbiraemsya--pochemu</guid>
      <description><![CDATA[<p>Stack Overflow навсегда запретил публикацию контента, созданного с помощью ИИ, из-за частых ошибок в таких ответах. Решение принято после того, как платформа столкнулась с массовым потоком низкокачественного контента, который затруднял поиск достоверных ответов</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-navsegda-zapretil-ii-kontent-na-sajte--razbiraemsya--pochemu">Stack Overflow навсегда запретил ИИ-контент на сайте. Разбираемся, почему</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 03 Sep 2024 02:37:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>Stack Overflow, одна из крупнейших платформ для программистов, приняла решение <a href="https://meta.stackoverflow.com/questions/421831/policy-generative-ai-e-g-chatgpt-is-banned">запретить</a> публикацию контента, сгенерированного искусственным интеллектом, в том числе и ChatGPT.</p><p>Причина проста: хотя ответы, созданные ИИ, могут выглядеть убедительно, они часто содержат ошибки, которые вводят пользователей в заблуждение.</p><h2>Проблемы с ИИ-контентом</h2><p>Генеративные ИИ-модели, такие как ChatGPT, позволяют быстро создавать тексты, но их точность оставляет желать лучшего.</p><p>Пользователи начали массово публиковать такие ответы и модераторы Stack Overflow, которые работают на волонтерской основе, не успевали проверять и фильтровать этот поток.</p><p>Это привело к тому, что платформа стала переполняться низкокачественным контентом, что снизило ее ценность для тех, кто ищет достоверные ответы.</p><h2>История запрета</h2><p>Первоначально запрет на использование ИИ для создания контента был введен временно в декабре 2022 года, вскоре после появления ChatGPT.</p><p>Модераторы решили действовать быстро, чтобы предотвратить возможные проблемы с качеством контента на платформе. Со временем стало ясно, что такой запрет необходим на постоянной основе и его поддержало большинство участников сообщества.</p><h2>Какие меры приняты?</h2><p>Теперь на Stack Overflow запрещено публиковать любые материалы, созданные с помощью ИИ. Если пользователь попытается обойти это правило, к нему могут применить санкции, включая баны.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow: «80% разработчиков несчастны». Как так вышло?</title>
      <link>https://tproger.ru/news/stack-overflow---80--razrabotchikov-neschastny---kak-tak-vywlo-</link>
      <comments>https://tproger.ru/news/stack-overflow---80--razrabotchikov-neschastny---kak-tak-vywlo-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow---80--razrabotchikov-neschastny---kak-tak-vywlo-</guid>
      <description><![CDATA[<p>Есть популярный миф, что работа программистом — это про написание кода 2-3 часа в день, а остальное время свободное. Но данные свежего опроса показали иную картину</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow---80--razrabotchikov-neschastny---kak-tak-vywlo-">Stack Overflow: «80% разработчиков несчастны». Как так вышло?</a>»</p>]]></description>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 01 Aug 2024 13:48:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>Недавний опрос Stack Overflow <a href="https://survey.stackoverflow.co/2024/">показал</a>, что большинство разработчиков недовольны своей работой.</p><p>Как оказалось, даже сантехники и фермеры счастливы больше, чем программисты. Что же стало причиной такой неудовлетворенности?</p><h2>Основные результаты опроса</h2><p>В опросе приняли участие более 65 тыс разработчиков из 185 стран. Главными темами этого года стали использование ИИ и недовольство на рабочем месте, которое достигло невиданных высот.</p><h2>ИИ увеличивает производительность</h2><p>72% респондентов поддерживают использование ИИ-инструментов, хотя в прошлом году этот показатель составлял 77%.</p><p>Снижение удовлетворенности можно объяснить разочарованием в достигнутых результатах.</p><p>Несмотря на это, 76% разработчиков используют или планируют использовать ИИ в своей работе, что выше показателя прошлого года (70%).</p><h2>Недостатки ИИ</h2><p>Почти половина (45%) профессиональных разработчиков считают, что ИИ-инструменты плохо справляются с решением сложных задач.</p><p>Основное применение ИИ – написание кода (82%), а также тестирование кода (46%).</p><h2>Опасения разработчиков</h2><p>70% профессионалов не видят в ИИ угрозы для своей работы, но 79% беспокоятся о распространении дезинформации.</p><p>Главная проблема ИИ – недостаток понимания базы кода.</p><p>При этом 80% разработчиков недовольны своей работой, а каждый третий откровенно ее ненавидит.</p><h2>Основные причины недовольства</h2><ul><li><b>    Неоправданные ожидания и технический долг:</b> зарплаты разработчиков снижаются, а технический долг деморализует сотрудников.</li><li><b>Культура перегрузок и бюрократия:</b> давление на выполнение задач приводит к выгоранию, а бюрократия и бесконечные собрания лишь усугубляют ситуацию.<br /></li><li><b>Сокращения и плохое здоровье:</b> недавние массовые сокращения создали неопределенность, а сидячий образ жизни вредит здоровью.<br /></li></ul><h2>Вывод</h2><p>Несмотря на недовольство на работе, большинство разработчиков занимаются написанием кода в свободное время как хобби (68%) или для профессионального развития (40%), что говорит о том, что проблема не в главном навыке программистов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Бунт на Stack Overflow: платформа банит недовольных партнерством с OpenAI</title>
      <link>https://tproger.ru/news/--bunt-na-stack-overflow--platforma-banit-nedovolnyh-partnerstvom-s-openai</link>
      <comments>https://tproger.ru/news/--bunt-na-stack-overflow--platforma-banit-nedovolnyh-partnerstvom-s-openai?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--bunt-na-stack-overflow--platforma-banit-nedovolnyh-partnerstvom-s-openai</guid>
      <description><![CDATA[<p>Легендарный форум для разработчиков Stack Overflow начал массовый бан пользователей, недовольных свежим партнерством с OpenAI</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--bunt-na-stack-overflow--platforma-banit-nedovolnyh-partnerstvom-s-openai">Бунт на Stack Overflow: платформа банит недовольных партнерством с OpenAI</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 10 May 2024 05:33:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>Stack Overflow, легендарный форум для разработчиков, столкнулся с массовым недовольством своих пользователей после объявления о партнерстве с OpenAI.</p><p>Многие участники платформы начали удалять или редактировать свои ответы и вопросы, чтобы предотвратить использование авторского контента в обучении ИИ, что привело к банам со стороны модераторов.</p><h2>Реакция пользователей</h2><p>Пользователь по имени Бен поделился опытом редактирования наиболее успешных своих ответов, чтобы избежать «кражи» этого труда OpenAI.</p><p>Бен также отметил, что модераторы форума напомнили ему, что любой контент, размещенный на платформе, может быть использован в коммерческих целях.</p><p>Пользователи также выразили недоумение о том, почему ChatGPT не может просто указывать источники ответов. Это бы, по мнению комьюнити Stack Overflow, добавило бы признания инструменту и позволило бы пользователям видеть, откуда берутся данные.</p><figure><img src="https://media.tproger.ru/user-uploads/98945/2024-05-10/f7009b39-a908-401a-869d-756c39717f88.jpeg" alt="" /><figcaption>Сообщение одного из пользователей Stack Overflow</figcaption></figure><h2>Юридическая основа борьбы</h2><p>Пользователи, возмущенные невозможностью удалить свой контент с сайта, опираются на «право на забвение» — концепцию, закрепленную в Общем регламенте по защите данных (GDPR) Еврособза.</p><p>Правда, стоит отметить, что в «Условиях использования Stack Overflow» содержится пункт, который наделяет платформу «неотзывным правом владения всем предоставленным на сайте контентом».</p><h2>Изменения в политике Stack Overflow</h2><p>До недавнего времени на сайте действовала политика, запрещающая использование генеративного ИИ для написания или переформулирования вопросов и ответов.</p><p>Модераторы даже использовали программы для обнаружения ИИ-генерированного контента. Однако на прошлой неделе компания резко изменила свою публичную политику в отношении искусственного интеллекта, о чем мы <a href="https://tproger.ru/news/--openai-budet-obuchat-svoj-ii-na-postah-so-stack-overflow">написали</a> отдельный материал.</p><p>Отметим, что ситуация вокруг Stack Overflow является частью более широкой тенденции в индустрии, где компании пересматривают свои «принципиальные позиции» по поводу ИИ в погоне за прибылью.</p>]]></content:encoded>
    </item>
    <item>
      <title>OpenAI будет обучать свой ИИ на постах со Stack Overflow</title>
      <link>https://tproger.ru/news/--openai-budet-obuchat-svoj-ii-na-postah-so-stack-overflow</link>
      <comments>https://tproger.ru/news/--openai-budet-obuchat-svoj-ii-na-postah-so-stack-overflow?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--openai-budet-obuchat-svoj-ii-na-postah-so-stack-overflow</guid>
      <description><![CDATA[<p>OpenAI и Stack Overflow объявили о новом партнерстве — обе компании будут использовать технологии друг друга для совершенствования своих свервисов</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--openai-budet-obuchat-svoj-ii-na-postah-so-stack-overflow">OpenAI будет обучать свой ИИ на постах со Stack Overflow</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 07 May 2024 09:48:55 GMT</pubDate>
      <content:encoded><![CDATA[<p>OpenAI и Stack Overflow объявили о новом партнерстве. Благодаря доступу к OverflowAPI, ребята из OpenAI смогут пользоваться точными и проверенными данными, которые нужны для быстрого решения IT-проблем.</p><h2>Что в этом хорошего для OpenAI?</h2><p>С помощью OverflowAPI, OpenAI не только улучшит производительность своих моделей, но и сможет встроить проверенные «IT-знания» в ChatGPT.</p><p>Это значит, что всем нам будет гораздо легче получить доступ к надежной и высокотехнологичной информации и коду, который поддерживают миллионы разработчиков со Stack Overflow.</p><h2>А что насчет Stack Overflow?</h2><p>Не останутся в стороне и Stack Overflow — сервис тоже получит свою долю пользы.</p><p>Используя модели OpenAI, платформа продолжит разработку OverflowAI. Это значит более продвинутые возможности и улучшенные функции для их огромного сообщества разработчиков.</p><h2>Когда все это произойдет?</h2><p>Первая волна интеграции двух платформа ожидается уже в I половине 2024 года.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как стать фулл-стек веб-разработчиком</title>
      <link>https://tproger.ru/articles/kak-stat-full-stek-feb-razrabotchikom</link>
      <comments>https://tproger.ru/articles/kak-stat-full-stek-feb-razrabotchikom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дух айтишной эмо школы]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-stat-full-stek-feb-razrabotchikom</guid>
      <description><![CDATA[<p>IT-блогер Conner Ardman рассказал, что нужно учить, чтобы стать фулл-стек феб-разработчиком в 2024 году.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-stat-full-stek-feb-razrabotchikom">Как стать фулл-стек веб-разработчиком</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 01 Feb 2024 11:39:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>IT-блогер Conner Ardman рассказал, что нужно учить, чтобы стать фулл-стек феб-разработчиком в 2024 году.</p><p>Обучение программированию - сложный процесс, и большинство начинающих терпят неудачу. Веб-разработка, в частности, является огромным и запутанным полем с противоречивой информацией о различных технологиях.</p><p>Докладчик предлагает пошаговый подход к изучению веб-разработки, начиная с основ HTML, затем изучения CSS для добавления стиля и макета на страницу. После этого предлагается приступить к первому проекту, создав портфолио или веб-сайт с использованием HTML и CSS.</p><p>Затем следует изучение основ JavaScript и манипуляции DOM для добавления интерактивности. После этого предлагается создать проект с интерактивностью, что позволит оттачивать навыки отладки и использования различных инструментов. Далее докладчик предлагает углубить знания в HTML, CSS и изучить основы бэкэнд-разработки, включая работу с сервером, базами данных, а также изучение Git и GitHub.</p><p>После этого предлагается изучить фреймворки и библиотеки, такие как React, а также TypeScript. Затем рассматривается изучение компьютерных сетей, облачных вычислений, инфраструктуры, безопасности и серверного рендеринга.</p><p>Докладчик также советует углубляться в интересующие аспекты и пропускать менее важные, но при этом следить за правильным подходом к обучению.</p><p>Вот, о чём идёт речь в видео:</p><ol><li>Изучение программирования сложно, большинство начинающих терпят неудачу, особенно в веб-разработке из-за избытка информации.</li><li>Автор предлагает пошаговый подход к изучению веб-разработки без теоретических отступлений и множества возможных направлений.<br /></li><li>Первым шагом является изучение HTML для определения содержания и структуры веб-сайта.<br /></li><li>После HTML следует изучение CSS для добавления стилей и макета страницы.<br /></li><li>Важно активно практиковаться, создавая проекты, например, портфолио или резюме, и использовать инструменты разработчика для тестирования CSS.<br /></li><li>Следующий шаг - изучение JavaScript для добавления интерактивности на веб-сайты, начиная с основ языка и манипуляции с DOM.<br /></li><li>После освоения JavaScript рекомендуется создать проект, например, игру в браузере, и практиковать отладку и поиск решений проблем в интернете.<br /></li><li>Повторный взгляд на HTML и CSS: изучение доступности, адаптивного дизайна, анимаций, CSS-фреймворков и препроцессоров.<br /></li><li>Переход к изучению серверной части с использованием Node.js и Express, а также основ работы с терминалом, Git и GitHub.<br /></li><li>Изучение баз данных, включая SQL и NoSQL, начиная с MySQL и MongoDB.<br /></li><li>Создание полноценного проекта с бэкендом и базой данных, добавление уникальных особенностей для резюме.<br /></li><li>После основ начинается изучение фреймворков и библиотек, таких как React, для упрощения разработки.<br /></li><li>Проект с использованием React и изучение TypeScript для строгой типизации в больших кодовых базах.<br /></li><li>Основы компьютерных сетей, включая IP-адреса, HTTP/HTTPS и DNS.<br /></li><li>Основы облачных вычислений и развертывания веб-приложений в облаке с использованием AWS и EC2.<br /></li><li>Изучение Docker и контейнеров для обеспечения изоляции и одинаковой среды выполнения кода.<br /></li><li>Основы безопасности веб-разработки, включая защиту от SQL-инъекций, межсайтовой подделки запросов и скриптинга.<br /></li><li>Использование Next.js и серверной отрисовки для повышения производительности и индексации в поисковых системах.<br /></li><li>Автор советует глубже изучать интересующие темы и избегать менее важных, но при этом следовать правильному подходу к обучению.<br /></li></ol><p>Ниже — транскрибированный перевод видео на русский язык.</p><p>Изучение программирования тяжело, и большинство людей, кто пытается, терпят неудачу. А веб-разработка в частности настолько ошеломляет своим количеством информации о различных технологиях, что стоит или не стоит изучать.</p><p>Все кажется противоречивым. Поэтому я собираюсь предложить вам пошаговый подход к изучению веб-разработки, без лишней теории.</p><h2>Основы HTML и CSS</h2><p>Нет миллиона различных возможностей, куда можно двигаться. Просто последовательный подход от начала до конца, который вы можете начать прямо сегодня. Первое, что вам нужно изучить, это основы HTML или язык гипертекстовой разметки. Это язык, который мы используем для определения содержания и структуры веб-сайта. Представьте, что у вас есть текст, который должен быть размещен на веб-сайте. Нам нужно определить, что является заголовком, что является абзацем и так далее, и мы делаем это с помощью HTML.</p><p>Сейчас вам не нужно слишком углубляться. Цель - просто уметь взять простой текст и преобразовать его в базовый HTML-документ. И после HTML пришло время изучить основы CSS или каскадные таблицы стилей. Это то, как мы добавляем стиль и макет на страницу. По сути, как мы берем наше содержание и придаем ему жизнь, добавляем цвета, макет и описываем, как оно должно выглядеть.</p><p>И после того, как вы изучите немного CSS, пришло время немного отдохнуть и попробовать поработать над своим первым проектом. Я крайний сторонник идеи, что вам нужно активно учиться. Поэтому не просто проходите кучу учебных пособий. Убедитесь, что вы делаете что-то, чтобы постоянно учиться и проверять свои знания. Если вам нужна идея, то можете сделать портфолио для себя или что-то вроде страницы "Обо мне" или резюме, используя HTML и CSS. Это также отличное время, чтобы научиться использовать инструменты разработчика, с которыми вы станете очень хорошо знакомы со временем.</p><h2>Изучите JavaScript</h2><p>Но пока вы можете использовать их, чтобы проверить свой CSS и переключать различные свойства, попробовать разные вещи. И теперь, когда у вас есть этот первый проект за плечами, во-первых, поздравляю, пришло время перейти к JavaScript. JavaScript - это то, как мы добавляем интерактивность на наши веб-сайты. Это будет основным языком программирования веба. Чтобы начать, вам просто нужно изучить основы языка.</p><p>И, вероятно, этот этап займет больше всего времени. Я бы порекомендовал вам пройти какой-то курс, будь то здесь, на YouTube, или какой-то платный курс где-то еще, но просто изучите основы JavaScript и научитесь хорошо использовать язык. И после этого вы можете перейти к манипуляции DOM, то есть как мы используем JavaScript для изменения содержания веб-сайта, как мы добавляем эту интерактивность.</p><p>И теперь, когда вы изучили этот новый навык добавления интерактивности на ваш веб-сайт, догадайтесь, какое время настало? Время проекта. Вы можете взять уже сделанный вами веб-сайт и добавить на него интерактивность, или создать совершенно новый. Хорошим проектом здесь было бы создание какой-то игры в браузере, что-то вроде крестики-нолики или судоку, или если вы хотите приключений, вы можете попробовать что-то более сложное.</p><p>И работая над этим проектом, вы, вероятно, обнаружите, что это самое сложное, что вы делали до сих пор, но это на самом деле хорошо. Это даст вам больше возможностей практиковать новые навыки отладки. Изучите, как использовать JavaScript с инструментами разработчика, а также научитесь искать проблемы с JavaScript в Google и на Stack Overflow. И я также рекомендую попробовать использовать ChatGPT, когда у вас возникают проблемы.</p><p>Теперь, не просто копируйте код с Stack Overflow или GPT или откуда-то еще. Используйте их как инструменты, чтобы научиться делать вещи. Но попробуйте начать включать их в свой рабочий процесс. Хорошо, теперь у вас есть этот невероятный веб-сайт с интерактивностью, но пришло время немного улучшить свои навыки и вернуться к некоторым вещам, которые мы ранее пропустили.</p><h2>На что сделать упор в HTML и CSS</h2><p>С HTML я бы сосредоточился на том, как писать доступный HTML. А с CSS я бы сосредоточился на адаптивном дизайне.  И если вас особенно интересует CSS, вы можете учить такие вещи, как переходы и анимации, систему сетки и как писать более сложные селекторы, такие как псевдоклассы и псевдоэлементы. Вы также можете использовать это время, чтобы изучить некоторые CSS-фреймворки, такие как Bootstrap и Tailwind, которые по сути являются предварительно написанным CSS для вас, или вы можете изучить некоторые препроцессоры, такие как SAS или less, которые добавляют некоторые интересные функции в CSS.</p><p>И чтобы быть ясным, я не думаю, что вам нужно это делать. Я просто хотел упомянуть об этом на случай, если вас особенно интересует CSS. И теперь вы должны быть довольно комфортны на фронт-энде, и пришло время начать работать с бэк-эндом. Так что на этом этапе я бы сначала научился делать запрос к серверу с фронт-энда. Так что с помощью JavaScript, как использовать fetch и как писать асинхронный код.</p><p>И для этого вы можете использовать некоторые общедоступные API, которые по сути просто позволяют вам отправлять запрос, и их сервер отправит некоторую информацию обратно в ваш браузер. Теперь, прежде чем мы сможем перейти к реальной реализации нашего собственного бэк-энда, я также рекомендую вам научиться использовать терминал и просто изучить основные команды. Так что как делать вещи, например, изменение каталогов, возможно, название файла, перемещение файлов, удаление файлов, просто вот такие вещи.</p><h2>Терминал и GitHub</h2><p>И еще одна конкретная вещь, которую нужно изучить с терминалом, это как использовать Git и GitHub. Git - это просто система контроля версий. Она просто отслеживает все ваши изменения, как история Google Docs, но только для кодирования.</p><p>И GitHub - это просто веб-сайт для загрузки вашего репозитория Git, таким образом, вы можете поделиться им с другими людьми. И теперь, чтобы начать писать некоторый бэк-энд код, я бы порекомендовал вам изучить Node.js с Express. Причина, по которой я говорю это, заключается в том, что Node.js позволяет вам использовать JavaScript на бэк-энде, так что вам не нужно изучать целый новый язык программирования, просто несколько новых функций для JavaScript. И с Node вам также нужно изучить NPM или менеджер пакетов node, который просто позволяет вам интегрировать открытый исходный код в ваши собственные проекты.</p><p>И вы будете использовать это намного больше в будущем. Так что теперь вы должны быть в состоянии создать бэк-энд, но обычно с бэк-эндом нам нужно хранить некоторую информацию, которая фактически сохраняется со временем.</p><h2>Базы данных и SQL</h2><p>И для этого вам нужно изучить немного о базах данных. Существует два основных типа баз данных, и я бы изучил немного обоих. Так что у нас есть SQL-базы данных и NoSQL-базы данных. SQL или SQL - это реляционная база данных.</p><p>Так что это позволяет вам в основном иметь множество различных таблиц и как-то связывать их между собой. И существует множество вариантов SQL. Большинство из них очень похожи друг на друга, но MySQL, вероятно, хорошее место для начала, но не стесняйтесь использовать тот, который вам больше нравится. А NoSQL-база данных - это просто любой другой тип базы данных. Так что это может быть хранилище документов или некоторая система пар ключ-значение.</p><p>Под NoSQL могут попадать множество различных вещей, я бы начал с MongoDB, просто потому что она является самой популярной, и, конечно, в будущем, если вам когда-нибудь понадобится другой тип базы данных для чего-то конкретного, вы можете изучить его в это время. И с этим у вас должны быть основы разработки бэк-энда, так что пришло время создать свой первый проект полного стека. Здесь много чего можно сделать, так что не стесняйтесь быть креативными, но если вам нужны некоторые идеи, может быть, возьмите ту игру, которую вы создали ранее, и добавьте глобальную таблицу лидеров, которая сохраняется в базе данных. Или вы можете попробовать создать какой-то инструмент для повышения производительности, который требует базы данных в каком-то смысле. И на этом этапе вы можете добавить эти проекты в свое резюме.</p><p>Так что если это то, что вы хотите делать, попробуйте добавить какой-то уникальный поворот к любому вашему проекту, чтобы он немного выделялся. И на этом этапе вы можете сказать: где фреймворки и библиотеки? Где модные слова, такие как React и Vue и Angular? И сейчас пришло время, я думаю, начать их изучать. И ключевой момент, который здесь следует отметить, заключается в том, что мы долго ждали, чтобы их изучать.</p><h2>Фреймворки и библиотеки</h2><p>И почему это? Потому что фреймворки и библиотеки - это просто процесс упрощения. Они предоставляют некоторый предварительно написанный код для упрощения процесса разработки. Но если вы сразу перейдете к этим фреймворкам и библиотекам с самого начала, вам будет трудно на самом деле их изучить и осознать все, что они делают, если вы не понимаете код, который они заменяют.</p><p>Итак, когда вы дойдете до этой точки, где вы действительно можете их понять и создавать собственные приложения без фреймворков и библиотек, пришло время начать их изучать, потому что они важны для индустрии. Я бы начал с React, просто потому что это самый популярный, у него самая большая экосистема, и из-за всех этих вещей это также самый востребованный навык. Но, конечно, если вы предпочитаете изучить что-то другое, вы можете сделать это. И теперь, когда вы знаете React, пришло время для еще одного проекта. Что я бы сделал с этим проектом, так это просто взял бы последний проект, который вы сделали, и преобразил бы код в React. И на этом этапе я бы также изучил бы TypeScript.</p><h2>Изучите TypeScript</h2><p>Итак, TypeScript - это надмножество JavaScript, что означает, что весь JavaScript допустим в TypeScript, но не весь TypeScript допустим в JavaScript. И все, что он действительно добавляет, это строгая типизация. Таким образом, вы можете определить типы всего, что вы пишете на JavaScript, что может быть очень полезно в больших кодовых базах. Я много времени провел, пиша код, но не так много времени думая о том, как этот код вообще попадает в браузер, как работает весь этот интернет. Поэтому я бы изучил немного компьютерных сетей.</p><p>Это действительно будет очень важно в будущем. Просто изучите основы того, что происходит, когда вы вводите URL в свой браузер. Если вы можете ответить на этот вопрос, вы, вероятно, хорошо разбираетесь в компьютерных сетях, если только вас это не интересует и вы хотите углубиться. И конкретно это означает, что вам нужно понять такие вещи, как IP-адреса, HTTP и HTTPS, и систему DNS. И я создавал эти веб-сайты, но мы знаем только, как запускать их с нашего собственного компьютера. Поэтому пришло время изучить немного об облачных вычислениях, потому что что бы произошло, если бы в моем доме отключили свет?</p><p>Ну, мой веб-сайт бы вышел из строя, и это нехорошо. Поэтому мы хотим узнать, как использовать облако вместо этого.</p><h2>Облачные вычисления</h2><p>Облачные вычисления просто позволяют вам запускать свой код на компьютерах кого-то другого. Крупнейшие поставщики облачных вычислений будут Amazon с AWS, Google с GCP и Microsoft с Azure. Я бы порекомендовал начать с AWS, просто потому что это самый популярный, но любой из них подойдет.</p><p>И на данный момент, как и многие другие вещи, вам не нужно углубляться слишком сильно. Вы можете узнать больше, когда вам понадобится что-то в будущем, но сейчас просто научитесь развертывать свое веб-приложение в облаке. Поэтому, если вы используете AWS, вам захочется узнать, как использовать EC2. И сейчас, когда вы изучаете, как использовать облако, также может быть полезно углубиться немного в инфраструктуру.</p><h2>Docker и контейнеры</h2><p>Таким образом, вы можете узнать, как использовать вещи, такие как Docker и контейнеры, что позволяет вам убедиться, что когда ваш код запускается, где бы он ни находился, он будет запускаться в изоляции и в точно такой же среде каждый раз. Далее, любому хорошему веб-разработчику следует хорошо понимать безопасность, потому что вам нужно уметь не только защищать свой веб-сайт, но и данные ваших пользователей. Для этого вам нужно понять некоторые из наиболее распространенных атак, которые могут быть совершены против вашего веб-сайта. Это такие вещи, как SQL-инъекции, межсайтовая подделка запросов или межсайтовый скриптинг. И затем вам нужно узнать о различных концепциях, используемых для предотвращения этих типов атак. Такие вещи, как CORS и валидация ввода как на стороне клиента, так и на стороне сервера, а также просто шифрование.</p><p>Таким образом, убедитесь, что мы используем HTTPS и что мы шифруем пользовательские данные, такие как пароли. И теперь вы создаете эти невероятные веб-сайты, но вам нужно убедиться, что они действительно производительны и что они высоко ранжируются в поиске на Google. Хороший способ сделать это - использовать Next.js и более обще изучить серверный рендеринг. Это позволяет вам рендерить некоторые компоненты с серверной стороны и отправлять их обратно, как сырой HTML на фронт-энд.</p><p>Это не только может сделать ваши страницы более производительными, но также облегчает понимание содержимого вашей страницы ботами, используемыми компаниями, такими как Google, и правильно индексировать их в поисковых системах. Конечно, по мере изучения всех этих различных вещей, будут естественно вещи, которые вам очень нравятся, и вещи, которые вам совсем не нравятся. Так что не стесняйтесь пропускать некоторые менее важные вещи, которые вам могут не нравиться так сильно, и углубляться в те вещи, которые вам нравятся, но при этом вы хотите убедиться, что вы все еще учитесь правильно.</p>]]></content:encoded>
    </item>
    <item>
      <title>Насколько вы типичный программист — тест</title>
      <link>https://tproger.ru/articles/naskolko-vy-tipichnyj-programmist-test</link>
      <comments>https://tproger.ru/articles/naskolko-vy-tipichnyj-programmist-test?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/naskolko-vy-tipichnyj-programmist-test</guid>
      <description><![CDATA[<p>Выясняем, насколько читатели Tproger — типичные программисты. Пройдите тест и узнайте, насколько вы типичный или нетипичный разработчик.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/naskolko-vy-tipichnyj-programmist-test">Насколько вы типичный программист — тест</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Юмор]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 17 Jan 2024 14:22:28 GMT</pubDate>
    </item>
    <item>
      <title>Stack Overflow провёл опрос о любимых языках программирования. Выиграл Rust</title>
      <link>https://tproger.ru/articles/stack-overflow-provyol-opros-o-lyubimyh-yazykah-programmirovaniya-vyigral-rust</link>
      <comments>https://tproger.ru/articles/stack-overflow-provyol-opros-o-lyubimyh-yazykah-programmirovaniya-vyigral-rust?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дух айтишной эмо школы]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/stack-overflow-provyol-opros-o-lyubimyh-yazykah-programmirovaniya-vyigral-rust</guid>
      <description><![CDATA[<p>Команда Stack Overflow провела опрос пользователей, чтобы выяснить, какой язык программирования стал лучшим среди разработчиков в 2023 году.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/stack-overflow-provyol-opros-o-lyubimyh-yazykah-programmirovaniya-vyigral-rust">Stack Overflow провёл опрос о любимых языках программирования. Выиграл Rust</a>»</p>]]></description>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 14 Jun 2023 09:20:19 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда Stack Overflow <a href="https://survey.stackoverflow.co/2023/">провела опрос пользователей</a>, чтобы выяснить, какой язык программирования стал самым любимым среди разработчиков в 2023 году.</p><p>Всего в исследовании приняли участие 90 тысяч разработчиков. Также Stack Overflow спросил у респондентов, какими инструментами они чаще всего пользуются, включив в варианты ответа ИИ-инструменты вроде ChatGPT.</p><p>Самыми популярными языками оказались JavaScript, HTML/CSS и Python. При этом JS занимает первое место в рейтинге уже 11 лет подряд.</p><figure><img src="https://media.tproger.ru/uploads/2023/06/78cde501-168b-46cf-878e-5cac2ef12398.png" alt="" /></figure><p>HTML/CSS и JavaScript — самые популярные языки для людей, изучающих программирование.</p><p>Студенты-разработчики чаще используют Python, чем SQL (59% против 37%), в то время как профессиональные разработчики сообщают, что используют SQL чаще, чем Python (52% против 45%).</p><p>По сравнению с профессиональными разработчиками, те, кто учится программировать, чаще используют Java (37% против 31%), C++ (32% против 20%) и C (32% против 17%).</p><figure><img src="https://media.tproger.ru/uploads/2023/06/9cb4ce78-1499-46ed-97af-8b1d1fdea089.png" alt="" /></figure><p>Rust — язык, которым больше всего восхищаются. Более 80% разработчиков, которые использовали его однажды, хотят снова использовать его в следующем году.</p><p>Меньше всего восхищаются языком программирирования MATLAB. Менее 20% разработчиков, использовавших этот язык, хотят использовать его снова в следующем году.</p><figure><img src="https://media.tproger.ru/uploads/2023/06/58ab5bd2-9e59-4aaa-a12b-cd0bdcf5d092.png" alt="" /></figure><p>Что касается инструментов для работы с БД, в 2023 году PostgreSQL занял первое место и обошёл MySQL.</p><p>Профессиональные разработчики чаще используют PostgreSQL (50%), а те, кто учится, чаще используют MySQL (54%).</p><p>MongoDB используется одинаковой популярностью как профессиональных разработчиков, так и у студентов. Это вторая по популярности база данных для тех, кто учится программировать после MySQL.</p><figure><img src="https://media.tproger.ru/uploads/2023/06/c51146b5-fc33-4534-bf6d-3a5047f63bda.png" alt="" /></figure><p>Node.js и React.js — две самые популярные веб-технологии. Профессиональные разработчики используют и то, и другое в равной степени. Студенты чаще используют Node.js, чем React (52% против 48%).</p><p>jQuery больше используется профессиональными разработчиками, чем студентами (24% против 18%). Express больше используется студентами, чем профессионалами (25% против 18%).</p><figure><img src="https://media.tproger.ru/uploads/2023/06/86a8d176-b329-4f9f-8075-4a4824e22fcc.png" alt="" /></figure><p>Что касается ИИ-инструментов, чаще всего респонденты выбирают ChatGPT: 83% респондентов использовали его в прошлом году. Это больше, чем у Bing AI, на 20%.</p><p>Ознакомиться с полным исследованием от Stack Overflow можно на их лендинге:</p>]]></content:encoded>
    </item>
    <item>
      <title>Подборка мемов от Tproger — кранчи, Stack Overflow и зарплаты джунов ☕</title>
      <link>https://tproger.ru/articles/podborka-memov-ot-tproger-kranchi-stack-overflow-i-zarplaty-dzhunov</link>
      <comments>https://tproger.ru/articles/podborka-memov-ot-tproger-kranchi-stack-overflow-i-zarplaty-dzhunov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/podborka-memov-ot-tproger-kranchi-stack-overflow-i-zarplaty-dzhunov</guid>
      <description><![CDATA[<p>Собрали подборку лучших мемов за прошлую неделю из наших юмористических каналов — IT Юмора в Телеграме и /dev/null в VK.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/podborka-memov-ot-tproger-kranchi-stack-overflow-i-zarplaty-dzhunov">Подборка мемов от Tproger — кранчи, Stack Overflow и зарплаты джунов ☕</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Ruby on Rails]]></category>
      <category><![CDATA[Баги и ошибки]]></category>
      <category><![CDATA[Юмор]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 12 Dec 2022 13:21:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>Собрали подборку лучших мемов за прошлую неделю из наших юмористических каналов — <a href="https://t.me/+ANwhTyPVDARhNzAy">IT Юмора</a> в Телеграме и <a href="https://vk.com/tnull">/dev/null</a> в VK.</p><p>Налейте любимый напиток в огромную кружку и украсьте понедельник мемами!</p><h2>Ищем сотрудника. Кранчей (не) будет</h2><p>«Если это календарь вам о чём-нибудь говорит, то просканируйте QR-код»</p><p>В комментариях обратили внимание на работу в выходные:</p><figure><img src="https://media.tproger.ru/uploads/2022/12/Snimok-jekrana-ot-2022-12-12-15-25-47.png" alt="" /></figure><h2>Немного о синдроме самозванца</h2><p>«Не знаю, спроси у челов на Stack Overflow»</p><p>Эй, а в чём проблема с веб-разработкой?..</p><figure><img src="https://media.tproger.ru/uploads/2022/12/Snimok-jekrana-ot-2022-12-12-15-26-47.png" alt="" /></figure><h2>В погоне за KPI</h2><p>Хорошо ведь, вышел в плюс получается</p><p>Постарайтесь не выгореть, любимые читатели!..</p><figure><img src="https://media.tproger.ru/uploads/2022/12/Snimok-jekrana-ot-2022-12-12-15-27-52.png" alt="" /></figure><h2>Хорошо, когда у джуна есть зарплата</h2><p>Редкое фото, на котором джуниор получает свою первую зарплату:</p><p>Однажды Эрнест Хемингуэй поспорил, что сможет написать самый короткий рассказ, способный растрогать любого. Он выиграл спор, написав рассказ из трёх строк:</p><figure><img src="https://media.tproger.ru/uploads/2022/12/Snimok-jekrana-ot-2022-12-12-15-29-31.png" alt="" /></figure><h2>Блокнот — тоже IDE?</h2><p>Дорогая IDE, не лети впереди паровоза.</p><p>Вспомнил известный рассказ про <a href="https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B8%D0%B7%D0%B0_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0)">Элизу</a>. В рассказе код писали в тетрадке:</p><figure><img src="https://media.tproger.ru/uploads/2022/12/Snimok-jekrana-ot-2022-12-12-15-30-34.png" alt="" /></figure><h2>Опыт разработки — 71 год</h2><p>Очень быстрый набор опыта</p><p>Но есть способ и похитрее:</p><figure><img src="https://media.tproger.ru/uploads/2022/12/Snimok-jekrana-ot-2022-12-12-15-31-32.png" alt="" /></figure><p>Делитесь своими мемами под этой записью, и пусть ваш понедельник будет задорным. ?</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow продали за почти 2 миллиарда долларов</title>
      <link>https://tproger.ru/news/stack-overflow-prodali-za-pochti-2-milliarda-dollarov</link>
      <comments>https://tproger.ru/news/stack-overflow-prodali-za-pochti-2-milliarda-dollarov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-prodali-za-pochti-2-milliarda-dollarov</guid>
      <description><![CDATA[<p>Сервис входит в топ-50 самых популярных сайтов мира с аудиторией более 100 млн человек в месяц. Покупателю уже принадлежат доли в Skillsoft, Udemy и Codecademy.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-prodali-za-pochti-2-milliarda-dollarov">Stack Overflow продали за почти 2 миллиарда долларов</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 02 Jun 2021 17:38:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>Как стало известно, европейская компания Prosus приобрела Stack Overflow за 1,8 млрд долларов. Ресурс входит в топ-50 самых популярных веб-сайтов на планете — его ежемесячная аудитория составляет более 100 млн человек.</p><figure><img src="https://media.tproger.ru/uploads/2021/06/1-2.jpg" alt="" /></figure><p>Стоит отметить, что Prosus NV владеет долями в таких крупных образовательных платформах как Skillsoft, Udemy и Codecademy. Теперь же к ним добавится и Stack Overflow, который является одной из самых популярных платформ для получения ответов от коммьюнити той или иной сферы.</p><p>Ожидается, что окончательно сделка будет закрыта в третьем квартале 2021 года. При условии, что регулирующие органы одобрят её, а все условия закрытия будут выполнены.</p><p>Отметим, что ранее, в апреле, европейская компания продала 2% от своей доли в другом IT-гиганте — китайской Tencent. Это принесло Prosus более 14 млрд долларов.</p><p>Источник: <a href="https://www.prosus.com/news/prosus-to-acquire-stack-overflow-for-us18-billion/">Prosus</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Энтузиасты нашли голосование, давшее название Stack Overflow</title>
      <link>https://tproger.ru/news/jentuziasty-nashli-golosovanie-davshee-nazvanie-stack-overflow</link>
      <comments>https://tproger.ru/news/jentuziasty-nashli-golosovanie-davshee-nazvanie-stack-overflow?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/jentuziasty-nashli-golosovanie-davshee-nazvanie-stack-overflow</guid>
      <description><![CDATA[<p>Опрос Джеффа Этвуда на Coding Horror от 6 апреля 2008 года: вариант Stack Overflow набрал 1721 голос, Private Void — 934, был и Dereferenced.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/jentuziasty-nashli-golosovanie-davshee-nazvanie-stack-overflow">Энтузиасты нашли голосование, давшее название Stack Overflow</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[История IT]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 25 Feb 2021 11:47:19 GMT</pubDate>
      <content:encoded><![CDATA[<p>На Reddit набирает популярность <a href="https://www.reddit.com/r/programming/comments/lrfi9f/in_2008_jeff_atwood_hosted_a_poll_on_his_blog_of/">тред</a>, в котором пользователь под ником officergabe опубликовал ссылку на голосование 2008 года. С его помощью сооснователь платформы Stack Overflow как раз пытался определиться с названием проекта.</p><p>Оригинальный <a href="https://blog.codinghorror.com/help-name-our-website/">пост</a> на Coding Horror датируется 6 апреля 2008 года, то есть почти за полгода до релиза сервиса. В нём Джефф Этвуд спрашивает у своих читателей, как лучше назвать его новый проект. На выбор было представлено множество вариантов, в числе которых был и ставший финальным Stack Overflow.</p><figure><img src="https://media.tproger.ru/uploads/2021/02/Screen-Shot-2021-02-25-at-14.40.01.png" alt="" /><figcaption>Забавно наблюдать за тем, как из-за «кривой» сетки результаты очень странно отформатированы</figcaption></figure><p>Название, ставшее финальным, получило 1721 голосов — 25% от общего числа проголосовавших. На втором месте по популярности было Private Void — этот вариант набрал 934 голоса (14%). Замкнуло тройку лидеров название Dereferenced с 755 голосами (11%).</p><p>В том же посте Этвуд даёт ссылку на подкаст. В нём разработчик рассказал о том, что вообще будет представлять будущий Stack Overflow.</p><p>Источник: <a href="https://www.reddit.com/r/programming/comments/lrfi9f/in_2008_jeff_atwood_hosted_a_poll_on_his_blog_of/">Reddit</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Создатель C++ ответил на 5 самых популярных вопросов по C++ со Stack Overflow</title>
      <link>https://tproger.ru/translations/answers-to-most-popular-questions-cpp</link>
      <comments>https://tproger.ru/translations/answers-to-most-popular-questions-cpp?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/answers-to-most-popular-questions-cpp</guid>
      <description><![CDATA[<p>Создатель C++ Бьёрн Страуструп отвечает на популярный вопрос о том, почему отсортированный массив обрабатывается быстрее неотсортированного.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/answers-to-most-popular-questions-cpp">Создатель C++ ответил на 5 самых популярных вопросов по C++ со Stack Overflow</a>»</p>]]></description>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 10 Feb 2020 14:04:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>Бьёрн Страуструп (дат. Bjarne Stroustrup) — технический сотрудник и управляющий директор Morgan Stanley в Нью-Йорке, профессор Колумбийского Университета и создатель C++.</p><p>Авторы курса <a href="https://www.codecademy.com/learn/learn-c-plus-plus">Learn C++</a> из Codecademy взяли у Страуструпа интервью. В <a href="https://tproger.ru/articles/bjarne-stroustrup-interview/">отдельном материале</a> можно почитать его рассуждения про значимость языка и советы всем начинающим программистам. А здесь мы перевели его ответы на 5 самых популярных вопросов по C++ за всё время.</p><h2>— Почему отсортированный массив обрабатывается быстрее, чем не отсортированный?</h2><p>Посмотреть этот вопрос на Stack Overflow, на русском Stack Overflow</p><p>— Очень похоже на вопрос с собеседования. Это и правда так? Как это можно проверить? Отвечать на вопрос про производительность, не проведя перед этим измерения — плохая идея, так что нам важно понять, как проводить эти измерения.</p><p>Итак, я проверил сортировку массива миллиона целых чисел:</p><p>Прим. перев.  В оригинальном вопросе автор находил сумму элементов массива и на отсортированных данных это получалось почти в 10 раз быстрее. Страуструп вместо сложения взял ещё одну сортировку и проверил, что быстрее отсортируется: уже упорядоченный массив или рандомный. Звучит глупо, но на самом деле ответ универсальный и применим к любым операциям с массивами. Если данные упорядочены, то работать, скорее всего, будет быстрее.</p><p>Я запустил код несколько раз, чтобы убедиться. Действительно, то, о чём говорится в вопросе — правда. Я использовал следующий код:</p><p>По крайней мере это правда для моего компилятора, стандартной библиотеки С++ и моих настроек оптимизатора. Разные реализации могут привести и приведут к разным результатам. Есть исследование на эту тему (должно легко гуглиться), и в большинстве реализаций компилятора С++ будет наблюдаться такой же эффект.</p><p>Первая причина такого поведения лежит в механизме предсказания ветвлений (branch prediction): основная операция в алгоритме сортировки — сравнение if (v[i] &lt; pivot]) ... или его эквивалент. Для упорядоченной последовательности это сравнение будет всегда истинно, тогда как в рандомном массиве выбор ветки будет случайным.</p><p>Другая причина в том, что если массив уже упорядочен, нам не нужно перемещать элементы на правильные позиции. Из-за этих небольших деталей мы и получаем разницу во времени в 5 или 6 раз.</p><p>Алгоритм быстрой сортировки (да и алгоритмы сортировки вообще) — это целое исследование, которым занимались величайшие умы computer science. Хорошая функция для сортировки подразумевает как выбор правильного алгоритма, так и учёт особенностей реализации железа.</p><p>Если вы хотите писать эффективный код, вам нужно хотя бы немного знать об архитектуре компьютеров.</p><h2>— Что за оператор −−&gt; в С++?</h2><p>Посмотреть этот вопрос на Stack Overflow, на русском Stack Overflow</p><p>— Это старый хитрый вопрос. В С++ нет оператора −−&gt;.</p><p>Рассмотрим такой код:</p><p>Выглядит так, как будто и правда есть оператор −−&gt;, и если правильно объявить переменные p и m, то код даже скомпилируется и запустится:</p><p>Это означает: если p−− больше чем m (а это так), то надо сравнить результат (true) с нулём. Ну, true != 0, так что результат всего выражения — false, и функция f() не вызовется. Другими словами:</p><p>Пожалуйста, не тратьте много времени на подобные вопросы. Они сбивали с толку новичков ещё до того, как появился С++.</p><h2>— Исчерпывающий список книг по С++</h2><p>Посмотреть этот вопрос на Stack Overflow, на русском Stack Overflow</p><p>— К сожалению, такого списка нет. И не может быть. Разным людям нужна разная информация, у них разный бэкграунд, а сам язык С++ постоянно развивается.</p><p>Я поискал в интернете — там целый набор подобных списков, это сбивает столку. Одни серьёзно устарели, другие изначально плохи. Беспомощный новичок запутается в поисках хорошей книги.</p><p>Вам и правда нужна именно книга для изучения С++, потому что техники, которые делают этот язык эффективным, не очень-то легко почерпнуть из отдельных заметок в блогах. И, конечно, информация там бывает ошибочной, устаревшей, с плохим объяснением. Кроме того, там часто фокусируются на продвинутом материале о нововведениях и пропускают необходимые основы.</p><p>Рекомендую мою книгу <a href="https://www.ozon.ru/context/detail/id/33852757/">«Программирование. Принципы и практика с использованием C++»</a> для тех, кто только начинает изучать программирование, и <a href="https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832/">«A Tour of C++»</a> для тех, кто уже программирует и хочет больше узнать о современном С++. Люди с хорошей математической базой могут начать с книги Питера Готтшлинга <a href="https://www.ozon.ru/context/detail/id/136427551/">«Современный C++. Для программистов, инженеров и ученых»</a>.</p><p>Когда вы начнёте использовать C++ по-настоящему, вам понадобится набор правил, чтобы научиться лучшим практикам. Для этого на гитхабе есть <a href="https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md">C++ Core Guidelines</a>.</p><p>За короткими ёмкими объяснениями отдельных особенностей языка и функций стандартной библиотеки рекомендую идти на сайт <a href="https://en.cppreference.com/w/">cppreference</a>.</p><p>Бьёрн Страуструп: не существует исчерпывающего списка книг по C++, это бред.</p><p>Тем временем редакторы Tproger:</p><h2>— Чем отличаются ссылки от указателей в С++?</h2><p>Посмотреть этот вопрос на Stack Overflow, на русском Stack Overflow</p><p>— И ссылка, и указатель хранят в памяти машинный адрес. Разница в том, как они используются.</p><p>Чтобы инициализировать указатель, вы даёте ему адрес объекта:</p><p>Чтобы считывать и записывать значение через указатель, надо использовать оператор разыменования (*):</p><p>Если присвоить одному указателю другой, они оба будут указывать на один и тот же объект:</p><p>Заметьте, что один и тот же указатель может в разное время своей жизни указывать на разные объекты. Это ключевое отличие от ссылок. Ссылка привязана к конкретному объекту в момент своего создания и не может позже ссылаться на что-то ещё.</p><p>Для ссылок происходит неявное разыменование. Вы инициализируете ссылку объектом, и в ссылке сохраняется адрес этого объекта:</p><p>Оператор new возвращает указатель, так что нам нужно разыменовать его перед присваиванием.</p><p>Чтобы считывать и записывать значения через ссылку, нам надо просто использовать имя этой ссылки (без явного разыменования):</p><p>Когда мы присваиваем одну ссылку другой, то будет скопировано именно значение по ссылке, а не сама ссылка:</p><p>Что ссылки, что указатели часто используются в качестве аргументов функции:</p><p>Указатель может быть и nullptr, так что нам нужно следить за тем, чтобы он в принципе на что-то указывал. А ссылка всегда относится к какому-то объекту.</p><h2>— Как пройтись по словам в строке С++?</h2><p>Посмотреть этот вопрос на Stack Overflow, на русском Stack Overflow прямого аналога не нашли</p><p>Надо использовать stringstream. Но как определить, что такое «слово»? Скажем, в предложении «Я устал переводить эту статью.» последнее слово «статью» или «статью.»?</p><p>Прим. перев.  Перевели строки в коде на кириллицу, компилируется на C++14 (clang 8.0).</p><p>Если пунктуации нет вообще, то всё просто:</p><p>Или даже так:</p><p>По умолчанию оператор &gt;&gt; пропускает пробелы. Если же нам нужен настраиваемый набор разделителей слов, код будет посложнее:</p><p>Здесь функция d служит для определения, является ли символ разделителем, и я возвращаю "" (пустую строку) чтобы обозначить, что слов для возвращения не было.</p><p>Если у вас есть библиотека Range из C++20, можете использовать split_view вместо того, чтобы писать это всё самостоятельно.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вечерний обзор IT-новостей 17 мая</title>
      <link>https://tproger.ru/newsletter/17-may-2019</link>
      <comments>https://tproger.ru/newsletter/17-may-2019?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/newsletter/17-may-2019</guid>
      <description><![CDATA[<p>ПФР готовится к переходу на электронные трудовые книжки, Stack Overflow сообщил о взломе своих систем, США разбираются в аварии с автопилотом Tesla.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/newsletter/17-may-2019">Вечерний обзор IT-новостей 17 мая</a>»</p>]]></description>
      <category><![CDATA[Tesla]]></category>
      <category><![CDATA[Автопилот]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Аргументы и функции]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 17 May 2019 17:30:06 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Цифровизация</h2><p>ПФР <a href="https://iz.ru/877378/elena-rozhkova/vperedi-gosdumy-vsei-pfr-otcifroval-trudovye-knizhki-rossiian">заявляет</a>, что оцифровал трудовые книжки всех россиян. Это значит, что при найме на работу документы можно будет подавать в электронном виде. Есть лишь два «но».</p><p>Во-первых, под это дело пока нет правовой базы. Минтруд планирует внести в Госдуму законопроект об электронных трудовых книжках до конца весенней сессии — до 28 июля. Если его примут, закон вступит в силу со следующего года.</p><p>Во-вторых, даже если он вступит в силу, россиянам всё равно придётся возиться с бумажками. Для надёжности. Даже в электронном виде ваш стаж может затеряться в интернетах и не дойти до ПФР. В таком случае придётся подтверждать его документально.</p><p>***</p><p>В России <a href="https://news.microsoft.com/ru-ru/zavtra-digital-dictant/">проведут</a> диктант на тему цифровой грамотности. Он состоит из трёх блоков с вопросами:</p><ul><li>о самых базовых вещах — как обращаться с девайсами и работать с приложениями;</li><li>об онлайне и соцсетях;</li><li>о кибербезопасности.</li></ul><p>В диктанте можно поучаствовать очно 18 мая (доступно <a href="http://digitaldictation.ru/regional/">67 площадок в 57 городах России</a>) или онлайн с 18 по 24 мая (на сайте <a href="https://цифровойдиктант.рф/">цифровойдиктант.рф</a>).</p><h2>Последствия</h2><p>Команда Stack Overflow <a href="https://stackoverflow.blog/2019/05/16/security-update/">объявила</a>, что 11 мая неизвестные получили доступ к внутренним системам сайта. Идёт расследование. Разработчики выясняют, насколько всё серьёзно, и проверяют сервис на уязвимости.</p><p>Утекли пользовательские данные или нет, неизвестно. Руководство сервиса этого не исключает, но подтверждений пока нет.</p><p>***</p><p>1 марта во Флориде произошло ДТП. Tesla Model 3 ехала по автомагистрали, когда с прилегавшей дороги ей наперерез выехал тягач с полуприцепом. В этот полуприцеп и въехала Tesla. Машине полностью срезало крышу, водитель погиб.</p><figure><img src="https://media.tproger.ru/uploads/2019/05/b95a5adf59077712d0ffc96b2f59d6291.jpg" alt="" /></figure><p>Этот случай расследовал Национальный совет по безопасности на транспорте США. Недавно специалисты <a href="https://nplus1.ru/news/2019/05/17/tesla">опубликовали</a> отчёт. Ключевые факты:</p><ul><li>водитель включил автопилот за 10 секунд до столкновения;</li><li>через 2 секунды после включения автопилота он убрал руки с руля;</li><li>автомобиль ехал со скоростью 109 км/ч при разрешённых 89 км/ч;</li><li>ни водитель, ни автопилот не попытались предотвратить столкновение.</li></ul><p>Третья авария со смертельным исходом с 2015 года.</p><p>Эксперты жалуются, что компания вводит клиентов в заблуждение насчёт возможностей своих автомобилей. По факту они оснащены продвинутыми системами круиз-контроля. Но подаются как полноценные (или близкие к тому) беспилотные системы. Одна вообще называется «Full Self-Driving Capability» — водитель может подумать, что от него действительно ничего не требуется.</p><p>Конечно, технологии развиваются быстро, но, увы, не настолько. Не забывайте о безопасности.</p><h2>5G</h2><p>Сферический 5G в вакууме на скорости больше 1000 Мбит/с:</p>]]></content:encoded>
    </item>
    <item>
      <title>Опрос Stack Overflow 2019: Python, DevOps и подростки</title>
      <link>https://tproger.ru/news/stack-overflow-survey-2019</link>
      <comments>https://tproger.ru/news/stack-overflow-survey-2019?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-survey-2019</guid>
      <description><![CDATA[<p>Ежегодное исследование Stack Overflow прошли 90 тысяч разработчиков: Python обогнал Java, а больше половины писали первый код в шестнадцать лет.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-survey-2019">Опрос Stack Overflow 2019: Python, DevOps и подростки</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 10 Apr 2019 14:00:55 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда Stack Overflow подготовила отчёт по ежегодному исследованию программерского сообщества на сайте. Задавали вопросы про языки программирования, удовлетворённость работой, профессиональными перспективами, про рабочий процесс и так далее.</p><h2>Хайлайты</h2><p>Разработчики снова выделили Python среди других языков программирования. Он находится не на первых строчках, но определённо в первых рядах, обогнав Java. В рейтинге языков, которые программисты больше всего любят, Python занимает второе место (на первом — Rust).</p><figure><img src="https://media.tproger.ru/uploads/2019/04/10.-stack-overflow_1.png" alt="" /></figure><p>Больше половины респондентов написали первую строчку кода в шестнадцать лет. Это в среднем по всем странам без учёта возраста. В России подростки начинают кодить с 14,5 лет.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/10.-stack-overflow_2.png" alt="" /></figure><p>DevOps-специалисты получают наиболее высокую зарплату, обладают наибольшим опытом и наиболее удовлетворены своей работой. Среди них меньше всего людей, которые ищут новую работу.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/10.-stack-overflow_3.png" alt="" /></figure><p>Китайские разработчики выразили наиболее оптимистический взгляд на будущее. Они считают, что современное поколение людей будет жить лучше своих родителей. Западноевропейские разработчики оказались наименее оптимистичными.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/10.-stack-overflow_4.png" alt="" /></figure><p>Среди факторов, мешающих продуктивности, респонденты отметили необходимость решать задачи, не связанные с разработкой, а ещё совещания и рабочую среду, которая постоянно отвлекает от работы.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/10.-stack-overflow_5.png" alt="" /></figure><p>В этом году в исследовании участвовали 90 тысяч разработчиков из разных стран мира. <a href="https://tproger.ru/articles/stack-overflow-survey-18/">В прошлом году</a> респондентов было больше 100 тысяч.</p>]]></content:encoded>
    </item>
    <item>
      <title>Первоапрельские шутки: змейка, разговоры с тюльпанами и прочие сюрпризы от мировых брендов</title>
      <link>https://tproger.ru/articles/april-fools-2019</link>
      <comments>https://tproger.ru/articles/april-fools-2019?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Туренко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/april-fools-2019</guid>
      <description><![CDATA[<p>Stack Overflow вернула дизайн девяностых и спрятала пасхалку, а другие компании поддержали 150-летнюю традицию собственными розыгрышами.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/april-fools-2019">Первоапрельские шутки: змейка, разговоры с тюльпанами и прочие сюрпризы от мировых брендов</a>»</p>]]></description>
      <category><![CDATA[Юмор]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 01 Apr 2019 12:36:54 GMT</pubDate>
      <content:encoded><![CDATA[<p>Многие компании продолжают шутить по 150-летней традиции, а мы продолжаем делать обзоры на их розыгрыши. Что ж, перейдём к делу!</p><h2>Stack Overflow</h2><h3>Вернули 90-е вместо 2007-го…</h3><p><a href="https://stackoverflow.com/">Stack Overflow</a> обновила дизайн в стиле веб-сайтов девяностых и начала нулевых. Среди пользователей нашлось немало фанатов такого оформления, которые хотели даже использовать эту тему в качестве основной. Компания позаботилась и о тех, кому такое не по душе — можно отключить новый дизайн прямо под уведомлением, которое приветствует пользователей.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/fools-day-2019-stack-overflow-1540x849.jpg" alt="" /></figure><h3>Весенняя лошадка</h3><p>Разработчики Stack Overflow также добавили пасхалку для любопытных пользователей и копателей исходных кодов страниц.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/stack-overflow-hourse.jpg" alt="" /></figure><h2>Google</h2><h3>Google Змейка</h3><p>При входе в новую версию мобильного приложения Google Карты появляется возможность поиграть в старую добрую змейку, но с новым смыслом. Вам предстоит водить транспорт (двигается подобно змейке) и подбирать пассажиров (альтернатива маленьким точкам), а также провозить их к местным достопримечательностям или местным блюдам, что даст определённые бонусные очки в игре.</p><p>P. S. Google позаботились и о тех, кто не может или не хочет использовать приложение, выложив игру на <a href="https://snake.googlemaps.com/">отдельный сайт</a>.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/fools-day-2019-google-snake-1540x642.jpg" alt="" /></figure><h3>Google Tulip</h3><p>Сири, Алекса, Алиса? Пф.</p><p>Тюльпаны! Теперь можно общаться с тюльпанами! А ещё с кактусами. У вас с ними больше общего, чем кажется. Ведь тюльпаны любят воду, свежий воздух и солнечный свет. А кактусы, как оказалось, интроверты.</p><p>Разговоры с тюльпанами доступны через Google Home и Google Assistant.</p><p>Подробнее о новости <a href="https://www.blog.google/products/home/google-tulip/">можно прочитать</a> на официальном сайте, а о реализации — в <a href="https://medium.com/google-cloud/google-tulip-the-technical-details-719c317bf2df">блоге</a> одного из разработчиков. Ознакомиться и поиграть с исходным кодом можно в <a href="https://github.com/GoogleCloudPlatform/tulip">соответствующем репозитории</a>.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/google-tulip-in-action.jpg" alt="" /></figure><p>Акт коммуникации в действии:<br /> Тюльпан предполагает, что они с пользователем могут быть родственниками</p><h3>Google Ложка</h3><p>Японское подразделение Google вновь отличилось и <a href="https://landing.google.co.jp/---o/">представило</a> новый инструмент для набора текста — гнущаяся ложка. Выбор той или иной буквы зависит от силы наклона ложки. Подробнее смотрите в демонстрации ниже.</p><p>P. S. Она ещё и мысли читает, если подключить соответствующую гарнитуру.</p><h3>Google Files — теперь чистит ваш телефон и изнутри, и снаружи</h3><p>Google выпустила шутливый видеоролик для своего приложения <a href="https://files.google.com/">Files</a>, в котором отмечается, что приложение способно обнаруживать загрязнения на экране в том числе с помощью генератора симуляции тактильных действий. Далее после очистки будет создаваться «грязеотталкивающее» покрытие, которое защитит телефон он соусов и жирных отпечатков после пирожков.</p><p>Наверное. Когда-нибудь.</p><h2>Tinder</h2><p>Сервис знакомств <a href="https://blog.gotinder.com/introducing-height-verification/">выпустил</a> новую функцию — верификация по росту. Теперь парней с ростом 6 футов (183 см) станет меньше. Компания акцентировала внимание именно на 6 футах, так как большинство американских парней ставят именно такой рост. <a href="https://blog.gotinder.com/introducing-height-verification/">Ожидается</a>, что около 80 % пользователей с мужским профилем добровольно-принудительно уменьшат свой виртуальный рост до реального.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/Tinder-goes-hard-1540x850.jpg" alt="" /></figure><p>Система верификации в действии</p><h2>Nintendo</h2><p>Nintendo <a href="https://www.kirby.jp/squarekirby/">изменила</a> внешний вид Kirby. Как говорят некоторые пользователи Reddit, сегодня это Squirby (square + Kirby).</p><figure><img src="https://media.tproger.ru/uploads/2019/04/kirby-squirby.jpg" alt="" /></figure><p>А qbby (он же <a href="https://ru.wikipedia.org/wiki/BoxBoy!">BoxBoy!</a>) в ответ на это округлился:</p><figure><img src="https://media.tproger.ru/uploads/2019/04/qbby.jpg" alt="" /></figure><h2>PornHub</h2><p>Знаменитый во всём мире ресурс для развлечений и просмотра оппозиционных роликов не перестаёт <a href="https://rt.pornhub.com/product/baterade">удивлять</a>. На этот раз пользователям представили магический напиток, обладающий крайне интимным описанием и вполне несуществующем бытием — при попытке приобрести его пользователь получает уведомление о розыгрыше.</p><p>Краткий перевод содержания:</p><p>Beterade — первый изотонический напиток, помогающий мужчинам и женщинам восстановить баланс жидкостей в организме… абсолютно ВСЕХ… после любой физической активности: от игры в карманный хоккей до драки с вашим спарринг-партнёром.Напиток обладает тремя незабываемыми вкусами: фонтанирующая папайя, разрывной банан и ореховый взрыв.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/PornHub-offer-1540x872.jpg" alt="" /></figure><h2>T-Mobile</h2><p>Американский сотовый провайдер решил <a href="https://www.t-mobile.com/news/t-mobile-introduces-phone-boothe">обустроить</a> улицы будками тишины, в которых люди могут закрыться от шума и поговорить с собеседником по телефону без посторонних звуков.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/boothe-1540x872.jpg" alt="" /></figure><p>Более того, для любителей мобильности представили уменьшенную версию BoothE. Уверяют, что работает не хуже стационарной, но выглядит довольно странно:</p><figure><img src="https://media.tproger.ru/uploads/2019/04/mobile-booth-e.jpg" alt="" /></figure><h2>Билайн сегодня Бузлайн</h2><p>Компания <a href="https://moskva.beeline.ru/customers/products/">решила</a> сделать однодневный ребрендинг и переименоваться в «Бузлайн», более того, один из тарифов также получил название в честь Ольги Бузовой — «Бузлим».</p><figure><img src="https://media.tproger.ru/uploads/2019/04/Snimok-jekrana-2019-04-01-v-13.57.10-1540x760.jpg" alt="" /></figure><h2>Ребята с 4PDA подготовили небольшое погружение в возможное будущее</h2><p>Сайт получил новый дизайн, который, вероятно, отражает возможный сценарий развития Рунета в связи с введением закона о суверенном Интернете.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/bright-future-4pda-1540x825.jpg" alt="" /></figure><p>Кроме того, умельцы потрудились над моделями телефонов для такого сценария развития общества. Например, Цифрослав может похвастаться четырьмя экранами и концептуальным интерфейсом.</p><figure><img src="https://media.tproger.ru/uploads/2019/04/4pda-cifroslav.jpg" alt="" /></figure><h2>KDE</h2><p>Функция не новая, но судя по официальному твиту, <a href="https://store.kde.org/p/1172489/">обновлённая</a> (ещё в 2017-м) и всё ещё увлекает котов. Встречайте, Bouncy Ball!</p><p>Делитесь самыми интересными находками в комментариях, а также заходите в наши <a href="https://tproger.ru/devnull/april-first-2018/">предыдущие подборки</a>, там тоже много интересных сюрпризов от всемирно известных компаний.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow обновила зарплатный калькулятор для разработчиков</title>
      <link>https://tproger.ru/news/stack-overflow-salary-new-calc</link>
      <comments>https://tproger.ru/news/stack-overflow-salary-new-calc?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-salary-new-calc</guid>
      <description><![CDATA[<p>Калькулятор зарплат Stack Overflow пополнился восемью странами, включая Россию, и новыми технологиями расчёта, среди которых React и Go.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-salary-new-calc">Stack Overflow обновила зарплатный калькулятор для разработчиков</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 06 Sep 2018 09:20:16 GMT</pubDate>
      <content:encoded><![CDATA[<p>Ресурс <a href="https://stackoverflow.blog/2018/09/05/developer-salaries-in-2018-updating-the-stack-overflow-salary-calculator/">опубликовал</a> новость о доработанной версии калькулятора зарплат. Он даёт возможность рассчитать примерный заработок разработчика, в зависимости от опыта работы, страны и города, образования специалиста и стека технологий. Методология <a href="https://tproger.ru/news/stack-overflow-calculator/">осталась</a> прошлогодней, однако список стран дополнили восемью новыми, а также обновили список технологий, влияющих на расчёт зарплаты.</p><h3>Построение модели</h3><p>Калькулятор построен на данных, полученных из результатов ежегодного <a href="https://tproger.ru/articles/stack-overflow-survey-18/">исследования</a>. Благодаря большому количеству ответов разработчиков этого года список стран был расширен. Теперь модель охватывает Австралию, Бразилию, Индию, Испанию, Нидерланды, Польшу, Россию и Швецию.</p><p>Разделение разработчиков по областям производили с учётом образования, опыта работы и их роли в проектах. Знание различных технологий сильно повлияло на уровни зарплат. Согласно данным исследователей, языки Go, Scala, хранилище Redis и библиотека React ассоциировались с высокими денежными ставками, а PHP — с низкими. В то же время повсеместно используемые технологии, например, JavaScript, на изменение уровня зарплаты влияли незначительно.</p><p>Второй год подряд для прогнозирования зарплат была выбрана множественная линейная регрессия с регуляризацией для более точного выбора переменных. Зарплаты моделировались по логарифмической шкале, потому что их распределение логарифмически-нормальное. Применение предсказательного интервала в 50 % говорит о том, что половина людей с похожими вводными данными получает отображаемую зарплату. В итоге были построены 2 модели: в первой оказались страны с высокими доходами, во второй — с низкими.</p><figure><img src="https://media.tproger.ru/uploads/2018/09/residuals-1-810x6751.jpg" alt="" /></figure><h3>Результаты исследований</h3><p>Согласно данным исследования, разработчики стали в среднем получать больше, а в таких городах, как Лондон и Сан-Франциско, зарплаты выросли на четверть по сравнению с прошлым годом. При этом, в разных городах одной страны зарплаты могут отличаться на 20 %.</p><figure><img src="https://media.tproger.ru/uploads/2018/09/salary_by_country-1-1080x6751.jpg" alt="" /></figure><p>Примечателен тот факт, что для США, Франции, Германии и Канады средний уровень зарплат по стране отличается от среднего уровня оплаты труда в отдельных городах. На графике показан разрыв между Сан-Франциско, Сиэтлом, Нью-Йорком и другими городами Соединённых Штатов:</p><figure><img src="https://media.tproger.ru/uploads/2018/09/us_boxplot-1-1080x6751.jpg" alt="" /></figure><p>Согласно результатам исследования, самыми оплачиваемыми специалистами являются DevOps-инженеры.</p><figure><img src="https://media.tproger.ru/uploads/2018/09/devtype-1-844x6751.jpg" alt="" /></figure><p>Stack Overflow не только является одним из самых популярных ресурсов для обсуждения вопросов программирования, но и создаёт проекты для развития отрасли. Так, в начале мая 2018 года <a href="https://tproger.ru/news/stack-overflow-for-teams-announced/">вышел</a> сервис, позволяющий обсуждать вопросы внутри команд. Среди нововведений — интеграция ответов команды в общую базу вопросов сервиса.</p>]]></content:encoded>
    </item>
    <item>
      <title>«Никто не должен создавать продукты на языке Си»: интервью с сооснователем Stack Overflow Джоэлом Спольски</title>
      <link>https://tproger.ru/news/joel-spolsky-interview</link>
      <comments>https://tproger.ru/news/joel-spolsky-interview?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Наташа Маркова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/joel-spolsky-interview</guid>
      <description><![CDATA[<p>Предприниматель объяснил популярность Javascript и Python, а также рассказал, почему Stack Overflow может дать конкурентное преимущество любой компании.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/joel-spolsky-interview">«Никто не должен создавать продукты на языке Си»: интервью с сооснователем Stack Overflow Джоэлом Спольски</a>»</p>]]></description>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 29 Jun 2018 15:19:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сооснователь Stack Overflow Джоэл Спольски (Joel Spolsky) дал <a href="https://t3n.de/news/joel-spolsky-stack-overflow-1088665/2/">интервью</a> немецкому изданию t3n, в котором рассказал о бизнес-модели платформы и востребованности языков программирования.</p><h3>JavaScript и Python</h3><p>Наиболее востребованы JavaScript и Python, также растет интерес к Go и Rust, говорит Спольски. Он объяснил популярность JS доступностью: язык повсеместно использовался в браузерах и многие могли легко начать экспериментировать с ним. В серверной разработке JavaScript стал популярен благодаря Node.js, отмечает бизнесмен. Востребованность Python Спольски объяснил удобством его использования в сфере машинного обучения и работы с большими объемами данных.</p><h3>Си и C++</h3><p>По словам предпринимателя, Си и C++ сейчас используются в основном в «специфических» областях и при работе со старым кодом.</p><p>Я большой поклонник Си, но считаю, что никто не должен создавать продукты с помощью Си. Даже сторонники описывают его как язык программирования «без ремня безопасности».</p><p>По мнению основателя Stack Overflow, менее востребованными становятся Java и Visual Basic.</p><h3>Stack Overflow</h3><p>Джоэл Спольски назвал собственную платформу кучей «украденных идей», но очень успешной. Например, идею тегов он увидел на Flickr, а систему оценки ответов — на Reddit. Популярность системы бизнесмен объяснил повсеместным использованием программирования.</p><p>Независимо от того, что у вас за компания, вы получаете конкурентное преимущество благодаря хорошему программному обеспечению. Для его создания вам нужны программисты и инструменты, с которыми они будут работать. Наша платформа предлагает и то, и другое.</p><p>В мае 2018 года Stack Overflow <a href="https://tproger.ru/news/stack-overflow-for-teams-announced/">выпустила</a> сервис для обсуждения вопросов внутри команд. Тогда же платформа изменила систему тегов и добавила продвинутую интеграцию со Slack.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow выпустила сервис, позволяющий обсуждать вопросы внутри команд</title>
      <link>https://tproger.ru/news/stack-overflow-for-teams-announced</link>
      <comments>https://tproger.ru/news/stack-overflow-for-teams-announced?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тимур Кондратьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-for-teams-announced</guid>
      <description><![CDATA[<p>Stack Overflow for Teams помогает небольшим командам обсуждать технические вопросы и ставит ранее данные командой ответы выше в поисковой выдаче.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-for-teams-announced">Stack Overflow выпустила сервис, позволяющий обсуждать вопросы внутри команд</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 07 May 2018 14:56:07 GMT</pubDate>
      <content:encoded><![CDATA[<p><a href="https://stackoverflow.com/teams">Stack Overflow for Teams</a> — новый проект сервиса вопросов и ответов Stack Overflow — запущен и доступен всем желающим. По словам разработчиков, платформа <a href="https://stackoverflow.blog/2018/05/03/stack-overflow-for-teams-is-now-available/">призвана</a> облегчить обсуждение технических вопросов внутри небольших команд без вреда рабочему процессу.</p><h3>Ключевые особенности</h3><p>Важным нововведением является интеграция ответов команды в общую базу вопросов сервиса. Если участник команды будет искать ответ, который уже дали ранее в его команде, то в поисковой выдаче этот результат будет приоритетнее:</p><figure><img src="https://media.tproger.ru/uploads/2018/05/stackoverflow-quesion-1.jpg" alt="" /></figure><p>Также среди полезных функций:</p><ul><li>неограниченное количество вопросов и ответов;</li><li>измененная система тегов;</li><li>продвинутая интеграция со Slack, а также использование командных функций во всем Stack Overflow.</li></ul><h3>Как начать пользоваться?</h3><p>Проект уже <a href="https://stackoverflow.com/teams/create">доступен</a> всем командам от 5 до 500 человек по подписке: новым пользователям предлагается бесплатный пробный период на 14 дней, после — по 10 $ в месяц за первую десятку участников и по 5 $ за дополнительных членов команды.</p><p>Stack Overflow также известен своими ежегодными опросами разработчиков о разных аспектах их профессиональной деятельности. Напомним, в 2018 году ко всем прочим пунктам<a href="https://tproger.ru/articles/stack-overflow-survey-18/"> были добавлены</a> отношение к ИИ и сексуальная ориентация.</p>]]></content:encoded>
    </item>
    <item>
      <title>Опрос Stack Overflow 2018: ИИ, этика и сексуальная ориентация</title>
      <link>https://tproger.ru/articles/stack-overflow-survey-18</link>
      <comments>https://tproger.ru/articles/stack-overflow-survey-18?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/stack-overflow-survey-18</guid>
      <description><![CDATA[<p>В опросе Stack Overflow 2018 разработчики отвечали об искусственном интеллекте, этике и сексуальной ориентации; анкеты заполнили более 100 тыс. человек.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/stack-overflow-survey-18">Опрос Stack Overflow 2018: ИИ, этика и сексуальная ориентация</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 18 Mar 2018 15:41:24 GMT</pubDate>
      <content:encoded><![CDATA[<p>Каждый год Stack Overflow расспрашивает разработчиков обо всем: от любимых технологий до предпочтений в работе. В 2018 году в опрос включили несколько новых пунктов, связанных с искусственным интеллектом и этической стороной разработки, а также впервые задали вопрос о сексуальной ориентации.</p><p>Восьмой ежегодный опрос собрал рекордное количество респондентов — анкеты в течение получаса заполняли более 100 тыс. разработчиков. Для сравнения, в 2017 году опрос <a href="https://tproger.ru/news/stack-overflow-survey-17/">прошли</a> 64 тысячи человек.</p><h3>Содержание</h3><ul><li><a href="https://tproger.ru/#short">Краткий обзор</a></li><li><a href="https://tproger.ru/#developers">Разработчики</a>:Опыт и специальностьОбразованиеДемографияЛичная жизнь</li><li><a href="https://tproger.ru/#technologies">Технологии</a>:«Люблю, ненавижу, хочу»Среды разработки и инструментыИскусственный интеллект</li><li><a href="https://tproger.ru/#work">Работа</a>:КомпанииЭтикаПоиски работыРабочие практикиЗаработная плата</li></ul><h3>Краткий обзор</h3><p>Команда Stack Overflow выделила основные инсайты восьмого ежегодного опроса.</p><ul><li>DevOps и машинное обучение — главные тренды разработки. Языки и фреймворки, связанные с ними, переживают подъем, и разработчики по этим направлениям получают самые высокие зарплаты.</li><li>Лишь крошечная часть разработчиков отметила, что не принимает во внимание этические вопросы или что не обязана их рассматривать. Хотя специалисты видят множество подобных проблем, они не знают, кто должен их обозначать, решать и принимать на себя ответственность.</li><li>В целом, разработчики оптимистичны относительно возможностей искусственного интеллекта, однако не достигли согласия в том, какая именно угроза в нем таится.</li><li>Рейтинг Python поднялся, обогнав С#.</li><li>Оценивая ожидания от работы, разработчики разного пола отдали предпочтение разным вещам. Женщины поставили в приоритет корпоративную культуру и условия для профессионального роста, а мужчины — размер оплаты труда и возможность поработать со специфическими технологиями.</li></ul><h3>Разработчики</h3><p>Команда Stack Overflow представила данные о географии опроса <a href="https://insights.stackoverflow.com/survey/2018#geography">в наглядной карте</a>. Больше всего респондентов собралось в США (20,6 %) и Индии (13,9 %). Разработчиков из России 2,9 %, но в масштабах опроса это примерно 2900 человек.</p><p>Кроме того, российских специалистов можно назвать самыми молодыми. Средний возраст разработчика в стране — 24,7 лет с опытом 7,6 лет. Самые «опытные» и «взрослые» программисты живут в Австралии, США и Соединенном Королевстве.</p><p>В целом, три четверти профессионалов, прошедших опрос, младше 35 лет.</p><h4>Опыт и специальность</h4><p>Почти 60 % респондентов отметились как специалисты бэкенда, и около 20 % заняты в мобильной разработке. В среднем разработчики отмечали по две специальности, но самой популярной комбинацией оказалась тройка: бэкенд-, фронтенд- и full-stack-разработка.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-1.png" alt="" /></figure><p>Почти половина всех профессиональных разработчиков вкладываются в Open Source проекты, но опрос показал сильную зависимость от языка. Среди разработчиков Rust, Julia и Clojure в проектах с открытым исходным кодом заняты 70 %, тогда как из специалистов по VBA, VB.NET и C# таких всего 40 %.</p><p>Диапазон уровней опыта в индустрии очень широк, но добрая треть специалистов получила профессию в течение последних пяти лет. По годам практики всех опережают разработчики Cobol и Perl, а замыкают топ специалисты по Matlab, Haskell и Kotlin. Если отсортировать данные по сферам деятельности, вершину рейтинга займут управленцы, специалисты DevOps и создатели настольных приложений.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-2.jpg" alt="" /></figure><h4>Образование</h4><p>Около трети респондентов обучаются в образовательных учреждениях на очной или заочной форме, при этом три четверти уже получили степень бакалавра или выше. Но опытный разработчик без степени — тоже не редкость.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-3-1024x516.jpg" alt="" /></figure><p>Почти 90 % респондентов обучались новому языку или фреймворку сами, вне образовательной программы. Из них около половины проходит онлайн-курсы на <a href="https://ru.wikipedia.org/wiki/Массовый_открытый_онлайн-курс">MOOC-платформах</a>, а четверть участвовала в хакатоне. Интересное наблюдение: 76 % респондентов отметили, что участвуют в хакатонах ради удовольствия, и только 19 % — ради награды.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-4-1024x419.jpg" alt="" /></figure><p>Чтобы оставаться востребованным, разработчик обязан учиться всю жизнь. В исследовании HackerRank разработчики <a href="https://tproger.ru/articles/2018-developer-skills-report-hackerrank/">назвали</a> самой популярной обучающей платформой Stack Overflow, а опрос на самой Stack Overflow отдал лидерство официальной документации.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-5-1024x433.jpg" alt="" /></figure><h4>Демография</h4><p><a href="https://tproger.ru/news/stack-overflow-survey-17/">Как и прежде</a>, в индустрии велик гендерный разрыв: 6,8 % женщин конкурируют с 92,7 % мужчин. Еще 0,9 % (580 человек) приходится на нон-бинарную категорию и 0,7 % (451 человек) — на трансгендеров. Кроме того, Stack Overflow впервые поинтересовался у респондентов сексуальной ориентацией:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-6.jpg" alt="" /></figure><p>Если рассматривать представление мужчин и женщин в разных ролях, то подавляющее большинство во всех составляет сильный пол, меняется только соотношение. Среди преподавателей и исследователей мужчины встречаются в 10 раз чаще, в рядах сисадминов и DevOps-специалистов — в 25–30 раз. Самое большое представление женского пола отмечено среди академиков, QA-инженеров, специалистов по большим данным и дизайнеров. Полную картину отражает график, где вертикальная ось отвечает за относительное соотношение (1 к 10 – 1 к 25), а пунктирная линия — это среднее соотношение мужского и женского представления.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-7.png" alt="" /></figure><h4>Личная жизнь</h4><p>Stack Overflow также задавал вопросы о здоровье. Наличие психологических проблем отметили 11,5 тысяч респондентов, физиологических — только 1,7 тысяч.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-8-1024x709.png" alt="" /></figure><p>Кроме того, в этом году опрос выяснял, есть ли у разработчиков кто-то, о ком они должны заботиться — дети или недееспособные родственники. Утвердительно ответила четверть респондентов, но причина может быть в возрасте: почти 60 % разработчиков, у которых за плечами десяток лет профессионального опыта, отметили наличие детей или родственников на обеспечении. Их младшие коллеги, возможно, пока не успели обзавестись семьей и обязанностями.</p><p>Разработчики считаются ночными и вечно голодными созданиями, однако опрос создал совершенно иную картину.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-9-1024x578.jpg" alt="" /></figure><p>Большинство программистов просыпается до 8 часов утра, не пропускает из-за работы приемы пищи и с разной регулярностью все же занимается спортом. Только 37,4 % отметили, что обычно не делают никаких физических упражнений.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-10.jpg" alt="" /></figure><p>Респонденты опроса — профессиональные разработчики, студенты и просто любители, и больше половины из них проводят за компьютером от 9 до 12 часов. При этом 40 % тратят на активность вне дома всего 1–2 часа, а то и меньше.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/developer-11.jpg" alt="" /></figure><h3>Технологии</h3><p>Шестой год подряд JavaScript занимает первую строку в рейтинге языков программирования. Python оставил позади C# так же, как обогнал в прошлом году PHP, и претендует на звание самого быстрорастущего языка.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-1.png" alt="" /></figure><p>При этом самые высокие зарплаты получают разработчики F#, Ocaml, Clojure и Groovy — их оклад, в среднем, превышает 70 тысяч долларов в год. За ними идут Perl, Rust и Erlang:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-9.png" alt="" /></figure><p><a href="https://insights.stackoverflow.com/survey/2018#technology-frameworks-libraries-and-tools">Рейтинг технологий</a> по-прежнему возглавляют Node.js и AngularJS, а MySQL и SQL Server лидируют в списке <a href="https://insights.stackoverflow.com/survey/2018#technology-databases">самых популярных баз данных</a>.</p><p>В отношении платформ разработчики отдают предпочтение Linux, Windows (Desktop или Server) и Android.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-2.png" alt="" /></figure><h4>«Люблю, ненавижу, хочу»</h4><p>Stack Overflow посвятила целый подраздел вопросам о самых любимых, самых ненавистных и самых желанных языках, средах разработки и инструментах. От года к году лидеры редко меняются. К примеру, третий год подряд Rust возглавляет список самых любимых языков программирования. А вот второе место занял Kotlin, впервые появившийся в опросе.</p><p>Вершину «ужасного» топа в третий раз занимает Visual Basic 6 – это значит, что высокий процент разработчиков, использующих его сейчас, не хотят продолжать с ним работать. Python второй год держится в лидерах списка языков, которые специалисты хотели бы выучить.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-3.png" alt="" /></figure><p>Такие же рейтинги составлены для фреймворков, библиотек и инструментов:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-4.png" alt="" /></figure><p>Для баз данных:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-5.png" alt="" /></figure><p>И платформ:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-6.png" alt="" /></figure><p>Полные списки можно посмотреть в разделе <a href="https://insights.stackoverflow.com/survey/2018#most-loved-dreaded-and-wanted">Most Loved, Dreaded, and Wanted</a>.</p><h4>Среды разработки и инструменты</h4><p>Visual Studio Code недавно отделился от Visual Studio, став наиболее популярным инструментом среды разработки по мнению всех респондентов. Однако при сортировке по типу разработки выявляются другие лидеры. Специалисты, работающие с мобильными приложениями, чаще выбирают Android Studio и Xcode. Системные администраторы и специалисты DevOps предпочитают Vim, а у специалистов по большим данным в фаворитах IPython/Jupyter, PyCharm и RStudio.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-7.png" alt="" /></figure><p>Как правило, совместно используемые технологии группируются в смежных экосистемах. В графике большую центральную группу формируют языки веб-разработки (JavaScript, HTML и CSS), соединенные через SQL с технологиями Microsoft (C#, Visual Studio и .NET Core):</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-10.png" alt="" /></figure><p>Stack Overflow поинтересовался операционной системой, которой разработчики пользуются большую часть времени. Половина специалистов указала Windows (49,9 %), остальные примерно поровну распределились между MacOS (26,7 %) и Linux (23,2 %).</p><p>Для 65 % разработчиков одного монитора маловато: половина из них использует как минимум два.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-8.png" alt="" /></figure><h4>Искусственный интеллект</h4><p>Многие разработчики вовлечены в стремительный поток технологий машинного обучения и искусственного интеллекта, поэтому специалистам задали вопрос: что их в этой отрасли пугает, а что завораживает? К согласию об опасениях отрасль не пришла, но восторг у большинства вызывает автоматизация труда.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-11-1024x721.png" alt="" /></figure><p>Тем не менее, ответственность за последствия в случае неблагоприятного развития событий респонденты возложили на плечи разработчиков.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-12-1024x249.jpg" alt="" /></figure><p>Однако мало кто воспринимает ИИ как угрозу. 72 % разработчиков скорее очарованы возможностями интеллектуальных технологий, чем встревожены.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/technology-13-1024x211.jpg" alt="" /></figure><p>Уровень беспокойства зависит от типа разработки. К примеру, специалист по большим данным в 1,5 раза чаще рассматривает проблемы, связанные с алгоритмами, чем вероятность сингулярности. На этот вопрос можно было дать ответ в свободной форме, и разработчики, усомнившись в сценарии «Скайнета», обсудили проблему отслеживания путей, которыми алгоритм принимает решения, и опасность использования искусственного интеллекта без возможности проверить и аргументировать их.</p><h3>Работа</h3><p>В начале опроса 80 % респондентов пометили программирование как хобби, однако выяснилось, что 74 % заняты полный рабочий день:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_0.png" alt="" /></figure><h4>Компания</h4><p>Разработчики программного обеспечения работают в широком спектре областей внутри и за пределами IT-отрасли. В этом году вопрос о сфере занятости ограничивался технологическими компаниями, и большинство специалистов отметили области веб-разработки, информационных и облачных технологий.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_1.jpg" alt="" /></figure><p>У разработчиков в таких областях, как консалтинг и здравоохранение, больше лет опыта — в этих сферах в два раза больше специалистов с двадцатилетним опытом, чем в сферах веб-разработки / дизайна или электронной коммерции.</p><p>Больше всего респондентов опроса (23,8 %) собралось в средних предприятиях, насчитывающих от 20 до 99 сотрудников. На втором месте (19,6 %) более крупные компании с количеством сотрудников от 100 до 499, а на третьем (13,6 %) — гиганты, на которых работает больше 10 тысяч людей.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_2-1024x438.jpg" alt="" /></figure><p>Спектр карьерных целей разработчиков на пять лет вперед фокусируется на технической работе, и только часть респондентов отметила, что хотела бы занимать ту же должность и заниматься той же работой. Около четверти мечтают о собственном деле, однако такая тенденция заметна среди разработчиков младше 25 лет.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_3-1024x371.jpg" alt="" /></figure><p>Респонденты по большей части довольны своей карьерой больше, чем текущей работой. В целом, удовлетворение карьерой не зависит от сферы деятельности, оно сильнее коррелирует с возрастом: выше у специалистов старше 50 лет и у тех, стаж шагнул за два десятка лет.</p><p>Удовлетворение работой значительно ниже у разработчиков, занятых в сфере финансовых сервисов и ИТ, а максимальное зафиксировано у специалистов 35–44 лет.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_4.png" alt="" /></figure><h4>Этика</h4><p>В гипотетической ситуации, когда требуется написать код, который будет использован в неэтичных целях, 58,5 % респондентов заявили, что откажутся от работы. 36,6 % разработчиков отметили вариант «зависит от проблемы» и только 4,8 % ответили согласием.</p><p>Вопрос о том, что делать после возникновения проблемы, еще более сложный. Поднимут ли разработчики этическую проблему, и если да, то как?</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_5.png" alt="" /></figure><p>Согласно результатам опроса, наибольшую ответственность за возникшую проблему должен взять на себя руководящий состав.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_6.png" alt="" /></figure><p>80 % респондентов уверены, что разработчики обязаны рассматривать свою деятельность с этической стороны. Среди тех, кто ответил, что не знает или не думал об этом, 40 % заявили раньше, что не обязаны заявлять об этических проблемах.</p><h4>Поиски работы</h4><p>Только 16 % разработчиков активно ищут работу, однако три четверти специалистов при этом отметили, что открыты для предложений.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_7.png" alt="" /></figure><p>Больше всех в работе нуждаются преподаватели и, с небольшим отрывом, разработчики мобильных приложений:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_8.png" alt="" /></figure><p>Около половины разработчиков сменили работу меньше, чем два года назад:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_9.png" alt="" /></figure><p>Интересный вопрос команда Stack Overflow задала о том, какие эмоции связаны у разработчиков с ключевыми для поиска работы словами. Оказалось, что «работа», «собеседование» и «рекрутер» вызывают раздражение, а «собеседование», «работа» и «компания» звучат изматывающе. В то же время с интересом и восторгом у разработчиков ассоциируются «новый», «компания» и «возможность».</p><p>В основном преимущества работы IT-специалисты оценивают по компенсациям и разнообразию технологий, с которыми приходится иметь дело. Наименьший приоритет у этнического и религиозного разнообразия в компании или организации.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_10.png" alt="" /></figure><p>Разработчики всех полов отдают наибольшее предпочтение четырем пунктам:</p><ul><li>Компенсации и пособия</li><li>Технологии: языки, фреймворки и другие инструменты</li><li>Возможности для профессиональной разработки</li><li>Офисная среда и корпоративная культура</li></ul><p>Однако женщины и представители других полов ставят культуру компании на первое место, а мужчины — на четвертое, выдвигая вперед компенсации и пособия.</p><p>В отношении компенсаций на вершине рейтинга находится заработная плата, а в самом низу — детские пособия, отпуска по уходу за ребенком и оплачиваемое питание.</p><h4>Рабочие практики</h4><p>Для поддержания продуктивной работы программисты, в основном, выбирают эргономичные клавиатуры и мыши (52,2 %) и столы для стоячей работы (50,4 %). Менее популярны (22,4 %) подставки для запястий, а завершают рейтинг (12,4 %) расслабляющие коврики.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_13-1.png" alt="" /></figure><p>Разработчики также поделились своими практиками ведения проектов. Безусловно лидирует Agile:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_11.png" alt="" /></figure><p>А для контроля версий чаще всего выбирают Git:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_12.png" alt="" /></figure><figure><img src="https://media.tproger.ru/uploads/2018/03/work-13.png" alt="" /></figure><p>Интересную зависимость показали вопросы о проверке кода. Больше половины разработчиков проверяют его несколько раз в день:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_14.png" alt="" /></figure><p>Затем команда Stack Overflow проследила корреляцию этого ответа с показателем удовлетворенности работой, и оказалось, что выше всего, на 5,14 балла из 7, ее оценивают перестраховщики:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_15.png" alt="" /></figure><h4>Заработная плата</h4><p>Наконец, если верить результатам опроса, больше всего — 89 тыс. долларов в год — получают технические директора. Ниже по рейтингу, с разрывами в десять тысяч каждый, специалисты DevOps, специалисты по данным и машинному обучению и аналитики:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_16.png" alt="" /></figure><p>Предсказуемо, что у более опытных разработчиков зарплата выше. Однако команда Stack Overflow разглядела в данных зависимость оплаты труда от типа разработки при одинаковом уровне опыта:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_17.png" alt="" /></figure><p>Кроме того, зарплата зависит от языка, которым владеет разработчик. Специалисты, работающие с языками, расположенными ниже пунктирной линии, зарабатывают меньше, несмотря на опыт:</p><figure><img src="https://media.tproger.ru/uploads/2018/03/work_18.png" alt="" /></figure>]]></content:encoded>
    </item>
    <item>
      <title>Удаленная работа для программиста: результаты исследования от Stack Overflow</title>
      <link>https://tproger.ru/translations/stack-overflow-developer-survey-remote-work</link>
      <comments>https://tproger.ru/translations/stack-overflow-developer-survey-remote-work?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/stack-overflow-developer-survey-remote-work</guid>
      <description><![CDATA[<p>В опросе Stack Overflow за 2017 год удалённую работу на полной ставке указали 20.5% респондентов из России и 11.2% из США.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/stack-overflow-developer-survey-remote-work">Удаленная работа для программиста: результаты исследования от Stack Overflow</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 31 Jan 2018 15:56:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>Опрос Stack Overflow Developer Survey 2018 <a href="https://tproger.ru/articles/stack-overflow-developer-survey-2018/">уже прошёл</a>, и пока в компании разбираются с данными за этот год, давайте посмотрим на результаты, полученные за прошлый, и разузнаем побольше об удалённой работе программистов.</p><h2>В каких регионах удалённая работа наиболее распространена?</h2><figure><img src="https://media.tproger.ru/uploads/2018/01/kartinka1.jpg" alt="" /></figure><p>На этой карте показаны страны, где участие в опросе 2017 года приняло как минимум 100 человек. В США 11.2% респондентов ответили, что они работают удалённо на полную ставку, однако это число колеблется между гораздо меньшими значениями в Западной Европе (3.93% в Швеции и 3.47% в Бельгии) и большими значениями в Центральной Азии, Восточной Европе и России (20.5% в России). Местные экономические факторы, а также ожидания сотрудников от места работы играют роль в этих повсеместных различиях.</p><p>Размер компании, в которой работают разработчики, также сильно влияет на вероятность удалённой работы.</p><figure><img src="https://media.tproger.ru/uploads/2018/01/kartinka2-1.jpg" alt="" /></figure><p>В Stack Overflow работает около 250 человек. Ранее в блоге компании <a href="https://stackoverflow.blog/2017/09/29/making-remote-work-behind-scenes/">рассказывалось</a> о том, как они делают эффективные <a href="https://stackoverflow.blog/2013/02/01/why-we-still-believe-in-working-remotely/">команды из офисных работников и удалёнщиков</a>. Результаты опросов показывают, что разработчики из небольших компаний (даже меньше Stack Overflow) с большей вероятностью работают удалённо, в то время как в больших компаниях такая вероятность ниже.</p><p>Вполне логично, что компании поменьше поддерживают удалённую работу. Как правило, такие компании зачастую только образовались, не имеют своего офиса, и разработчики, которые формируют компанию, работают, откуда им удобно. После применения прогнозного моделирования на данных опроса (предсказывает, работает ли разработчик удалённо или нет) выяснилось, что размер компании был самым значительным показателем, позволяющим делать прогноз.</p><h2>Что можно сказать о самих разработчиках?</h2><figure><img src="https://media.tproger.ru/uploads/2018/01/kartinka3.jpg" alt="" /></figure><p>Есть большая разница в общем уровне опыта удалённых и офисных разработчиков. В большинстве стран разработчики, которые работают удалённо, имеют больше опыта профессионального программирования, чем те, кто работают в офисах. Числа действительно большие — в среднем, 5-летняя разница в опыте удалённых и офисных работников в Соединённых Штатах и Канаде. Несложно понять, почему компании с большей вероятностью поддерживают удалёнщиков, у которых есть проверенный послужной список.</p><p>Не все опрошенные огласили свою зарплату, но мы можем воспользоваться данными тех, кто сделал это, чтобы посмотреть, сколько получают на удалённой работе.</p><figure><img src="https://media.tproger.ru/uploads/2018/01/kartinka4.jpg" alt="" /></figure><p>Обратите внимание на то, что пропасти между уровнями зарплат удалённых и офисных разработчиков нет, но удалёнщики все же получают чуть больше.</p><p>В целом разработчики <a href="https://insights.stackoverflow.com/survey/2017#work-how-do-developers-feel-about-their-jobs-and-careers">вполне довольны своей карьерой</a>, 74.5% респондентов оценили свою степень удовлетворённости 7 или более баллами по 10-балльной шкале. Определенные характеристики разработчиков, в том числе удалённая работа, связаны с ещё большей удовлетворённостью карьерой.</p><figure><img src="https://media.tproger.ru/uploads/2018/01/kartinka5.png" alt="" /></figure><p>Разница небольшая (никто не доволен на 100%, вне зависимости от того, работает он удалённо или в офисе), но как разница из-за удалённой работы, так и разница из-за внесения вклада в open source, являются статистически значимыми.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow проводит масштабный опрос разработчиков до 26 января</title>
      <link>https://tproger.ru/articles/stack-overflow-developer-survey-2018</link>
      <comments>https://tproger.ru/articles/stack-overflow-developer-survey-2018?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/stack-overflow-developer-survey-2018</guid>
      <description><![CDATA[<p>Восьмой ежегодный опрос Stack Overflow собирает мнения разработчиков о языках, карьере, искусственном интеллекте и этике в программировании.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/stack-overflow-developer-survey-2018">Stack Overflow проводит масштабный опрос разработчиков до 26 января</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 19 Jan 2018 14:27:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>8 января Stack Overflow <a href="https://stackoverflow.blog/2018/01/08/take-2018-developer-survey/">объявил</a> о старте восьмого ежегодного опроса разработчиков. Проект создан для исследования мнений сообщества кодеров обо всех актуальных темах от языков программирования до карьерных предпочтений. В этом году было добавлено еще несколько новых актуальных тем: искусственный интеллект, этика в кодинге и т.п.</p><p>Как и в <a href="https://insights.stackoverflow.com/survey/">предыдущие годы</a>, анонимные результаты опроса будут выложены в открытый доступ под лицензией Open Database License. Некоторые ответы, способные нарушить анонимность набора данных, исключаются из общего доступа. Соответствующие вопросы помечены сообщением «This information will be kept private».</p><p>Опрос занимает приблизительно 30 минут. Все участники будут награждены значком Census во всех коммьюнити <a href="https://stackexchange.com/sites">Stack Exchange</a>, в которых они состоят.</p><p><a href="https://stackoverflow.az1.qualtrics.com/jfe/form/SV_bedBQlMexcTr5WJ?utm_source=so-owned&amp;utm_medium=blog&amp;utm_campaign=dev-survey-2018-collection&amp;utm_term=link&amp;award=cec15a90aff84365b06a377031751352&amp;site=stackoverflow.com">Пройти опрос</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow назвал самые трендовые JS-фреймворки в соответствии с концепцией жизненного цикла</title>
      <link>https://tproger.ru/news/most-prominent-js-frameworks-stack-overflow</link>
      <comments>https://tproger.ru/news/most-prominent-js-frameworks-stack-overflow?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/most-prominent-js-frameworks-stack-overflow</guid>
      <description><![CDATA[<p>Stack Overflow проанализировал внутренний трафик и выделил заметные JavaScript-фреймворки и библиотеки для создания пользовательских интерфейсов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/most-prominent-js-frameworks-stack-overflow">Stack Overflow назвал самые трендовые JS-фреймворки в соответствии с концепцией жизненного цикла</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Фреймворки и библиотеки]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 12 Jan 2018 15:12:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда разработчиков из Stack Overflow представила результаты анализа внутреннего трафика своего сайта и рассказала о самых выдающихся JS-фреймворках для создания пользовательского интерфейса.</p><h3>Жизненный цикл фреймворка</h3><p>JavaScript UI-фреймворки и библиотеки работают в циклах. Примерно раз в полгода появляется какой-то новый продукт из этой области, переворачивающий представление о разработке пользовательских интерфейсов. Тысячи разработчиков используют новинки в своих проектах, пишут о результатах, задают связанные вопросы и отвечают на них, а затем вдруг появляется новый фреймворк (ещё более революционный) и захватывает трон.</p><p>В соответствии с этой концепцией и с помощью инструмента <a href="https://insights.stackoverflow.com/trends?utm_source=so-owned&amp;utm_medium=blog&amp;utm_campaign=gen-blog&amp;utm_content=blog-link&amp;utm_term=javascript-frameworks">Stack Overflow Trends</a> исследователями был выделен ряд UI-фреймворков, оказавших наибольшее влияние на круг фронтенд-разработчиков:</p><ul><li>Angular;</li><li>React;</li><li>Vue.js;</li><li>Backbone;</li><li>Knockout;</li><li>Ember.</li></ul><figure><img src="https://media.tproger.ru/uploads/2018/01/B4B219EC-518F-486D-8D4F-36413536FB86.jpg" alt="" /></figure><p>Правда, это лишь часть общей картины. Свою дорогу уверенно прокладывают и менее крупные фреймворки. Вот конкуренция между четырьмя из них за последние несколько лет:</p><figure><img src="https://media.tproger.ru/uploads/2018/01/A86289A6-9CC6-4D2A-A7AC-68487D92B4A9.jpg" alt="" /></figure><p>Визуализированные результаты анализа позволяют условно выделить две основные фазы, на которые разбивается использование фреймворка: быстрый подъем на волне роста популярности и более медленный, но стабильный спад — это разработчики начинают пробовать новые технологии. Такие циклы длятся от силы два года. В 2011 году начался период освоения нескольких конкурирующих фреймворков: Backbone, Knockout, и Ember. Количество связанных с ними вопросов росло примерно до 2013 года, после чего началось стабильное медленное угасание. Где-то в это же время начался подъем популярности AngularJS.</p><p>Один из быстрорастущих стартапов — фреймворк Vue.js. Судя по выявленному тренду, в этом году должен начаться спад ажиотажа вокруг него. Интересно понаблюдать, окажутся ли верными исследовательские прогнозы.</p>]]></content:encoded>
    </item>
    <item>
      <title>Резкие взлёты и падения популярности технологий на Stack Overflow</title>
      <link>https://tproger.ru/translations/stack-overflow-tag-statistics</link>
      <comments>https://tproger.ru/translations/stack-overflow-tag-statistics?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Туренко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/stack-overflow-tag-statistics</guid>
      <description><![CDATA[<p>Статистика тегов Stack Overflow показывает, какие языки программирования и фреймворки резко набирали или теряли популярность за время существования сайта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/stack-overflow-tag-statistics">Резкие взлёты и падения популярности технологий на Stack Overflow</a>»</p>]]></description>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 27 Nov 2017 16:14:33 GMT</pubDate>
      <content:encoded><![CDATA[<p>Для IT-специалиста важно уметь приспосабливаться к постоянно меняющимся технологиям. Многие разработчики сейчас работают совсем не с теми стеками технологий, с которых начинали. Недавно в блоге Stack Overflow шла речь о технологиях, популярность которых <a href="https://stackoverflow.blog/2017/09/06/incredible-growth-python/">растёт</a> или <a href="https://stackoverflow.blog/2017/08/01/flash-dead-technologies-might-next/">падает</a>. Некоторые языки программирования и фреймворки появляются из ниоткуда и врываются на сцену, другие словно падают с обрыва. Бывают и случаи, когда резкие сдвиги влияют на саму индустрию программного обеспечения. Рассмотрим наиболее драматичные взлёты и падения в <a href="https://stackoverflow.com/tags">статистике тегов</a> на Stack Overflow за время существования сайта.</p><h2>Наиболее резкие взлёты</h2><p>Чтобы определить наибольший рост популярности, взглянем на ежегодное изменение популярности тегов в задаваемых вопросах на Stack Overflow. У каких тегов самый высокий процент изменения за время существования сайта?</p><figure><img src="https://media.tproger.ru/uploads/2017/11/Stack-overflow-tag-rating-1.png" alt="" /></figure><p>Анализ выше основан по меньшей мере на 10 000 вопросах и исключает теги, которые заканчиваются числами (iOS8).</p><p>В этом анализе выделяются два тега, у которых есть что-то общее, причём у обоих наблюдается стремительный рост. Swift — язык программирования от компании Apple, используемый для разработки приложений под iOS, преемник Objective-C. Тег <a href="https://stackoverflow.com/questions/tagged/angular">Angular</a> использовался для новых версий чаще, чем <a href="https://stackoverflow.com/questions/tagged/angularjs">AngularJS</a>. Обе технологии росли невероятно быстро не только в плане популярности, но и в плане влияния, поскольку они были естественными новыми этапами в жизни существующих сообществ разработчиков. Обратите внимание, что <a href="https://insights.stackoverflow.com/trends?tags=jquery%2Cangularjs%2Cangular%2Creactjs">AngularJS</a> также невероятно быстро стал популярным, хотя и занимает 10-е место в рейтинге ежегодного роста на Stack Overflow.</p><p>Другие технологии, представленные на диаграмме выше, демонстрируют сравнительно скромный рост в ежегодной статистике:</p><ul><li><a href="https://developer.android.com/studio/index.html">Android Studio</a> — IDE, предназначенная для разработчиков приложений для мобильных устройств. Впервые эта интегрированная среда разработки была выпущена в 2013 году и сразу же стала популярной.</li><li><a href="https://stackoverflow.com/tags/angularjs-directive/info">Angularjs-directive</a> очевидным образом связан со стремительным ростом фреймворка Angular.</li><li><a href="https://stackoverflow.com/tags/ipad/info">iPad</a> был анонсирован компанией Apple в 2010 году.</li><li><a href="https://stackoverflow.com/tags/tensorflow/info">TensorFlow</a> — библиотека машинного обучения, исходный код которой Google открыла в 2015 году. Из диаграммы выше видно, какой заметный успех обрела новая технология.</li></ul><h2>Наиболее резкие падения</h2><p>Посмотрим на другую сторону медали. У каких тегов наблюдается наибольший процент снижения популярности за период существования сайта?</p><figure><img src="https://media.tproger.ru/uploads/2017/11/Stack-overflow-tag-rating-2.png" alt="" /></figure><p>Этот график, как и предыдущий, основан по меньшей мере на 10 000 вопросах, исключающих теги, оканчивающиеся числовыми значениями вроде iOS4 и Xcode6.</p><p>Давайте рассмотрим конкретные примеры:</p><ul><li>Backbone.js — JavaScript-фреймворк с жёстким жизненным циклом для этой экосистемы. Успешно потерял популярность.</li><li>Cocos2d, игровой движок для iPhone, утратил доверие.</li><li>Схожая с Adobe Flash программа Silverlight от Microsoft довольно быстро устарела, собственно, как и Adobe Flash c фреймворком Flex. Обе технологии были включены в <a href="https://stackoverflow.blog/2017/08/01/flash-dead-technologies-might-next/">августовский пост</a> о сокращении популярности.</li><li>Тег <a href="https://stackoverflow.com/tags/orm/info">Object-Relational Mapping</a> имеет более высокий уровень активности после падения, чем другие теги, но значительно более низкий, чем примерно десять лет назад.</li><li>Parse — довольно интересный пример. Это платформа для разработчиков бэкенда мобильных приложений, которую приобрела компания Facebook в 2013 году. В 2016 разработку и поддержку платформы <a href="https://techcrunch.com/2016/01/28/facebook-shutters-its-parse-developer-platform/">свернули</a>. Всё это время Parse была платформой с открытым исходным кодом. Иногда она используется как противопоставление Swift по параметрам популярности — Parse была новой и популярной технологией, но разработчики объявили об окончании разработки.</li></ul><h2>Устойчивый рост</h2><p>Технологии могут демонстрировать как резкое падение (те, которые мы рассмотрели выше), так и устойчивый рост. Какие стеки демонстрируют наиболее устойчивый рост с 2010 года, судя по вопросам по меньшей мере за пять лет? Давайте посмотрим на средний ежегодный показатель роста популярности тегов, предварительно проанализировав не менее 10 000 вопросов, и найдём технологии, популярность которых росла на протяжении многих лет, причём не только из-за взрывного старта.</p><figure><img src="https://media.tproger.ru/uploads/2017/11/Stack-overflow-tag-rating-3.png" alt="" /></figure><p>В статистике выше видно, что первые позиции занимает тег <a href="https://stackoverflow.com/questions/tagged/angularjs">Angular</a> и некоторые другие члены экосистемы JavaScript, такие как TypeScript и Meteor. Довольно популярны также технологии из области анализа данных и машинного обучения — <a href="https://stackoverflow.com/tags/pandas/info">Pandas</a> и <a href="https://stackoverflow.com/tags/dataframe/info">dataframe</a>. Другие технологии — вездесущая поисковая система Elasticsearch и игровой движок Unity — занимают уникальные позиции в индустрии программного обеспечения. Они совсем разные, но все росли стабильно в течение последних 5-10 лет. На странице <a href="https://insights.stackoverflow.com/trends?tags=typescript%2Celasticsearch%2Cunity3d%2Cpandas">Stack Overflow Trends</a> можно посмотреть на популярность инструментов, а также на динамику их роста по тегу.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow и Microsoft разработали бота-помощника для Visual Studio Code</title>
      <link>https://tproger.ru/news/stack-overflow-bot</link>
      <comments>https://tproger.ru/news/stack-overflow-bot?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вячеслав Шарунов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-bot</guid>
      <description><![CDATA[<p>Расширение для Visual Studio Code от Stack Overflow и Microsoft ищет ответы на вопросы, используя знания платформы и технологию Cognitive Services.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-bot">Stack Overflow и Microsoft разработали бота-помощника для Visual Studio Code</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 26 Sep 2017 11:19:54 GMT</pubDate>
      <content:encoded><![CDATA[<p>Объём знаний в областях программирования, компьютерных наук, и ИИ, которыми разработчики делятся на платформе Stack Overflow, постоянно растёт.</p><p>Компания Stack Overflow в сотрудничестве с Microsoft и их платформой <a href="https://tproger.ru/news/microsoft-new-cognitive-services/">Cognitive Services</a> разработала бота, использюущего наработки Microsoft в области ИИ. Данный бот представляет собой расширение для Visual Studio Code и позволяет разработчикам находить ответы на вопросы без переключения между средой разработки и веб-браузером, тем самым повышая производительность.</p><p>Бот является самообучаемым, и чем больше людей им пользуется, тем более точные результаты он сможет возвращать пользователям. Код бота и инструкция по его установке доступны <a href="https://github.com/Microsoft/BotFramework-Samples/tree/master/StackOverflow-Bot">на странице GitHub</a>.</p><p>Представители Stack Overflow в своём блоге отметили:</p><blockquote>Мы увлечены созданием таких условий, чтобы разработчики могли взаимодействовать друг с другом и стимулировать перемены в обществе. Поддержка обмена знаниями и использования ИИ на платформе Stack Overflow принесет большие возможности для всех людей, пользующихся сервисом.</blockquote>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow выпустила новую версию зарплатного калькулятора</title>
      <link>https://tproger.ru/news/stack-overflow-calculator</link>
      <comments>https://tproger.ru/news/stack-overflow-calculator?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вячеслав Шарунов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-calculator</guid>
      <description><![CDATA[<p>Калькулятор Stack Overflow сравнивает зарплаты по странам и городам с учётом образования, опыта, специализации и технологий, а также показывает вакансии.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-calculator">Stack Overflow выпустила новую версию зарплатного калькулятора</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 19 Sep 2017 20:14:27 GMT</pubDate>
      <content:encoded><![CDATA[<p>Калькулятор заработной платы использует данные, собранные в ежегодных опросах разработчиков на сайте. В данное время в сервисе доступны данные о зарплатах IT-специалистов из США, Канады, Великобритании, Франции и Германии.</p><p>Также есть возможность сравнить свою зарплату с окладами в тех городах, где трудоустроено большинство разработчиков. Место работы чаще всего является важнейшим фактором определения суммы получаемой заработной платы. В дополнение к месту проживания, калькулятор также попросит указать уровень образования, количество лет опыта разработки, сферу деятельности (веб-разработка, мобильная разработка и т.п.) и технологии, которыми вы уверенно владеете.</p><p>Результатом работы калькулятора Stack Overflow является примерная сумма зарплаты, на которую вы можете рассчитывать. Однако теперь, в отличие от <a href="https://tproger.ru/news/stackoverflow-luanches-salary-calculator/">прошлой версии</a>, калькулятор также предлагает потенциальные вакансии, соответствующие вашему опыту разработки.</p>]]></content:encoded>
    </item>
    <item>
      <title>Повесть о двух индустриях: как различается выбор языков программирования в богатых и развивающихся странах</title>
      <link>https://tproger.ru/translations/programming-languages-differ</link>
      <comments>https://tproger.ru/translations/programming-languages-differ?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ярослав Сарницкий]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/programming-languages-differ</guid>
      <description><![CDATA[<p>В статье рассмотрены отличия в выборе языков программирования в разных странах, а также рассказывается, почему стоит сегментировать разработку программного обеспечения на страны с высоким уровнем дохода и на остальные страны.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/programming-languages-differ">Повесть о двух индустриях: как различается выбор языков программирования в богатых и развивающихся странах</a>»</p>]]></description>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 31 Aug 2017 18:20:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>Недавно проведенное компанией Stack Overflow <a href="https://stackoverflow.blog/2017/08/22/world-mobile-development/">исследование</a> показало, что вопросы, связанные с Android-разработкой, больше интересуют посетителей из стран с низким уровнем дохода, чем из более богатых. Это подтолкнуло исследователей к проведению более полного анализа этого вопроса. В статье будут рассмотрены отличия в выборе языков программирования в разных странах, а также будет рассказано, почему стоит сегментировать разработку программного обеспечения на страны с высоким уровнем дохода и на остальные страны.</p><p>Все аналитические данные были собраны в период с января по август 2017 года по 250 тегам, которые получили наибольшее количество трафика за этот период. Чтобы избавиться от шумов, были выбраны 64 страны, из которых вопросы посещались более 5 миллионов раз за этот период. Стоит отметить, что эти данные представляют собой активность среди разработчиков, понимающих английский язык.</p><h2>Корреляция языков программирования с ВВП на душу населения</h2><p>Как было сказано выше, трафик, связанный с Android-разработкой (в процентном соотношении с общим количеством запросов), отрицательно коррелирует с ВВП страны на душу населения. Но справедливо ли это утверждение для других популярных тегов?</p><p>Если посмотреть на другие популярные языки программирования и выделить PHP, Python и R, то картина будет выглядеть следующим образом:</p><figure><img src="https://media.tproger.ru/uploads/2017/08/tag_gdp_compare-1-2-1024x1024-1.jpg" alt="" /></figure><p>Как видно, трафик по тегам «Android» и «PHP» отрицательно коррелирует с доходом страны, а по «Python» и «R» — положительно. В каждом из случаев можно увидеть исключения (в Корее более популярна ОС Android, а в Китае больше используют Python), но в целом корреляция присутствует.</p><p>Вероятно, на выбор языка программирования влияет сочетание экономических и социальных факторов (например, уровень образования, возраст индустрии программного обеспечения, уровень аутсорсинга), которое в целом соотносится с богатством страны.</p><h2>Как сегментировать отрасль разработки ПО?</h2><p>Лучше всего уйти от корреляций и обратить внимание на то, что существует только два типа стран: с высоким и не высоким уровнем дохода. Для разделения стран можно использовать классификацию доходов Всемирного банка, которая основана на <a href="https://ru.wikipedia.org/wiki/Валовой_национальный_продукт">ВНП</a> (валовой национальный продукт) на душу населения.</p><figure><img src="https://media.tproger.ru/uploads/2017/08/worldbank_map-1-1024x614-1.jpg" alt="" /></figure><p>В мире всего 78 стран с высоким уровнем дохода — это США, Канада, страны Западной Европы, часть Ближнего Востока и Восточной Азии, Австралия и Новая Зеландия. Такое разделение более оправдано, чем, например, разделение на Восточное и Западное полушарие. Ведь Австралия, как правило, больше похожа на США и Европу с точки зрения используемых технологий, чем на Китай или Индонезию.</p><figure><img src="https://media.tproger.ru/uploads/2017/08/top_countries-1-2-1024x683-1.jpg" alt="" /></figure><p>Согласно статистике Stack Overflow, 63,7% трафика поступает из стран с высоким уровнем дохода. Вероятно, это связано с удобным доступом в Интернет, большей долей разработчиков и лучшим знанием английского языка. Большая часть трафика из стран с невысоким уровнем дохода поступает из Индии, Бразилии, России и Китая.</p><h2>Чем отличаются страны с высоким уровнем дохода?</h2><p>После разделения мира на два сегмента нужно разобраться, как отличаются страны с высоким и низким уровнем доходов с точки зрения используемых технологий.</p><figure><img src="https://media.tproger.ru/uploads/2017/08/tech_difference_graph-1-1-1024x731-1.png" alt="" /></figure><p>Здесь можно выделить несколько моментов:</p><ul><li>Научные исследования. Как было отмечено выше, языки программирования Python и R наиболее популярны в странах с высоким уровнем дохода. Тег «Python» жители стран с высоким уровнем дохода посещают примерно в 2 раза чаще, а тег «R» — примерно в 3 раза. Стоит отметить, что часть тегов, связанных с Python и R, относятся к научным пакетам pandas, numpy, matplotlib и ggplot2. Это говорит о том, что эти два языка программирования могут быть связаны с наукой и академическими исследованиями. Поэтому можно предположить, что использование этих языков более распространено в развитых странах, где научные исследования составляют большую часть экономики, а программисты имеют высокие научные степени.</li><li>C/C++. «C» и «C++» — другие популярные в странах с высоким уровнем дохода теги. Одна из гипотез заключается в том, что это может иметь отношение к образованию — C и C ++ относятся к числу языков, которые используются в университетах. Это также может быть связано с географическим распределением электроники и промышленности.</li><li>PHP и Android. Как было отмечено выше, вопросы, связанные с Android-разработкой, больше интересуют посетителей из стран с низким уровнем дохода. Тег «PHP» также популярен в странах с невысоким доходом, как и тег «CodeIgniter» (PHP-фреймворк с открытым исходным кодом). Исследования показывают, что этот тег получает подавляющее количество трафика из Южной и Юго-Восточной Азии (в частности, из Индии, Индонезии, Пакистана и Филиппин). Возможно, CodeIgniter — это наиболее популярный инструмент среди аутсорсинговых компаний, занимающихся веб-разработкой.</li></ul><h2>Заключение</h2><p>Если создать список самых посещаемых технологий программирования для стран с высокими и низкими доходами, он будет выглядеть примерно так:</p><figure><img src="https://media.tproger.ru/uploads/2017/08/slopegraph-1-1-1024x1024-1.jpg" alt="" /></figure><p>Видно, что в 2017 году «Python» является вторым по популярности тегом среди стран с высоким уровнем дохода, но восьмым в остальном мире. Что же касается языка программирования R, он является 15-м по популярности в странах с высоким уровнем дохода, но даже не попал в топ-50 самых популярных тегов в остальном мире.</p><p>И это очень важно с точки зрения экосистемы разработки, ведь вопросы американского HR-специалиста будут отличаться от вопросов индийского студента или начинающего инвестора в индустрию африканских стран.</p>]]></content:encoded>
    </item>
    <item>
      <title>Из Vim не может выйти уже более миллиона человек: статистика от Stack Overflow</title>
      <link>https://tproger.ru/news/how-to-exit-damned-vim</link>
      <comments>https://tproger.ru/news/how-to-exit-damned-vim?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/how-to-exit-damned-vim</guid>
      <description><![CDATA[<p>Вопрос о выходе из Vim на Stack Overflow набрал 1 000 000 просмотров; статистика показывает причины и страны, где программисты ищут ответ.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/how-to-exit-damned-vim">Из Vim не может выйти уже более миллиона человек: статистика от Stack Overflow</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 24 May 2017 12:30:41 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вчера вопрос <a href="https://stackoverflow.com/questions/11828270/how-to-exit-the-vim-editor">«Как выйти из редактора Vim?»</a>, опубликованный в 2012 году, достиг рекордного количества просмотров: 1 000 000. В честь этого события на Stack Overflow <a href="https://stackoverflow.blog/2017/05/23/stack-overflow-helping-one-million-developers-exit-vim/">провели</a> исследование и выложили статистику, которая иллюстрирует популярную проблему.</p><h3>Почему не получается выйти?</h3><p>Причины обычно две: человек попадает в Vim неожиданно для себя (его туда забрасывает консоль или стороннее приложение) и / или он заходит туда настолько редко, что каждый раз забывает, как закрыть программу. У нас есть простая и понятная <a href="https://tproger.ru/translations/vim-for-beginners/">шпаргалка по Vim</a> для «потеряшек» с заветным ответом.</p><h3>Сколько людей попадает в ловушку?</h3><p>За последний год вопрос набрал около 0,005% от общего трафика = 1 из 20 000 посещений = по будням в самое активное рабочее время около 80 человек в час ищут, как выбраться из редактора. В течение 5 лет с момента публикации появлялось все больше уставших от безвыходного положения:</p><figure><img src="https://media.tproger.ru/uploads/2017/05/vim-1.png" alt="" /></figure><p>А вот так распределяется количество запросов по странам:</p><figure><img src="https://media.tproger.ru/uploads/2017/05/vim-2.png" alt="" /></figure><p>Кстати, недавно на Stack Overflow выясняли, <a href="https://tproger.ru/translations/programmer-working-hours/">в какое время суток работают программисты</a>, и тоже смотрели на географическое распределение, советуем ознакомиться.</p><h3>Какие программисты чаще всего застревают?</h3><p>Самый интересный вопрос — какова корреляция между тем, какой язык использует разработчик, и тем, как часто у него возникают проблемы с выходом из Vim? Исследователи посмотрели, какие теги активно посещают застрявшие пользователи. Оказалось, больше всего страдают мобильные, фронтенд- и C#-разработчики (привыкли использовать IDE), а меньше всего — программисты на C, C++, Python и Ruby (у них обычно нет проблем с текстовыми редакторами).</p><figure><img src="https://media.tproger.ru/uploads/2017/05/vim-3.png" alt="" /></figure><p>Еще раз напомним, что мы написали <a href="https://tproger.ru/translations/vim-for-beginners/">шпаргалку по Vim</a>. Выход есть всегда ?</p>]]></content:encoded>
    </item>
    <item>
      <title>В какое время суток на самом деле работают программисты: опубликовано исследование от Stack Overflow</title>
      <link>https://tproger.ru/translations/programmer-working-hours</link>
      <comments>https://tproger.ru/translations/programmer-working-hours?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/programmer-working-hours</guid>
      <description><![CDATA[<p>Данные запросов за август 2016 года и 250 популярных тегов показали, какие языки программирования используются в разных городах и в какое время суток.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/programmer-working-hours">В какое время суток на самом деле работают программисты: опубликовано исследование от Stack Overflow</a>»</p>]]></description>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 25 Apr 2017 11:44:41 GMT</pubDate>
      <content:encoded><![CDATA[<p>Существует расхожее мнение, что программисты — «совы» и допоздна засиживаются за работой. <a href="https://stackoverflow.com/">Stack Overflow</a>, сайт, к которому масса разработчиков по всему миру обращается за помощью при возникновении сложностей (то есть постоянно), опубликовал исследование, основанное на данных запросов к ресурсу. Оно показывает, какие языки программирования, в каких городах и в какое время суток используются чаще всего.</p><h2>Трафик в течение дня</h2><p>Для получения статистики был выбран август 2016 года (чтобы максимально исключить из выборки запросы школьников и студентов, которые могли исказить результат) и 250 самых используемых тегов. Также для каждого запроса по IP-адресу вычислили информацию о часовом поясе и с достаточно высокой точностью определили местное время.</p><figure><img src="https://media.tproger.ru/uploads/2017/04/pwh-1.png" alt="" /></figure><p>Сайт помогает программистам выполнять свою работу, поэтому неудивительно, что трафик сильно повышается примерно с 9 до 17 часов, а в районе полудня немного падает — люди идут обедать.</p><p>В <a href="https://stackoverflow.blog/2017/02/07/what-programming-languages-weekends/">прошлом исследовании</a> выяснилось, что на выходных активность пользователей особенно понижена, как и в пятницу во второй половине дня, так что в этой статье рассматриваются данные о посещениях с понедельника по четверг.</p><h2>Использование разных тегов</h2><p>Посмотрим на статистику посещений тем, касающихся четырех распространённых языков: C, Python, JavaScript и C#.</p><figure><img src="https://media.tproger.ru/uploads/2017/04/pwh-2.png" alt="" /></figure><p>График похож на предыдущий: вне зависимости от языка, программисты в основном используют сайт в стандартные рабочие часы с перерывом на обед, а ночью отправляются спать (или внезапно решают делать всё самостоятельно).</p><p>Тем не менее, можно заметить некоторые различия: например, разработчики на C# начинают и заканчивают работу раньше, что, скорее всего, связано с использованием языка в банках и корпорациях, а C более популярен в вечернее время суток.</p><p>Желающие самостоятельно сравнить статистику по другим языкам программирования могут воспользоваться специальным <a href="https://dgrtwo.shinyapps.io/tag-traffic-hour/">веб-приложением</a>.</p><h2>Самые популярные языки с 9 до 17</h2><p>Ранее мы видели, что одна из отличительных черт тега — это его использование во время классического рабочего дня. Из четырёх языков выше C# можно считать наиболее «офисным», а C — наименее.</p><figure><img src="https://media.tproger.ru/uploads/2017/04/pwh-3.png" alt="" /></figure><p>Днём предпочтение отдаётся многим технологиям Microsoft — SQL Server, Excel, VBA и Internet Explorer, а также корпоративным — например, SVN и Oracle. Вне рабочего дня популярны фреймворки типа Firebase, Meteor и Express, а также графические библиотеки и Haskell — функциональный язык программирования.</p><p>Посмотрим на относительную частоту посещений тегов:</p><figure><img src="https://media.tproger.ru/uploads/2017/04/pwh-4.png" alt="" /></figure><p>Среди самых популярных технологий на Stack Overflow (более 100 000 посещений тега в день) в рабочие часы наиболее активно используются C#, SQL, SQL Server и Excel, а в остальное время — Android, iOS, Swift, Node.JS, C++, и C.</p><p>Вот статистика обращений к тегам в зависимости от местного времени, представленная в виде анимации:</p><figure><img src="https://media.tproger.ru/uploads/2017/04/pwh-5.gif" alt="" /></figure><p>Заметьте, что технологии Microsoft (Excel, VBA, C#) первыми появляются с утра и остаются в тренде с 9 до 17, а к «поздним» тегам относятся C/C++, мобильные технологии и Haskell.</p><h2>Что предпочитают «жаворонки» и «совы»</h2><p>Для подавляющего большинства тегов можно отметить повышение вечерней активности в сравнении с утренней. Для подсчёта относительной посещаемости исследователи разделили трафик с 9 до 12 часов на трафик с 13 до 16 часов. Таким образом, высокий коэффициент (близкий к единице) означает, что тег использовался примерно одинаково вечером и утром, а низкий — что программисты начинают работу с ним ближе к вечеру.</p><figure><img src="https://media.tproger.ru/uploads/2017/04/pwh-6.png" alt="" /></figure><p>Можно увидеть корреляцию с предыдущими измерениями: технологии, которые чаще всего использовались с 9 до 17, в целом более популярны среди «жаворонков», что логично.</p><h2>Статистика по городам</h2><p>Ранее мы сравнивали технологии, но интересно было бы посмотреть и статистику использования Stack Overflow в зависимости от местоположения. Перед вами 50 городов, которые отличились повышенным трафиком на сайте в апреле этого года. Красным цветом выделены города, наиболее активные с 9 до 17, а синим — в не рабочее время:</p><figure><img src="https://media.tproger.ru/uploads/2017/04/pwh-7.png" alt="" /></figure><p>Рассмотрим подробнее статистику по четырём городам: Лондону, Москве, Парижу и Кесон-Сити (Филиппины):</p><figure><img src="https://media.tproger.ru/uploads/2017/04/pwh-8.png" alt="" /></figure><p>Подробнее ознакомиться с исследованием можно в <a href="https://stackoverflow.blog/2017/04/19/programming-languages-used-late-night/">официальном блоге</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Stack Overflow опубликовал результаты ежегодного опроса среди разработчиков</title>
      <link>https://tproger.ru/news/stack-overflow-survey-17</link>
      <comments>https://tproger.ru/news/stack-overflow-survey-17?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дарья Вандакурова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/stack-overflow-survey-17</guid>
      <description><![CDATA[<p>В ежегодном опросе Stack Overflow участвовали около 64 тысяч программистов со всего мира: лишь 7,5% из них пишут код больше двадцати лет.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/stack-overflow-survey-17">Stack Overflow опубликовал результаты ежегодного опроса среди разработчиков</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 22 Mar 2017 19:28:23 GMT</pubDate>
      <content:encoded><![CDATA[<p>Иногда может складываться впечатление, что разработчики ПО занимаются программированием с детства. Однако сервис Stack Overflow недавно провёл <a href="https://stackoverflow.com/insights/survey/2017/">исследование</a>, согласно которому большая часть программистов начала свою деятельность не так давно.</p><p>В ежегодном опросе приняли участие около 64 тысяч программистов со всего мира. Он показал наличие специалистов самого разного уровня. Сейчас благодаря онлайн-курсам и традиционным курсам по программированию начинающие тоже могут постепенно начать карьеру разработчика, пишет Stack Overflow. Лишь 7,5% опрошенных занимаются программированием более 20 лет, в то время как более 50% начали свою деятельность в этой сфере менее 5 лет назад.</p><p>Если вы только начинаете изучать программирование, подходящие книги вы можете найти в нашей <a href="https://tproger.ru/books/head-first-programming/">подборке</a>.</p><h3>Сфера трудоустройства</h3><p>Опрос охватывает целый ряд тем, начиная от трудоустройства и заканчивая предпочтениями в разработке. Специалисты Stack Overflow выяснили, что лишь 13,1% разработчиков находятся в активном поиске работы, но возможные предложения были бы интересны 72,5% опрошенных. Возможность удалённой работы считается большим плюсом в среде разработчиков. 53,3% участников опроса признались, что их зарплата намного меньше заслуженной, а 44,9% опрошенных находят свой труд малооплачиваемым, но не критично.</p><p>Согласно опросу, самым высокооплачиваемым направлением по всему миру является работа с Clojure, «диалектом» Lisp для JVM. В США больше всего зарабатывают специалисты, знающие Go и Scala — их средняя годовая зарплата достигает $110 000.</p><h3>Выбор языков программирования</h3><p>Stack Overflow узнал, какие языки программирования чаще используют разработчики, а также выяснил их предпочтения. Самыми распространёнными языками по-прежнему являются JavaScript (62,5%), SQL (51,2%) и Java (39,7%). Любимым языком пользователей стал Rust, который выбрали 73,1% опрошенных, за ним идёт SmallTalk (67%) и TypeScript (64,1%). Swift переместился со второго места на четвёртое.</p><p>Самыми востребованными языками стали Python (20,8%), JavaScript (18,6%) и Go (13,5%). Среди языков, от которых хотят отказаться, находятся Visual Basic 6 (88,3 %), за ним VBA (Visual Basic for Applications) и CoffeeScript. Что касается фреймворков, самыми популярными являются React (66.9%), Node.js (62,1%) и .NET Core (60,9%). При этом Node.js возглавил список самых востребованных фреймворков этого года.</p><h3>Популярные направления</h3><p>Stack Overflow также проанализировал разные направления разработки. 72,6% опрошенных занимаются веб-разработкой, 28,9% создают десктопные приложения, 23% — мобильные приложения, а 14,4% опрошенных являются администраторами баз данных.</p><h3>Гендерное соотношение</h3><p>Значительная разница в процентном соотношении видна в вопросе пола. Опрос показал, что 88,6% разработчиков — мужчины, 7,6% — женщины, что на 2% больше, чем в прошлом году, а 2,6% опрошенных пол не указывают, либо относят себя к трансгендерам.</p><p>С подробными результатами опроса <a href="http://stackoverflow.com/insights/survey/2017/">можно ознакомиться</a> на сайте Stack Overflow.</p>]]></content:encoded>
    </item>
    <item>
      <title>Самые популярные книги по версии Stack Overflow — разработчик рассказал о создании удобного сервиса и поделился месячным отчётом</title>
      <link>https://tproger.ru/books/stackoverflow-most-popular-books</link>
      <comments>https://tproger.ru/books/stackoverflow-most-popular-books?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Юлия Черкашина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/books/stackoverflow-most-popular-books</guid>
      <description><![CDATA[<p>Влад Ветцель собрал упоминания книг из дампа базы Stack Exchange в сервис dev-books.com и рассказал историю проекта, который посетили более 100 000 человек.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/books/stackoverflow-most-popular-books">Самые популярные книги по версии Stack Overflow — разработчик рассказал о создании удобного сервиса и поделился месячным отчётом</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Книги]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Mar 2017 10:56:59 GMT</pubDate>
      <content:encoded><![CDATA[<p>Пользователь ресурса <a href="https://medium.freecodecamp.com">freeCodeCamp</a> Влад Ветцель <a href="https://medium.freecodecamp.com/i-analyzed-every-book-ever-mentioned-on-stack-overflow-here-are-the-most-popular-ones-eee0891f1786#.55s9hsltm">решил выяснить</a>, как найти «свою» книгу по программированию.</p><p>Свободное время разработчика ограничено, а для чтения его нужно много. Поэтому очень важно выбрать хорошую книгу, после прочтения которой не возникнет ощущения потерянного времени.</p><p>К счастью, Stack Exchange (родительская компания Stack Overflow) опубликовала дамп своей базы данных, которым и воспользовался Ветцель. Он запустил <a href="http://www.dev-books.com">сервис</a> dev-books.com, который позволяет изучить все собранные и отсортированные им данные о книгах, когда-либо упомянутых на Stack Overflow. Сайт уже посетило более 100 000 человек.</p><figure><img src="https://media.tproger.ru/uploads/2017/03/1-Gtla3Qgig00AgRvGc-kxg.png" alt="" /></figure><p>Кроме того, Влад поделился историей создания этого сервиса. Передаём ему слово.</p><p>Рассказывает Влад Ветцель</p><h3>Получение и импорт данных</h3><p>Я взял данные Stack Exchange из <a href="https://archive.org/details/stackexchange">archive.org</a>.</p><p>С самого начала было ясно, что нельзя выложить XML-файл размером 48 ГБ в новую базу данных (PostgreSQL), используя популярные методы, такие как myxml := pg_read_file('path/to/my_file.xml'), потому что на моем сервере не было 48 ГБ ОЗУ. Поэтому я решил использовать парсер <a href="https://en.wikipedia.org/wiki/Simple_API_for_XML">SAX</a>.</p><p>Все значения хранились в тегах &lt;row&gt;, так что для парсинга я использовал скрипт на Python:</p><p>После трех дней загрузки (за это время загрузилась почти половина XML), я понял, что допустил ошибку: атрибут ParentID на самом деле должен был быть задан как ParentId.</p><p>Ждать еще неделю мне не хотелось, и я перешел с AMD E-350 (2×1.35GHz) на Intel G2020 (2×2.90GHz). Но и это не ускорило процесс.</p><p>Следующим решением стала пакетная вставка:</p><p>StringIO позволяет использовать переменную вместо файла для обработки функции copy_from, которая использует COPY. Таким образом, весь процесс импорта данных занял всего одну ночь.</p><p>После этого я занялся созданием <a href="https://ru.wikipedia.org/wiki/Индекс_(базы_данных)">индексов</a>. Обычно индексы GiST медленнее, чем GIN, но они занимают меньше места. Поэтому я решил использовать GiST. На следующий день у меня был индекс объёмом 70 ГБ.</p><p>Когда я запустил пару тестовых запросов, я понял, что для их обработки нужно слишком много времени. Причина была в чтении с диска, и тут меня выручил новый SSD на 120 ГБ.</p><p>Я создал новый кластер PostgreSQL:</p><p>Затем я позаботился о том, чтобы скорректировать файл конфигурации (я использовал Manjaro OS):</p><p>Я перезагрузил конфиг и запустил PostgreSQL:</p><p>На этот раз для импорта потребовалась пара часов, но я использовал GIN. Индексы заняли 20 ГБ пространства на SSD, а выполнение простых запросов занимало меньше минуты.</p><h3>Извлечение книг из базы данных</h3><p>Когда мои данные, наконец, были импортированы, я начал искать сообщения, в которых упоминались книги, а затем скопировал их в отдельную SQL-таблицу:</p><p>Следующим шагом нужно было найти все гиперссылки:</p><p>Тут я понял, что StackOverflow проксирует все ссылки так: rads.stackowerflow.com/[$isbn]/</p><p>Я создал еще одну таблицу со всеми постами, содержащими ссылки:</p><p>Все номера <a href="https://ru.wikipedia.org/wiki/Международный_стандартный_книжный_номер">ISBN</a> я извлёк при помощи регулярного выражения. Я поместил теги Stack Overflow в другую таблицу через regexp_split_to_table.</p><p>Как только самые популярные теги были извлечены и подсчитаны, топ-20 книг по всем тегам почти совпадал. Поэтому я решил улучшить систему рейтинга.</p><p>Идея заключалась в том, чтобы брать 20 самых популярных книг для каждого тега и исключать книги, которые уже были обработаны.</p><p>Поскольку это была «разовая» работа, я решил использовать массивы PostgreSQL. Примерный план создания запроса:</p><h3>Создание веб-приложения</h3><p>Поскольку я не веб-разработчик и, конечно, не эксперт по пользовательским интерфейсам, я решил создать простое одностраничное приложение, основанное на Bootstrap.</p><p>Я создал опцию «Поиск по тегу» и извлёк самые популярные теги, чтобы сделать результаты поиска кликабельными.</p><p>Для визуализации результатов поиска я использовал столбчатую диаграмму. Сперва я попробовал Hightcharts и D3, но у них были проблемы с отзывчивостью и настройкой, поэтому я создал свою отзывчивую диаграмму на основе SVG:</p><h3>Заключение</h3><p>Этот сервис весьма полезен для людей, у которых нет времени изучать огромные списки книг о программировании, особенно учитывая их разнонаправленность, а поиск по тегам делает работу с проектом очень быстрой и удобной. Автор обещает опубликовать полный отчет в конце марта.</p><p>Обновление 25.03: Автор <a href="https://medium.freecodecamp.com/how-i-made-profit-on-publishing-most-mentioned-books-on-stackoverflow-2914d576e51f#.ev2iaw66j">опубликовал</a> полный отчёт из Google Analytics и Amazon вместе со своей историей. Слово Владу.</p><h3>Как сайт приносит прибыль</h3><p>Для этого проекта я выбрал <a href="https://affiliate-program.amazon.com/">партнерскую программу Amazon</a>, потому что Amazon — это самый большой известный мне книжный магазин. Регистрация учетной записи была довольно простой, поэтому я получил свой тег в партнерской программе для использования в ссылках на моем веб-сайте менее чем за час.</p><h3>Начальный запуск</h3><p>После запуска я разместил ссылку на <a href="http://www.dev-books.com/">dev-books.com</a> на сайтах <a href="https://news.ycombinator.com/">Hacker News</a> и <a href="https://www.reddit.com/">Reddit</a>, пытаясь привлечь внимание некоторых разработчиков к моему проекту.</p><p>К сожалению, это не привлекло широкой аудитории, на которую я надеялся. Но я начал получать отзывы, исправил некоторые ошибки и получил предложения о том, как продвинуть мой проект.</p><p>В конце дня я получил сообщение от преподавателя <a href="https://www.freecodecamp.com/">freeCodeCamp</a> <a href="https://medium.com/@quincylarson">Куинси Ларсона</a>. Он предложил мне написать рассказ о моем проекте и о его создании, чтобы сделать его более доступным для людей.</p><h3>Прорыв</h3><p>Я прочитал <a href="https://medium.freecodecamp.com/how-to-get-published-in-the-freecodecamp-medium-publication-9b342a22400e">статью</a> Куинси Ларсона и нашел очень полезный инструмент для создания заголовков, Headline Analyzer. Я проверил заголовок, который использовал для своих постов, и получил довольно низкую оценку. Я улучшил его для повторной отправки на мой сайт.</p><p>Довольно скоро я набрал 65 очков и опубликовал свежий заголовок для Hacker News и Reddit.</p><p>На этот раз, по данным Google Analytics, было зафиксировано более 750 одновременных посетителей в течение нескольких часов подряд, а мой пост в Hacker News был в топе.</p><p>На следующий день я узнал, что у dev-books.com более 5000 репостов на Facebook.</p><figure><img src="https://media.tproger.ru/uploads/2017/03/1-tU49b3dplvb5zDhkVMf5Yw.png" alt="" /></figure><h3>Геолокация</h3><p>На следующий день я создал отчет по геолокации в Google Analytics и выяснил, что довольно много трафика идет из Азии и Европы, в особенности из России.</p><figure><img src="https://media.tproger.ru/uploads/2017/03/1-wps48MEp5F_I2tsU842gpA.png" alt="" /></figure><p>Мои азиатские и европейские посетители были вынуждены ожидать заказы из США. Чтобы избежать этого ожидания, я создал партнерские аккаунты на amazon.co.uk, amazon.de и amazon.fr. Из-за этой проблемы я потерял несколько заказов.</p><p>В ту же ночь мои посетители начали получать ссылки на ближайший магазин.</p><h3>Самая интересная часть</h3><p>На приведенных ниже рисунках вы можете увидеть статистику Amazon.com за февраль 2017 года. Из всего европейского кластера Amazon я получил чуть больше 250 долларов. Возможно, было бы больше, если бы я сделал ссылки на основе геолокации с самого начала.<br /><a href="https://media.tproger.ru/uploads/2017/03/1-2FjiX37coAfi8BaePIAebA.png"></a></p><p>Мой заработок за февраль: $2534,40.</p><figure><img src="https://media.tproger.ru/uploads/2017/03/1-ca_urmCqLb46MQnqDtKYCg.png" alt="" /></figure><p>Доволен ли я результатом? Абсолютно.</p><p><a href="http://www.dev-books.com/">Dev-books.com</a> по-прежнему работает и продолжает получать заказы. За полтора месяца с момента запуска сервис принес мне более 3000 долларов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Топ тегов на Stack Overflow с 2010 по 2017 год в реальном времени</title>
      <link>https://tproger.ru/articles/stackoverflow-top-2010-2017</link>
      <comments>https://tproger.ru/articles/stackoverflow-top-2010-2017?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тарас Сереванн]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/stackoverflow-top-2010-2017</guid>
      <description><![CDATA[<p>Статистика тегов Stack Overflow за 7 лет: JavaScript занял первое место в 2013 году, Python быстро растёт, а PHP и Android теряют популярность.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/stackoverflow-top-2010-2017">Топ тегов на Stack Overflow с 2010 по 2017 год в реальном времени</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 18 Feb 2017 19:35:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>Stack Overflow является поистине культовым местом среди программистов любого направления: наверное, об этом сайте знают все настоящие разработчики. На сайте появляется более 500 вопросов и ответов каждый час.</p><p>Tproger публикует статистику по тегам за последние 7 лет: она отображает изменения трендов со временем, взлеты и падения популярности языков и платформ.</p><figure><img src="https://media.tproger.ru/uploads/2017/02/Screenshot-1136.png" alt="" /></figure><figure><img src="https://media.tproger.ru/uploads/2017/02/Screenshot-1135.png" alt="" /></figure><p><br /><br />Из рейтинга можно сделать много интересных выводов. Например, что JavaScript окончательно захватил первое место в 2013 году и пока не собирается отступать. С другой стороны, также заметно, что Python стремительно набирал популярность все эти годы и в 2017 имеет все шансы обогнать JavaScript. Кроме того, мы можем сделать вывод, что PHP и разработка под Android постепенно перестают быть трендовыми вещами.</p><p>Посмотреть статистику в реальном времени можно на сайте <a href="https://stackapps.com/questions/239/analyticsoverflow-tracking-question-and-answer-counts-over-time/524">AnalyticsOverflow</a>.</p><p>Напомним, не так давно также <a href="https://tproger.ru/news/happiest-vs-angriest-comments/">был опубликован интересный анализ</a> Stack Overflow — определены самые дружелюбные сообщества программистов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Haskell на первом месте: опубликованы результаты анализа популярных вопросов на Stack Overflow в выходные дни</title>
      <link>https://tproger.ru/news/popular-weekends-technologies</link>
      <comments>https://tproger.ru/news/popular-weekends-technologies?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Антон Корольков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/popular-weekends-technologies</guid>
      <description><![CDATA[<p>Анализ показал: на Haskell приходится 0.365% вопросов в выходные против 0.21% в будни, а Sharepoint заметно популярнее в рабочие дни.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/popular-weekends-technologies">Haskell на первом месте: опубликованы результаты анализа популярных вопросов на Stack Overflow в выходные дни</a>»</p>]]></description>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Feb 2017 20:14:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>Для этого исследования <a href="https://www.kaggle.com/stackoverflow/stacklite">использовались</a> существующие вопросы и теги, которыми маркированы более чем 10 тысяч вопросов. Для определения выходных дней использовались даты в формате UTC, которые могут соответствовать выходным не для всех пользователей. Всего в статистике используются 10,451,274 вопросов в рабочие дни и 2,132,073 вопросов в выходные.</p><p>Какие же из тегов имеют наибольшую разницу в частоте вопросов в рабочие и выходные дни? Ответ дает следующий график:</p><figure><img src="https://media.tproger.ru/uploads/2017/02/Hz3mt.png" alt="" /></figure><p>Haskell показывает необычную популярность в выходные дни, составляя 0.365% всех вопросов в сравнении с 0.21% вопросов в рабочие дни. Sharepoint же напротив, более популярен в рабочие дни: 0.0683% в выходные против 0.188% в рабочие.</p><p>Как можно заметить, низкоуровневые технологии, такие как C, C++, указатели, Ассемблер, более популярны в выходные дни, так же, как и вопросы по математике, алгоритмам, рекурсии.</p><p>Heroku и Meteor — программные платформы, применяемые в быстром прототипировании, что может объяснять то, что они более популярны в выходные, так как используются в хобби-проектах.</p><p>Многие из популярных в рабочие дни технологий связаны с Microsoft: Excel, SQL Server, VBA, T-SQL.</p><p>Также можно визуализировать зависимость общего числа вопросов от отношения количества упоминаний в рабочие дни и выходные.</p><figure><img src="https://media.tproger.ru/uploads/2017/02/sdFa6.png" alt="" /></figure><p>Видно, что наиболее популярные теги в рабочие дни связаны с Microsoft, в то время как в выходные дни преобладает интерес к низкоуровневым языкам и новым технологиям, таким как Swift и Node.js.</p><p>Приведем пару графиков, показывающих, как изменилось отношение разработчиков к технологиям во времени.</p><figure><img src="https://media.tproger.ru/uploads/2017/02/TjFxX.png" alt="" /></figure><p>Заметим, что теги, вроде Ruby on Rails и Scala были популярнее несколько лет назад на выходных, чем в рабочее время, но теперь ситуация поменялась.</p><figure><img src="https://media.tproger.ru/uploads/2017/02/LUQei.png" alt="" /></figure><p>В то же время такие технологии, как Unity3D и мобильная разработка, сейчас чаще используются на выходных. Похоже, разработчики занимаются играми и мобильными приложениями на выходных чаще, чем пару лет назад. Неплохое времяпрепровождение ?</p>]]></content:encoded>
    </item>
    <item>
      <title>Определены самые дружелюбные сообщества программистов на Stack Overflow</title>
      <link>https://tproger.ru/news/happiest-vs-angriest-comments</link>
      <comments>https://tproger.ru/news/happiest-vs-angriest-comments?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Иван Бирюков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/happiest-vs-angriest-comments</guid>
      <description><![CDATA[<p>Сара Робинсон из команды Google Cloud проанализировала комментарии площадки: доброжелательнее прочих оказались R, Rust, веб- и iOS-разработчики.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/happiest-vs-angriest-comments">Определены самые дружелюбные сообщества программистов на Stack Overflow</a>»</p>]]></description>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 18 Jan 2017 11:53:42 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сара Робинсон, член команды Google Cloud, <a href="https://hackernoon.com/which-programming-languages-have-the-happiest-and-angriest-commenters-ebe91b3852ed?imm_mid=0ec3e0#.pyrjduxtm">провела анализ</a> комментариев на популярной площадке Stack Overflow. Целью исследования было выявление наиболее и наименее доброжелательно настроенных сообществ программистов.</p><h4>И как она это сделала?</h4><p>Для выявления позитивных комментариев Сара искала комментарии, содержащие следующие слова и фразы: “thank you”, “thanks”, “awesome” и “:)”. Вот BigQuery-запрос:</p><p>А вот результат:</p><figure><img src="https://media.tproger.ru/uploads/2017/01/1-xxi4Z2h8aoT2xcFKKaK5VA.png" alt="" /></figure><p>Выяснилось, что программисты, пишущие на R и Rust, а так же веб- и iOS-разработчики являются самыми доброжелательными и счастливыми программистами.</p><h4>Ну а как же негативные комментарии?</h4><p>Для поиска отрицательно окрашенных комментариев использовался тот же запрос, но ключевыми словами и фразами являлись следующие: “wrong”, “horrible”, “stupid”, or “:(“. Результаты — на скриншоте ниже:</p><figure><img src="https://media.tproger.ru/uploads/2017/01/1-gGEnb-skq7OH5gJGfd7V9A.png" alt="" /></figure><p>Очевидно, больше всего отрицательных комментариев оставляют в обсуждениях о Си и производных от него языках.</p><h4>Не всё так плохо, как кажется</h4><p>Хотя Интернет и представляется многим достаточно негостеприимным местом, на каждый отрицательный комментарий набралось почти 6 положительных ?</p>]]></content:encoded>
    </item>
    <item>
      <title>Как лучше сравнивать перечисляемые типы в Java</title>
      <link>https://tproger.ru/articles/comparing-enums-in-java</link>
      <comments>https://tproger.ru/articles/comparing-enums-in-java?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Пётр Соковых]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/comparing-enums-in-java</guid>
      <description><![CDATA[<p>Что лучше использовать для сравнения enum'ов: == или equals()? В статье разбираем интересные аргументы в пользу обоих вариантов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/comparing-enums-in-java">Как лучше сравнивать перечисляемые типы в Java</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 18 Nov 2016 20:15:13 GMT</pubDate>
      <content:encoded><![CDATA[<p>Недавно на Stack Overflow я <a href="http://stackoverflow.com/questions/1750435/comparing-java-enum-members-or-equals">наткнулся</a> на, казалось бы, простой вопрос:</p><p>Что лучше использовать для сравнения enum'ов --- == или equals()?</p><p>Вы, конечно, можете сходу ответить, что никакой разницы нет, но будете неправы — в ответах к этому вопросу было приведено много интересных аргументов в пользу обоих вариантов. Я решил, что будет интересно перевести этот спор на русский язык.</p><h2>Они же оба работают, верно?</h2><p>Да. В документации <a href="https://web.archive.org/web/20150225232817/http://docs.oracle.com:80/javase/specs/jls/se5.0/html/classes.html">написано</a>:</p><p>«Допустимо использовать оператор == вместо метода equals, если доподлинно известно, что хотя бы один из них ссылается на перечислимый тип» (“It is permissible to use the == operator in place of the equals method when comparing two object references if it is known that at least one of them refers to an enum constant”).</p><p>Причина этого очень простая — каждый из объектов enum создаётся только единожды, и поэтому, если вы создадите десять переменных равных SomeEnum.RED, они все будут ссылаться на один и тот же объект (а оператор == как раз это и проверяет).</p><h2>Какие есть преимущества у оператора ==?</h2><p>1. Он никогда не выбросит следующее:</p><p>2. В одном из ответов приводилась цитата Джошуа Блоха (автор книги «Effective Java», видимо, и цитата оттуда) о том, что этот оператор работает быстрее, и если гарантируется уникальность каждого экземпляра класса, то стоит использовать именно его.</p><p>3. Как известно, сравнения через == проверяются на соответствия типов во время компиляции (это хорошо, поскольку поможет вовремя выявить ошибку):</p><p>4. Этот вариант короче, и сразу понятно, что происходит именно проверка равенства (то есть вариант более читаемый).</p><h2>Ого, как серьёзно все подошли к вопросу! Ну теперь точно буду использовать оператор равенства.</h2><p>Не спешите так. Не все единогласно за ==. Вот что пишут сторонники equals():</p><ul><li>Нет ни единого случая, когда переменная перечисляемого типа должна быть равна null — если вы так описываете какое-то особое состояние, то его можно просто заменить на ещё одно допустимое состояние enum'а. А значит, NPE не надо скрывать, так как это, вероятнее всего, ошибка, и чем раньше о ней станет известно, тем лучше.</li><li>Аргумент про скорость == весьма сомнителен. Современные компиляторы, скорее всего умеют заменять equals на == самостоятельно. Если это не так (как доказали позже, это действительно <a href="http://stackoverflow.com/a/7773685">не так</a>), то это проблема Java, над которой нужно работать.</li><li>Какой Java-программист не знает, что делает equals? Такой вариант наоборот более читаем, так как для объектов мы привыкли использовать именно метод equals. Значит, и для enum’ов нужно поступать так же, чтобы не возникало путаницы.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Викторина: хорошо ли вы знаете Stack Overflow?</title>
      <link>https://tproger.ru/quiz/stack-overflow</link>
      <comments>https://tproger.ru/quiz/stack-overflow?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Пётр Соковых]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/quiz/stack-overflow</guid>
      <description><![CDATA[<p>Вопросы о том, как устроено сообщество Stack Overflow, почему вопросы закрывают и что там считают публикацией низкого качества — проверьте свои знания.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/quiz/stack-overflow">Викторина: хорошо ли вы знаете Stack Overflow?</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Материалы от друзей Tproger]]></category>
      <category><![CDATA[Викторины]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 01 Nov 2016 20:26:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>На протяжении последних лет для многих интернет стал лучшим источником новых знаний. Иногда случается, что ответ именно на ваш вопрос еще не существует. Что делать в этом случае? Спросить совета у коллег на Stack Overflow!</p><p>Звучит легко, но на деле, даже самые опытные специалисты становятся авторами «закрытых» вопросов. Ничего сложного в публикации вопросов на Stack Overflow нет, просто надо понимать, как устроено сообщество — мы подробно описывали это в недавних публикациях — мы <a href="https://tproger.ru/sponsored/stack-overflow-part-3/">рассказывали</a> о наиболее важных аспектах использования Stack Overflow, необходимых каждому разработчику, и <a href="https://tproger.ru/sponsored/stack-overflow-part-2/">объясняли</a>, как реагирует сообщество на «вопросы низкого качества» и что делать, если такой вопрос задали именно вы. Освоив несколько простых правил, вы без труда сможете непрерывно получать на Stack Overflow те знания, которые необходимы для решения ваших задач, не тратя лишнее время на чтение всей документации.</p><p>Проверим, насколько хорошо вы знаете, что такое Stack Overflow и как им пользоваться?</p>]]></content:encoded>
    </item>
  </channel>
</rss>