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

6.0001 — «Введение в вычисления и программирование с использованием Python» — это полусеместровый МООК, предлагаемый Массачусетским технологическим институтом как на веб-сайте OCW, так и на edX. Это первая часть серии из двух статей «Вычислительное мышление с использованием Python». Вторая часть называется «Введение в вычислительное мышление и науку о данных», которую я собираюсь начать завтра.

Что дал курс?

Если вы перейдете на веб-страницу курса edX, вы увидите это в разделе «Чему вы научитесь».

Понятие вычисления

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

Несколько простых алгоритмов

Тестирование и отладка

Неформальное введение в алгоритмическую сложность

Структуры данных

Отказ от ответственности: технически я не проходил курс ни по OCW, ни по edX. Я сделал и то, и другое. Записавшись на edX в конце января, я посмотрел первые 2 лекции, а потом… ну, что-то случилось, и я решил остановиться до начала этого месяца. Я, очевидно, скачал видео. Я не увидел какой-либо разницы между наборами задач на OCW и edX.

Итак, с 1 мая я ежедневно тратил более 10 часов в день на 6.0001. И я рад сказать, что это более чем стоило потраченного времени. Я должен сказать, однако, что я не был полным новичком.

Мои прошлые любопытные исследования

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

Кроме того, на первом курсе (с августа 2019 года по настоящее время) я пробовал много разных вещей, в том числе —

Соревновательное программирование (2 конкурса + немного практики). Я понял, что это было действительно глупо, или, может быть, я был. Я не знаю.

Затем я начал читать книгу «Структура и интерпретация компьютерных программ», которую бросил читать примерно через 100 страниц. Я сделаю это на втором курсе.

И, как я уже сказал, я изучил основные структуры данных и алгоритмы.

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

Реальная сделка:

So!

Был ли этот МООК, предложенный лучшим университетом мира, легкой прогулкой для меня?

Вы глупы с медицинской точки зрения?

А если серьезно, этот класс был достаточно сложным, чтобы быть интересным (например, sicp). Он научил меня тому, чему обещал научить, что еще более важно, тому, чему я хотел научиться, и дал мне то, чего мне принципиально не хватало, — уверенность. Как будто я встретил Тайлера Дердена (профессора Эрика Гримсона), который поднял меня из прошлого и познакомил с этим Бойцовским клубом(Spyder).

Те вещи, которые я часами пытался понять, но все еще не мог, были так легко объяснены им. Такие вещи, как Big Oh, сортировка слиянием и ООП (я знаю Java!), Теперь не кажутся такими сложными. И позвольте мне выразить особую благодарность профессору Гуттагу за написание той прекрасной книги, которую рекомендовал курс. Я получил огромное удовольствие от прочтения.

Что я на самом деле сделал?

Итак, вот что я сделал.

Первые 5-7 дней я потратил только на чтение книги(первые 10 глав(включая пальчиковые упражнения(Лисп помог мне украсить скобки)) требовалось на 6.0001), затем остальные дни ушли на просмотр лекций(что помогло бы пересмотреть книгу) и решение наборов задач (что было моим первым опытом написания (или, по крайней мере, рецензирования) > 250 строк кода в день). Я так благодарен за этих двух гениев (и горжусь собой!), потому что мне даже не пришлось искать решения в Интернете! Я сделал все сам!

Планы на будущее!

Закончив с 6.0002, я решил использовать эту блокировку, наконец закончив «Алгоритмы на C» — Седжвика и еще один курс OCW под названием «Математика для компьютерных наук». Затем я снова начну с Lisp и, конечно же, с CLRS.

Что вы думаете? Я иду слишком быстро? Должен ли я замедлить? Мне ускориться? Ты будешь моим другом? - простите за это.

Я выложил весь код на свой GitHub — https://github.com/palashsharma891

Спасибо, МИТ. Спасибо профессорам. Спасибо за чтение!

Увидимся после 6.0002!