Конечный автомат: теория и реализация

Конечный автомат — это некоторая абстрактная модель, содержащая конечное число состояний чего-либо. Используется для представления и управления потоком выполнения каких-либо команд. Конечный автомат идеально подходит для реализации…

Обложка поста

Алгоритмы и структуры данных для начинающих: сортировка

В этой части мы посмотрим на пять основных алгоритмов сортировки данных в массиве. Начнем с самого простого — сортировки пузырьком — и закончим «быстрой сортировкой» (quicksort). Для каждого алгоритма, кроме…

Обложка поста

Алгоритмы и структуры данных для начинающих: множества

Множество — это коллекция, которая реализует основные математические операции над множествами: пересечения (intersection), объединение (union), разность (difference) и симметрическая разность (symmetric difference). Каждый из алгоритмов мы разберем в соответствующем разделе.

Обложка поста

Алгоритмы и структуры данных для начинающих: двоичное дерево поиска

До сих пор мы рассматривали структуры данных, данные в которых располагаются линейно. В связном списке — от первого узла к единственному последнему. В динамическом массиве — в виде непрерывного блока. В этой…

Обложка поста

Шпаргалка по принципам ООП

Главное Инкапсулируйте все, что может изменяться; Уделяйте больше внимания интерфейсам, а не их реализациям; Каждый класс в вашем приложении должен иметь только одно назначение; Классы — это их поведение и…

Обложка поста

Алгоритмы и структуры данных для начинающих: стеки и очереди

В предыдущих частях мы рассматривали базовые структуры данных, которые, по сути, являлись надстройками над массивом. В этой статье мы добавим к коллекциям простые операции и посмотрим, как это повлияет на…

Обложка поста

Алгоритмы и структуры данных для начинающих: динамический массив

Иногда от коллекции требуется неограниченная вместимость и простота использования списка, но при этом константное время доступа к произвольному элементу, как в массиве. В этом случае используется список на основе массива…

Обложка поста
Обложка поста

Алгоритмы и структуры данных для начинающих: связный список

Первая структура данных, которую мы рассмотрим — связный список. На то есть две причины: первое — связный список используется практически везде — от ОС до игр, и второе — на его…

Обложка поста

Алгоритмы и структуры данных для начинающих: сложность алгоритмов

Вне зависимости от того, являетесь ли вы студентом или работающим программистом, и от того, в какой области вы работаете, знание алгоритмов и структур данных необходимо. Это важные строительные блоки для…

10 причин, почему ошибки надо исправлять сразу

Многие новички, а иногда и опытные программисты, сталкиваются с соблазном отложить исправление некритичного бага на потом. Приложение какое-то время работает, к наличию ошибки привыкают и постепенно про нее забывают. В…

Обложка поста

Введение в ООП с примерами на C#. Часть вторая. Все, что нужно знать о наследовании

Рассказывает Akhil Mittal Вступление В первой статье этой серии мы рассматривали работу разных вариантов реализации перегрузки. В этой части мы сосредоточимся на таком разделе объектно-ориентированного программирования, как наследование.

Машинное зрение. Введение

Данный пост нашей рубрики будет посвящен общей информации по машинному зрению и его применению. В качестве интересного примера хочу вам продемонстрировать это видео: Здесь используется замечательный пример обнаружения веб-камерой лица человека…

Обложка поста

7 советов для профессионального роста программиста

Против обыкновения, опустим вступительное слово и перейдем сразу к советам. 1. Регулярная практика программирования Постоянно программируйте, если Вы действительно хотите стать профессионалом  мастером своего дела. Вы будете писать ужасные программы…

Обложка поста
Обложка поста

Как использовать базу данных MySQL в Java

В этой статье мы научимся подключаться к базе данных MySQL из Java-кода и выполнять простые запросы для получения и обновления данных. Для того, чтобы получить доступ к базе данных, мы…

Чем отличаются наследование и композиция в Java

Несмотря на то, что и композиция, и наследование позволяют использовать код повторно, они делают это по-разному. Основное отличие между ними состоит в том, что композиция позволяет переиспользовать код без его…

Обложка поста
Обложка поста

7 типичных ошибок неопытных программистов

Сколько люди будут учиться программированию, столько будут совершать одни и те же ошибки. Существуют грабли, на которые просто невозможно не наступить. Тем не менее небольшая ошибка в начале разработки может…

