Книжный куб
10.4K subscribers
2.38K photos
4 videos
3 files
1.7K links
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора в T Tech
Download Telegram
Leetcode

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

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
🔥5910👍9🥱4👏1😁1
Leetcode - прогресс за первый месяц

Я уже рассказывал как купил себе Premium подписку на LeetCode на день рождения (3 января ) и парочку курсов оттуда ("Data Structures and Algorithms" и "System Design for Interviews and Beyond"). А теперь пришло время отчитаться за этот месяц:
- Оказалось, что руки забыли примерно одинаково как писать на всех языках, поэтому я решил вспоминать Python для алгоритмических задач
- После того, как я вспомнил синтаксис python и чуток набил руку, то easy задачки я стал решать где-то за 5-10 минут, а вот задачки уровня medium идут у меня с переменным успехом (и пока они скорее побеждают)
- У нас в компании есть чатик любителей leetcode, которые решают Daily Challenge вместе и обсуждают задачки - я туда тоже записался, но отрешал только около половины ежедневных задачек
- Зато SQL у меня как будто не забывался - тут в среднем easy задачки идут за пару минут, medium обычно минут 5 и даже hard задачки решаются относительно просто (правда, сегодня ночью решал порядка часа последнюю hard задачку из набора "Advanced SQL 50")

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

P.S.
Купленные курсы я пока не прошел (и даже особо не начинал), но планирую в феврале их заботать. Особенно интересно будет изучить system design курс.

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
🔥49👍187🤡2🥴2
Алгоритмы: построение и анализ (Introduction to Algorithms)

Я купил этот кирпич за авторством Кормена, Лейзерсона и Ривеста еще в 2002 году, когда думал, что смогу стать мастером в алгоритмах. Это было еще первое издание книги с белой обложкой и тогда соавторов было еще трое. Мне тогда нравилось изучать эту книгу, но на первых курсах университета у меня еще не было личного компьютера, поэтому приходилось писать псевдокод на листочке и дебажить в голове. Такая схема работы не слишком помогала в изучении computer science, но основы вроде бы я тогда уловил (заодно понял, что в этой области я звезд с неба не хватаю:) иначе бы и в голове мог все это отрешивать без компа).

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

Прошло много лет и теперь можно вернуться к книге, а алгозадачи решать не в голове, а на leetcode:)

Структура книги достаточно логичная и состоит из следующих частей
1) Математические основы анализа алгоритмов - скорость роста функций (нотация O(n)), рекурентные соотношения, множества, комбинаторика и вероятность
2) Сортировка и порядковые статистики - сортировка с помощью кучи, quick sort, медианы и порядковые статистики
3) Структуры данных - стеки, очереди, связанные списки, хеш-таблицы, деревья
4) Методы построения и анализа алгоритмов - динамическое программирование, жадные алгоритмы
5) Более сложные структуры данных - b-tree, биномиальные кучи, фиобаначчиевы кучи, системы непересекающихся множеств
6) Алгоритмы на графах - поиск в ширину и глубину, минимальные покрывающие деревья, кратчайшие пути, максимальный поток
7) Дополнительные главы - матрицы, быстрое преобразование Фурье, NP-полнота и многое другое

В общем, фундаментальная книга с крутыми темами и устрашающими размерами:)
Кстати, а стоит заказывать четвертое издание книги, если у меня уже есть первое?

#Software #Algorithm #Engineering #SelfDevelopment
16👍10🔥1
Leetcode - прогресс за второй месяц

Раньше я уже рассказывал про свой опыт с Leetcode, но теперь прошел еще один месяц и я оценил качество курса "Data Structures and Algorithms", который я пока прошел на 40%:) Этот курс действительно помогает вспомнить стандартные приемы и вернуть их на уровень легкого и осознанного применения. В итоге, мне стало казаться, что ежедневные задачки на leetcode стали проще, на что мой коллега, другой технический директор, предположил, что я просто научился лучше писать код:) А если говорить без шутко, то я каждый день утром или вечером хотя бы полчасика-часик уделял на leetcode и пропустил только один день на неделе, когда провалялся с давлением. И эта ритмичность помогала не соскочить и отложить тренировку на завтра:)

P.S.
Судя по картинке, можно увидеть, что темп чуток упал. Мне кажется, что это из-за того, что в феврале не было таких больших каникул как в январе, плюс я не решал запоем задачки по sql:)

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
👍31🔥94🤡1
Спортивное программирование (Competitive programming 3)

Мне нельзя подходить к книжным магазинам, так как я слишком легко превращаюсь в шопоголика. В итоге, я туда редко захожу, но сегодня меня позвали в гости на конференцию DevOps Conf в Сколково и уже тут я наткнулся на локальный развал книг от ДМК Пресс. В итоге, я не смог уйти без покупки и приобрел книгу по спортивному программированию:) Мне конечно уже поздно заниматься таким спортом, но почитать книгу будет интересно:)

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
👍26🔥114🤡2🥰1😁1
Leetcode - прогресс за первый квартал

Продолжаю свою серию постов про свой опыт с Leetcode (смотри 1, 2 и 3). Я закончил первый квартал с leetcode
- прошел больше половины курса "Data Structures and Algorithms"
- начал стабильно решать ежедневные задачи (но иногда не успеваю некоторые решать, а hard задачки просто часто пропускаю)
- темп решения задачек упал еще больше, но хотя бы полчасика в день я трачу на leetcode (на решение ежедневной задачи), а по выходным как раз занимаюсь курсом
Я понял что мне нравится в этой деятельности - эффект быстрого дофамина, когда тесты по задачке проходят и загарается зеленая галка, что она становится "Solved". Это очень отличается от моих обычных рабочих задач, где результаты я могу увидеть через недели, месяцы, годы:) А тут все предельно ясно и понятно и за полчаса ты получаешь подтверждение, что все еще немного инженер, а не просто менеджер:)

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
👍49🔥1810👏1
Leetcode - прогресс за четвертый месяц

