Как правильно учиться Java-программированию: история одного тьютора
Моя история
Все началось больше десяти лет назад. Решив стать программистом, я начал изучать несколько языков, чтобы в конечном итоге найти «свой» язык.
В Java я...
Что делать, когда ваши сотрудники конфликтуют?
Как повысить эффективность командной работы и при этом минимизировать конфликтность сотрудников? Свод основных принципов.
Программирование- это искусство и никак иначе!
Программирование, на первый взгляд, носит маску науки и служит тому, чтобы приложения, с которыми мы работаем ежедневно, функционировали как следует. Но в действительности оно — нечто...
10 практик написания кода, на которые полагаются все старшие разработчики
Почему код, созданный старшими разработчиками, не только отлично работает, но и служит долго? Секрет кроется в использовании практик написания чистого, функционального и удобного в обслуживании кода. Ознакомьтесь с десятью из них, чтобы облегчить работу себе и своим будущим коллегам.
Как перевести iPhone в черно-белый режим и почему вам следует это сделать
Разноцветный интерфейс вашего смартфона побуждает ваш мозг чаще его использовать. Установите черно-белый режим экрана, чтобы тратить меньше времени на бесконечный серфинг в интернете и...
Mermaid: универсальный инструмент для создания диаграмм
Пополним рабочий арсенал новым революционным инструментом для построения диаграмм, имя которому Mermaid. Рассмотрим принцип работы и его преимущества по сравнению с PlantUML.
Моя среда разработки в Linux 2018
В этой статье я немного пройдусь по приложениям на моем ноутбука на базе Linux. На написание материала меня вдохновил этот пост, только в моем случае...
Как писать чистый код?
Роберт Мартин: «Единственная адекватная мера качества кода — это количество восклицаний «какого чёрта!» вминуту».
Позвольте объяснить. Делая код-ревью, я испытываю три эмоции:
Какого черта! — с отвращением. Этот...
10 бесплатных Mac-приложений, о которых вы точно не знали
На macOS немало полезных предустановленных программ, но также есть много сторонних бесплатных приложений, способных упростить работу. Узнайте о 10 наиболее интересных приложениях, которых сделают цифровую жизнь гораздо приятнее.
Искусство упрощения для программистов
Недавно я наткнулся на очень интересную книгу авторства Nagisa Tatsumi. Называется она “Искусство упрощения: как избавиться от беспорядка и найти радость” (“The Art of...
4 надежных веб-сайта на страже времени разработчика
Перечень полезных сайтов, которые помогут сэкономить время на начальных этапах создания проектов: Hidden tools, Can I use, Dev Hints и Bundle Phobia.
Лучшие приёмы HR от Google
Советы и уроки из книги Ласло Бока “Работа рулит!”
Google хорошо известна тем, что берёт к себе на работу только лучших из лучших. Отбор в компанию...
Два метода безопасного программирования
Мы рассмотрим два очень простых и практичных безопасных метода, которые вы можете начать применять уже сегодня. Если вы профессиональный разработчик, вы наверняка уже их...
Топ-12 факторов, уничтожающих продуктивность программиста
Никто не ждет от программиста, что он сделает свою работу, не используя компьютер. Но при этом многие компании ожидают, что он сделает свою работу,...
Неужели комментировать код — это плохо?
Что такое комментарий?
Комментарий — это строка в исходном коде, которую могут прочесть разработчики, но которая игнорируется компиляторами и интерпретаторами.
Какой в нем смысл?
Как правило, «прочесть» код достаточно трудно....
Cтарая поговорка гласит: “Одна голова хорошо, а две — лучше”
Я часто слышу, как люди говорят о том, что их работа продвигается более эффективно и плодотворно когда они остаются одни. Также я знаю, что...
Внедрение зависимостей, или Разработчики совсем обленились
Внедрение зависимостей — это круто. Реально круто. Но это ещё и ад.
Идея о том, чтобы IoC-контейнер разрешал все зависимости объектов явного конструктора, всячески поддерживается...
Основы написания мануалов при разработке
Хороший мануал продукта должен быть не просто полноценным по информации, но и понятным для пользователя. Учимся, как правильно выстраивать его разделы и содержание в целом.
9 вещей, которыми следует заняться Java программисту в 2018 году
Будучи Java разработчиком и автором Java-блога, я часто встречаю вопросы от java-программистов со всего мира, о том, как можно улучшить свои навыки.
В прошлом я написал...
Как разработчику стать архитектором ПО?
“Что скажешь?”. Когда мне первый раз задали этот вопрос на ревью спринта, у меня не нашлось ответа. Тогда я был начинающим разработчиком, и он...
Основные правила код-ревью
Code review или обзор кода - работа, требующая высокого уровня профессионализма. Ознакомьтесь с его лучшими практиками: вот что нужно и что нельзя делать разработчику при обзоре кода.
Из криптовалюты в криптоактив: как биткойн потерял свое изначальное предназначение
22 мая 2010 года один из первых майнеров по имени Ласло Ханец купил, возможно, самую дорогую в истории человечества пиццу: он заплатил 10 000...
Как не опустить руки во время обучения чему-то новому?
В моей жизни было время, когда я регулярно добивался больших успехов в развитии своих навыков. Мне это удавалось, благодаря тому, что я изо всех...
VIM — это не только скорость
Почему профессионалы обожают Vim, а новички его боятся? Что общего у этого текстового редактора и компьютерной игры Dark Souls? Чем, кроме скорости, он может быть полезен? Ответы на эти вопросы помогут вам приступить к освоению Vim/NeoVim и повысить свою продуктивность.
Разработчиком ПО может стать каждый - волшебных эликсиров не требуется
За время загрузки этой статьи на вашем устройстве были приняты тысячи вычислительных решений. В ходе них произошел процесс подключения к сайту, определение возможности обработки...
Как освоить новый язык программирования или фреймворк
Новые языки программирования появляются чуть ли не каждый день. Dart, Go, Kotlin, Elixir и многие другие! В таких условиях постоянно учиться непросто, но есть...
Вам не нужен стендап
Примечание: ниже представлены мои ЛИЧНЫЕ убеждения насчёт Agile и командной организации. У вас всё может быть иначе.
Недавно я стал техническим менеджером продукта в своей...
Как ускорить навигацию командной строки
Знание полезных команд может творить чудеса. Мне часто приходится возиться с командными строками, помогая другим с отладкой кода и навигацией серверов, поэтому я прекрасно...
Как заработать с помощью бесплатного генератора артов на базе ИИ
Искусство, созданное силами искусственного интеллекта, не только отличается красочностью и креативностью, но и представляет собой потенциальный источник заработка. Поговорим о том, как генерировать арт-товары с помощью платформы Leonardo AI.
Что может помешать разработчику самостоятельно создать успешное приложение
Четыре года назад я опубликовал своё первое приложение в Google Play Store. И по ходу разработки я наткнулся на множество препятствий, но также и...
Магическая формула для улучшения навыков программирования
Вы программист или только хотите им стать, однако на этом этапе жизнь не прекращается. Вы должны, и мы надеемся хотите, улучшать свои навыки постоянно.
Да,...
Собеседование в Facebook. Ценный опыт и открытия
Начиная поиск работы, я никак не могла поверить, что имею реальный шанс на получение должности в Facebook.
Пять месяцев спустя я получила письмо с предложением.
Это...
Почему я полюбила тестирование и теперь советую его вам
Среди разработчиков часто можно услышать о том, что тестирование тормозит разработку. Я считаю это утверждение ошибочным. Да, действительно, польза тестов зачастую оказывается незаметна в...
Контейнеризацию невозможно сдержать
Откуда берутся контейнеры и для чего в них зависимости? Преимущества контейнеров: почему контейнеры используют все больше и в чем они превосходят виртуальные машины? Какое будущее ждет нас с этими виртуальными контейнерами?
Как обучать программированию подростков?
В последнее время многие родители спрашивали меня, как я учился программировать, в основном, чтобы узнать, как им обучать своих детей. И каждый раз я...
Введение в бинарный поиск
Представляем простой алгоритм обнаружения нужных значений - бинарный поиск. Разбираемся, как он работает, на примерах, а также описываем его этапы.
Как начать учиться, когда на это совсем нет времени
Как вы проводите свое время?
Недостаток времени — основная причина, почему мы не учимся изо дня в день! На самом деле проблема заключается в другом! У каждого из...
Как написать хороший проектный документ
Будучи разработчиком ПО, я трачу много времени на чтение и написание проектных документов. Прочитав и написав сотни таких документов, я заметила сильную зависимость между...
Станьте экспертом в разработке с этими продвинутыми советами по кодированию. Часть 2
Предыдущие части: Часть 1
Добро пожаловать во вторую часть продвинутых советов по написанию кода. В данной статье мы продолжим изучение остальных code smells с реальными...
Почему разработчики не должны пользоваться MacBook Pro?
Около десяти лет назад в интернете появилась статья, утверждающая, что “у каждого разработчика должен быть MacBook Pro”, в которой перечислялся ряд причин, например:
Лучший...
Генерация ответа, дополненная результатами поиска (RAG): от теории к реализации на LangChain
Ознакомьтесь с процессом выполнения простого RAG-пайплайна. Вы сможете изучить его пошагово — от теории, изложенной в оригинальной научной статье, до практической реализации на Python с помощью OpenAI, Weaviate и LangChain.
Топ 3 самых популярных языка программирования в 2018 году
Нет ничего удивительного в том, что в нынешнее время человеку становится все труднее и труднее, как говорится, «взять быка за рога» и просто освоить...
5 актуальных расширений Xcode для оптимизации разработки
Пополним арсенал разработчика полезными расширения для повышения продуктивности: SwiftPlantUML, SwiftFormat, Import, SwiftMockGeneratorForXcode, XVim2.
3 основных закона разработки ПО
Чтобы стать инженером-программистом, требуются годы обучения. Однако основные принципы, на которых базируется подход к разработке программного обеспечения, можно свести к 3 фундаментальным законам.
Code Review - Полное руководство
После проведения сотни code rewiew, лично возглавив R&D (Research & Development) команду и спровоцировав несколько непреднамеренных ошибок, я решил поделиться своими выводами о том,...
Один за всех и все за одного: 8 принципов командной разработки
Хочешь сохранить работу в сфере программирования — пиши нечитаемый код, понятный только тебе одному. И чем он хуже, тем лучше. Не делись ни с...
Расширяем возможности собственного мозга на базе ИИ, Python и ChatGPT
Многие жалуются на провалы в памяти или с трудом пытаются вспомнить важную информацию, когда она необходима. Уследить за всем в нашем мире непросто, запоминание...
Как программирование избавляет от стресса
В течение последнего года я вернулась к различным проектам по программированию. По большей части это были исправления и изменения, начиная от обновления небольших приложений...
Создание LLM-приложений: четкое пошаговое руководство
Предлагаем пошаговое руководство по полной разработке LLM-приложений - от первоначальной идеи до экспериментов, оценки и создания продукта. Следуя ему, вы сможете максимально расширить границы возможного LLM-нативных технологий.
Реактивное программирование или сопрограммы: между молотом и наковальней?
Выбор между привычным и экспериментальным в программировании сродни положению между молотом и наковальней. Одна из таких дилемм - противопоставление реактивного программирования и сопрограмм. Предлагаем вникнуть в суть конкурентных концепций, изучить их достоинства и подводные камни.
Как оставаться на гребне волны в океане современных веб-разработок
Мир современных технологий предъявляет высокие требования к разработчикам, которые должны быть в курсе всех новейших тенденций. Выход один - исследовать, учиться и использовать верные стратегии и инструменты.
Автоматизированные тесты - качественно и непременно эффективно!
Не воспринимайте автоматизированные тесты как наказание. Их цель не в том, чтобы пройти проверку кода или соответствовать критериям приемлемости и показателям инструментов покрытия кода....
Топ-5 примеров комментирования кода
Ничто не может объяснить код лучше самого кода. Но в некоторых случаях без комментирования не обойтись. Узнайте, как правильно использовать комментарии и тем самым повысить читабельность кода.
5 признаков того, что вы отличный разработчик
Насколько вы продвинуты в программировании и как быстро сможете повысить свою квалификацию? Чтобы ответить на эти вопросы, узнайте 5 основных признаков хорошего разработчика.
Приключения аналитика в стране кода: пробуждение силы
Программы для электронных таблиц, такие как Microsoft Excel и Google Sheets, превосходны. Они вне конкуренции, когда дело касается выполнения простых вычислений или построения финансовых...
Как повысить мотивацию с помощью поведенческой психологии
Как достигать лучших результатов и развивать силу воли с помощью вознаграждения
С работой связано много сложностей: дел много, времени на них мало. Работе постоянно нужно...
Разделение окон в Vim
Рассмотрим возможности редактора Vim в плане организации рабочего пространства: разделение окон, взаиморасположение вкладок и окон, сравнение с другими редакторами.
Создание правильного чек-листа для инспекции кода
Инспекция кода — это неотъемлемая часть процесса разработки, придуманная для снижения технических недоработок и обеспечения постоянства кодовой базы. Все, кто пишет код, допускают ошибки. Поэтому крайне...
Как увеличить ваши шансы на получение должности разработчика
На прошлой работе в качестве senior-developer я помогал проводить собеседования и нанял большую часть своей команды разработчиков. В этой статье я использую полученные знания...
Учим ИИ отвечать на сообщения
Введение
Глубокое обучение применяется во многих задачах NLP вроде перевода, добавления титров к изображениям и систем поддержки диалога. В машинном переводе оно используется для преобразования...
То, чего вам никто не расскажет о поиске работы, связанной с анализом данных
Я физик и работаю в стартапе YCombinator. Из-за специфики работы компании я получаю много писем с просьбами дать советы по построению карьеры в области...
Худший враг программиста — долгосрочная актуальность
Что по-вашему будет труднее?
· решить проблему в коде;
· решить более масштабную проблему в коде
Да, я тоже так считаю.
Программирование сводится к решению проблем. Если вы...
5 вечерних практик, которые помогают избежать выгорания
Вы программист или специалист по работе с данными, которого преследует профессиональное выгорание? Прислушайтесь к этим 5 советам - возможно, они помогут вам прийти в норму.
5 советов о том, как улучшить комментарии в коде
Хороший программист должен уметь не только грамотно писать код, но и снабжать его уместными комментариями. Предлагаем вашему вниманию 5 лайфхаков по улучшению навыков комментирования кода.
Полезные уроки из книги “Мышление, быстрое и медленное”
Возможно, это самая полезная книга о человеческом уме и поведении. Она рассказывает о ловушках ума, заставляющих нас поступать опрометчиво. Это кладезь знаний, необходимых каждому из нас, особенно людям, принимающим решения.
4 частые ошибки в рефакторинге
Некоторые программисты испытывают проблемы с рефакторингом. Одни процессы проходят у них довольно гладко, а другие не очень. Во втором случае есть ряд общих закономерностей. Рассказываем, как действовать, чтобы по максимуму использовать преимущества рефакторинга.
2 инструмента для автоматизации тестирования производительности на стороне клиента
Представляем 2 продвинутых инструмента веб-тестирования: Lighthouse от Google и Playwright от Microsoft. Освоив их, вы избавитесь от многих проблем, связанных с тестированием приложений, и этот процесс станет намного удобнее, быстрее и легче.
Сделайте свой первый вклад в открытый исходный код!
Наверняка вы хоть раз задумывались о том, как улучшить существующую версию той или иной программы. Мы расскажем вам о том, как это можно сделать на практике.
10 рекомендаций по защите баз данных
Мы полагаемся на данные не только в принятии решений, но также и при ведении бизнеса в целом. Их потеря может привести к серьезным финансовым...
Использование ИИ для скрейпинга почти всех сайтов в 2025 году
Узнайте о том, как искусственный интеллект позволяет проще и эффективней собирать данные с разных типов сайтов. Ознакомьтесь с инструментами, помогающими выполнять веб-скрейпинг с помощью LLM и агентов на основе ИИ. Эти инструменты сэкономят немало сил, времени и денег.
За что разработчики ненавидят парное программирование?
Обзор ответов на семь самых популярных замечаний о недостатках парного программирования, как со стороны junior-разработчика, так и со стороны senior-разработчика.
Парное программирование мешает углубленной работе
Достаточно...
8 умных способов сохранять цифровую приватность
Неважно, как вы пользуетесь Интернетом: вполне вероятно, вашу Интернет-активность отслеживают. Недавно Натали Тридман рассказала, как люди неосознанно делятся своим местоположением. Нет, не нужно отказываться...
Что в голосе моем? - Код!
Недавно у меня состоялся интересный разговор со слабовидящей девушкой. Вернувшись домой, я поймал себя на мысли, а что было бы, имей я такого рода...
Почему ведущие инженеры ненавидят собеседования
Представьте, что вы директор небольшой средней школы, который хочет нанять нового учителя. Так как работает у вас их не очень много, то нужно убедиться...
Как перейти от монолитной системы к событийной
Разберемся с событийной архитектурой: где она нужна и где нет, как спланировать, спроектировать и реализовать миграцию, воспользоваться преимуществами и учесть в целевой архитектуре масштабируемость, сопровождаемость, надежность, разделение обязанностей и затраты.
Руководство по выбору оптимального карьерного пути в IT-сфере
Найти свое предназначение - это цель. Правильный выбор - это путь. Пройти этот путь, сделать его короче и легче, избежать досадных ошибок и не потерять драгоценное время поможет модель "Иерархия карьерных приоритетов".
Что определяет настоящего “Senior” разработчика?
В мире программирования один лишь факт того, что вы долго работаете разработчиком, не делает из вас отличного специалиста. По моему опыту, разработчики и инженеры...
У меня появилась идея для приложения, но…я не разработчик
У меня есть идея для веб-приложения
Мои поздравления — вас посетила муза! Теперь пришло время внимательно взглянуть на вашу идею и решить, следует ли ее доработать, перейти...
Как выводятся векторы на C++
Сравним способы вывода векторов: цикл for на основе диапазона, итератор, а также сочетание std::copy и std::ostream_iterator. Разберем их нюансы и типичные ошибки, проиллюстрируем примерами и поможем выбрать оптимальный способ.
Зачем переходить с Gitbook на Readme
Легче сказать "запустить документацию", чем сделать это. Не так-то просто выбрать платформу для размещения документации, да и предоставляемые инструменты сильно различаются. Опыт компании Budibase поможет вам сделать обоснованный выбор.
5 ключевых правил успешного ревью кода
Учитывая важность ревью кода в процессе разработки, сформулируем 5 правил, способствующих повышению его эффективности.
Правильная мотивация - залог успешных сторонних проектов
По моему опыту, в работе над сторонним проектом основная сложность заключается не в поиске новой идеи, а в ее окончательном воплощении в готовый продукт.
В...
Советы молодым разработчикам
Я несколько лет имел удовольствие координировать и развивать молодых разработчиков. Большинство новичков не испытывают нехватки навыков программирования, но им не хватает дальновидности. Это касается...
Чистый код работает медленно, но он все равно нужен
Что важнее - чистота, читаемость, расширяемость и надежность кода или производительность? Чтобы ответить на этот вопрос, нужны прагматизм и гибкость квалифицированного специалиста. Прислушайтесь к рекомендациям опытного разработчика iOS, Android и игр.
Почему разработчикам нужны “часы практики”
Если вы музыкант или просто увлекаетесь музыкой, то наверняка знаете, что “практика” и “репетиция” — два совершенно разных понятия.
Зачастую, у музыкантов есть “сакральные” часы практики. Эти...
Как улучшить написание условных выражений
В условиях, казалось бы, все предельно просто: освоив написание такого кода однажды, в дальнейшем всегда его придерживаешься. Но даже самое простое можно улучшить. Попробуем...
Индексирование в MySQL: руководство для начинающих
Это руководство поможет расширить представление о возможностях индексирования в MySQL. Вы узнаете, когда необходимо индексирование и как формируются, оптимизируются и удаляются индексы. Кроме того, научитесь создавать уникальные индексы с первичным ключом.
Как бороться с одиночеством в цифровом мире: 10 простых решений
Очень важно соблюдать баланс между работой и личной жизнью. Этот баланс важен и для фрилансеров, и для тех, кто работает в офисе с 9...
Как создать простой агент с Guidance и локальной моделью LLM
Познакомимся с инструментом Guidance, который управляет выводом больших языковых моделей и обеспечивает корректное выполнение инструкций.
Все, что нужно знать о цифровых людях
Фотошоп и немного изобретательности — вот два инструмента, с помощью которых создаются современные знаменитости. Нет, я не об известных Instagram-моделях с отредактированными фотографиями. Я говорю о...
Битва трендов: React vs Angular vs Vue
Подождите, по-моему, я уже писал на эту тему… Да, но слишком многие жаловались, что я так и не сказал, что же лучше. Поэтому в...
Обучение «на всякий случай» против обучения «точно в срок»
Как программист должен поступить с новой информацией? Выучить «на всякий случай», мало ли пригодится в будущем? Или выучить «точно в срок» тогда, когда эти...
7 малоизвестных команд и приемов Git
Контроль версий ПО - важная часть любого проекта, и решать эту задачу позволяет Git. Повысить эффективность работы с онлайн-репозитариями этого инструмента помогут эти стандартные, но довольно редко используемые команды Git.
Куча советов по программированию, которые я дал бы себе сам после 15 лет опыта
Маркус Баффетт — известный на HackerNews автор конструктора шахматного репертуара напоминает: «Изучайте Ваш инструмент, почти всегда оно того стоит». А ещё бойтесь писать код, который можно быстро поправить, если ошибки не критичны. В конце поста автор делится идеями ускорения отладки, которые уже работают на Chessbook и могут стать полезными для Вас.
Будущее графических дизайнеров в эпоху машинного обучения
Сможет ли искусственный интеллект заменить графического дизайнера? Этот вопрос волнует многих. Расскажем, как машинное обучение и искусственный интеллект действуют сегодня и поделимся прогнозами экспертов.
Мои заметки по программной инженерии
О процессе разработки
Код предназначен не только для его непосредственного выполнения, но он также является средством общения в команде и способом описать другим решение...
Как я создал расширение браузера и обучил ChatGPT обращаться к внешним сайтам за информацией...
Расскажем, как с помощью расширения Tampermonkey и прокси CORS Anywhere обучить ChatGPT получать доступ к внешним сайтам, анализировать извлекаемый с их страниц контент и искать в нем ответ на заданный вопрос.
Список инструментов для обязательного использования
Будучи бедным студентом, я являюсь огромным фанатом различных бесплатных вещей, особенно программного обеспечения. Когда дело доходит до программного обеспечения, я, буквально, могу сделать что...
Спецификация API — основа успешной разработки
Докажем, почему спецификации API имеют важное значение для долгосрочного успеха приложений. Расскажем о преимуществах, а также перечислим негативные последствия их отсутствия.
Первые шаги в программировании: работа без ошибок
Овладение искусством написания кода может стать неоценимым вкладом в ваше будущее, так как этот профессиональный навык востребован в современном мире как никогда раньше. Именно...
Секреты эффективного управления разработкой
Представляем вашему вниманию 50 советов о том, как добиться успеха на посту руководителя проектного отдела.
Новый модуль временных рядов PyCaret
Новый модуль PyCaret отличается простотой и функциональностью. Рассмотрим его в действии.
Базовые команды при работе с узлами K8s
В данной статье мы вспомним основы, чтобы прояснить суть ряда операций при работе с узлами кластера.
Тестовый кластер
Рассмотрим только что созданный кластер kubeadm, состоящий из...
Как создать приложение Android за 7 шагов
Хотите создать свое первое Android-приложение и ищете доступное руководство? Оно перед вами: всего 7 простых шагов - и приложение успешно работает на Android-устройстве.
Тестирование больших данных: руководство для начинающих
Что такое тестирование больших данных, и с какими проблемами можно столкнуться в этом процессе? Расскажем про основные типы, способы и инструменты тестирования больших данных.








































































































