Для студентов CS50x Гарварда:

Теперь, когда я приближаюсь к завершению моего пути к CS50x, я подумал, что это будет хороший шанс оглянуться назад и поразмыслить над тем, что я узнал из этого курса, и как далеко я продвинулся с тех пор, как начал. Это размышление предназначено в качестве более общего руководства для тех из вас, кто думает (или уже начал) свое собственное путешествие по CS50. Надеюсь, я смогу лучше подготовить вас к предстоящей дороге и помочь вам успокоиться тем, что вы не одиноки в своей борьбе!

Откуда я:

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

Чего ожидать:

Если вы совершенно новичок в этой области, как и я, ожидайте, что каждую неделю в этом курсе вы будете «вытаскивать ковер из-под вас», как выразился Дэвид Малан (он преподает CS50). Каждую неделю вас будут знакомить с совершенно новыми способами решения проблем, а затем вас попросят применить на практике приобретенные вами инструменты. Каждая неделя будет основываться на предыдущей неделе; быстро абстрагируясь от деталей, чтобы понять, что происходит на каждом уровне. Домашнее задание на каждую неделю (pset) потребует от вас абстрактного мышления о том, как использовать эти фундаментальные инструменты для решения практических задач. Если вы, как и я, учитесь полностью онлайн, вам может быть сложно найти помощь, когда вы застрянете. Исчерпать ресурсы CS50; они фантастические! Помимо лекции, убедитесь, что вы смотрите «шорты» каждую неделю, смотрите «пошаговые инструкции» и используйте песочницу для просмотра примеров. Все инструменты есть, если вы знаете, где их найти. ВСЕГДА начинайте с ручки и бумаги и не нажимайте клавиши, пока у вас в голове не будет четкого пути для каждого шага, необходимого для решения проблемы. Я тратил в среднем 10 часов в неделю на работу над этим курсом (2 часа на лекцию, 2 часа на «шорты» и 3–10 часов на псевдонимы). На каждую неделю курса у меня уходило около 2 недель.

Что я хотел бы знать с самого начала:

Зацикливайтесь на деталях низкого уровня, по крайней мере, сначала. Это создаст более богатый опыт обучения и создаст более благоприятную среду для роста, когда вы решите заниматься своими собственными проектами. Я обнаружил, что понимание интимных деталей сделает устрашающего гиганта информатики меньше и более управляемым. Не беспокойтесь о том, чтобы что-то заработало, беспокойтесь о том, ПОЧЕМУ они работают. Первое приводит к поиску в Google быстрых ответов. Последнее будет поначалу более сложным и трудоемким, но откроет возможность ответить на бесконечные вопросы и создать что-то самостоятельно (САМОЕ удовлетворяющее чувство). Примите любопытство! Любопытство в вопросе «Почему?» Позволит даже самому большому технологическому гиганту превратиться в небольшую управляемую головоломку, ориентированную на более широкую область компьютерных наук.

Как мне помог этот курс:

Одним из самых больших преимуществ было то, что я заставлял меня мыслить алгоритмически, небольшими дискретными шагами. Я научился разбирать проблему, а затем создавать что-то для ее решения. Это часто означало чтение документации и следование инструкциям (см. Рисунок) для уже созданного инструмента. Так я научился пользоваться инструментами, которые могут решить практически любую проблему!

Этот курс уникален тем, что каждую неделю я постоянно разжигаю страсть к информатике. А каждая лекция «вытаскивала коврик» из-под меня; это также пробудило в моем уме некоторые возможности того, что можно сделать с этими недавно приобретенными инструментами и информатикой в ​​целом. Знание того, что в ваших руках есть способность создавать и решать проблемы, невероятно расширяет ваши возможности.

Где я сейчас нахожусь:

Коврик все еще вырывается из-под меня каждый день. Но количество результатов поиска в Интернете, которые кажутся мне полной чушью, сокращается с каждым днем, и с каждым разом я все быстрее нахожусь на ногах. Это может быть связано с тем, что мне удобнее чувствовать себя некомфортно, или потому, что я лучше понимаю строительные блоки, на которых строятся новые инструменты, языки и фреймворки. У меня все еще есть длинный список вещей, которым я хочу научиться (и мне нужна практика с тем, что я знаю). Но теперь я, по крайней мере, в общих чертах знаю, какое место каждая часть занимает в общей сфере информатики, и чувствую, что сориентировалась. Самое главное, у меня есть уверенность в том, что я могу разобрать вещи и построить что-то новое сам. Я очень рекомендую Гарвардский CS50x.