Продолжаю свою серию постов про свой опыт с Leetcode (смотри 1, 2, 3 и 4). Я закончил четвертый месяц с leetcode
- В курсе "Data Structures and Algorithms" осталось пройти только часть про динамическое программирование
- Пытаюсь стабильно решать ежедневные задачи, но под конец месяца срываюсь в пике (особенно, если куда-то уезжаю)
- Но решать только задачки на leetcode стало скучно - например, в отпуск я взял с собой книгу "Алгоритмический тренинг" от Максима Иванова, которая показалась мне интересной. Автор хорошо разбирает типовые задачи, причем разбор часто элегантнее, чем то, что я могу придумать сходу сам:)
В общем, дофамин от решения задач пока никуда не делся, поэтому я продолжаю тренироваться с алгоритмами. Правда, я думаю, что скоро начну решать задачки и на codeforces.com, так как задачи для самостоятельного решения из книги "Алгоритмический тренинг" ведут на codeforces, а я хочу проверять насколько хорошо я понял материал книги:)

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
👍18🔥103🥴1
Leetcode - прогресс за пятый месяц

Вот уже 5 месяцев я играюсь с leetcode, вспоминая как писать код:) И этот месяц пока вышел самым слабым - часть его я проболел и поэтому подзапустил свой ежедневный ритуал с решением задачек. Плюс курс "Data Structures and Algorithms" почти закончился (я прошел все темы) и там остались только те задачки, что я откладывал на потом, но каждая из них требует больше времени, чем стандартная. Так у меня и получилось в мае, что я в среднем решал 1 задачку в день:) А если говорить в общем, то я вроде как вспомнил базовый синтаксис python и простой код могу писать без IDE и автоподсказок:) В июне попробую пройти курс "System Design for Interviews and Beyond" - уж больно интересно посмотреть на его содержание.

P.S.
Предыдущие посты на эту тему доступны здесь: 1, 2, 3, 4 и 5

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
23👍17🔥11
Leetcode - прогресс за полгода (Рубрика #SelfDevelopment)

Вот уже полгода я на leetcode, специально под этот полуюбилей я сделал так, чтобы у меня было 404 решенных задачи:) Полмесяца все шло хорошо, но потом случился выезд в Калиниград и ритуал был нарушен и только к концу месяца я оклемался. К сожалению, я так и не начал курс "System Design for Interviews and Beyond", но почти закончил курс "Data Structures and Algorithms", а дополнительно начал "Top Interview Questions (Easy Collection)" и "Google Interview". В общем, с таким набором разных курсов как-то интереснее играть с задачками, которые теперь я решаю примерно полчасика-часик в день:)

P.S.
Предыдущие посты на эту тему доступны здесь: 1, 2, 3, 4, 5 и 6

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
👍42🔥175👏4
Leetcode - прогресс за семь месяцев (Рубрика #SelfDevelopment)

Я уже семь месяцев на leetcode. За это время я вспомнил синтаксис Python и SQL, то есть вспомнил как писать алгоритмический код и многоэтажные запросы в SQL. За это время я прошел следующие курсы
- Introduction to Data Structure. Arrays 101
- Easy Collection. Top Interview Question
- LeetCode's Interview Crash Course. Data Structures and Algorithms - тут я почти его прошел, но осталось еще отрешать тему с динамическим программированием и несколько hard задачек из других тем

А сейчас я прохожу курсы
- Detailed Explanation of Dynamic Programming - специально стартанул этот курс, чтобы разобраться с dp и пройти потом до конца Interview Crash Course
- Get Well Prepared for Google Interview - интересно посмотреть какие задачки дают в Bigtech (Google) и на чем делают фокус
- Get Well Prepared for Facebook - интересно посмотреть какие задачки дают в запрещенной в России социальной сети
- Basic Concepts in ML Machine Learning 101 - интересно было взглянуть на базовый курс по ML (но он оказался просто текстом с картинками)
- LeetCode’s Interview Crash Course System Design for Interviews and Beyond - большой курс по system design, где русский автор дает много хорошего материала, а сам курс имеет отличную структуру, но есть и минус - у автора английский с серьезным акцентом, что чуток отвлекает от самого материала

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

P.S.
Предыдущие посты на эту тему доступны здесь: 1, 2, 3, 4, 5, 6, 7

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
🔥35👍9😱4🫡42👏1🗿1
Leetcode - прогресс за восемь месяцев (Рубрика #SelfDevelopment)

Я уже восемь месяцев на leetcode. В принципе, сейчас достаточно уверенно решаю большинство задач уровня Medium за приемлемое время, кроме задачек на динамическое программирование - что-то оно у меня пока туговато идет. К сожалению, пока не хватает времени, чтобы плотнее заняться этим вопросом, а также я не успел закончить курс по System Design, который мне понравился. Радует пока только ритмичность - получается пару задачек в среднем за день решать. А это приводит к тому, что руки вспомнили как писать код и даже думаю, что смог бы сейчас достойно пройти наше интервью по написанию кода:)

P.S.
Предыдущие посты на эту тему доступны здесь: 1, 2, 3, 4, 5, 6, 7, 8

P.P.S.

Пока мне больше всего понравились 2 больших курса
- LeetCode's Interview Crash Course. Data Structures and Algorithms - обзорный курс про структуры данных и алгоритмы
- LeetCode’s Interview Crash Course System Design for Interviews and Beyond - большой курс по system design с хорошей структурой и качественным и глубоким материалом

#SelfDevelopment #Algorithm #Software #SoftwareDevelopment
👍30116😁1🤡1