Stanford Algorithms

Блуждая по просторам сети наткнулся на замечательный блог http://larrr.com/

Автор написала множество статей о том, как проходить собеседования в топ IT компании. Больше всего мне понравился собранный в одном файле InterviewPreparationGuide http://larrr.com/hochu-rabotat-v-google-manual-gotov/
Это действительно тот роудмап для программиста мечтающего устроится на работу в топ компанию. Взял его на вооружение и буду применять в своем обучении.

Поэтому, будем основательно осваивать новую профессию (насколько это вообще с программированием возможно). Начал я с алгоритмов, конкретно со стэнфордских курсов на coursera.org. С тех пор как я тут был последний раз, этот крупнейший MOOC портал значительно преобразился. Большинство курсов теперь платные (раньше учеба была бесплатной, купить можно было только подтверждающий сертификат), отдельных курсов практически не осталось – теперь все входит в состав специализаций. Еще одно значительное изменение – изменилась периодичность. Если 4-5 лет назад каждый курс был как праздник, сессии стартовали 1-2 раза в год, то сейчас все на рельсах, присоединиться можно в любой момент, форум де-факто мертвый. Представьте, если бы в ВУЗ можно было бы поступить в любой момент года? Скучно же было бы. Ну и тут что-то похожее.

Итак, специализация Algorithms, состоит из 4-х курсов по 4 недели. Уже прошел два курса из четырех за 5 недель. Изучил асимптотическую сложность, мастер метод, разобрал основные алгоритмы: Merge sort, Quick sort, BFS, DFS. Познакомился со структурами данных Heap, Tree, HashTable, Bloom Filter. Материал достаточно сложный, приходится много читать дополнительно. Не всегда до конца понятны доказательства теорем, по математике я проседаю прилично. Задания в конце каждой недели тоже не простые, но со второй попытки проходятся на 100%. Финальные экзамены оказались совсем простыми, потому что вопросы только по материалам из видео лекций.

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

Поделиться своим решением задач в репозитории – отличный повод завести аккаунт на github, не так ли? Поэтому, если кто-то также проходит курс и столкнулся с проблемой в решении задачек на алгоритмы https://github.com/DKARAGODIN/StanfordAlgorithms

Ну и как не выложить сертификаты? Попотеть ради них таки пришлось.