Якщо ви хочете вивчити Data Science, почніть з одного з цих класів програмування

Рік тому я був цифровим виродком без кодування. Спробувавши онлайн-курс програмування, я настільки надихнувся, що вступив до однієї з найкращих програм інформатики в Канаді.

Через два тижні я зрозумів, що зможу навчитися усьому, що мені потрібно, за допомогою edX, Coursera та Udacity. Тож я кинув.

Рішення було не складним. Я міг засвоїти вміст, який хотів, швидше, ефективніше і на частку вартості.

Я вже мав вищу освіту і, що, що ще важливіше, я вже мав університетський досвід. Платити 30 тис. Доларів США за повернення до школи здавалося безвідповідальним.

Невдовзі після цього я почав створювати власний ступінь магістра в галузі даних, використовуючи онлайн-курси, зрозумівши, що для мене це більше підходить, ніж інформатика. Я переглянув вступ до програмування. Я вже пройшов кілька курсів і перевірив частини багатьох інших. Я знаю варіанти та які навички потрібні, якщо ви націлені на роль аналітика даних або вченого.

Для цього посібника я витратив 20+ годин, намагаючись знайти кожен окремий вступ до курсу програмування, запропонований станом на серпень 2016 року, витягуючи ключові фрагменти інформації з їх програм та оглядів, та складаючи їх рейтинги. Для цього я звернувся до не кого іншого, як спільноти Class Central з відкритим кодом та її бази даних про тисячі рейтингів та оглядів курсів.

З 2011 року засновник Class Central Дхавал Шах пильніше стежив за онлайн-курсами, ніж будь-хто інший у світі. Дхавал особисто допоміг мені скласти цей список ресурсів.

Як ми обирали курси для розгляду

Кожен курс повинен відповідати чотирьом критеріям:

  • Він вводить програмування та, за бажанням, інформатику . Див. "Примітку щодо програмування проти інформатики" нижче.
  • Мовою викладання є Python або R. Це, безумовно, дві найпопулярніші мови програмування, що використовуються в науці про дані.
  • Це має бути інтерактивний онлайн-курс, тому жодних книг чи навчальних посібників на основі тексту. Що стосується останнього, курси Codecademy без відео та текстового редактора відповідають вимогам, але суворі текстові підручники, такі як підручники з R, ні. Хоча книги є життєздатними способами вивчити програмування, Python та R, цей посібник зосереджений на курсах.
  • Це повинна бути пристойна тривалість: загалом принаймні десять годин для передбачуваного завершення.

Як ми оцінювали курси

Ми вважаємо, що ми охопили кожен помітний курс, який існує та відповідає вищезазначеним критеріям. Оскільки, здається, є сотні курсів Udemy на Python та R, ми вирішили розглянути лише найбільш перевірені та найвищі рейтинги. Однак є шанс, що ми щось пропустили. Будь ласка, повідомте нас, якщо ви вважаєте, що це так.

Ми склали середній рейтинг та кількість оглядів від Class Central та інших сайтів оглядів. Ми розрахували середньозважену оцінку для кожного курсу. Якщо серія мала кілька курсів (наприклад, Частина 1 та Частина 2 Університету Райса), ми розраховували середньозважену оцінку для всіх курсів. Ми також читали текстові огляди та використовували цей відгук, щоб доповнити числові рейтинги.

