- Зміст статті На одних тільки статтях журналу «Хакер» далеко не заїдеш. Це я тобі точно кажу. Якщо...
- Онлайн-универ
- Навчальні курси від Стенфорда
- MITx від Массачусетського технологічного інституту
- Спробувати технологію!
- JavaScript
- Ruby і Ruby on Rails
- Python
Зміст статті
На одних тільки статтях журналу «Хакер» далеко не заїдеш. Це я тобі точно кажу. Якщо хочеш стати справжнім фахівцем в області IT, необхідно вчитися і обов'язково отримати фундаментальні знання про предмет. На щастя, сьогодні для цього можливостей більше, ніж будь-коли. У Мережі не тільки є безліч підручників безкоштовно, але і стрімко розвиваються зовсім нові, прогресивні методи навчання. І особливо це стосується нашої - IT'шной - спеціальності.
Мета даного матеріалу - показати, наскільки просто сьогодні можна навчатися самостійно. Швидко освоювати нові технології та мови програмування. При цьому робити це не в напряг і отримувати справжнє задоволення від навчання. Я не претендую на повноту картини, і ця стаття, само собою, не є збіркою всіх проектів, які можуть допомогти тобі в самоосвіті. Але я постарався зібрати деякі особливо цікаві сервіси, які були цікаві особисто мені. Упевнений, вони стануть в нагоді і тобі.
Вивчаємо англійську мову
Я серйозно ризикую, починаючи цей матеріал зі слів «англійська мова». У багатьох людей з ним складності, і іронія в тому, що чим серйозніше проблема, тим більше люди противляться його вивчення, придумуючи відмовки і виправдання. Як би там не було, можу тобі сказати з повною упевненістю: по-справжньому успішний IT-фахівець якщо і може обійтися без англійської мови, то упускає при цьому багато цікаві можливості. Більшість авторитетних конференцій проходить англійською. У найбільших спільнотах фахівців прийнята англійська мова. Відомі вчені ведуть блоги і пишуть статті на англійській мові. Англійською мовою говорять в Силіконовій долині. І на ньому ж висловлюються програмісти з Індії, яких стало так багато, що сховатися від них у тебе не вийде при всьому бажанні :). Коротше кажучи, вивчення мови потрібно додати в свій особистий список справ в якості одного з пріоритетних пунктів. Сказати по правді, абсолютна більшість ресурсів, про які я буду говорити далі, вимагають хоча б мінімального знання англійської. Причина проста: російською нічого подібного не роблять (впевнений, що тільки поки). Однак для першого проекту з нашого огляду іноземний якраз не потрібен - навпаки, він спрямований на те, щоб ти швидко прокачав свої знання «ІнЯз'а». І він зроблений в Росії :).
Є просте правило: щоб краще і впевненіше підтягуватися на турніку, потрібно більше і частіше підтягуватися на турніку. Просто інтенсивніше займатися. Так само і з англійським: щоб добре розуміти на слух англійську мову, не вслухаючись в кожне слово в спробі розібрати хоч щось, потрібно більше слухати цю саму мови. Можна почати з перегляду якого-небудь серіалу, підключивши для впевненості оригінальні субтитри, але ... в порівнянні з тим, що представляє сервіс LinguaLeo, - це минуле століття. У його базі вже зібрано величезну кількість серіалів, всіляких фільмів, записів різних семінарів і виступів (наприклад, тематичних мінівиступленій з TED.com), лекцій із західних університетів (в тому числі з іноземної мови) і так далі. Все це розбите на категорії за тематикою, складності та рейтингу у користувачів. Але головне полягає в тому, як саме сервіс дозволяє цей контент споживати. Поруч з відео виводиться повна розшифровка мови, тому ти завжди можеш прочитати незрозумілий на слух фрагмент. Зустрічаєш невідоме слово? Один клік - і LinguaLeo тут же показує переклад і заносить це слово в твій особистий словник, щоб далі за допомогою самих різних вправ ти міг запам'ятати його і почати використовувати в потрібному контексті. Ніяких тобі більше колупання з субтитрами і словників, - ти просто дивишся цікавий для себе контент і швидко розбираєшся з незрозумілими місцями. Для себе я не бачу кращого способу, по-перше, поповнювати словниковий запас, а по-друге, звикнути до англійської мови. Щоб «відпрацьовувати» ті слова, які просто зустрічаються в інтернеті, я давно собі встановив спеціальний аддон для браузера, який реалізує інтеграцію з сервісом.
Онлайн-универ
Знайдеться чимало людей, які захочуть посперечатися про те, чи потрібно ІТ-фахівця вищу освіту. Мають рацію ті, хто каже, що фундаментальні знання гостро необхідні. Але можна погодитися і з тими, хто стверджує, що всьому можна навчитися самостійно, - було б бажання. Останнє стало ще простіше після того як провідні західні вузи з зашкалює вартістю навчання почали не тільки викладати відео своїх лекцій (наприклад, в iTunes), а й взагалі формувати культуру викладання університетських предметів онлайн. Хотів би я зараз відзначити подібні ініціативи з боку російських вузів, але тут сказати поки нічого.
Навчальні курси від Стенфорда
Університет Стенфорда, розташований в Каліфорнії, відомий по всьому світу. Фактично це кузня кадрів для технологічних компаній Силіконової долини, багато з яких розташовані в Пало Альто - в тому ж місті, що і сам університет. Потрапити в Стенфорд - мрія для багатьох молодих людей, які жадають зробити кар'єру в області ІТ. Чим більше читаєш про Стенфорд, тим більше радієш тому факту, що восени університет запустив проект безкоштовних онлайн-курсів. Спочатку всім бажаючим пропонувалося пройти три курси: «Машинне навчання» ( ml-class.org ), "Штучний інтелект" ( ai-class.com ), «Введення в бази даних» ( db-class.org ). Кожен з курсів складається з лекцій, перевірочних робіт і фінального іспиту. У разі успішного завершення навчання студент отримує сертифікат у вигляді PDF-файлу, завіреного підписом викладача. Експеримент виявився успішним, і на початку року Стенфорд анонсував відразу дюжину нових курсів, в тому числі:
Крім безпосередньо ІТ'шних предметів, є пара курсів з підприємництва (в області високих технологій). Я поки встиг послухати курс по машинному навчання і отримав величезне задоволення. Курс побудований таким чином, щоб бути зрозумілим практично кожному, хоча, безумовно, знання в області дискретної математики і математичного аналізу будуть тут дуже корисні. Треба сказати, що відео будь-якого з курсів супроводжується субтитрами на випадок, якщо щось складно розібрати на слух. Як правило, мова дуже простий, тому все зрозуміло навіть із середнім рівнем англійської.
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 ). Але цей випадок ми розглядати не будемо :).
Просте запитання: який найбільш перевірений спосіб вивчити нову мову програмування? Взяти розумну книгу і почати її читати. Цей підхід ніколи не застаріє. Так було двадцять років тому, так є і зараз. Однак важко уявити, що до 21 століття не придумали більш прогресивних методів навчання, тим більше - навчання програмування. Codecademy - це стартап, який позиціонує себе як школу розробника. За сімдесят дві години після відкриття він зібрав понад двісті тисяч (вдумайся в цифру!) Початківців програмістів, запропонувавши їм пройти інтерактивний курс JavaScript.
Секрет успіху в витонченості процесу навчання. За допомогою спеціального інтерфейсу студентам відразу ж починають розповідати про базові особливості мови і його синтаксису, і, що найважливіше, пропонують відразу перевірити знання в дії, набравши код в спеціальній консолі. Все це відбувається в браузері, без необхідності встановлювати що-небудь на своєму комп'ютері. Крок за кроком можна швидко розібратися, що до чого, і зрозуміти всі базові принципи JavaScript. Щоб ще більше стимулювати студентів до навчання, у міру проходження курсу їм видаються нагороди.
Проект швидко отримав фінансування і дуже скоро обіцяє значне поповнення навчальних курсів. Вже зараз доступна система для створення своїх курсів на готової платформі Codecademy.
Невіддільною частиною JavaScript поступово стала бібліотека jQuery, що спрощує роботу з HTML-документом, обробку подій, створення анімації і реалізацію AJAX. Фактично jQuery багато в чому змінив підхід до програмування на JavaScript. Розібратися з бібліотекою в принципі нескладно. Але щоб зробити це ще більш безболісно, портал Nettuts +, відомий своїми якісними статті з підказками, розробив спеціальний курс. Курс розбитий на тридцять уроків-скрінкасти по п'ятнадцять хвилин кожен, що дозволяє день за днем поступово брати бібліотеку на озброєння. Як не крути, а п'ятнадцять хвилин можна знайти завжди. Та й формат навчання дуже приємний: особисто для мене немає нічого більш зрозумілого, ніж безпосередня демонстрація кодинга з коментарями по ходу справи. Для тих, хто тільки починає вивчати JS, є і відеокурс цього ж автора ( bit.ly/AqK4s0 ).
Якщо запитати, хто знімає скрінкасти еталонної якості, то серед переможців абсолютно точно буде онлайн-школа програмування 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.
Проект являє собою інтерактивну книгу, що складається з п'ятдесяти вправ, що дозволяють швидко пройтися по основам Ruby. Тобі кажуть: «Масив з елементів створюється так - спробуй». І ти пробуєш. Далі пояснюється щось ще, - ти знову ж відразу перевіряєш це в дії. Як тільки знань стає достатньо, тобі пропонуються більш складні вправи. Абсолютно Ульотне реалізована перевірка виконаних завдань (код рішення, природно, треба набирати прямо в браузері, а редактор навіть підтримує підсвічування синтаксису). Для кожної вправи задані контрольні точки, за якими перевіряється правильність рішення. Таким чином, в будь-який момент можна зрозуміти, що саме не подобається інтерактивній системі, який результат повинен бути на виході, і де в твоєму рішенні сховалася помилка.
Якщо у тебе був мало-який досвід програмування, то ця інтерактивна обучалка буквально за п'ятнадцять хвилин дозволить тобі пройтися по базовим поняттям мови Ruby і зрозуміти, що до чого. Втім, навіть якщо ти взагалі ніколи не мав справу з програмуванням, try ruby буде тобі по зубах. Правда, в цьому випадку навчання, ймовірно, займе трохи більше часу. Всього потрібно пройти вісім уроків і впоратися з більш ніж п'ятдесятьма завданнями. Проект став ще краще після того, як його взяла під своє крило вже згадана вище школа c <> de school. Тепер це практично ідеальний репетитор.
Як вже було зазначено, мова Ruby чітко асоціюється з популярним фреймворком для побудови веб-додатків Ruby On Rails. Останній допоміг злетіти не одному стартапу із Силіконової долини, в тому числі і Twitter'у. Джеффрі Вей - головний редактор сервісу tutsplus.com - записав забійний скрінкасти з промовистою назвою «скрінкасти для чайників в Rails, з якого я хотів би почати сам». У 40-хвилинному ролику в самій дохідливій формі розповідається, як використовувати Rails. Після цього слова «Models», «TDD», «ActiveRecord», «RSpec», «Capybara», «Partials» вже не будуть лякати. Це не єдиний скрінкасти для початківців: чимало відеоуроків для програмістів самого різного рівня можна знайти на іншому профільному проект - railscasts.com.
Після того (і тільки після того!) Як у тебе будуть необхідні знання Rails і деякий досвід у створенні веб-додатків, обов'язково потрібно пройти безкоштовний курс «Рейки для зомбі» від все тієї ж школи c <> de school. Записані на незмінно високому рівні уроки, приправлені здоровою дозою гумору, супроводжуються вправами, складеними із ситуацій, з якими щодня зустрічаються програмісти на «рейках». Якщо цього курсу тобі виявиться мало, то у авторів є продовження «Rails for Zombies 2», але його можна пройти вже тільки за гріш.
Python
Python - одна з найпопулярніших мов програмування серед фахівців з інформаційної безпеки. Величезна кількість бібліотек, що підключаються дозволяє швидко писати складні сценарії і допоміжні програми. Багато профі взагалі вважають Python ідеальним інструментом для максимально швидкого прототипування складних інформаційних систем. Втім, прототипом справа часто не обмежується: знайдеться чимало проектів, код яких написаний на Python, і які витримують величезні навантаження. Вивчити цю мову можна навіть просто для себе: у мене десятки разів бувала ситуація, коли потрібно було щось оптимізувати, і кожен раз знання мови виявлялися дуже корисні.
Більш того, Python часто вбудовують в багато серйозні програми як скриптового мови, щоб мати великі можливості для створення сценаріїв.
Кращий спосіб швидкого старту - спробувати онлайн-навчалку Python. За інтерактивності сервіс сильно програє аналогічним проектам для JS і Ruby, але, тим не менше, дозволяє пройти базовий курс навчання прямо в браузері. На комп'ютер не треба навіть встановлювати інтерпретатор. Це дуже зручно: будь-який наведений приклад можна тут же спробувати в дії. Однак на цьому інтерактивність закінчується: Try Python не відчуває твій код, не стежить за правильністю дій і не пропонує завдання для перевірки знань. Весь курс складається з семи частин (п'ять з Python і дві по IronPython). Забавно, що сам сервіс написаний на Silverlight'е.
Кумедний сервіс БУВ розроблення в рамках курсу з програмування в відомої американской кузні програмістів Массачусетського технологічного інституту. Его ідея Полягає в тому, щоб візуалізуваті Виконання сценаріїв, написаних на Python, дозволяючі покроковий Виконувати їх (вперед-назад) и на кожному кроці переглядаті значення різніх структур Даних (змінніх, об'єктів в купі, фреймів стека). Це може бути довільний код, набраний прямо в браузері, або один з кількох заздалегідь заготовлених фрагментів, взятих з навчальної програми Python в MIT. Забавно, що тут є кілька задачок, які пропонують претендентам на посаду програмістів. З рішеннями. Сервіс можна було б назвати онлайн-отладчиком, проте для виконання складних сценаріїв використовувати його вже не можна через відсутність можливості підключення модулів, виконання I / O-операцій і так далі.
Google давно славиться тим, що активно використовує у себе Python. У компанії є навіть спеціальний курс, призначений для людей, у яких поки мало досвіду в програмуванні (природно, вони не працюють на посаді розробників). Тепер цей курс повністю відкритий і безкоштовний. Він включає в себе покрокові мануали, відео лекцій, а також багато вправ для тренування і закріплення матеріалів. Перші заняття стосуються базових понять в Python (на кшталт рядків і списків), далі - послідовно висвітлюється розробка повноцінних додатків, що працюють з файлами, процесами і HTTP-з'єднаннями. Треба сказати, що в Google цей курс проходить по інтенсивному сценарієм і вміщується в два дня.
Зустрічаєш невідоме слово?Просте запитання: який найбільш перевірений спосіб вивчити нову мову програмування?