Как увеличить ваши шансы на получение должности разработчика
На прошлой работе в качестве senior-developer я помогал проводить собеседования и нанял большую часть своей команды разработчиков. В этой статье я использую полученные знания...
7 причин выгорания программистов
Джерри — джуниор-разработчик, который в начале своей карьеры не мог дождаться утра, чтобы приступить к работе. И каждый вечер, даже после 10-часового рабочего дня, он чувствовал...
5 алгоритмов, которые изменили мир
Взаимодействие человека и компьютера было бы невозможно без алгоритмов. Пять из них сыграли революционную роль в нашей жизни.
Тестируя нетестируемое — битва с легаси-кодом
Знакомимся со стратегией приведения легаси-системы в разумный вид, из которого с ней можно будет работать привычными средствами. Разбираемся, что происходит, и действуем, не боясь все сломать.
Практика обновления Python — опыт компании Lyft
Технология обновления Python — одна из успешных практик команды BLT, отвечающей за языковой инструментарий бэкенда Lyft. Возможно, она подойдет и вам! У вас есть возможность узнать не только о достижениях специалистов Lyft BLT, но и о вызовах, которые им пришлось преодолеть.
Почему большинство инженеров ПО не пишут документацию?
Неважно, работаете вы в небольшом стартапе или же в крупной корпорации, когда возникает необходимость в хорошей, ценной документации сервисов или проектов, то на ее...
9 испытаний, или будни современного инженера данных
Появление современных технологий неминуемо влечет за собой развитие сферы данных, в связи с чем начинающим инженерам приходится решать задачи нового уровня сложности. Какие же...
У меня появилась идея для приложения, но…я не разработчик
У меня есть идея для веб-приложения
Мои поздравления — вас посетила муза! Теперь пришло время внимательно взглянуть на вашу идею и решить, следует ли ее доработать, перейти...
7 признаков того, что вы - опытный разработчик
На первый взгляд может показаться, что профессия программиста — одна из самых перспективных. На второй — тоже: это одновременно и сложная, и полезная обществу...
Определите свой уровень технических навыков — экспериментальный проект от Яндекса
Яндекс запускает экспериментальный проект по диагностике технических навыков. Принять участие могут бэкенд- и мобильные разработчики, а также разработчики интерфейсов и аналитики.
В рамках диагностики вы...
5 признаков того, что вы тратите свой потенциал разработчика впустую
Устроившись на работу, вы легко можете застрять в ловушке простого обмена своего времени на зарплату. Вы едете на работу, заходите в офис, завариваете кофе,...
4 простых способа рефакторинга кода
Рефакторинг — это процесс обновления существующего кода без изменения его функционала. Существует множество причин рефакторить код, включая производительность, читаемость и масштабируемость в будущем.
Рефакторинг — это важная часть процесса...
Руководство по Docker. Часть 3: Amazon Web Services, Travis CI и Elastic Beanstalk
Руководство по Docker. Часть 1: образ, контейнер, сопоставление портов и основные команды.
Руководство по Docker. Часть 2: Docker Compose для JavaScript, Python и Redis
С помощью первых...
5 методов написания чистого кода для любого проекта
Рассмотрим несколько советов по повышению качества баз кода, которые пригодятся при создании различных проектов: фронтенда, бэкенда, командной строки, настольных и мобильных приложений.
Создание и оценка базовых и продвинутых RAG-приложений с помощью LlamaIndex и Gemini Pro в...
В 1-й части этого руководства рассмотрим этапы создания базового RAG-приложения с помощью фреймворка данных LlamaIndex и модели Gemini Pro. Кроме того, протестируем это приложение с использованием системы TruLens на релевантность контекста, а также релевантность и обоснованность ответа.
С этими советами у junior-разработчиков не возникнет проблем на их первой работе
В самом начале вашей карьеры в сфере разработки программного обеспечения вам может быть страшно, но от этого не менее увлекательно и волнительно.
Я знаю это...
Как настроить Visual Studio Code для C, C++, Java, Python
Visual Studio Code — популярный редактор кода, бесплатный и с открытым исходным кодом. Но я уверен: каждый из нас, кто пытался настроить Visual Studio Code для разработки...
Visual Studio Code. Как быть продуктивным в 2018. Советы профи
За последние несколько лет, Visual Studio Code стал очень популярным, среди IDE с открытым исходным кодом. Официальный релиз VS Code состоялся в 2015 году,...
ExLlamaV2: самая быстрая библиотека для работы с LLM
Представляем ExLlamaV2 - мощную библиотеку для квантизации и запуска LLM. Она оптимизирована для молниеносного вывода, а ее новый формат квантизации EXL2 обеспечивает большую гибкость при хранении весов.
Сравнение производительности ввода/вывода: C, C++, Rust, Golang, Java и Python
Сравниваем, как различные языки, такие как C, C++, Rust, Golang, Java и Python, обрабатывают данные на вход/выход. Также попробуем выяснить, может ли Rust обрабатывать высокопроизводительные промисы.
Мониторинг кластера Kubernetes без зависимостей
Затронем тему мониторинга в Kubernetes, существующие подходы и познакомимся с Murre, инструментом Go с открытым ПО для мониторинга без зависимостей.
Интерфейсы против реализаций
Как-то раз я написал такой твит:
“Если бы я мог научить молодого программиста только чему-то одному, то это было бы программирование через интерфейсы, а не...
Идиома CRTP и написание общих функций в C++
Разбираемся в концепции CRTP (Curiously recurring template patterns, рекурсивный шаблон). Она поможет описывать в C++ общую функциональность, комбинируя шаблоны и наследование.
Возраст - это просто цифра
“Я боюсь, что для меня уже слишком поздно менять профессию… Вообще менять что-либо существенное в жизни уже поздно. Мне уже (подставьте соответствующий вам возраст,...
Зачем переходить с Gitbook на Readme
Легче сказать "запустить документацию", чем сделать это. Не так-то просто выбрать платформу для размещения документации, да и предоставляемые инструменты сильно различаются. Опыт компании Budibase поможет вам сделать обоснованный выбор.
Что нужно знать разработчику ПО
Инженер ПО - востребованная и высокооплачиваемая профессия, требующая креативности, аналитических навыков и интереса к информатике. Если вы самостоятельно изучаете программирование и интересуетесь основными принципами, применяемыми разработчиками ПО, то обратите внимание на эти 10 пунктов.
Две малоизвестные, но полезные команды npm
Npm list и npm config list - не самые известные команды в пакетном менеджере npm. Однако они могут выручить вас в ряде затруднительных случаев, сэкономив немало времени и сил.
Как не попасть в капкан зубрежки начинающему — и продолжающему разработчику
Очень долго я боялся начинать собственные проекты из-за нехватки знаний.
В любом проекте, за какой бы я не взялся, всегда находилось что-то, в чем я...
Векторы - прошлое ИИ, хэши - будущее
Искусственный интеллект был создан на основе векторной арифметики. Однако последние достижения доказали: в некоторых сферах применения ИИ векторы можно заменить (в плане памяти, скорости и т.д.) другими более эффективными двоичными представлениями (такими как нейронные хэши) без существенного компромисса скорость-точность.
4 типичные ошибки программиста, которые видны лишь с позиции руководителя
Я проработал программистом более 5 лет. Конечно, у некоторых из вас, вероятно, гораздо больше опыта, но тогда я считал, что уже достиг уровня старшего...
Как украсть секреты разработчиков через Websocket?
Это история о запутанном и не очень полезном методе извлечения кода, создаваемого ничего не подозревающими JavaScript разработчиками, занятыми над секретными проектами.
Недавно в сети появилась...
Опытный программист теряет работу
Может ли профессионал в ИТ-сфере остаться без работы в 65 лет? Может, но солидный возраст не повод уйти на покой. Узнайте, что вас может ожидать в жизни.
Flutter и SonarQube для статического анализа кода
За 8 шагов настроим SonarQube с Flutter на Apple Silicon Mac, используя Docker. Погнали!
Автоматизированные тесты - качественно и непременно эффективно!
Не воспринимайте автоматизированные тесты как наказание. Их цель не в том, чтобы пройти проверку кода или соответствовать критериям приемлемости и показателям инструментов покрытия кода....
Шоу должно продолжаться: обеспечение безопасности Netflix Studios с масштабированием
Узнайте об одной из выдающихся стратегий Netflix Studios - развертывании приложений, гарантирующем 100% аутентификации поддерживающим его сервисам. Она многократно сокращает время и усилия разработчиков, а также риски безопасности в интернет-пространстве.
Руководство по Docker. Часть 2: Docker Compose для JavaScript, Python и Redis
Рассмотрим написание docker-compose.yml и запуск веб-приложения в связанных контейнерах Docker Compose на примере Node.js и Redis.
7 способов применения Stack Overflow, о которых вы могли не знать
Stack Overflow - популярная система вопросов и ответов для программистов. Но это не просто база полезной информации. Сегодня поговорим о дополнительных возможностях сервиса Stack Overflow.
Как создать бесплатный сайт на GitHub Pages
GitHub Pages — это один из тех классных инструментов, о которых мало кто знает. Практически любой GitHub -репозиторий можно превратить в полноценный сайт в два клика.
Хотите разместить...
Чем отличается разработка продукта для ИИ
Люди, которые интересуются темой искусственного интеллекта, часто спрашивают, кто такой ИИ-разработчик. В данной статье мы хотим помочь вам понять, чем отличается разработка продуктов на...
Раскрутка приложения без маркетинга
Скажу сразу — все, что от вас требуется — это ежедневный труд и терпение!
Создание и продвижение нового продукта — одни из самых трудных занятий в сфере предпринимательской деятельности. Существует множество...
Как создать криптовалютный дашборд с помощью Plotly и API Binance
Упрощаем отслеживание активов
Как установить API Binance
Binance предоставляет два типа доступа к API: реальный и тестовый.
Настраиваем реальный API Binance
Реальный API обеспечивает прямой доступ к аккаунту. В нем...
Учим ИИ отвечать на сообщения
Введение
Глубокое обучение применяется во многих задачах NLP вроде перевода, добавления титров к изображениям и систем поддержки диалога. В машинном переводе оно используется для преобразования...
Уровни измерения и их точность
Измерение — это процесс присвоения чисел количествам (переменным). Этот процесс настолько знаком, что мы, наверняка, часто упускаем из виду его фундаментальные характеристики. Единая мера некоего атрибута...
5 ключевых правил успешного ревью кода
Учитывая важность ревью кода в процессе разработки, сформулируем 5 правил, способствующих повышению его эффективности.
Как сделать чистый код еще чище
Предлагаем практический пример улучшения, казалось бы, чистого кода на сетевом и UI-уровне. Посмотрите, как в процессе продуманного рефакторинга - путем удаления всего лишнего (вложений, типов), уменьшения отступов, выполнения модульной разбивки - можно повысить уровень читаемости и производительности проекта.
4 совета по улучшению Jupyter Notebooks
Jupyter Notebooks - отличный инструмент для всех разработчиков, желающих поделиться своей работой. Он предоставляет простой способ обмена проектами и широко используется в таких областях, как...
Почему ведущие инженеры ненавидят собеседования
Представьте, что вы директор небольшой средней школы, который хочет нанять нового учителя. Так как работает у вас их не очень много, то нужно убедиться...
Как научиться программировать на Java и с чего начать
Определите свои профессиональные цели и выберите язык. Это самый главный совет для новичков, желающих присоединиться к сообществу программистов. Но как же это сделать, если...
Обнаружение вредоносного ПО с помощью алгоритмов МО на облачной платформе Google
Обнаружение вредоносного ПО: вирусов, червей, троянов, программ-вымогателей, рекламного и шпионского софта - волнует многих пользователей и предпринимателей. Предлагаем рассмотреть методы идентификации вредоносных программ с помощью алгоритмов машинного обучения. Материалом для исследования стал массив данных от Майкрософт объемом в 200 ГБ.
5 советов для начинающих программистов
Когда я только начинал заниматься программированием, то часто пребывал в озадаченном состоянии. Порой возникали чувство потерянности и неуверенность в своих силах, что заставляло постоянно...
С нуля до разработчика игр: как начать создавать видеоигры, если у вас нет опыта
Два года назад я была простой семнадцатилетней ученицей средней школы и я ничего не знала о программировании. Но я все равно достигла своей цели...
Механизм повторных попыток в Spring Boot: @Retryable и @Recover
Реализуем обработку временных сбоев в Spring Boot, рассмотрим аннотации для соответственных поведений. Проверим механизм в действии, отправив HTTP-запрос.
13 Горячих клавиш, которые должен знать каждый пользователь Ubuntu 18.10
Рассмотрим некоторые полезные сочетания клавиш для Ubuntu 18.10 с графическим окружением GNOME. Мы не включили в эту статью универсальные сочетания клавиш, такие как Ctrl...
Как писать код, который будет нравится вам в будущем
Дядя Бен однажды сказал Питеру Паркеру: “С большой силой приходит большая ответственность”. Эта цитата относится также и к программистам, отвечающим за разработку проектов. После...
ULTRA: базовые модели для формирования рассуждений на графах знаний
Рассмотрим основные принципы машинного обучения на графах знаний и основные проблемы базовых моделей. Подробно изучим мультиреляционные графы. Узнаем особенности и возможности уникальной модели ULTRA.
5 лучших бесплатных текстовых редакторов для Windows
В представлении большинства людей современный писатель — это человек, печатающий на компьютере Apple MacBook. Они недалеки от истины, вот только не всегда учитывается один...
Как ускорить навигацию командной строки
Знание полезных команд может творить чудеса. Мне часто приходится возиться с командными строками, помогая другим с отладкой кода и навигацией серверов, поэтому я прекрасно...
10 программистских терминов на понятном языке
Все термины, приведенные ниже, уже раскрывали множество раз миллионами разных слов. Но у нас нет ни времени, ни возможностей обработать такое количество информации. По...
Хотите стать счастливым и продуктивным программистом? Используйте эти 5 методов из Психологии!
1. Войдите в состояние потока
Во всемирно известной книге “Поток: Психология оптимального переживания” психолог Михай Чиксентмихайи раскрывает секрет того, как добиться максимальной производительности. Суть заключается...
Обнаружение и извлечение текста из изображения с помощью Python
Представляем удобные техники OCR и OpenCV для обнаружения и извлечения текста в цифровом изображении
Генерировать случайные числа гораздо сложнее, чем вы думаете
Случайные числа окружают нас повсюду - и в программировании тоже создаются практически постоянно. Но настолько ли это простая операция, как это может показаться на первый взгляд? Разберемся, какие способы генерации случайных чисел существуют и каковы ограничения в их использовании.
5 вечерних практик, которые помогают избежать выгорания
Вы программист или специалист по работе с данными, которого преследует профессиональное выгорание? Прислушайтесь к этим 5 советам - возможно, они помогут вам прийти в норму.
Чему может научить авиация в области дизайн-систем
Узнаем, как авиация применяет концепцию последовательного проектирования и как это может быть полезно дизайнерам и разработчикам.
Курс на продуктивность: 10 бесплатных инструментов и сайтов для разработчиков
Информативный обзор 10 полезных инструментов и сайтов для повышения продуктивности и сокращения времени разработки. Valgrind - для обнаружения ошибок памяти, Bootstrap - для создания потрясающих UI и многое другое.
Scrum мёртв. Восславим нового короля - Kanban!
Я использовал Scrum с самого начала своей карьеры. Работе с этим фреймворком я обучился ещё в колледже, где он рассматривался как наилучший вариант для...
6 технологий, которые помогут стать востребованным фронтенд-разработчиком в 2021
Вы хотите улучшить свои карьерные перспективы как разработчика в 2021 году? Возможно, вы хотите перейти на более высокооплачиваемую должность или устроиться в компанию, работающую...
16 полезных расширений для SwiftUI
Предлагаем несколько примеров полезных сниппетов кода, которые можно неоднократно использовать в проектах.
Введение в бинарный поиск
Представляем простой алгоритм обнаружения нужных значений - бинарный поиск. Разбираемся, как он работает, на примерах, а также описываем его этапы.
5 вредных привычек неэффективных программистов
Плохие программисты вовсе не глупы. Просто у них есть вредные привычки.
Некоторые программисты лучше других. Существует своего рода статистика: небольшая группа программистов — на уровне «великолепно», чуть...
Советы по оформлению дизайнерского портфолио
Вернувшись домой с мероприятия, посвященному менторству, в духе “быстрых свиданий”, я был в равной степени как истощен, так и полон энергии. Истощен, потому что...
Автоматизация обновления Angular
Приложения Angular с легкостью обновляются с помощью Angular CLI. Обновление до основных релизов, как правило, происходит в течение недели после выпуска без возникновения проблем,...
Фреймворк или язык программирования?
Программисты сегодня…
…толком и не знают где заканчивается язык программирования и начинается фреймворк.
Что я под этим имею в виду?
Примерно до 1988-ого года большинство программ, которые...
Битва трендов: React vs Angular vs Vue
Подождите, по-моему, я уже писал на эту тему… Да, но слишком многие жаловались, что я так и не сказал, что же лучше. Поэтому в...
6 ответов на вопрос: «почему читать код важнее, чем писать?»
Быть хорошим программистом не значит безостановочно писать код. Несмотря на то, что этот навык является более востребованным, в крупных компаниях изменение и переписывание кода...
Новый шаг к будущему без языковых границ
Новый шаг к будущему без языковых границ: Яндекс запустил в открытую бету технологию закадрового перевода прямых трансляций на YouTube В Яндекс Браузере появилась уникальная...
Как экономить 100 часов в месяц: 6 малоизвестных техник SQL
Как облегчить поиск и удаление дублей, агрегирование данных с операторами case и group by, отображение временных рядов, поиск разницы в данных двух любых дат и как объединять данные двух таблиц простейшим способом? Помогут эти простые приемы!
Подробный обзор JSON, JSON5 и циклических зависимостей
JSON - это круто, а JSON5 - еще круче! Предлагаем подробное руководство по JavaScript Object Notation (JSON). Узнайте, как работают JSON и JSON5, а также возьмите на заметку несколько способов решения проблемы циклических зависимостей.
SQL или NoSQL: как правильно выбрать базу данных?
Вертикальное масштабирование, журнал опережающей записи WAL, надежность индексов - рассмотрим плюсы и минусы реляционных баз данных.
Программист как пользователь инструментов
Старая поговорка гласит: "Только плохие мастера винят свои инструменты". Она применима и к программной инженерии. Узнайте, как выбирать инструменты, чтобы работа стала более эффективной, а продукты - более качественными.
Индексирование в MySQL: руководство для начинающих
Это руководство поможет расширить представление о возможностях индексирования в MySQL. Вы узнаете, когда необходимо индексирование и как формируются, оптимизируются и удаляются индексы. Кроме того, научитесь создавать уникальные индексы с первичным ключом.
Преобразование кода в UML-диаграммы: раскрытие возможностей PlantUML
Среди множества инструментов для работы с диаграммами PlantUML - один из самых экономичных и практичных. Поговорим о его преимуществах и ограничениях, а также разберем пошаговое руководство по работе PlantUML в тандеме с IntelliJ IDEA.
Как правильно учиться Java-программированию: история одного тьютора
Моя история
Все началось больше десяти лет назад. Решив стать программистом, я начал изучать несколько языков, чтобы в конечном итоге найти «свой» язык.
В Java я...
15 идей для вашего приложения. Часть 2
Предыдущие части: Часть 1
6. Поиск книг
Уровень: 2 — средний
Описание: приложение для поиска книг по названию, автору и т.д. Найденные книги и соответствующая информация о них выводится в...
Как Meta оптимизировала согласованность кэша до 99,99999999
Проблема инвалидации и согласованности кэша актуальная для многих инженеров-программистов. Хотите узнать, как решили эту проблему в Meta? Технология, использованная этой компанией, наверняка подойдет и вам. С ее помощью вы сможете вовремя отслеживать ошибки в кэшировании и значительно повысить показатель согласованности кэша.
Как я наконец перешел от обучения к работе
Даже после прохождения множества курсов, где вы просто копируете код вслед за инструктором, существенного прироста в навыке, как правило, так и не происходит.
Многие наверняка...
Плюсы и минусы парного программирования
Многие программисты скептически относятся к парному программированию: технике разработки программного обеспечения, при которой за одним рабочим местом работают два программиста.
Я часто слышу:
«Звучит как пустая...
5 актуальных расширений Xcode для оптимизации разработки
Пополним арсенал разработчика полезными расширения для повышения продуктивности: SwiftPlantUML, SwiftFormat, Import, SwiftMockGeneratorForXcode, XVim2.
Возможности Docker, о которых вы не знали. Часть 1
Ознакомьтесь с расширенными возможностями, используемыми продвинутыми Docker-пользователями. В 1-й части вы узнаете о таких практиках, как многоэтапные сборки, сжатие слоев образов, управление секретами BuildKit, ускорение сборки с помощью файла .dockerignore, проверка “здоровья” в Docker-файлах и форматирование вывода Docker CLI.
Сделайте свой первый вклад в открытый исходный код!
Наверняка вы хоть раз задумывались о том, как улучшить существующую версию той или иной программы. Мы расскажем вам о том, как это можно сделать на практике.
Как упростить работу с базами данных в Golang с SQLX
Покажем, как легко стало оперировать базами данных. Разберем преимущества пакета database/sql: совместимость с базами данных, автоматическое сканирование структуры и вставка строк, функция Get, привязка параметров для предотвращения внедрения кода SQL.
Как делать заметки как программист
Когда я был мал — писал ужасные конспекты: они представляли из себя тетради с грязным текстом и плохой структурой. Практически бесполезные.
Потом, когда я открыл...
Как внести свой первый вклад в открытый исходный код
Давно собирались внести свой вклад в открытый исходный код, но не знаете, с чего начать? Предлагаем простое и понятное руководство по этому процессу.
Полезные команды Git
Набор консольных утилит Git создан в помощь программисту. Используя их, он может управлять версиями проекта. Само собой, при работе с Git требуется знание определенных команд. Сегодня мы рассмотрим базовые команды Git и научимся добавлять и изменять удаленный репозиторий, а также удалять ветки.
YAML против JSON: какой формат эффективнее для работы с LLM?
Сравним два формата, применяемых в работе с языковыми моделями: JSON и YAML. Выясним, почему YAML эффективнее с точки зрения временных и ресурсных затрат, чем JSON.
Список инструментов для обязательного использования
Будучи бедным студентом, я являюсь огромным фанатом различных бесплатных вещей, особенно программного обеспечения. Когда дело доходит до программного обеспечения, я, буквально, могу сделать что...
Новая большая речевая модель Watson от IBM предоставит голос генеративному ИИ
Приготовьтесь к выпуску Watson LSM - новых больших речевых моделей, способных преобразовывать длинные аудиозаписи в готовые тексты. Пока они доступны только в закрытой бета-версии, но, войдя в массовое производство, смогут обеспечить бесперебойную работу с клиентами.
Будущее графических дизайнеров в эпоху машинного обучения
Сможет ли искусственный интеллект заменить графического дизайнера? Этот вопрос волнует многих. Расскажем, как машинное обучение и искусственный интеллект действуют сегодня и поделимся прогнозами экспертов.
Как удалять локальные ветки с помощью псевдонимов Git
Мы не из тех, кто упускает отличные возможности улучшить рабочие процессы Git! В данном руководстве учимся создавать псевдонимы Git и с их помощью удалять локальные ветки.
6 способов оптимизировать рабочий процесс в Pandas
Несмотря на популярность, у Pandas есть немало скрытых возможностей. Предлагаем ознакомиться с 6 из них - они помогут повысить эффективность анализа данных.
Руководство по выбору оптимального карьерного пути в IT-сфере
Найти свое предназначение - это цель. Правильный выбор - это путь. Пройти этот путь, сделать его короче и легче, избежать досадных ошибок и не потерять драгоценное время поможет модель "Иерархия карьерных приоритетов".
10 идиоматических приемов для эффективного программирования на Python
Программирование само по себе очень увлекательное занятие, а программирование на Python увлекательнее вдвойне, поскольку в данном языке существует много разных способов реализации одних и...
Ключевое слово this и контекст в JavaScript
К освоению JavaScript лежит долгий путь, на котором вам может встретиться такое выражение, как this. Первый раз я встретил его в процессе работы с...
Под покровом капустного листа: шаблон Декоратор
Я родилась в городке, расположенном на западном берегу реки Амур на Дальнем востоке России. Эта область известна своим влажным континентальным климатом, для которого характерны...
Хуки Mongoose: все, что нужно знать
Узнайте, какими бывают типы хуков Mongoose, в чем преимущества их использования и каковы они в действии. В качестве бонуса получите ценные рекомендации по применению хуков, которые помогут раскрыть весь потенциал приложений, управляемых данными.
Экспериментируем с…
Пагинация — достаточно известная, но трудная в реализации функция. Поэтому я решил разработать демонстрационное приложение на основе Android Paging Library с пагинацией, основанной на пользовательских запросах...