Ми зробили суб’єктивні навчальні програми на основі трьох факторів:

  1. Висвітлення основ програмування.
  2. Висвітлення більш просунутих, але корисних тем у програмуванні. (Наприклад, декілька курсів вирішили не охоплювати об'єктно-орієнтоване програмування. Ми вважаємо, що це ключова тема, хоча і не порушує дію, тому ці курси лише ставляться під позначку і не виключаються з розгляду.)
  3. Яка частина навчальної програми відповідає науці про дані?

Примітка про програмування проти інформатики

Програмування - це не інформатика і навпаки. Існує різниця, про яку новачки можуть не усвідомлювати гостро. Позичаючи цю відповідь у біржі стека програмістів:

Інформатика - це вивчення того, що [вміють] робити комп’ютери; програмування - це практика змушувати комп’ютери робити щось.

Курс, який ми шукаємо, знайомить із програмуванням та необов’язково торкається відповідних аспектів інформатики, які принесуть користь новому програмісту з точки зору обізнаності. Ви помітите, що багато з розглянутих курсів справді мають частину інформатики.

Проте жоден з курсів не є суто курсами інформатики, тому щось на зразок Гарварда CS50x на edX виключається.

Наш вибір найкращого курсу програмування для науковців даних - це ...

Серія "Навчись програмувати" університету Торонто на Coursera. LTP1: Основи та LTP2: Кодекс якості виготовлення мають майже ідеальний середньозважений рейтинг 4,71 із 5 зірок за 284 відгуки. Вони також мають велике поєднання труднощів та змісту вмісту для початківця вченого з даних.

Це безкоштовне введення в програмування на базі Python відрізняється від інших 20+ курсів, які ми розглядали.

Дженніфер Кемпбелл та Пол riesріс, два доценти кафедри комп'ютерних наук в Торонто (яка вважається однією з найкращих у світі), викладають серію. Самостійні, самостійні курси Coursera відповідають матеріалу їх книги "Практичне програмування: вступ до інформатики за допомогою Python 3." LTP1 охоплює 40–50% книги, а LTP2 - ще 40%. Не охоплені 10–20% не є особливо корисними для науки про дані, що допомогло їх аргументувати за те, що вони були нашими виборами.

Професори люб’язно та оперативно надіслали мені детальний конспект курсу за запитом, який було важко знайти в Інтернеті до офіційного перезапуску курсу у вересні 2016 року.

Навчіться програмувати: Основи (LTP1)

Графік: 7 тижнів

Передбачуваний час: 6–8 годин на тиждень

Цей курс пропонує вступ до комп’ютерного програмування, призначеного для людей, які не мають досвіду програмування. Він охоплює основи програмування на Python, включаючи елементарні типи даних (числові типи, рядки, списки, словники та файли), керування потоком, функції, об'єкти, методи, поля та змінність.

Модулі

  1. Встановлення Python, IDLE, математичних виразів, змінних, оператора присвоєння, виклику та визначення функцій, синтаксису та семантичних помилок.
  2. Рядки, вхід / вихід, повторне використання функції, рецепт дизайну функції та рядки документів.
  3. Логічні значення, імпорт, простори імен та оператори if.
  4. Для петель і вигадливих маніпуляцій з рядками.
  5. Хоча цикли, списки та змінність.
  6. Для циклів над індексами, паралельними списками та рядками та файлами.
  7. Кортежі та словники.

Навчіться програмувати: Кодекс якості виготовлення (LTP2)

Графік: 5 тижнів

Передбачуваний час: 6–8 годин на тиждень

Ви знаєте основи програмування на Python: елементарні типи даних (числові типи, рядки, списки, словники та файли), керування потоком, функції, об’єкти, методи, поля та змінність. Вам потрібно добре володіти ними, щоб досягти успіху в цьому курсі.

LTP: Створення коду якості охоплює наступні кроки: розробку великих програм, тестування коду, щоб ви знали, що він працює, читання коду, щоб зрозуміти, наскільки він ефективний, та створення власних типів.

Модулі

  1. Проектування алгоритмів: як ви вирішуєте, що робити у тілі функції? Як ви з’ясуєте, які функції писати в першу чергу?
  2. Автоматизоване тестування: doctest та unittest.
  3. Аналіз коду на швидкість - деталі пошуку та сортування.
  4. Створення нових типів: класи в Python.
  5. Функції як аргументи, значення параметрів за замовчуванням та винятки.

Доцент Грис також надав наступний коментар до структури курсу: «Кожен модуль має від 45 хвилин до трохи більше години відео. Є запитання щодо відео-вікторини, які дозволять загальний час, витрачений на вивчення відео, приблизно до 2 годин ”.

Як правило, ці відео тривають менше десяти хвилин.

Він продовжив: «Крім того, ми маємо одну вправу (десяток-два чи близько того, що мають багато варіантів та короткі відповіді) на модуль, що має зайняти годину-дві. У LTP1 є три завдання програмування, кожна з яких може зайняти чотири-вісім годин роботи. У LTP2 є два завдання програмування подібного розміру. "

Він підкреслив, що оцінка 6-8 годин на тиждень є грубим припущенням: “Оцінка витраченого часу неймовірно залежить від студентів, тому, будь ласка, візьміть мої оцінки в цьому контексті. Наприклад, хтось, хто знає трохи програмування, можливо, іншою мовою програмування, може зайняти половину часу у когось, абсолютно нового для програмування. Іноді хтось застряє на концепції на пару годин, в той час як вони можуть заглянути на інші поняття ... Це одна з причин того, що автономний формат так приваблює нас "

Загалом, серія “Навчись програмувати ” Університету Торонто триває приблизно 12 тижнів по 6–8 годин на тиждень, що є приблизно стандартним для більшості онлайн-курсів, створених університетами. Якщо ви віддаєте перевагу зайвому вивченню своїх MOOC, це 72–96 годин, які можливо здійснити за два-три тижні, особливо якщо у вас є трохи досвіду програмування.

Ще один чудовий варіант Python

Якщо ви вже знайомі з програмуванням і не заперечуєте проти навчальної програми, яка має помітний перекіс щодо ігор та інтерактивних програм, я б також рекомендував Вступ Райсу з інтерактивного програмування на Python (частина 1 та частина 2) на Coursera.

Маючи 6000+ відгуків та найвищий середньозважений рейтинг 4,93 / 5 зірок, цей популярний курс відомий своїми захоплюючими відео, складними вікторинами та приємними міні-проектами. Це трохи складніше, і зосереджується менше на основах, а більше на темах, які не застосовуються в науці про дані, ніж наш вибір №1.

Ці курси також є частиною 7 принципових принципів обчислювальної спеціалізації на Coursera.

Матеріали є самостійними та безкоштовними, а також доступний платний сертифікат. Курс потрібно придбати за $ 79 (USD) для доступу до оцінених матеріалів.

Скорочений опис курсу та повна програма є такими:

«Цей двоскладовий курс призначений для того, щоб допомогти студентам з дуже незначним або зовсім відсутнім обчислювальним рівнем вивчити основи побудови простих інтерактивних додатків ... Щоб полегшити навчання Python, ми розробили нове середовище програмування на основі браузера, що робить розробку інтерактивних програм на Python простий. Ці програми включатимуть вікна, вміст яких є графічним та відповідає кнопкам, клавіатурі та миші.

Рекомендований досвід: Потрібні знання математики середньої школи. Хоча клас розрахований на студентів, які не мали попереднього досвіду програмування, деякі програмісти-початківці розглядають клас як швидкий . Студентам, зацікавленим у легкій підготовці до початку занять, ми рекомендуємо самостійний навчальний сайт Python, такий як codecademy.com ".

Частина 1

Графік: 5 тижнів

Передбачуваний час: 7–10 годин на тиждень

Тиждень 0 - твердження, вирази, змінні

Зрозумійте структуру цього класу та дослідіть Python як калькулятор.

Тиждень 1 - функції, логіка, умови

Вивчіть основні конструкції програмування на Python і створіть програму, яка відтворює варіант Rock-Paper-Scissors.

Тиждень 2 - програмоване на основі подій, локальні / глобальні змінні

Вивчіть основи програмування, керованого подіями, зрозумійте різницю між локальними та глобальними змінними та створіть інтерактивну програму, яка грає у просту гру вгадування.

3 тиждень - полотно, малюнок, таймери

Створіть полотно на Python, навчіться малювати на полотні та створіть цифровий секундомір.

4 тиждень - списки, введення з клавіатури, основи моделювання руху

Вивчіть основи списків на Python, змоделюйте рухомі об’єкти на Python та відтворіть класичну аркадну гру “Pong”.

Частина 2

5 тиждень - введення мишею, методи списку, словники

Прочитайте введення миші, дізнайтеся про методи списку та словники та малюйте зображення.

6 тиждень - заняття та об’єктно-орієнтоване програмування

Вивчіть основи об’єктно-орієнтованого програмування на Python, використовуючи класи, та працюйте з плитковими зображеннями.

7 тиждень - основна фізика гри, спрайти

Зрозумійте математику прискорення та тертя, працюйте зі спрайтами та додайте звуку у свою гру.

8 тиждень - набори та анімація

Дізнайтеся про набори в Python, обчисліть зіткнення між спрайтами та анімацією спрайтів.

Якщо ви налаштовані на R

Якщо ви готові ознайомитись із курсом програмування на R, ми рекомендуємо серію R курсів DataCamp: Вступ до R, Середній R, Проміжний R - Практика та Написання функцій на R. Хоча останні три коштують $ 25 / місяць, DataCamp є найкращим у категорії для висвітлення основ програмування та R-специфічних тем, що відображається в його середньому рейтингу 4,29 / 5 зірок.

Ми вважаємо, що найкращий підхід до вивчення програмування для науки про дані за допомогою онлайн-курсів - це робити це спочатку за допомогою Python. Чому? Не вистачає опцій MOOC, котрі викладають основні принципи програмування та використовують R як мову навчання. Ми виявили шість таких R-курсів, які відповідають нашим критеріям тестування, порівняно з двадцятьма двома курсами на базі Python. Більшість курсів R не отримали високих оцінок і не відповідали більшості наших суб'єктивних критеріїв тестування.

Розподіл серій такий:

Вступ до Р

Передбачуваний час: 4 години

Розділи:

  1. Вступ до основ
  2. Вектори
  3. Матриці
  4. Фактори
  5. Кадри даних
  6. Списки

Проміжний R

Передбачуваний час: 6 годин

Розділи:

  1. Кондиціонери та контроль потоку
  2. Петлі
  3. Функції
  4. Сім'я заявників
  5. Комунальні послуги

Середній R - практика

Передбачуваний час: 4 години

Цей подальший курс середнього рівня R не охоплює нових концепцій програмування. Натомість ви зміцните свої знання з тем середнього класу R за допомогою безлічі нових цікавих вправ.

Написання функцій у R

Передбачуваний час: 4 години

Розділи:

  1. Швидке оновлення
  2. Коли і як слід писати функцію
  3. Функціональне програмування
  4. Розширені входи та вихід
  5. Надійні функції

Іншим варіантом для R було б пройти вступ до курсу програмування на основі Python, щоб охопити основи програмування, а потім підібрати синтаксис R із курсом основ R. Це те, що я зробив, але я зробив це за допомогою аналізу даних Udacity з R. Це мені добре вдалось.

Ви також можете підібрати R, скориставшись нашою найкращою рекомендацією для класу статистики, який навчає основам R, кодуючи проблеми зі статистикою.

Змагання

Наші вибори №1 та №2 мали середньозважену оцінку 4,71 та 4,93 зірки за 284 та 6069 відгуків відповідно. Давайте розглянемо інші альтернативи.

Курси Python (спадні середньозважені оцінки)

  • Програмування для всіх (Початок роботи з Python) та Структури даних Python (Мічиганський університет / Coursera): ще один чудовий варіант. У нього також чудовий вчитель (доктор Чарльз “Чак” Северанс). Ця серія була близька до узурпації нашого вибору №1, оскільки вона відповідала йому за рейтингом та за більшістю суб’єктивних критеріїв. Цей курс є більш щадним, однак рецензенти зазначають, що він може підготувати вас не так добре, як інші варіанти. Сам доктор Чак зазначив, що цей курс є містком до вдосконалених курсів програмування: « Я б запропонував, щоб після закінчення мого курсу Python, якщо вони зацікавлені в більшій кількості програмування, вони взяли курс на рис. ”Ми також відчули, що відгуки про наш вибір №1 були більш захопленими. Він має 4,8-зірковий середньозважений рейтинг понад 4800+ відгуків.
  • Python AZ: Python для науки про дані з реальними вправами (Udemy): він коштує грошей і має середньозважений рейтинг 4,7 зірки за 52 відгуки.
  • Автоматизуйте нудні речі за допомогою програмування на Python (Udemy): це коштує грошей і має 4,6-зірковий середньозважений рейтинг понад 2000+ відгуків.
  • Python для початківців: від Нуба до експерта за 22+ години (Udemy): він коштує грошей і має 4,6-зірковий середньозважений рейтинг понад 240 відгуків.
  • Вступ до інформатики та програмування за допомогою Python (MIT / edX): ще один хороший варіант. Він має 4,5-зірковий середньозважений рейтинг понад 240 відгуків.
  • Повна версія Python Bootcamp (Udemy): вона коштує грошей і має 4,5-зірковий середньозважений рейтинг понад 4700+ відгуків.
  • Серія Python на Treehouse (9 курсів): це коштує грошей. Це популярний варіант, але оглядів для оцінки вартості недостатньо. Він має 4,5-зірковий середньозважений рейтинг за 5 відгуків.
  • Python (Codecademy): без відео, інтерактивний курс на основі текстового редактора. Він має 4,5-зірковий середньозважений рейтинг за 20 відгуків.
  • Вступ до Python for Data Science (Microsoft / edX): він має середньозважений рейтинг 4,47 зірки за 360 відгуків.
  • Вступ до програмування нанограду (Udacity): він приділяє значну увагу веб-розробці. Це чудовий варіант для тих, хто не знає, яким типом програмування хоче займатися. Він має 4,4-зірковий середньозважений рейтинг за 730 відгуків. Зауважте, що він містить першу половину популярного курсу Udacity „Вступ до комп’ютерних наук”, який не відповідає нашим критеріям включення.
  • CS For All: Вступ до комп’ютерних наук та програмування на Python (Harvey Mudd College / edX): у ньому дуже мало відгуків та 4,33-зірковий середньозважений рейтинг за 6 відгуків.
  • Програмування основ за допомогою Python (Udacity): не охоплює основ. Він має 4-зірковий середньозважений рейтинг за 7 відгуків.
  • Навчіться програмувати за допомогою Python (edX / Університет Техасу в Арлінгтоні): він має 4-зірковий середньозважений рейтинг за 14 відгуків.
  • Навчіться кодувати аналіз даних (The Open University / FutureLearn): він має 3,5-зірковий середньозважений рейтинг за 2 відгуки.
  • Серія Python від DataCamp (3 курси): він не має відгуків на двох основних сайтах огляду курсів, але DataCamp - популярний варіант.
  • Підручник з Python 3 від SoloLearn: він не має оглядів, але має вичерпну навчальну програму та спеціальну базу прихильників.
  • Серія Python від Dataquest (3 курси): вона не має відгуків, але має вичерпну навчальну програму та відверту базу прихильників.

R курси (спадні середньозважені оцінки)

  • R Програмування AZ ™: R Для науки про дані з реальними вправами! (Удемі): коштує грошей. Він не пропонує стільки грошей за ваш долар, скільки наша пропозиція №1 R. Оцінки подібні, враховуючи обсяг вибірки. Він має 4,7-зірковий середньозважений рейтинг за 785 відгуків.
  • Вступ до R для Data Science (Microsoft / edX): не така глибина, як пропозиція DataCamp. Він має 4,48-зірковий середньозважений рейтинг понад 500 відгуків.
  • Програмування R (Університет Джона Хопкінса / Coursera): недостатньо охоплює основи програмування. Рецензенти зазначають, що це складно, і не в хорошому сенсі. Він має 4,04-зірковий середньозважений рейтинг понад 900+ відгуків, незважаючи на 2,5-зірковий рейтинг понад 212 відгуків на Class Central.
  • TryR (CodeSchool): він недостатньо довгий, щоб відповідати критеріям тестування, і недостатньо охоплює основи програмування. Він має 4-зірковий середньозважений рейтинг понад 260 відгуків.
  • Програмування за допомогою R для Data Science (Microsoft / edX): більше введення до мови R, а не програмування. На сайті курсу сказано: "Якщо у вас є якийсь досвід програмування, і ви хотіли б дізнатись більше про R, то ви знаходитесь у правильному місці". Він має 3-зірковий середньозважений рейтинг за 12 відгуків.

Обгортання

Це перша із шести частин серії, яка охоплює найкращі MOOC для запуску в область науки про дані. Він охоплюватиме кілька інших основних компетенцій в галузі науки про дані: статистика, процес науки про дані, візуалізація даних та машинне навчання.

Якщо ви хочете вивчити Data Science, пройдіть кілька із цих занять зі статистики

Вичерпний посібник з онлайн-курсів статистики та ймовірностей. medium.freecodecamp.com Я класифікував кожен курс «Введення в науку даних» в Інтернеті на основі тисяч точок даних

Вичерпний посібник з онлайн-вступу до курсів з обробки даних. medium.freecodecamp.com

Останній фрагмент буде підсумком цих курсів та найкращими MOOC для інших ключових тем, таких як переміщення даних, бази даних та навіть програмна інженерія.

Якщо ви шукаєте повний список MOOCs Data Science, ви можете знайти їх на сторінці теми Data Science та Big Data Class Central.

Якщо вам сподобалось читати це, перегляньте деякі інші твори Class Central:

Ось 250 курсів Ліги Плюща, які Ви можете пройти онлайн прямо зараз безкоштовно

250 MOOC з Брауна, Колумбії, Корнелла, Дартмута, Гарварда, Пенсільванії, Прінстона та Єлу. medium.freecodecamp.com 50 найкращих безкоштовних онлайн-курсів університету за даними

Коли я запустив Class Central у листопаді 2011 року, було близько 18-ти безкоштовних онлайн-курсів і майже всі… medium.freecodecamp.com

Якщо у вас є пропозиції щодо пропущених курсів, повідомте мені про це у відповідях!

Якщо ви знайшли це корисним, натисніть на? тому більше людей побачать це тут, на Середньому.

Це стисла версія оригінальної статті, опублікованої на Class Central, де містяться описи курсів, навчальні програми та кілька оглядів.