Обложка поста

Использование регулярных выражений в Python для новичков

Примеры использования и применения регулярных выражений в Python для новичков. Разбираем теорию и реальные задачи, решаемые с помощью регулярных выражений.

Как общаться с null в Java и не страдать

Java и null неразрывно связаны. Трудно найти Java-программиста, который не сталкивался с NullPointerException. Если даже автор понятия нулевого указателя признал его «ошибкой на миллиард долларов», почему он сохранился в Java?

Обложка поста

Почему так тяжело учиться программировать

В наше время существуют тысячи возможностей научиться программировать: множество бесплатных книг, видеоуроков, онлайн-курсов на любую тему, связанную с программированием, даже целые сайты для поиска и решения любого типа задач, с…

Обложка поста

Как вести себя на собеседованиях? Что там будут спрашивать? Как лучше готовиться?

В этом выпуске мы попросили экспертов дать советы начинающим программистам, которые хотят найти работу.

Обложка поста

15 правил написания качественного кода

Есть мириады способов написать плохой код. К счастью, чтобы подняться до уровня качественного кода, достаточно следовать 15 правилам. Их соблюдение не сделает из вас мастера, но позволит убедительно имитировать его. Правило 1.

Обложка поста
Обложка поста

7 принципов, которые нужно знать начинающему программисту

Эта статья — не самоучитель по кодингу. И не пост о том, «какой язык программирования выбрать». Если вы хотите понять, насколько вам интересно изучать мир кода, то более важным вопросом…

Как стать системным аналитиком?

Получение образования в ИТ открывает широкий набор возможностей.  И порой бывает трудно выбрать что-то конкретное. Но куда бы вы ни пошли, везде есть позитивные перспективы. Одной из процветающих профессий является…

Обложка поста

Как возродить потерянную мотивацию

Вы потеряли ту страсть, которая была у вас к программированию? Влияет ли это на мотивацию завершать свои задачи? Трудно ли вам заканчивать проекты? Если да, то для вас есть хорошие…

Где новичку в программировании найти упражнения и идеи для проектов?

В статье вы найдете ссылки на многочисленные ресурсы, на которых собраны всевозможные программистские задачи и интересные идеи для собственных проектов.

Обложка поста

Программирование и кодирование. Компьютерная и программная инженерия. В чём разница?

КН/КИ/ПИ и Программирование/Кодирование Компьютерные науки (КН), компьютерная инженерия (КИ), программная инженерия (ПИ), программирование и кодирование – это всё связанные между собой термины, но при этом они немного отличаются, вводя в заблуждение…

Обложка поста

Быстрый старт со Scala для начинающих и не очень

Scala – строгий статически типизированный JVM-based язык, успешно совмещающий парадигмы объектно-ориентированного и функционального программирования. В языке есть классы, функции высшего порядка, анонимные функции, обобщенное программирование. Использование Java-кода из Scala не…

Обложка поста

С чего лучше начинать новичку? В какой вуз пойти? Какой язык выбрать? По каким материалам учиться?

В нашу рубрику «Вопросы к экспертам» поступило очень много вопросов от школьников о том, что им делать, если они хотят стать программистами. Мы задали этот вопрос экспертам и собрали для…

Обложка поста

Типы языков программирования

Для погружения в программирование нужно всего 3 вещи: Решить, с какого языка/технологии вы хотите начать. Решить, на каком ресурсе вы хотите обучаться. Выделить время на само программирование. Звучит просто, однако…

Forbes: список лучших языков, чтобы познакомиться с ними за месяц

8 вариантов провести месяц с пользой и встать на путь к своему будущему Месяц программирования принесёт огромную пользу независимо от того, какой язык выбрать. Но с учётом ваших интересов, попробуйте один из следующих:…

Работа виртуальных функций в C++

Виртуальная функция определяется vtable (виртуальной таблицей). Если какая-либо функция класса объявлена как виртуальная, создастся vtable, которая хранит адреса виртуальных функций этого класса. Для всех таких классов компилятор добавляет скрытую переменную…

Предъявите ваши аргументы

Стопроцентно ваш код ужасен. Я говорю это не для того, чтобы оскорбить вас или унизить, а лишь для того, чтобы помочь вам. Я программист, и работаю с другими программистами вот…