Если бы вы могли пройти один курс по информатике сейчас, что бы это было?
Если бы у вас была возможность пройти один курс по информатике сейчас, и в результате значительно увеличите свои знания в предметной области, что бы это было? Уровень бакалавра или выпускника.
Составители? Распределенные алгоритмы? Теория Concurrency? Расширенные операционные системы?
Сообщите мне, почему.
(Обратите внимание, что я ценю, что это не очень придуманный сценарий, но время и инерция могут мешать людям проходить курс или читать книгу или что-то еще)
Ответы
Ответ 1
Компиляторы.
Так же, как изучение иностранного языка заставляет вас более внимательно относиться к вашему родному языку, чем когда-либо прежде, я считаю, что составление компиляторов даст вам полное представление обо всем коде, который вы обычно пишете.
Ответ 2
Структуры данных и алгоритмы. В этом курсе вы узнаете, как создать более эффективный код, а также расскажет об общих подходах к решению сложных проблем. Я не лучший в этом, но я верю, что этот тип курса учит вас, как думать о сложных проблемах, может помочь вам во многих других областях.
Ответ 3
Мне бы хотелось взять хардкор (как в John Carmack hardcore) курс графического программирования. Что-то, что покрывает все, от аппаратного уровня до алгоритмов растеризации и рендеринга, и заканчивая манипулированием данными в трехмерных и методах хранения данных. Тот, который был предложен, когда я был в университете, был довольно посредственным.
Ответ 4
Дизайн пользовательского интерфейса в одно мгновение.
Я много узнал о том, как хорошо программировать в колледже, но ни разу не упоминался пользовательский опыт. После того, как я был в рабочей силе более десяти лет, я смотрю на это упущение как на преступника.
Ответ 5
Операционные системы. Зная, как этот ящик, который вы разрабатываете на тиках на более низком уровне, поможет вам понять все концепции более высокого уровня позже, особенно когда что-то пойдет не так.
Ответ 6
Класс алгоритмов, руки вниз.
"Если вы хотите быть программистом мирового уровня, вы можете программировать каждый день в течение десяти лет, или вы можете программировать каждый день в течение двух лет и брать класс алгоритмов". - Проф. Эрик Демейн (MIT)
Изучение алгоритмической сложности, сортировки, слияния и поиска алгоритмов чрезвычайно важно.
Ниже приведена ссылка на видеоролик, из которого следует цитата, MIT Видеокарты класса OpenCourseware.
Ответ 7
Нейронные сети
AI на практике
Введение в естественный язык или семантическую обработку.
Любой из этих... черт возьми, я бы хотел сделать кого-нибудь из них сейчас, если бы успел.
Однако, если вы расширили сферу охвата любого курса, мне пришлось бы идти с курсом бухгалтерского учета. Это было бы полезно во всех отношениях.
Ответ 8
Мне было бы интересно пройти курс по компьютерному обучению. Я работаю в статистике, и там много совпадений с машинным обучением. Мне бы хотелось увидеть другую перспективу для решения некоторых из тех же проблем.
Ответ 9
Работа в сети. (Не социальная сеть... хотя это может быть классный класс, который нужно принимать в любом случае.)
Ответ 10
Я бы взял курс, который покрывает материал, который я знаю, что мне будет сложно учиться самостоятельно. Например, я полностью очарован квантовыми вычислениями, и я хотел бы узнать больше об этом, даже если это может не помочь мне профессионально.
Ответ 11
Конфиденциальность и анонимность (на самом деле, я только что проверил этот, так что это действительно не соответствует вопросу). Как только вы выясните, как легко вы можете быть однозначно идентифицированы в Интернете, используя минимальные объемы информации, вы будете намного более осторожны с информацией, которую вы раздаете (как пользователь), и информацией, которую вы собираете/показываете (как разработчик).
Ответ 12
Я еще не закончил магистерскую диссертацию, поэтому я все еще мог бы использовать любые курсы CS, которые мне нравятся. Но я думаю, что я могу легче учиться тому, читая книги и выполняя некоторые упражнения, не выходя на курсы (и испытывая стресс от упражнений и экзаменов). Другой вариант - просто послушать лекции, но без официального участия в курсе (по крайней мере, здесь, в Хельсинском университете, лекции являются общедоступными для слушателей).
Вот что я хотел бы узнать дальше: функциональное программирование, распределенные системы. Компиляторы также были бы интересной темой, но сейчас мне не нужны эти знания.
В моем университете будут курсы по всем этим, но теперь я предпочитаю изучать их самостоятельно. Я загружу материал курса и упражнения из лямбда-исчисления и курсов Haskell и прочитаю книгу или две о распределенных системах и алгоритмах.
Ответ 13
Генетическое программирование?
Ответ 14
Либо компьютерные сети, либо конструкция компилятора - оба были факультативами в моей школе, и у меня никогда не было возможности принять участие в конфликтах по расписанию.
(Технически некоторые из моих классов преподавали различные элементы построения компилятора - разбор, управление таблицами символов, активационные записи - но они были больше о теории машин и языков, чем о том, как на самом деле построить компилятор).
Ответ 15
Алгоритмы (снова). К сожалению, я не думаю, что я поднял столько, сколько должен был в первый раз. Моим вторым выбором были бы компиляторы.
Ответ 16
Также компиляторы, потому что они требуют эффективности во многих областях, разбора, сопоставления шаблонов, семантического анализа, генерации кода и т.д.
веселит
Ответ 17
"Лицензирование программного обеспечения и соответствующие законы об авторском праве" станет хитом в следующие годы
Ответ 18
Параллельное программирование. Я действительно не думаю, что это должно быть просто функциональное программирование. Мне так же интересно разобраться в теме с нефункциональными языками.
Ответ 19
Вычислительная геометрия. Я получаю то, что беру из книг, но мне хотелось бы, чтобы я получил глубокое понимание, когда у меня была такая возможность.
Ответ 20
Я удивлен, что я не вижу, чтобы кто-то собирался заниматься теорией вычислений. Это самый уродливый предмет, который я узнал в университете. Конечно, кто-то здесь разделяет с нами тот же аппетит.: -)
CS → 1. Теория вычислений, 2. Вычислительное моделирование, 3. Язык программирования
-
Это дает мне более абстрактную перспективу решения проблем в целом. Мой опыт говорит мне, что более абстрактное я иду, лучшее решение, которое я могу создать для проблемы.: -)
-
Моделирование настолько мощное, что зависит от решения большинства проблем. При этом мы решаем проблемы обычно на низком уровне. Обычно это не лучшее решение.
-
Это интерфейс компьютера с программистом. И мне интересно сделать программирование проще для всех. Поэтому, если интерфейс может быть улучшен, все это принесет пользу.
Ответ 21
типографика. Далее следует дизайн пользовательского интерфейса.
Это те области, где, как я думаю, мне нужны лучшие навыки.
Ответ 22
Это курс, который я могу рекомендовать (это курс дистанционного обучения).
Вы узнаете о логике, рекурсии, бинарных деревьях /BST, таблицах истинности, эффективности, формальных определениях функций. Он не нуждается в каком-либо материале в математике, выходящем за пределы школьного уровня. Основные темы о манипуляциях с битами, подсчетах в двоичном формате и т.д. Рассматриваются в модулях 1 года.
Вы не используете haskell, хотя я слышал, как много университетов используют - это функциональный язык, интерпретируемый java.
Ответ 23
Мои первые две (ОС и компиляторы) уже выполнены. Мой следующий выбор - хороший курс по дизайну базы данных. Базы данных являются огромной частью любого веб-проекта. Понимание того, как они работают внутри страны, облегчит работу с ними позже.
Ответ 24
Экстремальное программирование. Проблемы программирования соревнований.
Копировать много. Быстрое кодирование. Эффективный код.
Использование контроля версий включало:)
Ответ 25
Безопасность или криптография
Ответ 26
параллельное/распределенное программирование, поскольку cpu не скоро пойдут быстрее; и многоядерные процессоры, а также интернет будут работать некоторое время. поскольку я не имею никаких предварительных знаний.
Ответ 27
Операционные системы. Любой, у кого есть знания в области операционных систем, имеет огромное преимущество, когда речь идет о сборке компонентов/услуг в программной системе, планировании производительности и диагностике/устранении узких мест в производительности.
Ответ 28
Любой современный класс алгоритмов, который использует современные языки, чтобы научить вас не только алгоритмам, но и языкам!
Ответ 29
Регулирование информационных технологий
Такие вещи, как SOX, PCI, HIPAA и другие законодательные требования из разных юрисдикций, а также то, какие законы о конфиденциальности могут применяться в области ИТ. Взлом также может быть затронут в некоторой степени здесь, поскольку он является своего рода перекрестком между юридическим курсом и информационными технологиями, который не обязательно является информатикой для некоторых.
Ответ 30
Поскольку я уже принимал компиляторы, алгоритмы и все другие стандартные материалы CS, я бы, вероятно, взял что-то более интересное и "модное", например Разработка IPhone