Подтвердить что ты не робот

Если бы вы могли пройти один курс по информатике сейчас, что бы это было?

Если бы у вас была возможность пройти один курс по информатике сейчас, и в результате значительно увеличите свои знания в предметной области, что бы это было? Уровень бакалавра или выпускника.

Составители? Распределенные алгоритмы? Теория Concurrency? Расширенные операционные системы?

Сообщите мне, почему.

(Обратите внимание, что я ценю, что это не очень придуманный сценарий, но время и инерция могут мешать людям проходить курс или читать книгу или что-то еще)

4b9b3361

Ответ 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