MIT предоставил онлайн-версию ускоренного курса по навигации по командной строке, использованию текстового редактора и контроля версий, автоматизации рутинных задач, управлению пакетами и программным обеспечением и настройке вашей среды.
По крайней мере, знание командной строки и знание того, как настроить среду программирования, является важным аспектом сегодняшних занятий в колледже, даже не непосредственно связанных с компьютерными науками. Этот курс MIT, первоначально проводившийся в кампусе во время зимних каникул, направлен на то, чтобы восполните этот пробел, ознакомив студентов с этими удобными методами работы с вычислениями.
Мы почувствовали важность этого в статье «Как успешно преподавать вычислительные дисциплины непосвященным», где мы увидели, как можно превратить студента с небольшим опытом в области вычислений в компетентного пользователя компьютера-программиста, наблюдая, как SciNet, отдел суперкомпьютеров Университета Торонто преподает компьютерные дисциплины аспирантам в таких новых областях, как вычислительная биология и вычислительная медицина:
Его задача состоит в том, чтобы научить студентов, не имеющих опыта работы в CS, освоить методы кодирования и разработки программного обеспечения и дать им возможность выполнять вычислительный и статистический анализ, а также машинное обучение на данных, которые относятся к их области науки, в соответствии с тенденцией. что сегодня работа с данными практически везде.
Примерами являются клинические испытания, тесты на наркотики, медицинские случаи, больничное лечение, дифференциальная экспрессия генов и многое другое. Например, биомедицинские вычисления обычно включают статистику, анализ данных и знания интерпретируемых языков.
Учебная программа SciNet включала среди других тем:
Введение в оболочку Linux
Введение в программирование на R
Введение в контроль версий
Ввод / вывод бинарных файлов. Доступ, чтение и запись двоичных данных, стратегии ввода и вывода файлов и передовые методы.
Базовая статистика с использованием R. Обзор основных понятий вероятности и статистики, распределения вероятностей, описательной статистики и статистики вывода.
Введение в машинное обучение. Регрессия, переоснащение, компромисс смещения и дисперсии, перекрестная проверка, бутстрэппинг, LOESS, LOWESS.
Продвинутое машинное обучение. Выбор переменных, уменьшение размерности, анализ главных компонент.
Визуализация данных. Цифры для публикации, базовое построение, 1D (кривые), 2D (контурные карты, тепловые карты, дендограммы и т. Д.) И 3D-графики, интерактивная визуализация, анимация.
Курс Массачусетского технологического института также был мотивирован наблюдением, что классы Массачусетского технологического института не раскрывают подробно ничего из этого содержания, несмотря на то, что они являются важной ступенькой для выполнения более серьезной научной работы.
В отличие от предложения SciNet, которое также включает машинное обучение и статистику, это предложение свободно от научной нагрузки и, с упором на DevOps, предназначено для более практических нужд. Его главы охватывают:
Виртуальные машины и контейнеры
Оболочка и скрипты
Среда командной строки
Обработка данных
Редакторы
Управление версиями
Точечные файлы
Резервные копии
Автоматизация
Машинный самоанализ
Самоанализ программы
Управление пакетами / зависимостями
Настройка ОС
Удаленные машины
Интернет и браузеры
Безопасность и конфиденциальность
Основные инструменты для «взлома», как сказано в названии.
Каждая глава представляет собой смесь одностраничного html-файла с сопроводительным видео. С учетом сказанного давайте кратко рассмотрим, что нас ждет в магазине.
В главе «Виртуальные машины» мы не только узнаем, что такое виртуальная машина и почему она полезна, но и сравниваем ее с контейнерами.
Оболочка и сценарии. Не только основные, основные команды, такие как cd, ls, cp, mv, но и оболочка для Composability (каналы и тому подобное), управление заданиями и процессами.
Среда командной строки: от псевдонимов и функций до эмуляторов терминалов и мультиплексоров.
Обработка данных. Grep, sed, awk для сопоставления с образцом и управления текстом.
Редакторы; больше похоже на введение в настоящий хакерский инструмент Vi (m).
Контроль версий. Принцип с примерами в Git.
Конфигурирование и настройка ваших инструментов с помощью Dotfiles. Особенно полезно для Vi.
Зачем делать бэкап.
Автоматизация с помощью Crontab и его нового аналога Anacron.
Самоанализ машины и самоанализ программы, или работа с файлами журналов и отладчиками.
Управление пакетами / зависимостями.
Настройка ОС; это отображение клавиатуры и управление окнами.
Доступ к удаленным машинам с помощью SSH.
Интернет и браузеры
Помимо терминала, веб-браузер — это инструмент, на который вы потратите значительное количество времени. Таким образом, стоит научиться использовать его эффективно.
Безопасность и конфиденциальность. Основные инструкции по обеспечению безопасности в Интернете. Вы знаете, как пользоваться менеджером паролей, зашифрованными сообщениями (Signal, HTTPS, Tor) и т. Д.
Вот и все, ускоренный курс для всех, кто прямо или косвенно начинает изучать принципы вычислений. Существует также официальный форум этого класса на Reddit r / hackertools, где вы можете свободно публиковать свои наблюдения, комментарии или вопросы.