Содержание статьи
- Изучаем английский язык
- LinguaLeo
- Онлайн-универы
- Учебные курсы от Стэнфорда
- MITx от Массачусетского технологического института
- Попробовать технологию!
- JavaScript
- Codecademy
- Выучить jQuery за тридцать дней
- Первый полет на jQuery
- Ruby и Ruby on Rails
- rubymonk
- try ruby
- The Intro to Rails Screencast I Wish I Had
- Rails for Zombies
- Python
- Попробуй Python!
- Онлайн-репетитор Python
- Уроки Python от Google
На одних только статьях журнала «Хакер» далеко не уедешь. Это я тебе точно говорю. Если хочешь стать настоящим специалистом в области IT, необходимо учиться и обязательно получить фундаментальные знания о предмете. К счастью, сегодня для этого возможностей больше, чем когда-либо. В Сети не только доступно множество учебников бесплатно, но и стремительно развиваются совершенно новые, прогрессивные способы обучения. И особенно это касается нашей – IT’шной — специальности.
Цель данного материала — показать, насколько просто сегодня можно обучаться самостоятельно. Быстро осваивать новые технологии и языки программирования. При этом делать это не в напряг и получать настоящее удовольствие от обучения. Я не претендую на полноту картины, и эта статья, само собой, не является сборником всех проектов, которые могут помочь тебе в самообразовании. Но я постарался собрать некоторые особенно интересные сервисы, которые были интересны лично мне. Уверен, они пригодятся и тебе.
Изучаем английский язык
Я серьезно рискую, начиная этот материал со слов «английский язык». У многих людей с ним сложности, и ирония в том, что чем серьезнее проблема, тем больше люди противятся его изучению, придумывая отговорки и оправдания. Как бы там ни было, могу тебе сказать с полной уверенностью: по-настоящему успешный IT-специалист если и может обойтись без английского языка, то упускает при этом многие интересные возможности. Большинство авторитетных конференций проходит на английском. В самых крупных сообществах специалистов принят английский язык. Известные ученые ведут блоги и пишут статьи на английском языке. На английском языке говорят в Силиконовой долине. И на нем же изъясняются программисты из Индии, которых стало так много, что спрятаться от них у тебя не получится при всем желании :). Короче говоря, изучение языка нужно добавить в свой личный список дел в качестве одного из приоритетных пунктов. Сказать по правде, абсолютное большинство ресурсов, о которых я буду говорить далее, требуют хотя бы минимального знания английского. Причина простая: на русском ничего подобного не делают (уверен, что только пока). Однако для первого проекта из нашего обзора иностранный как раз не нужен — напротив, он направлен на то, чтобы ты быстро прокачал свои знания «ИнЯз’а». И он сделан в России :).
LinguaLeo
Есть простое правило: чтобы лучше и увереннее подтягиваться на турнике, нужно больше и чаще подтягиваться на турнике. Просто интенсивнее заниматься. Так же и с английским: чтобы хорошо понимать на слух английскую речь, не вслушиваясь в каждое слово в попытке разобрать хоть что-то, нужно больше слушать этой самой речи. Можно начать с просмотра какого-нибудь сериала, подключив для уверенности оригинальные субтитры, но... по сравнению с тем, что представляет сервис LinguaLeo, — это прошлый век. В его базе уже собрано огромное количество сериалов, всевозможных фильмов, записей различных семинаров и выступлений (например, тематических минивыступлений с TED.com), лекций из западных университетов (в том числе по иностранному языку) и так далее. Все это разбито на категории по тематике, сложности и рейтингу у пользователей. Но главное заключается в том, как именно сервис позволяет этот контент потреблять. Рядом с видео выводится полная расшифровка речи, поэтому ты всегда можешь прочитать непонятный на слух фрагмент. Встречаешь неизвестное слово? Один клик, — и LinguaLeo тут же показывает перевод и заносит это слово в твой личный словарь, чтобы дальше с помощью самых разных упражнений ты мог запомнить его и начать использовать в нужном контексте. Никаких тебе больше ковыряний с субтитрами и словарей, – ты просто смотришь интересный для себя контент и быстро разбираешься с непонятными местами. Для себя я не вижу лучшего способа, во-первых, пополнять словарный запас, а во-вторых, привыкнуть к английской речи. Чтобы «отрабатывать» те слова, которые просто встречаются в интернете, я давно себе установил специальный аддон для браузера, реализующий интеграцию с сервисом.
Онлайн-универы
Найдется немало людей, которые захотят поспорить о том, необходимо ли ИТ-специалисту высшее образование. Правы те, кто говорит, что фундаментальные знания остро необходимы. Но можно согласиться и с теми, кто утверждает, что всему можно научиться самостоятельно, — было бы желание. Последнее стало еще проще после того как ведущие западные вузы с зашкаливающей стоимостью обучения начали не только выкладывать видео своих лекций (например, в iTunes), но и вообще формировать культуру преподавания университетских предметов онлайн. Хотел бы я сейчас отметить подобные инициативы со стороны российских вузов, но здесь сказать пока нечего.
Учебные курсы от Стэнфорда
Университет Стэнфорда, расположенный в Калифорнии, известен по всему миру. Фактически это кузница кадров для технологических компаний Силиконовой долины, многие из которых расположены в Пало Альто — в том же городе, что и сам университет. Попасть в Стэнфорд — мечта для многих молодых людей, которые жаждут сделать карьеру в области ИТ. Чем больше читаешь про Стэнфорд, тем больше радуешься тому факту, что осенью университет запустил проект бесплатных онлайн-курсов. Изначально всем желающим предлагалось пройти три курса: «Машинное обучение» (ml-class.org), «Искусственный интеллект» (ai-class.com), «Введение в базы данных» (db-class.org). Каждый из курсов состоит из лекций, проверочных работ и финального экзамена. В случае успешного завершения обучения студент получает сертификат в виде PDF-файла, заверенного цифровой подписью преподавателя. Эксперимент оказался успешным, и в начале года Стэнфорд анонсировал сразу дюжину новых курсов, в том числе:
- Информационная безопасность (security-class.org);
- Проектирование и анализ алгоритмов (security-class.org);
- Теория игр (cs101-class.org);
- Информатика (cs101-class.org);
- Криптография (cs101-class.org).
Помимо непосредственно ИТ’шных предметов, есть пара курсов по предпринимательству (в области высоких технологий). Я пока успел послушать курс по машинному обучению и получил огромное удовольствие. Курс построен таким образом, чтобы быть понятным практически каждому, хотя, безусловно, знания в области дискретной математики и математического анализа будут здесь очень полезны. Надо сказать, что видео любого из курсов сопровождается субтитрами на случай, если что-то сложно разобрать на слух. Как правило, язык очень простой, поэтому все понятно даже со средним уровнем английского.
MITx от Массачусетского технологического института
Ты наверняка слышал и о MIT — не менее известном западном вузе. Тот тоже пошел по стопам Стэнфорда и в начале года анонсировал разработку MITx — технологической платформы для онлайн-образования. И вот уже в феврале появилась информация о первом курсе, который будет проходить с помощью этой системы – «6.002x: Схемотехника и электроника». Обучение начнется весной и потребует примерно десять часов в неделю. Предмет непростой, поэтому допускаются только студенты, обладающие необходимыми знаниями по электричеству, магнетизму и дифференциальному исчислению. Среди трех преподавателей — профессор Джеральд Сассмен, который создал язык Scheme и является автором одного из самых лучших учебников по программированию — «Structure and Interpretation of Computer Programs». В скором будущем обещается появление и других предметов. Уверен, что подобное по зубам и российским учебным заведениям, которые просто обязаны не отставать.
Попробовать технологию!
Интерактивные обучалки, позволяющие быстро прочувствовать новую технологию, появляются, как грибы после дождя. Ниже я привожу еще несколько подобных проектов, которые не вошли в сегодняшний обзор, но будут очень полезны, если ты хочешь, к примеру, познакомиться с набирающими оборот функциональными языками программирования или новомодными NoSQL базами данных.
JavaScript
Впрочем, курсы английского — хоть и нужный, но все-таки шаг в сторону. Главное, о чем я хочу сегодня рассказать — это сервисы, позволяющие изучить вполне конкретный язык программирования. Тут очень заметна закономерность: чем активнее язык развивается и набирает популярность, тем больше появляется инструментов для его изучения. Для примера я взял несколько особенно модных языков программирования: Python, Ruby (плюс Ruby on Rails) и, конечно же, JavaScript (HTML5). С последнего и начнем. Ни одно современное веб-приложение не обходится сегодня без ударной дозы кода на JS, на котором полностью реализовано взаимодействие с пользователем. Особенные гики умудряются имплементировать на JavaScript совершенно невозможные вещи: взять хотя бы проект виртуальной машины, на которой вполне себе успешно запускается Linux (bellard.org/jslinux). Но этот случай мы рассматривать не будем :).
Codecademy
Простой вопрос: какой самый проверенный способ выучить новый язык программирования? Взять умную книгу и начать ее читать. Этот подход никогда не устареет. Так было двадцать лет назад, так есть и сейчас. Однако сложно представить, что к 21 веку не придумали более прогрессивных методов обучения, тем более — обучения программированию. Codecademy — это стартап, позиционирующий себя как школу разработчика. За семьдесят два часа после открытия он собрал более двухсот тысяч (вдумайся в цифру!) начинающих программистов, предложив им пройти интерактивный курс JavaScript.
Секрет успеха в изящности процесса обучения. С помощью специального интерфейса студентам сразу же начинают рассказывать о базовых особенностях языка и его синтаксиса, и, что важнее всего, предлагают сразу проверить знания в действии, набрав код в специальной консоли. Все это происходит в браузере, без необходимости устанавливать что-либо на своем компьютере. Шаг за шагом можно быстро разобраться, что к чему, и понять все базовые принципы JavaScript. Чтобы еще больше стимулировать студентов к обучению, по мере прохождения курса им выдаются награды.
Проект быстро получил финансирование и очень скоро обещает значительное пополнение учебных курсов. Уже сейчас доступна система для создания своих курсов на готовой платформе Codecademy.
Выучить jQuery за тридцать дней
Неотделимой частью JavaScript постепенно стала библиотека jQuery, упрощающая работу с HTML-документом, обработку событий, создание анимации и реализацию AJAX. Фактически jQuery во многом изменил подход к программированию на JavaScript. Разобраться с библиотекой в принципе несложно. Но чтобы сделать это еще более безболезненно, портал Nettuts+, известный своими качественными обучающими статьями, разработал специальный курс. Курс разбит на тридцать уроков-скринкастов по пятнадцать минут каждый, что позволяет день за днем постепенно брать библиотеку на вооружение. Как ни крути, а пятнадцать минут можно найти всегда. Да и формат обучения очень приятный: лично для меня нет ничего более понятного, чем непосредственная демонстрация кодинга с комментариями по ходу дела. Для тех, кто только начинает изучать JS, есть и видеокурс этого же автора (bit.ly/AqK4s0).
Первый полет на jQuery
Если спросить, кто снимает скринкасты эталонного качества, то среди победителей совершенно точно будет онлайн-школа программирования c<>de school. Это очень профессиональный проект, предлагающий как платные, так и бесплатные курсы для специалистов различного уровня. Курс «jQuery Air: First Flight» долгое время был платным, но с недавнего времени открыт всем желающим. Он состоит из пяти уровней, каждый из которых включает в себя обучающий скринкаст и интерактивные упражнения по программированию, реализованные прямо в браузере. За прохождение заданий начисляются очки (например, 350 за решенную задачку). Если где-то возникла трудность, можно попросить подсказку, но в этом случае не избежать штрафных баллов. На первом уровне предлагается пройти азы JavaScript, на втором — селекторы, на третьем — CSS-атрибуты, на четвертом — манипулирование с HTML-элементами и DOM, на пятом — работа с событиями. Чтобы пройти курс, необходимо выполнить пятьдесят пять простых и не очень упражнений.
Ruby и Ruby on Rails
Если ты читал в прошлом номере интервью с Аленой Владимирской, которая по праву считается ведущим хедхантером Рунета, то уже знаешь, насколько востребованными сейчас являются программисты на Ruby on Rails. За грамотными специалистами, готовыми быстро поднимать растущие веб-проекты, гоняются все. И чем больше растет спрос, тем больше становятся зарплаты. Если у тебя есть опыт программирования, и ты хочешь переквалифицироваться на более востребованное направление, то Ruby в связке с Ruby on Rails — совершенно точно очень неплохой вариант. И выучить его сейчас можно довольно быстро. Впрочем, знание языка пригодится, даже если ты не собираешься работать профессиональным разработчиком. Ruby популярен и среди экспертов по информационной безопасности: к примеру, известный фреймворк для хакера Metasploit (и в том числе все его модули) написаны именно на Ruby.
rubymonk
Проект представляет собой интерактивную книгу, состоящую из пятидесяти упражнений, позволяющих быстро пройтись по основам Ruby. Тебе говорят: «Массив из элементов создается так – попробуй». И ты пробуешь. Далее объясняется что-то еще, — ты опять же сразу проверяешь это в действии. Как только знаний становится достаточно, тебе предлагаются более сложные упражнения. Совершенно улетно реализована проверка выполненных заданий (код решения, естественно, надо набирать прямо в браузере, а редактор даже поддерживает подсветку синтаксиса). Для каждого упражнения заданы контрольные точки, по которым проверяется правильность решения. Таким образом, в любой момент можно понять, что именно не нравится интерактивной системе, какой результат должен быть на выходе, и где в твоем решении спряталась ошибка.
try ruby
Если у тебя был мало-мальский опыт программирования, то эта интерактивная обучалка буквально за пятнадцать минут позволит тебе пройтись по базовым понятиям языка Ruby и понять, что к чему. Впрочем, даже если ты вообще никогда не имел дело с программированием, try ruby будет тебе по зубам. Правда, в этом случае обучение, вероятно, займет чуть больше времени. Всего нужно пройти восемь уроков и справиться с более чем пятьюдесятью заданиями. Проект стал еще лучше после того, как его взяла под свое крыло уже упомянутая выше школа c<>de school. Теперь это практически идеальный репетитор.
The Intro to Rails Screencast I Wish I Had
Как уже было отмечено, язык Ruby четко ассоциируется с популярнейшим фреймворком для построения веб-приложений Ruby On Rails. Последний помог взлететь не одному стартапу из Силиконовой долины, в том числе и Twitter’у. Джеффри Вэй — главный редактор сервиса tutsplus.com — записал убойный скринкаст с говорящим названием «Скринкаст для чайников в Rails, с которого я хотел бы начать сам». В 40-минутном ролике в самой доходчивой форме рассказывается, как использовать Rails. После этого слова «Models», «TDD», «ActiveRecord», «RSpec», «Capybara», «Partials» уже не будут пугать. Это не единственный скринкаст для начинающих: немало видеоуроков для программистов самого разного уровня можно найти на другом профильном проекте — railscasts.com.
Rails for Zombies
После того (и только после того!) как у тебя будут необходимые знания Rails и некоторый опыт в создании веб-приложений, обязательно нужно пройти бесплатный курс «Рельсы для зомби» от все той же школы c<>de school. Записанные на неизменно высоком уровне уроки, приправленные здоровой дозой юмора, сопровождаются упражнениями, составленными из ситуаций, с которыми каждый день встречаются программисты на «рельсах». Если этого курса тебе окажется мало, то у авторов есть продолжение «Rails for Zombies 2», но его можно пройти уже только за денежку.
Python
Python — один из популярнейших языков программирования среди специалистов по информационной безопасности. Огромное количество подключаемых библиотек позволяет быстро писать сложные сценарии и вспомогательные приложения. Многие профи вообще считают Python идеальным инструментом для максимально быстрого прототипирования сложных информационных систем. Впрочем, прототипом дело часто не ограничивается: найдется немало проектов, код которых написан на Python, и которые выдерживают огромные нагрузки. Изучить этот язык можно даже просто для себя: у меня десятки раз бывала ситуация, когда нужно было что-то оптимизировать, и каждый раз знания языка оказывались очень полезны.
Более того, Python часто встраивают во многие серьезные приложения в качестве скриптового языка, чтобы иметь богатые возможности для создания сценариев.
Попробуй Python!
Лучший способ быстрого старта — попробовать онлайн-обучалку Python. По интерактивности сервис сильно проигрывает аналогичным проектам для JS и Ruby, но, тем не менее, позволяет пройти базовый курс обучения прямо в браузере. На компьютер не надо даже устанавливать интерпретатор. Это очень удобно: любой приведенный пример можно тут же попробовать в действии. Однако на этом интерактивность заканчивается: Try Python никак не проверяет твой код, не следит за правильностью действий и не предлагает задачки для проверки знаний. Весь курс состоит из семи частей (пять по Python и две по IronPython). Забавно, что сам сервис написан на Silverlight’е.
Онлайн-репетитор Python
Забавный сервис был разработан в рамках курса по программированию в известной американской кузнице программистов Массачусетского технологического института. Его идея заключается в том, чтобы визуализировать выполнения сценариев, написанных на Python, позволяя пошагово выполнять их (вперед-назад) и на каждом шаге просматривать значения разных структур данных (переменных, объектов в куче, фреймов стэка). Это может быть произвольный код, набранный прямо в браузере, или один из нескольких заранее заготовленных сниппетов, взятых из учебной программы Python в MIT. Забавно, что здесь есть несколько задачек, которые предлагают соискателям на должность программистов. С решениями. Сервис можно было бы назвать онлайн-отладчиком, однако для выполнения сложных сценариев использовать его уже нельзя из-за отсутствия возможности подключения модулей, выполнения I/O-операций и так далее.
Уроки Python от Google
Google давно славится тем, что активно использует у себя Python. В компании есть даже специальный курс, предназначенный для людей, у которых пока мало опыта в программировании (естественно, они не работают на должности разработчиков). Теперь этот курс полностью открыт и бесплатен. Он включает в себя пошаговые мануалы, видео лекций, а также много упражнений для тренировки и закрепления материалов. Первые занятия касаются базовых понятий в Python (вроде строк и списков), далее — последовательно освещается разработка полноценных приложений, работающих с файлами, процессами и HTTP-соединениями. Надо сказать, что в Google этот курс проходит по интенсивному сценарию и умещается в два дня.