Будучи программистом-самоучкой, мне бы хотелось, если бы я мог улучшить себя, самостоятельно изучая курс информатики, который преподают типичному выпускнику CS.
Найти различные ресурсы в Интернете было легко, конечно же , есть открытые учебные материалы MIT , и есть курсы Coursera из Стэнфорда и других университетов. Есть множество других открытых ресурсов, разбросанных по Интернету, и несколько хороших книг, которые неоднократно рекомендуются.
Я многому научился, но моя учеба сильно фрагментирована, что действительно меня беспокоит. Я был бы рад, если бы где-нибудь я мог найти путь, которому я должен следовать, и набор, которым я должен ограничить себя, чтобы я мог быть уверен в том, какие важные части компьютерной науки я изучал, а затем систематически приближаться к тем, которые у меня нет.
Проблема с Википедией в том, что она не говорит вам, что важно, но настаивает на том, чтобы быть полной ссылкой.
MIT открытая посуда для информатики и электротехники. имеет огромный список курсов, в которых также не сообщается, какие курсы необходимы, а какие необязательны в соответствии с интересами / требованиями человека. Я не нашел упоминания о порядке изучения различных предметов.
То, что я хотел бы создать список, за которым я могу следовать, как этот фиктивный
SUBJECTS DONE
Introduction to Computer Science *
Introduction to Algorithms *
Discrete Mathematics
Adv. Discrete Mathematics
Data structures *
Adv. Algorithms
...
Как вы можете ясно видеть, я мало представляю, из каких конкретно предметов состоит информатика.
Было бы очень полезно, даже если бы кто-то указал на основные курсы из учебного курса MIT (+ основные предметы, которых нет в MIT OCW) в рекомендованном порядке обучения.
Я перечислю Сообщения, через которые я уже прошел (и я не получил то, что искал там)
https://softwareengineering.stackexchange.com/questions/49557/computer-science-curriculum-for-non-cs-major - главный ответ говорит, что не стоит изучать cse
https://softwareengineering.stackexchange.com/questions/110345/how-can-a-self-taught-programmer-learn-more-about-computer-science - указывает на MIT OCW
источник
Ответы:
Я видел некоторые материалы курса от MIT, и это было ужасно плохо . У них были учебные материалы, которые требовали VC5, связки неявных глобальных переменных, передавая цвета как «синий» вместо 32-битного ARGB, не говоря уже о 4x [0,1] с плавающей точкой, такого рода вещи. Я бы не стал доверять учебному плану или коду только потому, что он исходит из именитого университета.
Моя степень по CS (из университета, который является лучшим в Великобритании по CS) состояла из:
Первый год:
Второй год:
Третий год:
Как вы заметите, в значительной степени все является «основой» чего-либо, и почти ничто не охватывает полезной глубины.
Материал, который на самом деле стоил сделать, необходимо:
Вещи, которые стоило сделать, опционально
Вещи, которые важны, но я все равно их не освещал:
Остальные были пустой тратой времени. К сожалению, большинство из этих девяти пунктов я либо уже знал, либо взял полезные части в другом месте. Если вы читаете о таких вещах, как проблема FizzBuzz, быстро становится очевидным, что вам на самом деле не нужно знать все, что нужно для того, чтобы быть на вершине пакета, и это удачно, поскольку мой диплом и многие материалы, которые я видел в Интернете для других степеней действительно многому не учат.
источник
Open Course ware - это просто список курсов, которые они сделали доступными. Если вы хотите знать, что бы взял студент, зайдите на веб-сайт MIT (не OCW) и посмотрите реальную программу. У них есть список того, что требуется и что считается предварительным условием для чего. Вот их страница.
источник
Попробуйте рекомендации программы ACM / IEEE по компьютерным наукам 2001 года, ссылки на которые приведены здесь: http://www.acm.org/education/curricula-recommendations
наряду с обновлениями CS 2008 года.
Страница 17 отчета за 2001 год содержит удобную диаграмму, которая подчеркивает все «основные» знания и по-прежнему перечисляет факультативные занятия.
Программа бакалавриата не будет иметь времени, чтобы покрыть даже курсы, которые считаются основными в соответствии с этими рекомендациями, поэтому они объединят некоторые категории и позволят студентам выбирать среди них (например, «Операционные системы», «Языки программирования» и «Разработка программного обеспечения»). Программное обеспечение, и студенты выбирают трек).
Вы можете найти необходимую курсовую работу на веб-сайте департамента CS для практически любой школы, и они должны быть какой-то версией этого.
источник
Если я могу, я хотел бы предложить присоединиться к github.com как часть вашего учебного процесса.
Затем вы можете искать код, который имеет какое-то реальное приложение, которое вас интересует, клонировать его для себя, работать с ним, кодировать его и узнавать об этом, и в конечном итоге начать отправлять патчи обратно в исходный проект. и в дальнейшем работаем над проектом с открытым исходным кодом, в котором вы заинтересованы.
И, конечно же, вы познакомитесь с git, который просто лучше.
источник