Это история о том, как я случайно начал и развил привычку решать проблемы каждый день. И как они говорят: «Хорошие привычки заслуживают фанатизма».. Я тоже.

3 сентября 2020 г. я нашел этот веб-сайт Daily Coding Problem, где вы можете подписаться на информационный бюллетень и получать по одной проблеме в день по почте. Мне нравится эта инициатива, поэтому я сразу же подписался, чтобы протестировать ее, так как никогда не видел такого использования информационного бюллетеня. И как говорится:

Люди находят свой путь самыми странными способами.

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

Интересно было то, что решать их было весело, и они требовали много обучения. Кроме того, для решения некоторых проблем требовалось всего несколько секунд, для некоторых требовались минуты, а некоторые даже требовали внешнего считывания для их решения. Я помню тот, в котором использовался метод Монте-Карло для оценки значения pi(π). Я никогда раньше даже не слышал об этом названии, поэтому в конце концов мне пришлось его прочитать и понять, и это оказался действительно удивительный метод выборки с использованием рандомизированных данных.

Чтобы хранить проблемы и их решения в одном месте, я решил создать репозиторий Github 👇.



И через несколько дней, из-за утомительной ручной работы по созданию каталога и файловой структуры для проблемы и редактирования файлаReadme для включения новой формулировки проблемы, я решил автоматизировать задачу с помощью Github Actions и написал рабочий процесс CRON для создания и сохраните структуру каталогов и обновите файл Readme, указав все сообщения о проблемах. В конце концов, все, что мне нужно сделать, это скопировать проблему из письма в мой файл решения в комментариях.

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

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

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

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

Спойлеры о будущих обновлениях моей нынешней привычки. Я планирую начать информационный бюллетень с написания коротких статей обо всех решениях и подходах к ним. Если вам интересно, пожалуйста, подписывайтесь на меня.