Профессию программиста сложно назвать романтичной, но для творческого человека она открывает много возможностей, притом речь идет не о денежной стороне дела, которая, к слову, в этом случае тоже вполне привлекательна, а о возможностях творить, создавать, оказывать свое влияние на мир.
С другой стороны, многим людям программирование кажется излишне сложным и непонятным, из-за чего с ним не только не связывают профессию, но даже не рассматривают в качестве хобби или развлечения. Однако, если для того, чтобы пойти в вуз за новой профессией нужно много решимости, то почему бы не попробовать самообразование, которое для программирования доступно как ни для чего другого? О возможности сделать это без лишних рисков и финансовых трат мы сегодня и поговорим.
Многие родители благодарны современной компьютерной технике хотя бы за то, что она позволяет хоть на некоторое время отвлечь чадо от них самих. Тем не менее, приучать ребенка с пеленок к тому, что компьютер предназначен исключительно для игр и развлечений — наверное, не самая хорошая идея. Вдруг в нем скрыт новый Билл Гейтс или Марк Цукерберг? Разумеется, выявить любые способности лучше в как можно более раннем возрасте, и программирование — не исключение. Если ребенок, наигравшись в компьютерные игры, вдруг начинает интересоваться тем, как они устроены изнутри, или даже говорит о том, что у него самого есть идея для игры, то родителям не стоит упускать возможность попытаться раскрыть талант, если таковой имеется, разумеется. Поддержка родителей особенно важна и в отношении того, как ребенок будет относиться к использованию техники, будет ли он только потреблять или у него возникнет потребность создавать. О каком-то конкретном возрасте, подходящем для старта, говорить сложно, приведем только ссылку на заметку BBC от
Начать обзор стоит, пожалуй, с Microsoft Kodu Game Lab, известного в прошлом как Microsoft Boku. Это предназначенный для школьников, начиная с младших классов, визуальный язык программирования и соответствующая среда разработки, ориентированные на создание игр. Проект существует для ПК и Xbox 360, доступен для загрузки с сайта kodugamelab.com, для установки на ПК потребуется .NET Framework 3.5 и XNA Framework 3.1. Интерфейс переведен на несколько языков, присутствует среди них и русский. Визуальная составляющая — сильная сторона Kodu: созданные с помощью этой среды игры называются «мирами» и представляют собой трехмерные карты, наполненные объектами и персонажами, для которых разработчиком программно задается поведение. Кстати, обучение работе в Kodu можно пройти, запуская специально для этого созданные миры в разделе «Уроки», доступном из пункта главного меню «Загрузить».
Программа в Kodu собирается в таком конструкторе
Процесс создания мира и наполнение его объектами схож с работой в редакторе карт для стратегий реального времени, программирование как таковое начинается при описании поведения персонажей. В этом случае разработчику предлагается использовать визуальный конструктор кода, который позволяет заменить его написание на составление из отдельных блоков, в которых присутствуют как стандартные программные конструкции, например, элементы цикла, так и различные объекты и источники событий с предопределенным поведением. Все элементы снабжены наглядным описанием и примерами использования. Конструирование не требует использования клавиатуры и позволяет легко обойтись мышью на ПК или манипулятором игровой консоли. Интересно, что каждая строка создаваемого таким образом кода фактически является циклом с предусловием when..do — шаблон для цикла создается автоматически при вставке новой строки, а разработчику следует заполнить пустующие места, т.е. указать, что следует делать при определенных условиях. В каждой программе допускается до 12 страниц кода, которые могут иметь перекрестные ссылки, и в целом аналогичны модулям во «взрослых» языках программирования.
Создаваемые в Kodu игры могут быть достаточно сложными и потенциальную проблему ограниченной производительности разработчики решили достаточно оригинальным образом: во время игры на экране отображается термометр, показывающий, насколько сильно игра использует системные ресурсы, повышение «температуры» — признак перегрузки, а при достижении определенного критического значения появляется рекомендация уменьшить число используемых объектов. Учитывая целевую аудиторию проекта, за подобное решение непростой проблемы его создателям следует выразить отдельную благодарность.
В Kodu можно загружать миры, созданные другими разработчиками, для чего на сайте проекта существует отдельный раздел, наполненный сотнями, если не тысячами мини-игр, отдельные из которых могут увлечь игрока не на один час независимо от его возраста. Любой из загруженных в Kodu миров доступен для редактирования, для перехода в соответствующий режим достаточно нажать всего одну клавишу — таким образом игрок легко переквалифицируется в разработчика и наоборот.
В целом, Kodu заслуживает самой высокой оценки за отличную идею и ее качественную реализацию в готовом продукте, к тому же следует признать, что несмотря на бесплатность, он на голову выше даже большинства коммерческих проектов. Таким образом, несмотря на то, что «пересесть» с Kodu на какой-нибудь промышленный язык программирования без дополнительной подготовки не получится, его можно смело рекомендовать в качестве самого первого инструмента для приобщения ребенка к программированию.
Проект Alice также знаком нашим читателям, в
Напомним, что Alice — созданная в университете Карнеги Меллона (CMU, cmu.edu) кросс-платформенная среда программирования, ориентированная на школьников и студентов младших курсов и получившая достаточно широкое распространение в учебных заведениях США. В настоящее время существуют три основных варианта проекта: рассмотренная ранее вторая версия, находящаяся в статусе предварительной третья и отдельное ответвление, носящее название Storytelling Alice, разработанное в рамках диссертационной работы Кэйтлин Келлехер (Caitlin Kelleher), профессора CMU. Последний из названных вариантов Alice по идейной концепции максимально близок к Kodu (создание миров в визуальном стиле, по возможности без написания кода) и вылился в отдельный проект, носящий название Looking Glass, о котором пока известно мало. В то же время третья версия Alice доступна всем желающим на сайте Alice.org, откуда также можно загрузить и большое число различных объектов, необходимых для создания проектов.
Среда разработки Alice 3 повторяет предыдущую версию и идейно схожа с традиционными IDE
Alice 3 поддерживает Windows (XP, Vista, 7), Mac OS X и Linux и требует для своего исполнения Java. Среда разработки переведена на более чем два десятка языков, среди которых есть и русский, и украинский. Подобно Kodu, Alice ориентирована на создание компьютерных игр, но потребность в написании кода здесь намного выше, сама среда разработки Alice в значительной степени напоминает традиционные IDE. Поддерживаются два языка программирования: Alice и Java. Основное отличие новой версии от предыдущей состоит в смещении фокуса на Java, теперь рекомендуется изучать именно этот язык, что в конечном итоге существенно облегчает переход на промышленные средства разработки. Примечательно, что на сайте alice.org доступен подключаемый модуль для IDE NetBeans, позволяющий импортировать проекты Alice в эту популярную среду разработки. Следующее немаловажное нововведение Alice 3 состоит в том, что, благодаря поддержке компании Electronic Arts, доступные для проектов объекты и персонажи взяты из чрезвычайно популярной компьютерной игры The Sims 2.
Возможности по созданию персонажей на основе героев из The Sims 2 в Alice 3 особенно привлекательны
В отличие от Kodu, Alice 3 требует больше усилий на освоение, к тому же для создания игр здесь потребуется больше труда, зато возможности языка программирования и сама среда разработки приближены к реальным, соответственно, полученный опыт будет гораздо полезнее при переходе на промышленные IDE, а приобретенные базовые знания Java в любом случае окажутся существенным бонусом.
Создатели онлайнового сервиса Codeacademy, стремясь избавить своих пользователей от необходимости освоения множества теоретически вопросов, решили пойти оригинальным путем и предложили изучать программирование в процессе... программирования. Возможно, идея не совсем оригинальна, поскольку учебники нередко строятся по такому же принципу, вот только реализация от Codeacademy в виде интерактивного курса, предусматривающего пошаговое выполнение практических заданий с немедленной проверкой корректности, оказалась весьма удачной: получив восторженные отзывы от обозревателей авторитетных интернет-изданий, только за первый месяц работы с момента запуска в августе прошлого года сервис привлек свыше полумиллиона пользователей.
Треки в Codeacademy в основном посвящены веб-разработке
Начать работать с Codeacademy очень просто — достаточно открыть сайт, войти с учетной записью Google, Twitter или Facebook (разумеется, можно зарегистрироваться и «обычным» способом), выбрать интересующий трек и приступить к упражнениям. Упражнения хорошо структурированы, на выполнение каждого, вместе с изучением небольшой теоретической части и ознакомлением с заданием, требуется несколько минут. Задание выполняется в текстовом редакторе в правой верхней части страницы, а проверка результата выводится в консольном окне под ним. Выполнение заданий сопровождается начислением бонусных очков, за достижение определенных вех пользователь получает виртуальные награды, о которых он сразу же может сообщить в социальных сетях. Такая социальная составляющая обеспечила вирусный рост популярности сервиса, одновременно с этим она является неплохим мотивационным стимулом выполнять новые задания и достигать новых высот.
Типичное упражнение в Codeacademy: задание пошагово представлено слева, решение вводится в правой верхней части, результат отображается ниже
Помимо свободного доступа для обучаемых, Codeacademy интересен также тем, что поощряет разработчиков создавать задания и пополнять ими библиотеку сервиса, т.е. развитие проекта происходит силами его же пользователей, и, учитывая взрывной рост популярности, выглядит это весьма многообещающе. В настоящее время Codeacademy предлагает пять треков, представляющих собой детально проработанные и структурированные курсы по основам JavaScript, Web, jQuery, Python, а также сборный курс по Web-технологиям Code Year. В отдельной секции сайта представлены курсы, которые пока еще не вошли в треки, и их количество исчисляется десятками. По мере «созревания» курсов авторы проекта обещают переводить их в треки, именно таким образом совсем недавно был открыт трек по Python.
Мы решили объединить два проекта, поскольку они имеют близкие корни, начали свою работу почти одновременно и идейно во многом схожи, хотя каждый из них имеет свою изюминку. Также как и Codeacademy, Udacity и Coursera представляют собой онлайновые обучающие сервисы, но их отличает подход создателей, которые намерены не просто разрешить частную проблему обучения программированию, но кардинально трансформировать подход к образованию в целом. Udacity декларирует себя как «Университет XXI века», а Coursera, ни много, ни мало, обещает предоставить «лучшее в мире образование, свободно доступное любому человеку, желающему его получить». Примечательно, что основателями обоих проектов являются профессора Стэндфордского университета — для Udacity это Себастьян Трун (Sebastian Thrun), по совместительству вице-президент Google, а для Coursera это Эндрю Энжи (Andrew Ng) и Дафн Коллер (Daphne Koller).
Академические корни обоих проектов самым непосредственным образом сказались на их реализации — построение и структура курсов, даже их шифры и наименование, а также форма подачи материала в значительной мере напоминают академическую среду, в частности, предусматривается просмотр видеозаписей лекций, выполнение практических заданий, тестирование и т.д.
В Udacity небольшой список курсов, но все они высшего качества и доступны в любое время
Впрочем, создатели Coursera сумели выделиться на фоне не только Udacity, но и многих других онлайновых обучающих сервисов, поскольку только их проект полностью диктует режим обучения, подобно тому, как это делается в традиционных университетах: есть график курсов, сроки записи на них и выполнения заданий, требования по успеваемости для продолжения обучения. Такие, казалось бы, неудобные ограничения, обычно не присущие онлайновым сервисам, на практике оказались важным преимуществом Coursera: как выяснилось, многие учащиеся готовы выполнять задания и уделять должное время обучению только в том случае, если испытывают определенный прессинг — если же давление ослабевает, то обучаемый расслабляется, его показатели успеваемости ухудшаются и в итоге он обучение забрасывает совсем. С другой стороны, в Udacity подобного ограничения нет, записаться на курс и пройти его можно в любое удобное время, равно как и выбрать наиболее подходящий для себя темп обучения, что может быть гораздо важнее для людей с высокой внутренней мотивацией.
Coursera в наибольшей степени напоминает традиционный университет, перенесенный в Сеть
Что касается политики формирования учебных материалов, то в этом плане сервисы значительно отличаются: в то время как Udacity, стартовавший даже несколько ранее, может предложить на текущий момент всего 11 курсов, в основном ориентированных на разработку ПО, то в активе Coursera 116 курсов по самым различным направлениям — от программирования до медицины. Впрочем, если говорить не о количестве, а о качестве, то здесь выигрывает Udacity: несмотря на то, что в обоих проектах для разработки материалов задействованы признанные ученые и преподаватели из лучших университетов мира, планка качества в Udacity поднята особенно высоко, что при прочих равных оказывается решающим фактором для учащихся.
Рассматривая западные проекты, было бы несправедливо обойти вниманием российский сервис ИНТУИТ, предоставляющий бесплатные учебные курсы по ИТ в течение уже почти десятилетия (первый курс был запущен в январе 2003 г.). Как описывают себя сами создатели проекта, акроним «ИНТУИТ» расшифровывается как «интернет-университет информационных технологий» и этот проект является первым среди подобных, который получил лицензию на образовательную деятельность в России, что позволяет ему не только проводить обучение, но и подтверждать его документами государственного образца. Общее число курсов, предлагаемых им в настоящее время, превышает пять сотен, большинство из них разработаны в сотрудничестве с ведущими российскими вузами. Несмотря на то, что ИНТУИТ предоставляет отдельные услуги на платной основе, пройти большинство курсов можно бесплатно, а доступность материалов на русском языке является особым преимуществом для желающих учиться из стран СНГ.
Сайт ИНТУИТ не блещет дизайном, зато предоставляет доступ к беспрецедентному числу курсов на русском языке
Разумеется, в рамках одной статьи сложно охватить весь спектр всевозможных проектов и сервисов, предназначенных для решения такой важной задачи как обучение программированию. Достаточно просмотреть страницу Википедии, посвященную образовательным языкам программирования, чтобы убедиться в том, что над этой задачей трудились многие ученые и специалисты с собственным видением предметов и методов обучения. Тем не менее, автор, на правах человека, обладающего определенным опытом работы в данной сфере, считает своим долгом дать простой совет: любое обучение лишь тогда будет иметь смысл, когда оно проводится целенаправленно и систематически; не стоит теряться в богатстве выбора, достаточно выбрать любой приглянувшийся проект или язык, но взяться за его освоение со всей ответственностью — и результат не заставит себя долго ждать.