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

Данный алгоритм можно реализовать рекурсивным и нерекурсивным способом. Рекурсивные решения обычно более понятны, но менее оптимальны. Например, рекурсивная реализация этой задачи почти в два раза короче нерекурсивной, но занимает O(n)...
Читать дальше

Картинка поста

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

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

Это классическая задача, которую любят предлагать на собеседованиях, и она достаточно проста. Пусть a0 — это исходное значение a, а b0 — исходное значение b. Обозначим diff разницу а0 –...
Читать дальше

Картинка поста

Сделать так, чтобы Ubuntu работала быстрее на относительно слабом компьютере можно разными способами. Некоторые из них особенно при неправильном применении, могут нарушить работоспособность системы. Вот список некоторых вполне безопасных методов...
Читать дальше

Картинка поста

UDP – это передача данных без установления соединения, которое не имеет подтверждения связи и, таким образом, не дает никаких гарантий относительно доставки или порядка получения пакетов.  Но что это означает...
Читать дальше

Картинка поста

Многие программисты хотят заняться разработкой приложений под Android. Но немногие представляют, какие шаги здесь надо предпринять. Если заниматься этим серьёзно, то написание программ под Android – это не просто создание...
Читать дальше

Картинка поста

Слышали ли вы что-нибудь о соревновании под названием js13kGames? Это мероприятие ориентировано на разработчиков игр, использующих возможности HTML5. Основное требование для участия — размер игры не должен превышать 13 КБ....
Читать дальше

Картинка поста

Наверняка все, кто пользовался почтой от Google, хоть раз видели уведомления вроде этого: Эти уведомления называются HTML5 Notifications, и они видны, даже если перейти в другую вкладку или вообще свернуть...
Читать дальше

Картинка поста

Вы поставили стакан воды на диск проигрывателя виниловых пластинок и медленно увеличиваете скорость вращения. Что произойдет раньше: стакан сползет в сторону, стакан опрокинется, вода расплескается? Этот вопрос задавали ранее в...
Читать дальше

Каждый программист, которому приходилось писать на C или C-подобных языках, наверняка сталкивался с тем, что размер переменных одного и того же типа на разных машинах может быть различным. Немного разобравшись...
Читать дальше

Картинка поста

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


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

Под корректными комбинациями пар будем понимать правильно открытые и закрытые скобки. На вход подаётся число пар скобок, на выходе должны быть все возможные их комбинации в виде набора строк. Первая...
Читать дальше

Картинка поста

Инженеры в Google очень востребованы, и им платят соответственно. Так, например, стажеры в этой компании получают от 70 до 90 тысяч долларов в год, в то время как разработчики программного...
Читать дальше

Картинка поста

«Один из важнейших уроков, преподанных компьютерной индустрии, заключается в том, что для пользователя ценность компьютера определяется преимущественно качеством и многообразием существующих программ. Мы все, занятые в этой индустрии, усвоили этот...
Читать дальше

Дан входной файл, содержащий четыре миллиарда целых 32-битных чисел. Предложите алгоритм, генерирующий число, отсутствующее в файле. Имеется 1 Гбайт памяти для этой задачи. Дополнительно: а что если у вас всего 10 Мбайт?...
Читать дальше

Картинка поста

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

Картинка поста

Дана шахматная доска размером 8×8, из которой были вырезаны два противоположных по диагонали угла, и 31 кость домино; каждая кость домино может закрыть два квадратика на поле. Можно ли вымостить...
Читать дальше

Картинка поста

“Когда я писал этот код, только Бог и я понимали, что он означает. Теперь понимает только Бог.” По поводу авторства этой цитаты проводилось целое расследование. “Посвящаю этот код и всю мою...
Читать дальше

Не все вопросы на StackOverflow находят поддержку. Иногда люди сами не понимают, что спрашивают, временами задают отвлечённые вопросы, а порой просят решить простую студенческую задачку или просто спрашивают глупости. Список вопросов,...
Читать дальше

8cc — это компилятор для языка С. Он поддерживает все особенности С11 и вместе с тем его код настолько небольшой и простой, насколько это возможно. Исходный код есть на GitHub, или...
Читать дальше

Картинка поста

Евгений Брикман – ведущий разработчик Play Framework для LinkedIn сказал в видео-презентации, записанной на JaxConf 2013, что большие кодовые базы труднее поддерживать, если они написаны на динамических языках. На одном...
Читать дальше

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


Картинка поста

Допустим, вы пишете конвейер, в котором 2 потока, используя общий буфер, обрабатывают данные. Поток-producer эти данные создает, а поток-consumer их обрабатывает (Producer–consumer problem). Следующий код представляет собой самую простую модель:...
Читать дальше

Картинка поста

Да, мы знаем, на что это похоже, но сейчас мы расскажем вам, как «ускорить Интернет». В некоторых случаях скорость ответа DNS-серверов может значительно влиять на время загрузки страниц. Дело в...
Читать дальше

В этой задаче можно использовать только сложение. В подобных задачах полезно вспомнить суть математических операций и как их можно реализовать с помощью сложения (или других операций)....
Читать дальше

Команда echo в Unix предназначена для отображения строки текста. Она просто выводит текст на стандартное устройство вывода. Далее представлена небольшая подборка реализаций этой команды на языке С в различных ОС....
Читать дальше

Картинка поста

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

Картинка поста

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

Картинка поста

В каждом проекте есть свои соглашения по написанию и оформлению кода. Некоторые менеджеры ограничиваются только базовыми правилами, некоторые составляют подробные списки рекомендаций. В некоторых проектах правил оформления кода нет совсем,...
Читать дальше

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