Уровни измерения и их точность
Измерение — это процесс присвоения чисел количествам (переменным). Этот процесс настолько знаком, что мы, наверняка, часто упускаем из виду его фундаментальные характеристики. Единая мера некоего атрибута...
Почему сниппеты кода со StackOverflow могут повредить ваш проект
StackOverflow стал спасением для многих программистов, включая меня. Некоторые из нас никогда не посещали домашнюю страницу StackOverflow. Единственный способ, по которому мы попадали на...
Flutter и SonarQube для статического анализа кода
За 8 шагов настроим SonarQube с Flutter на Apple Silicon Mac, используя Docker. Погнали!
5 лучших библиотек машинного обучения
За последние несколько лет рост машинного обучения достиг стремительных темпов. Это связано с выпуском библиотек машинного обучения (МО)/глубокого обучения (ГО), которые абстрагируются от сложности...
5 ключевых правил успешного ревью кода
Учитывая важность ревью кода в процессе разработки, сформулируем 5 правил, способствующих повышению его эффективности.
Как я создал расширение браузера и обучил ChatGPT обращаться к внешним сайтам за информацией...
Расскажем, как с помощью расширения Tampermonkey и прокси CORS Anywhere обучить ChatGPT получать доступ к внешним сайтам, анализировать извлекаемый с их страниц контент и искать в нем ответ на заданный вопрос.
6 принципов успешных инвесторов в помощь разработчикам
Несмотря на то, что работа инженером ПО или аналитиком данных может приносить неплохой доход, есть много полезных навыков, которые специалисты этой области могут позаимствовать...
Плюсы и минусы парного программирования
Многие программисты скептически относятся к парному программированию: технике разработки программного обеспечения, при которой за одним рабочим местом работают два программиста.
Я часто слышу:
«Звучит как пустая...
Чему я научился, проработав полгода в качестве разработчика-самоучки
Помню, когда я искал работу и изучал кучу материалов о высоких технологиях, обучении программированию, читал истории успеха, больше всего внимания я уделял тому, как...
Что делает невозможную фигуру невозможной?
Невозможные фигуры образуются линиями, соединенными между собой самым противоречивым образом, с искажением перспективы. При зрительном восприятии таких изображений возникает эффект оптической иллюзии, запредельной реальности....
Метрики для улучшения архитектуры ПО
На примере Java и Maven продемонстрируем, как определенные метрики помогают проектировать более масштабируемое и обслуживаемое программное обеспечение, а также изучим немного теории.
Руководство по написанию чистого и читабельного кода для начинающих разработчиков. Часть 1
Часть 1, Часть 2
Написание чистого и читабельного кода — непростая задача, но данное краткое руководство поможет вам овладеть этим искусством.
Представьте, что читаете статью, во вступительном абзаце...
Индексирование в MySQL: руководство для начинающих
Это руководство поможет расширить представление о возможностях индексирования в MySQL. Вы узнаете, когда необходимо индексирование и как формируются, оптимизируются и удаляются индексы. Кроме того, научитесь создавать уникальные индексы с первичным ключом.
Как я начала кодить
Моя история настолько далека от программирования, насколько это возможно. На тот момент я уже десять лет училась в школе. У меня есть степень магистра...
Две малоизвестные, но полезные команды npm
Npm list и npm config list - не самые известные команды в пакетном менеджере npm. Однако они могут выручить вас в ряде затруднительных случаев, сэкономив немало времени и сил.
Извините, но мы не можем воскресить вас
Мы не можем загрузить ваш мозг в компьютер, потому что вы ни в малейшей степени не определяетесь связями между вашими нейронами.
Почему люди проваливают собеседования по алгоритмам и структурам данных в крупных компаниях?
Компьютерные науки — это область с огромными возможностями. Миллионы студентов всего мира мечтают построить карьеру в этой сфере. Но возникает неожиданная проблема: несмотря на то, что...
Хитрости объектно-ориентированного программирования. Часть 3: Смерть от аргументов
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2.
Аргументы, аргументы, аргументы
Длинные списки аргументов в функции крайне трудны для вызываемого...
Жизнь в качестве программиста-фрилансера
Недавно один человек задал мне вопрос (на форуме) о том, каков мой типичный рабочий день, что мне нравится и не нравится в моей работе...
3 основных принципа несвязных приложений
Самая большая ошибка объектно-ориентированного проектирования - это инкапсуляция устойчивого состояния. Что будет, если этого не делать?
Почему программисты не бросают работу?
Примечание: В этой статье я выражаю своё личное мнение, а не взгляды какой-либо компании.
Технические компании постоянно пытаются понять, что нужно сделать ,чтобы сотрудники были довольны. Добиться...
Какие ошибки можно допустить в описании пользовательских сценариев и как их исправить
Сейчас нет недостатка в информации о том, как создавать пользовательские сценарии и почему они важны. Но, тем не менее, мы продолжаем совершать ошибки, которые...
Arduino и Visual Studio Code
Займемся разработкой Arduino, вооружившись расширением PlatformIO в VS Code, и напишем первый проект с мигающим светодиодом.
Обработка дублированных сообщений в Kafka
Подробно рассмотрим сценарии, чреватые появлением дублей, и различные подходы для их недопущения. Как этими подходами реализуются решения этой проблемы?
Как обнаружить дублирование кода в проекте
Обнаружение повторяющегося кода - необходимая часть качественного проектирования. Пренебрежение ею чревато снижением читабельности проекта и усложнением его обслуживания. Ознакомьтесь с несколькими способами обнаружения и удаления дублирующегося кода.
9 испытаний, или будни современного инженера данных
Появление современных технологий неминуемо влечет за собой развитие сферы данных, в связи с чем начинающим инженерам приходится решать задачи нового уровня сложности. Какие же...
Почему все веб-сайты выглядят одинаково?
Интернету не хватает креативных решений, поэтому я попросил своих учеников разработать редизайн уже существующих веб-сайтов.
Современный интернет однообразен. Все выглядит одинаково: одинаковые шрифты, похожие страницы,...
P.S. Дорогой рефакторинг, нам нужно на время расстаться
Я люблю рефакторинг. Действительно люблю. В процессе TDD (разработки через тестирование) по мере прохождения тестов я могу сосредоточиться исключительно на коде, дорабатывая и доводя...
5 ловких приемов Xcode для рефакторинга кода
Ищите быстрый и эффективный способ рефакторинга кода? Представляем среду разработки Xcode и ее эффективные возможности.
Как не лажать с JavaScript. Часть 4
Часть 1, Часть 2, Часть 3, Часть 4
Декларативный код — популярное понятие, но что оно означает на самом деле? Это что-то хорошее? Давайте разберёмся.
Если вы...
Как внести свой первый вклад в открытый исходный код
Давно собирались внести свой вклад в открытый исходный код, но не знаете, с чего начать? Предлагаем простое и понятное руководство по этому процессу.
10 тенденций в разработке программного обеспечения в 2019 году
Тенденции меняются каждый день во всех сферах деятельности: в моде, в образовании, в разработке программного обеспечения. В эпоху цифровизации сфера программирования меняется чрезвычайно быстрыми...
Приложения искусственного интеллекта: возможности и сферы применения
Вы все еще восхищаетесь Юлием Цезарем, который справлялся с тремя делами одновременно? Тогда прочтите о том, на что способен искусственный интеллект.
Лучшие языки программирования для изучения в 2018
Это полное руководство по выбору «правильного» язык программирования в 2018 году.
Хочу сразу прояснить кое-что: это не топ самых популярных языков, с кучей названий и...
Почему большинство инженеров ПО не пишут документацию?
Неважно, работаете вы в небольшом стартапе или же в крупной корпорации, когда возникает необходимость в хорошей, ценной документации сервисов или проектов, то на ее...
Как выводятся векторы на C++
Сравним способы вывода векторов: цикл for на основе диапазона, итератор, а также сочетание std::copy и std::ostream_iterator. Разберем их нюансы и типичные ошибки, проиллюстрируем примерами и поможем выбрать оптимальный способ.
Живи и программируй: обретение баланса
Поделимся ценными советами, как продуктивно работать и при этом меньше уставать. Эффективность рекомендаций проверена на личном опыте автора.
6 способов оптимизировать рабочий процесс в Pandas
Несмотря на популярность, у Pandas есть немало скрытых возможностей. Предлагаем ознакомиться с 6 из них - они помогут повысить эффективность анализа данных.
Как взломать веб-версию WhatsApp за 3 дня — отчет белого хакера
Whatsapp не раз привлекал внимание хакеров из-за своих уязвимостей. С этой точки зрения мессенджер представляет немалый интерес для исследователей проблем безопасности. Если вы относитесь к их числу, ознакомьтесь с отчетом белого хакера о 3-дневной работе по взлому веб-версии WhatsApp.
В чем магия ожидаемых результатов?
Раскроем силу такого понятия как ожидаемые результаты и превратим их в инструмент для профессионального роста и качественной работы сотрудников.
Фитнес-функции и их роль в эволюции архитектуры
Познакомимся с фитнес-функциями и посмотрим, как они проверяют ПО на соответствие стандартам архитектуры.
Даешь меньше ошибок в проектах ПО!
Раз от ошибок в программировании никуда не деться, то постараемся свести их до минимума. Предлагаем 5 практических рекомендаций по сокращению ошибок в коде.
События на стороне сервера: к чему должен быть готов разработчик
События на стороне сервера - все еще не до конца изученное явление, которое может серьезно озадачить как новичка, так и профи. Тем не менее они могут принести и пользу. Рассказываем, как с помощью этих событий решить проблему генерации субтитров.
Определите свой уровень технических навыков — экспериментальный проект от Яндекса
Яндекс запускает экспериментальный проект по диагностике технических навыков. Принять участие могут бэкенд- и мобильные разработчики, а также разработчики интерфейсов и аналитики.
В рамках диагностики вы...
Как работает искусственный интеллект
Предлагаем совершенно нетехническое объяснение принципа работы больших языковых моделей. На самом деле создать мыслящую машину не так уж и сложно. Достаточно иметь несколько математических понятий, кучу обучающих данных и кое-что еще.
Вам следует изучить программирование
Знаете, как это ужасно, когда ты женишься, а немного позже встречаешь любовь всей жизни? То же произошло и со мной.
Я поступил в университет на...
7 способов ускорить ревью кода
Зачем мучиться, когда можно работать с удовольствием! Поделимся 7 продуктивными рекомендациями о том, как ускорить и оптимизировать ревью кода.
Как стать разработчиком проектов с открытым исходным кодом
Разработчики пишут код большую часть времени, внося таким образом вклад в проекты, которые входят жизненный цикл разработки ПО. Как правило, чтобы стать известным разработчиком,...
Фреймворк или язык программирования?
Программисты сегодня…
…толком и не знают где заканчивается язык программирования и начинается фреймворк.
Что я под этим имею в виду?
Примерно до 1988-ого года большинство программ, которые...
Парадоксы нейминга: Windows придумали не в Microsoft, а Android — в Apple
Узнайте, как появились самые известные названия в мире компьютерных технологий. Будьте готовы к потрясающим открытиям. В мире нейминга не существует правил и ограничений.
ИИ поможет создавать Dockerfile
CLI-команда docker init позволит легко инициализировать конфигурационные файлы Dockerfile и docker-compose, необходимые для запуска проекта в контейнере. Использование docker init избавит от лишней ручной работы, сэкономит время и сведет к минимуму ошибки.
Искусственный интеллект + распределённые реестры = оружие против фейковых новостей
Поддельные новости — довольно важная проблема в нашем онлайн мире. И хотя дезинформация и пропаганда существуют уже сотни лет, новости-фейки сегодня становятся по-настоящему серьёзной угрозой. Частично...
Как галлюцинируют нейросети
Как заставить нейросеть галлюцинировать? Какие развлекательные и практические задачи при помощи этого можно решить? Знакомимся с разработанным Google алгоритмом - DeepDream.
Как создать простой агент с Guidance и локальной моделью LLM
Познакомимся с инструментом Guidance, который управляет выводом больших языковых моделей и обеспечивает корректное выполнение инструкций.
#03TheNotSoToughML | Регрессия: Ошибки → Спуск с вершины горы
По меткому высказыванию Педро Домингоса, машинное обучение - это результат слияния необъяснимой эффективности математики с такой же необъяснимой эффективностью данных. Некоторые склонны впадать в панику при беглом знакомстве с МО, полагая, что оно требует сложнейших математических вычислений. В специальной серии статей мы поставили перед собой задачу развеять этот миф.
Философия как инструмент совершенствования программистов
Что объединяет философию и программирование? Похожий образ мышления! Разберемся, как философия может улучшить разработку ПО.
Как мне не удалось совладать с устаревшим кодом
Я очень хорошо помню свой первый опыт работы с устаревшим кодом. Я была младшим разработчиком и совершенно не представляла, что делаю.
Само приложение было чем-то...
Как получить работу в крутой компании
Пару лет назад я разговаривал со своей подругой, Бернадетт Лангман, которая на данный момент занимает должность старшего технического рекрутера в американской технологической компании Qualtrics....
Какой язык программирования выбрать в 2019?
Благодаря интернету весь мир имеет доступ к ресурсам для обучения программированию: как платным, так и бесплатным. Каждый щелчок мыши ведёт к новой статье, новому...
Искусственный интеллект оживит наших близких
После того, как Роман Мазуренко, близкий друг Евгении Куйды, погиб в автокатастрофе, она решила возвести ему памятник. Она собрала все текстовые сообщения, которые он...
Как создать конвейер автоматизированных сборок для проекта в Arduino Часть 2/2
Часть 1, Часть 2
Давайте добавим Arduino Zero. Модифицируем часть программы, которая устанавливает ядро AVR, и добавляем другой код:
# Установка ядер Arduino
arduino-cli core install arduino:avr
arduino-cli...
Переходная анимация: практическое пособие
Рассмотрим значимость переходной анимации в дизайне и прототипировании продукта. Подробно изучим принципы для улучшения переходной анимации и как их применять.
#01TheNotSoToughML | Что означает “подогнать линию”
Настало время восполнить пробелы в отношении алгоритмов и концепций машинного обучения. Разбираем интуитивные решения, которые стоят за построением прогностической модели в машинном обучении.
16 полезных расширений для SwiftUI
Предлагаем несколько примеров полезных сниппетов кода, которые можно неоднократно использовать в проектах.
Сделайте свой первый вклад в открытый исходный код!
Наверняка вы хоть раз задумывались о том, как улучшить существующую версию той или иной программы. Мы расскажем вам о том, как это можно сделать на практике.
5 вещей, которые следует учесть перед тем, как создать свой бизнес на основе мобильного...
Начать свой бизнес, основанный на мобильном приложении, - это вызов для любого из нас. Чтобы лучше понять важнейшие шаги, которые могут потребоваться для создания мобильного приложения для iOS или Android, выделим 5 основных этапов.
Как оставаться в тренде dev-индустрии
Вряд ли кто-либо станет отрицать актуальность этого вопроса для большинства разработчиков: “Как оставаться в курсе последних новостей в области разработки, ее трендов и технологий?”
Этот...
8 главных качеств технического менеджера
Один мой близкий друг, получив повышение и возглавив команду инженеров ПО, обратился ко мне за советом. И я призадумался, а что, собственно, порекомендовать? Книги?...
Приемы работы с оболочкой Zsh, которые я хотел бы знать раньше
Хотите повысить производительность работы в терминале? Предлагаем приемы, практические советы и рекомендации по повышению эффективности работы с командной строкой с помощью Zsh.
Хотите стать счастливым и продуктивным программистом? Используйте эти 5 методов из Психологии!
1. Войдите в состояние потока
Во всемирно известной книге “Поток: Психология оптимального переживания” психолог Михай Чиксентмихайи раскрывает секрет того, как добиться максимальной производительности. Суть заключается...
Как писать понятный код
Вы пишите код для разработчиков или только для себя?
Обзоры кода во имя добра
Я люблю обзоры кода ― разбирать чужой код и отдавать на обзор свой....
Визуализация map, filter и reduce
Визуализация играет важную роль в обучении. Она помогает нам запоминать сложные идеи, в том числе и по программированию.
Отображение
map(add) применяет value + 1 ко всему...
Отказ после четырех раундов технических собеседований. Что делать?
Будущий инженер-программист должен быть готов к нелегкому испытанию - встрече с придирчивыми рекрутерами. Никто не хочет получить отказ на собеседовании, но лишь немногие отвергнутые кандидаты способны превратить свою неудачу в будущий успех.
Двоичные деревья и двоичные деревья поиска
Хотите научиться работать с двоичными деревьями и их частным случаем - двоичными деревьями поиска? Предлагаем доступное руководство для новичков, включающее в себя методы вставки и поиска узлов, а также полный код BST-алгоритма.
Промпт-инжиниринг мертв: DSPy — новая парадигма промптинга
Автор предлагает не промптить, а программировать нейросетевые модели, рассматривая их как устройства, работающие через глубокие нейронные сети. В статье — код, построение, выполнение и оптимизация конвейера, а также практический пример, разработанный при помощи новой библиотеки DSPy.
15 идей для вашего приложения. Часть 2
Предыдущие части: Часть 1
6. Поиск книг
Уровень: 2 — средний
Описание: приложение для поиска книг по названию, автору и т.д. Найденные книги и соответствующая информация о них выводится в...
Введение в конвейерную обработку данных с использованием бессерверной архитектуры
Сегодня мы расскажем вам о построении сквозных конвейеров данных с использованием бессерверных технологий. Мы сосредоточимся на Amazon Web Services (AWS) для построения конвейера, однако подобную архитектуру можно легко воспроизвести на любой другой облачной платформе, включая Google Cloud Platform (GCP), Microsoft Azure и т. д.
Как выбрать язык программирования для проекта машинного обучения
Это руководство поможет вам сравнить языки программирования, используемые в машинном обучении: Python, R, Java, C++, JavaScript и Julia. Оцените их возможности и ограничения, чтобы выбрать наиболее подходящий для вашего проекта.
Трассировка стека и более точная отладка
Умение читать трассировки стека, в особенности сложные и длинные - незаменимо, если в коде возникает ошибка, и нужно как можно точнее разобраться в ее причинах. Посмотрим на некоторые подводные камни, о которых необходимо знать перед отладкой.
Дизайн для искусственного интеллекта
Чем дизайн для ИИ отличается от традиционного дизайна? Расскажем про преимущества и недостатки использования ИИ в UX-дизайне, а также рассмотрим перспективы развития данного вида дизайна.
15 идей для вашего приложения. Часть 3
Предыдущие части: Часть 1, Часть 2
11. Игра Морской Бой
Уровень: 3 — продвинутый
Описание: движок Battleship Game Engine (BGE) реализует классическую пошаговую игру «Морской бой». Это пакет, отделённый от...
Параллельные вычисления: введение
Работаете с большими объемами данных и хотите уменьшить время их обработки? Попробуйте параллельные вычисления!
Как перенести сайт с WordPress на GitHub Pages
Хотите перевести свой WordPress-блог в архив на GitHub Pages или продолжать использовать WordPress для ведения блога, а GitHub - для хостинга страниц? В обоих случаях поможет это руководство.
Модульное тестирование с имитацией сетевых вызовов
Модульное тестирование — отличный способ удостовериться, что приложение работает на протяжении многих итераций. Иногда важно убедиться, что всё вместе работает асинхронно и что данные согласованы. Но...
Сначала графдизайн создать, потом код написать
Рассмотрим важность создания графического дизайна приложения до написания кода и нарисуем диаграмму последовательности с помощью пакета pgf-umlsd.
GitHub Actions и Vercel — быстрое развертывание проектов
На практическом примере научимся настраивать GitHub Actions для развертывания проекта на Vercel.
Как автоматизировать создание контента для YouTube и блога с помощью LangChain и OpenAI
Пошаговое руководство с исходным кодом поможет легко разработать собственного маркетингового ИИ-ассистента. Этот инструмент позволит автоматизировать создание контента, сэкономить время и сосредоточиться на более важных задачах.
4 модели поведения для поддержания психического здоровья на работе
Эффективная деятельность требует хорошего психического здоровья. А кто о нем позаботится, как не мы сами? Рассмотрим 4 модели поведения, обеспечивающие внутренний покой, уверенность в себе и возможности для саморазвития.
Изысканные уловки хакеров для кражи подарочных карт
Схема работы “Black hat” хакеров стара как мир: найти цель, взломать, заработать денег. С течением последних лет было реализовано очень много хитроумных атак по...
1984 в 2020: Социальная инженерия в Китае
Китай— крупнейшая по численности населения страна мира, в в которой проживает 1,4 миллиарда человек. Если бы правительство Китая не ввело агрессивную политику «одна семья — один...
17 успешных примеров дизайна логотипов для различных бизнес-целей
Процесс создания дизайна для логотипа крайне важен. Давайте рассмотрим несколько примеров хорошо разработанных логотипов для различных сфер деятельности.
6 лучших фреймворков и инструментов генеративного ИИ
Ознакомьтесь с фреймворками и инструментами, лидирующими в сфере генеративного ИИ: HuggingFace, LangChain, LlamaIndex, Llama2, Haystack и SingleStore Notebooks. Эти технологии предлагают множество вариантов интеграции ИИ в проекты - будь то обработка естественного языка, аналитика данных или создание сложных приложений на основе ИИ.
Нативное будущее кроссплатформенной разработки
Коротко о кроссплатформенности
Сейчас кроссплатформенная разработка не пользуется большой популярностью. Основная причина состоит в том, что существующие инструменты не в полной мере справляются со своей...
5 S-принципов в программировании
Хотите прокачать свой уровень разработки, но не знаете, с чего начать? Возьмите на вооружение 5 S-принципов из производственного опыта компании "Тойота".
Обнаружение вредоносного ПО с помощью алгоритмов МО на облачной платформе Google
Обнаружение вредоносного ПО: вирусов, червей, троянов, программ-вымогателей, рекламного и шпионского софта - волнует многих пользователей и предпринимателей. Предлагаем рассмотреть методы идентификации вредоносных программ с помощью алгоритмов машинного обучения. Материалом для исследования стал массив данных от Майкрософт объемом в 200 ГБ.
С этими советами у junior-разработчиков не возникнет проблем на их первой работе
В самом начале вашей карьеры в сфере разработки программного обеспечения вам может быть страшно, но от этого не менее увлекательно и волнительно.
Я знаю это...
Почему вам нужно учить больше языков программирования
О моих свободных отношениях с языками программирования
Я занимаюсь программированием уже около 4 лет. Я начал с C#, занимаясь разработкой игр, а затем перешел на...
Рабочий процесс на GitHub: профессиональный уровень
Предлагаемое руководство по совместной разработке на Github поможет эффективно управлять кодовой базой. В нем даются рекомендации по выполнению всех ключевых этапов рабочего процесса: от определения проблем и задач проекта до рецензирования и слияния кода.
Жива или мертва: Что происходит с индустрией виртуальной реальности?
В последнее время появилось очень много статей про то, в каком состоянии находится сейчас индустрия виртуальной реальности (ВР). Хоть и чувствуя себя связанным с...
Как справиться с чрезмерной нагрузкой. Советы для разработчиков
В мире разработчиков происходит множество событий. Кажется, будто бесконечный список дел никогда не закончится. Рассмотрим некоторые советы, которые помогут с этим справиться.
Статья разделена на...
Обработка естественного языка для анализа отзывов онлайн-покупателей
Цель использования обработки естественного языка в описываемом проекте — анализ обзоров на товары, оставленных онлайн-покупателями.
Я начал работу над этим проектом для достижения трех бизнес-целей:
Найти основные компоненты...
Продвинутые методы и техники списков в Python
Списковое включение
Это продвинутая функция списков Python, делающая код более чистым и читабельным. Композиция - это способ выполнения ряда операций над списком с использованием одной...
Безопасность Node.js в продакшене: экспертные рекомендации для разработчиков
Подробно разберем передовые методы обеспечения безопасности, дадим идеи для их реализации. Попробуем выстроить многоуровневую линию обороны.
Как научиться программировать на Java и с чего начать
Определите свои профессиональные цели и выберите язык. Это самый главный совет для новичков, желающих присоединиться к сообществу программистов. Но как же это сделать, если...
Изучаем Python: генераторы, стримы и yield
В Python часто используются generator иyield. Расскажу в этой статье об основных свойствах generator, а также преимуществах работы с ним. Разберёмся в подробностях, как...







































































































