#вопросы_с_собесов
🤔Представьте, что в вашем проекте была обнаружена ошибка, и вы знаете, что несколько недель назад такой ошибки не было.
💬Каким инструментом Git можно воспользоваться, чтобы быстро выяснить, из-за какого конкретно коммита возникла данная проблема?
📌Вместо того чтобы вручную проверять каждый коммит, вы можете использовать мощный инструмент git bisect.
🔸Это утилита для поиска коммита, в котором впервые проявился баг или проблема с помощью автоматического бинарного поиска.
🔸Последовательность действий следующая: запускаем процесса поиска, затем указываем Git на коммть, который сломан, после чего указываем, когда было последнее известное рабочее состояние.
> git bisect start
> git bisect bad
> git bisect
[good_commit]
1⃣Git автоматически переключит нас на коммит, который находится посередине между хорошим и плохим коммитами. Продолжаем👇
2⃣Запускаем тесты и проверяем наличие проблемы в этом коммите. Пусть в данном коммите проблема не выявлена. Сообщаем об этом Git с помощью git bisect good
и продолжаем дальше👇
3⃣Мы оказались на другом коммите, расположенном посредине между только что протестированным и плохим коммитами. Снова выполняем тесты и обнаруживаем, что текущий коммит сломан, и сообщаем об этом Git с помощью команды git bisect bad
👇
4⃣Данный коммит хороший и теперь Git имеет всю необходимую информацию для определения того, где была внесена ошибка. Он сообщает нам хеш первого плохого коммита и отображает некоторую информацию о коммите и файлах, которые были изменены в этом коммите, чтобы разобраться в проблеме.
4⃣После завершения поиска выполняем git bisect reset
, чтобы вернуться к изначальной ветке и завершить процесс bisect.
Используя этот инструмент, мы можем существенно ускорить процесс выявления проблемных коммитов, особенно в больших проектах с активной историей разработки.
#холивар
🤔Микросервисы 🆚 монолиты
🚀Микросервисная архитектура — это подход, который помогает не только ускорить разработку продукта, но и сделать ее гибкой и управляемой. В микросервисной архитектуре приложение разбивается на ряд независимо развертываемых сервисов, которые взаимодействуют с помощью API-интерфейсов.
В отличие от монолитного приложения, с микросервисной архитектурой команды могут быстрее внедрять новые возможности и вносить изменения, при этом им не приходится переписывать большие фрагменты существующего кода.
❗️Микросервисный подход не лишён недостатков. При кажущейся простоте и логичности деления большого продукта на самостоятельные сервисы разработка распределённой системы — процесс сложный и с технической, и с организационной точек зрения. Плюсы могут обернуться минусами.
💬Можете ли вы привести примеры успешных или неудачных попыток перехода к микросервисам в вашей практике или в отрасли?
Вебинар «Собеседование на разработчика: разбор задач и ошибок» сегодня в 19:00
Под этим постом вы можете задать любой вопрос спикеру!
Ссылка на трансляцию в YouTube – https://www.youtube.com/watch?v=DT2UpJY2rlE
Запись эфира опубликуем здесь – /channel/proglib_academy
Подробности о курсе «Алгоритмы и структуры данных» – https://proglib.io/w/788d77ba
#infographic
OAuth 2.0 определяет несколько потоков авторизации, позволяющих сторонним приложениям получать доступ к пользовательским данным без раскрытия конфиденциальных учетных данных.
📌К общим потокам относятся:
1️⃣ Authorization Code Flow
2️⃣ Client Credentials Flow
3️⃣ Implicit Code Flow
4️⃣ Resource Owner Password Grant Flow
🔗Источник
#новости
⚡️На прошлой неделе Meta* выпустила новую серию больших языковых моделей для разработчиков, которая позволяет генерировать код по текстовому запросу
📌Цель — сделать рабочие процессы быстрее и эффективнее для разработчиков и снизить входной барьер для тех, кто только учится программировать.
▫️Code Llama — это специализированная версия Llama 2, созданная путем дальнейшего обучения Llama 2 на наборах данных, специфичных для кода.
▫️По сути, Code Llama обладает расширенными возможностями для разработчиков. Она может генерировать код из запросов на естественном языке как из кода, так и из подсказок на естественном языке.
▫️Ее можно использовать как для генерации кода, так и для завершения/отладки кода. Она поддерживает многие из наиболее популярных ЯП, используемых сегодня.
▫️Новая LLM может использоваться в качестве инструмента повышения производительности и обучения, помогая программистам писать более надежное и хорошо документированный код.
📌Разработчики LLM также доработали два дополнительных варианта Code Llama:
1️⃣Code Llama-Python — специализированная языковая вариация Code Llama, доработанная на 100 млрд токенов кода Python.
2️⃣Code Llama-Instruct — доработанный и согласованный вариант инструкций Code Llama.
Meta утверждает, что Code Llama показала лучшие результаты по сравнению с общедоступными LLM на основе эталонных тестов: Code Llama набрала 53.7% баллов в бенчмарке HumanEval и смогла безошибочно написать код на основе текстового описания.
📌А теперь немного мыслей относительно применения локальных языковых моделей на базе llama2:
✅Отличная лицензия для бизнеса — можно прикрутить в стартап.
✅Безопасность: на случай, если запрещено использовать ChatGPT для корпоративных задач, локальная LLM приходят на помощь.
✅Гибкость: модель можно дообучить, поиграть с параметрами. Одним словом все, что приходит на ум.
✅Это дешевле в частном использовании.
*организация, деятельность которой запрещена на территории РФ
Помните недавно публиковали работу 17-летней Лекси Маттик? Эта работа — результат большого труда в надежде найти простое объяснение сложным вещам. Лекси перелопатила тонны ресурсов разного качества и иногда противоречащих друг другу, и потратила несколько недель исследований.
К чему все это? На Хабре появился перевод, который можно намного проще «пропустить» через себя. С помощью простых иллюстраций вы узнаете, как работает многопроцессорность, что такое системные вызовы, как компьютеры управляют памятью с помощью аппаратных прерываний и как Linux загружает исполняемые файлы.
#карьера
🎙Серия «Как мы попали в ИТ» продолжается. В новом видео про свой путь рассказывает Александр Кучук.
Учить Java — довольно стандартный выбор для многих, кто хочет попасть в ИТ, но наслушался обидных шуток про фронтендеров, и решил идти в бэкенд. Популярный энтерпрайзный язык, куча вакансий, больше сообщество, много учебных материалов.
Александр — автор и обидных шуток про фронтендеров, и человек, который прошел путь java разработчика по всем канонам.
Видел и миллионы отказов от компаний, и рабочие будни в огромных корпорациях, и стартапы, и преподавание для студентов.
В новом выпуске он расскажет про свои первые шаги в ИТ.
📺 Смотреть
Прямой эфир «Технический этап собеседования: разбор задач и ошибок»
🕐 Когда?
29 августа в 19:00 мск
🗣️ Кто спикер?
Алексей Бочкарев | Engineering Manager at FAANG
🦥 Где регистрироваться?
Здесь – https://proglib.io/w/4fb06b26
🌝 О чем поговорим?
– Комбинаторика и комбинаторные числа: определение и практические примеры
– Основные идеи динамического программирования
– Идеи рекурсии и примеры, включая inorder обход двоичного дерева
– Графы и способы их представления
– Примеры различных типов асимптотической сложности
– Распространенные ошибки в коде, как избегать обращения за границы массива, разыменования нулевого указателя, некорректная логика
☄️ Регистрируйтесь, будет интересно – https://proglib.io/w/4fb06b26
🤖 Generative AI: как ускорить разработку с помощью Github Copilot и Databricks English SDK
Давайте разберемся, что же могут помощники и SDK, а чего от них ожидать еще рано. Рассмотрим наиболее популярные решения от Github и Databricks: варианты использования и их ограничения. Также поговорим о перспективах профессии AI-инженера.
🔗 Читать статью
🔗 Зеркало
Бесплатные учебники и задачники по программированию
на сайте code.mu/ru/
HTML, CSS, JavaScript, PHP, React, Vue,
LESS, SASS, TypeScript, Laravel, NodeJS, Express, Mongo, SQL, Webpack
Учебники написаны простым языком, много примеров,
в конце каждого урока - задачи для закрепления пройденного.
Заходи!
Это #партнерский пост
Яндекс устроил 1500 стажерам и тем, кто хочет ими стать, большую вечеринку — День стажера. В офисе компании в Москве стажеры могли познакомиться с коллегами, неформально пообщаться с руководителями направлений Яндекса и изнутри узнать рабочие лайфхаки.
А еще посетить лекции от разработчиков и аналитиков, стенды с актуальными вакансиями и повеселиться на массе активностей. Стать стажером можно и сейчас, вся информация по ссылке.
#новости
⚡️В Excel завезли Python
Стала доступна публичная предварительная версия этой фичи, позволяющая пользователям Excel манипулировать данными и анализировать их с помощью Python.
Вы можете манипулировать и исследовать данные в Excel с помощью графиков и библиотек Python, а затем использовать формулы, диаграммы и таблицы PivotTables Excel для дальнейшего уточнения своих выводов.
Для доступа к этому функционалу не потребуется устанавливать дополнительное ПО или что-то настраивать, ведь интеграция Python в Excel будет осуществляться в рамках встроенных коннекторов Excel и Power Query.
Microsoft также добавляет новую фичу PY, которая позволяет отображать данные Python в сетке таблицы Excel. Благодаря партнерству с Anaconda в Excel будут доступны такие популярные библиотеки Python, как statsmodels, pandas и Matplotlib.
🐛 9 признаков неопытного программиста
Давайте попробуем отделить зерна от плевел и вывести несколько общих признаков, по которым можно определить неопытного программиста.
🔗 Читать статью
🔗 Зеркало
💬 Пользуетесь LinkedIn для поиска работы или других кейсов?
Больше «честных логотипов» от графического дизайнера Clif Dickens ищите на сайте.
👍 — конечно
🤔 — нет, он же заблокирован
Вебинар «Графы: алгоритмы и структуры данных на Python» сегодня в 19:00
Под этим постом вы можете задать любой вопрос спикеру!
Ссылка на трансляцию в YouTube – https://youtube.com/live/Uqp-pzGMjlU?feature=share
Запись эфира опубликуем здесь – /channel/proglib_academy
Подробности о курсе «Алгоритмы и структуры данных» – https://proglib.io/w/788d77ba
#новости
Исследователи из подразделения искусственного интеллекта Google DeepMind анонсировали новую ИИ-модель Gemini, которая, как заявляется, минимум в 5 раз мощнее GPT-4.
Gemini умеет работать сразу со всеми типами контента: текст, видео, аудио и изображения. Модель выйдет в паблик ближе к концу этого года.
💬Ждем GPT-5 этой осенью? Или OpenAI превращается в отстающих? Там еще и Meta* со своими моделями.
*организация, деятельность которой запрещена на территории РФ
Оффер за одну неделю для Backend & Frontend mobile разработчиков в компанию YADRO
Ведущая технологическая компания России YADRO проводит One Week Offer, в рамках которого ты сможешь получить оффер от компании за одну неделю.
Специалисты нужны в команду KVADRA OC, которая занимается созданием и разработкой операционной системы для персональных компьютеров, ноутбуков и других клиентских устройств, выпускаемых под брендом KVADRA.
Оставь заявку на участие до 13 сентября: https://oneweekoffer.yadro.com/
🔄 Правильный рефакторинг в C#: улучшаем читабельность кода с помощью высокой связности
В этой статье мы разберём понятие высокой связности (high cohesion) и пример соответствующего рефакторинга кода.
🔗 Читать статью
🔗 Зеркало
💬🦙 LlamaIndex: создаем чат-бота без боли и страданий. Часть 2
Продолжаем изучать фреймворк для создания AI-ботов. В этой части узнаем про тонкости индексирования собственной базы документов.
🔗Читать статью
#карьера
🤔 Перейти на роль инженера MLOps может быть проще, чем вы думаете
MLOps (ML + DEV + OPS) — это культура и набор практик комплексного и автоматизированного управления жизненным циклом систем машинного обучения, объединяющие их разработку (Development) и операции эксплуатационного сопровождения (Operations), в том числе интеграцию, тестирование, выпуск, развертывание и управление инфраструктурой.
Обычно инженеры MLOps — это инженеры, которым поручено создать платформу ML в организации. Это означает, что требуемый набор навыков очень широк — естественно, очень немногие люди начинают с полного набора навыков, необходимых для того, чтобы назвать себя инженером MLOps. А вот перейти с другой позиции — вполне возможно👇
1⃣ Инженер ML/Data Scientist/Data Platform — самый простой вариант, ведь если вы уже успешны на своей должности, возможно, у вас уже есть навыки, необходимые для перехода в MLOps-инженеры. Таким образом, основной сдвиг скорее ментальный, чем технический.
2⃣ Infrastructure/Cloud инженер: вы, скорее всего, хороши в инфраструктурной архитектуре, IaaC, облачных сервисах и т. д. Это все важные навыки, которые необходимо иметь в команде платформы ML.
3⃣ DevOps инженер: вы, вероятно, освоили инфраструктуру CI/CD и очень хорошо знаете, как создавать шаблоны и ускорить разработку — каждый из этих навыков необходим, чтобы стать инженером MLOps.
4⃣ Software инженер. Существует ряд областей, в которых навыки разработки ПО могут быть использованы в команде платформы ML, например: разработка бэкенд сервисов и UI, которые будут использоваться пользователями платформы. Кроме того, вы, вероятно, так же хорошо разбираетесь в инфраструктуре CI/CD, как и большинство инженеров DevOps.
📖➕➕ ТОП-10 книг по языку программирования С++ в 2023 году
Подборка свежей литературы на русском языке для желающих постичь С++: язык микроконтроллеров, игровых движков, драйверов и высоконагруженных приложений.
Читать статью
#rust
😡❤️ В связи с тем, что отдельного канала по Rust у нас пока нет, интересные ресурсы будем публиковать здесь.
Rustlings — проект с небольшими упражнениями, которые помогут вам научиться читать и писать код на Rust.
📌В качестве альтернативы для тех, кто впервые изучает Rust, есть несколько других ресурсов:
📖Наиболее полный ресурс для изучения Rust, но иногда может показать чересчур теоретическим. Используйте эту онлайн-книгу вместе с Rustlings.
😎Rust на примере: изучайте Rust, решая небольшие упражнения. Это почти как rustlings, но онлайн.
#новости
🔥Главное из игровой презентации Gamescom 2023
🎮 Анонс Killing Floor 3 — мультиплеерный шутер выйдет на ПК, Xbox Series и PS5. Дата релиза пока неизвестна.
🎮 Презентация Cyberpunk 2077: Phantom Liberty. Разработчики полностью изменили систему перков и полиции, добавили возможность стрелять во время езды и дополнительные миссии.
⚡️Трейлеры
📺 Little Nightmares 3 — хоррор-платформер разрабатывает студия Supermassive Games, известная по Until Dawn (выйдет в 2024 году).
📺 Black Myth: Wukong — экшен-RPG по мотивам китайского романа «Путешествие на запад» должна выйти в 2024.
📺 «Мятежной луны» Зака Снайдера — первая часть блокбастера выйдет на Netflix 22 декабря, вторая — 19 апреля 2024.
📺 Сюжетный ролик Assassin's Creed Mirage — показали историю главного героя Басима (выйдет 5 октября на ПК, Xbox и PlayStation).
📺 Tekken 8 — новая часть знаменитого файтинга выйдет 26 января на ПК, Xbox Series и PlayStation 5.
📺 Mortal Kombat 1 — показали завязку игры и кровавые драки. Файтинг выйдет на ПК, Xbox, PlayStation и Switch 19 сентября.
📺 Lords of the Fallen — хардкорный экшен выйдет на ПК, Xbox Series и PlayStation 5 уже 13 октября.
📺 Alan Wake 2 — долгожданное продолжение хоррор-триллера выйдет 27 октября.
📺 Отрывок игрового процесса Call of Duty: Modern Warfare 3 — показали первую миссию сюжетной кампании, действие которой разворачивается в тюрьме (появится в продаже 10 ноября на ПК, Xbox и PlayStation)
💼🚫 Устроился на работу, но она разонравилась: 8 советов, что делать
Несколько советов, как адаптироваться и понять, стоит ли оставаться или лучше уволиться.
🔗 Читать статью
🔗 Зеркало
В далеком 1999 авторы журнала Maximum Linux достаточно смело и вполне уместно писали: «…Linux берет верх над Windows». Причин здесь несколько:
✅Более стабильная
✅Проста в установке
✅Легко кастомизируется
✅Быстрая
В ежемесячном рейтинге StatCounter представлены данные по распространенности десктопных операционных систем. Так, в июне 2023 года, доля Linux-дистрибутивов первый раз превысила отметку 3%.
Лидером стабильно остается ОС Windows (69,51%), за ней расположены macOS (20,43%), неизвестная система (3,69%), Chrome OS (3,24%), Linux (3,13%) и FreeBSD (0,01%).
Для сравнения: в июне 2019 года доля Linux составляла 1,6%, в июне 2021 — 2,68%, а в январе 2023 — 2,91%.
🤷А теперь интересное: авторы статистики (StatCounter) использовали не ту методику и учли не все дистрибутивы — они вынесли Chrome OS в отдельную графу, хотя это тоже полноценный Linux-дистрибутив. Понимаете, к чему мы клоним?
💬В любом случае, Linux здесь проигрывает. А что там с серверной ОС? Как там у винды дела? И да, посмотрите, как стремительно растет процент десктопного линукса.
❗Ищем копирайтера
Нам нужен человек, который:
— Любит IT и русский язык.
— Понимает разницу между бэкендом и фронтендом, OWASP и MISRA, функциональным программированием и ООП, микроконтроллером и миникомпьютером, UX и UI.
— Имеет опыт работы от 1 года.
— Будет плюсом, если вы программируете на каком-нибудь языке на уровне стажера/джуна.
Что нужно делать:
— Готовить подборки, ТОПы книг, ютуб- и телеграм-каналов по языкам программирования.
— Делать расшифровки топовых Ютуб-роликов по теме программирования и оформлять их в виде статей.
— Готовить новостные заметки.
— Актуализировать старые статьи.
— Брать интервью у экспертов. Мы поможем с поиском экспертов.
— Иногда писать небольшие рекламные посты в телеграм.
— Писать статьи с кодом, переводить статьи (по желанию, оплачивается отдельно).
Можно использовать нейронки?
— Да, главное, чтобы материал получился интересный.
Условия:
— Белая зарплата: 50 000 руб.
— Возможность работать удаленно.
👉Присылайте свои резюме: hello@proglib.io
👀 Повышаем APRU приложений до 91%, ничего не делая
Коротко про опыт одной студии мобильной разработки, которая сэкономила время и прибавила в доходах с приложений с помощью всего одного инструмента.
🔗 Читать статью
Новые каналы по Go🎉
Готовимся к собеседованиям по Go и проверяем себя на практических задачках: «Библиотека программиста» запустила два канала специально для Go-разработчиков и тех, кто хочет ими стать👨🏫
Подписывайтесь:
👉Библиотека собеса по Go — тут мы готовимся к интервью
👉Библиотека задач по Go — тут решаем задачи, проходим тесты и изучаем код
🎓 4 причины учиться в вузе в 2023 году
Курсы привлекают своей доступностью и стоимостью, но стоит ли овчинка выделки?
Чем вуз лучше курсов?
1. Глубокие, системные знания и проработанные программы обучения.
2. Преподавание опытными учеными и педагогами.
3. Диплом вуза открывает перспективы трудоустройства и карьерного роста.
4. Вуз дает навыки исследовательской работы и основу для научной карьеры.
Пока открыт набор на программу «Прикладная статистика с методами сетевого анализа» и у вас есть шанс подать документы до 15 сентября.
❓Чем эта программа отличается от других магистерских программ и курсов?
Программа не имеет аналогов в России, в ее основе — лучшие практики образовательных программ Университета Индианы и Университета Иллинойса в США.
📝 Если у меня нет профильного образования, я смогу поступить?
Мы приглашаем на программу всех, кого интересует сфера анализа данных.
💼 Смогу ли я совмещать учебу с работой?
Обучение на магистратуре будет проходить вечером в будние дни и по субботам. Так вы сможете продолжить карьеру и встроить учебу в свое расписание.
🚀 Okay! Хочу попробовать!
Программа «Прикладная статистика с методами сетевого анализа»
#чтопроисходит
⚡️Ловите подборку самых важных нововведений Git 2.42:
➕ Предложен новый алгоритм обхода битовых карт, отражающих данные о наборах объектов, доступных для каждого коммита, и позволяющих быстро определить наличие базового объекта для сокращения времени извлечения данных при выполнении операций с большими репозиториями ('git fetch', 'git rev-list' и 'git clone').
➕ Добавлен новый механизм для сохранения недостижимых объектов (unreachable object), на которые в репозитории отсутствуют ссылки (не ссылаются ветки или теги) и которые подлежат удалению сборщиком мусора после истечения таймаута.
➕ В команде 'git for-each-ref' реализован гибкий механизм исключения ссылок из вывода, более удобный и эффективный, чем применение переменной transfer.hideRefs.
➕ В команде 'for-each-ref' расширены средства форматирования ссылок при помощи опции '--format'. Появилась возможность вывода информации, связанной с GPG-подписями.
➕ Расширено применение механизма частичных индексов (sparse index), охватывающих лишь часть репозитория.
➕ В команде 'git rev-list' при использовании опции '--stdin' для упрощения вызова из скриптов разрешено указание через входной поток данных для расширенных модификаторов, таких как '--branches', '--tags' и '--remotes'.
➕ Реализовано отложенное удаление сообщения $GIT_DIR/TAG_EDITMSG, производимое только после успешной записи тега, что решает проблему удаления примечания до вывода сообщения об ошибке.
➕ В команду 'git worktree add' добавлена опция '--orphan' для создания рабочего дерева на основе осиротевшей ветки.
➕ В команду 'git cat-file' добавлен режим '-Z', который в отличие от режима '-z' применяет разделение на основе символов с нулевым кодом (вместо символов перевода строки) не только для входных, но и для выходных данных.
➕ В команду 'git notes append' добавлена опция '--separator' для выбора разделителя абзацев.
➕ В команде 'git diff --no-index' реализована возможность чтения из именованных каналов ('git diff <(process) <(substitution)').
🔗 Читать подробнее