22 октября 2012 г.

Learning in progress

Я долго пропадал на просторах интернетов. Дело в том, что в последние несколько месяцев я плотно "подсел" на занимательную штуку под названием MOOC. И время было потрачено не зря, черт возьми! Что есть MOOC? Massive open online course. Это случилось аккурат после окончания самого первого моего курса - по разработке и анализу алгоритмов. Я был надолго потерян для такой бесцельной траты свободного времени, как написание новых заметок в этот блог и даже записался в community Teaching Assistant на одном из курсов :-) Однако, пришло время подвести промежуточные итоги и немного рассказать о пройденных мной курсах.

В хронологическом порядке.

1. Design of Computer Programs, Programming Principles
Курс на Udacity

Вообще, данный курс предназначен скорее для новичков в мире программирования, для тех, кто лишь недавно закончил что-нибудь вроде Computer Science 101. Т.е. уже не является совсем чайником, но в то же время все еще далек от профессиональной разработки ПО. Зачем я на него записался? Ладно, признаюсь: я чайник хотел попробовать Python, пускай и в лабораторных условиях. Это причина номер раз. Была еще одна - курс вел Peter Norvig, крутейший дядька IT индустрии, протыкавший перфокарты, когда многие из нас еще были на стадии спецификаций и абстрактных юзер стори своих родителей.

Минимум теории, максимум кодирования. То, что надо. Свое место нашлось как объяснению базовых принципов построения приложений для новичков, так и рассмотрению языковых конструкций языка Python для таких как я. Лекций, как таковых, не было. Их заменяют последовательности коротких видеороликов, посвященных одному или нескольким аспектам разработки или язка, за каждым из которых следует небольшое задание, как правило с привлечением кодирования. Надо заметить, что такой подход не характерен для курсов на других опробоваванных мной платформах. Честно говоря, до сих пор не могу определиться какой из подходов мне нравится больше: классический с лекциями и практикой или новый с фактическим их переплетением воедино. Кстати, это не значит, что домашних заданий не было. Они были и представляли собой реализацию простых программ, как правило игр типа "камень-ножницы-бумага", "покер" и прочее.