Ако искате да научите Data Science, започнете с един от тези класове по програмиране

Преди година бях маниак на числа без кодиране. След като изпробвах онлайн курс за програмиране, бях толкова вдъхновен, че се записах в една от най-добрите програми за компютърни науки в Канада.

Две седмици по-късно осъзнах, че вместо това мога да науча всичко, което ми трябва, чрез edX, Coursera и Udacity. Затова отпаднах.

Решението не беше трудно. Можех да науча съдържанието, което исках, по-бързо, по-ефективно и за малка част от цената.

Вече имах университетска диплома и, може би по-важното, вече имах университетския опит. Плащането на $ 30K + за връщане в училище изглеждаше безотговорно.

Започнах да създавам собствена магистърска степен по наука за данни, използвайки онлайн курсове малко след това, след като осъзнах, че тя е по-подходяща за мен от компютърните науки. Прегледах въведението в програмния пейзаж. Вече съм взел няколко курса и съм одитирал части от много други. Знам опциите и какви умения са необходими, ако се насочите към ролята на анализатор на данни или учен.

За това ръководство прекарах повече от 20 часа, опитвайки се да намеря всяко отделно въведение в курса по програмиране, предлагано от август 2016 г., извличане на ключови части от информацията от техните програми и рецензии и съставяне на техните оценки. За тази задача се обърнах към никой друг освен общността с отворен код Class Central и нейната база данни от хиляди оценки и рецензии за курсове.

От 2011 г. основателят на Class Central Dhawal Shah следи по-отблизо онлайн курсовете, отколкото може би някой друг по света. Dhawal лично ми помогна да събера този списък с ресурси.

Как избрахме курсове за разглеждане

Всеки курс трябваше да отговаря на четири критерия:

  • Той въвежда програмиране и, по желание, компютърни науки . Вижте „Бележка за програмирането срещу компютърните науки“ по-долу.
  • Езикът на обучение е Python или R. Това са най-популярните два езика за програмиране, използвани в науката за данни.
  • Това трябва да е интерактивен онлайн курс, така че да няма книги или текстови уроци. Що се отнася до последното, курсовете на Codecademy без видео и базирани на текстов редактор биха се класирали, но строги текстови уроци като тези от R tutorial няма. Въпреки че книгите са жизнеспособни начини за изучаване на програмиране, Python и R, това ръководство се фокусира върху курсове.
  • Трябва да е с прилична дължина: общо поне десет часа за очаквано завършване.

Как оценихме курсовете

Ние вярваме, че сме обхванали всеки забележителен курс, който съществува и който отговаря на горните критерии. Тъй като на пръв поглед има стотици курсове по Udemy в Python и R, ние избрахме да разгледаме само най-прегледаните и най-високо оценените. Има шанс обаче да сме пропуснали нещо. Моля, уведомете ни, ако смятате, че е така.

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

Направихме субективни планове за преценка на учебната програма въз основа на три фактора:

  1. Покритие на основите на програмирането.
  2. Покриване на по-напреднали, но полезни теми в програмирането. (Например няколко курса избират да не обхващат обектно-ориентирано програмиране. Ние вярваме, че това е ключова тема, макар и не прекъсвач на сделката, поради което тези курсове са само докирани марки и не са изключени от разглеждане.)
  3. Колко от учебната програма е свързана с науката за данните?

Бележка за програмиране срещу компютърни науки

Програмирането не е компютърна наука и обратно. Има разлика, която начинаещите може да не са наясно. Заимствайки този отговор от Exchange Program Stack:

Компютърните науки са изучаване на това, което [могат] да правят компютрите; програмирането е практиката да караме компютрите да правят неща.

Курсът, който търсим, въвежда програмиране и по желание засяга съответните аспекти на компютърните науки, които биха били от полза за новия програмист по отношение на осведомеността. Ще забележите, че много от разгледаните курсове наистина имат част от компютърните науки.

Нито един от курсовете обаче не е строго курс по компютърни науки, поради което е изключено нещо като CS50x на Харвард на edX.

Нашият избор за най-добрия курс по програмиране за специалисти по данни е ...

Поредицата „Научете се да програмирате“ на Университета в Торонто за Coursera. LTP1: Основите и LTP2: Кодексът за качество на изработката имат почти перфектно средно претеглена оценка от 4,71 от 5 звезди над 284 отзива. Те също имат чудесна комбинация от трудности със съдържанието и обхват за начинаещ учен по данни.

Това безплатно, базирано на Python въведение в програмирането се отличава от другите 20+ курса, които разгледахме.

Дженифър Кембъл и Пол Грис, двама доценти в катедрата по компютърни науки в университета в Торонто (която се смята за една от най-добрите в света) преподават поредицата. Самостоятелните, самостоятелни курсове на Coursera съвпадат с материала в тяхната книга „Практическо програмиране: Въведение в компютърните науки с помощта на Python 3.“ LTP1 покрива 40–50% от книгата, а LTP2 обхваща още 40%. 10–20%, които не са обхванати, не са особено полезни за науката за данните, което е помогнало за това, че са нашият избор.

Професорите любезно и своевременно ми изпратиха подробни учебни програми на курса, които бяха трудни за намиране онлайн преди официалното рестартиране на курса през септември 2016 г.

Научете се да програмирате: Основите (LTP1)

Хронология: 7 седмици

Очаквано времево обвързване: 6-8 часа седмично

Този курс предоставя въведение в компютърното програмиране, предназначено за хора без опит в програмирането. Той обхваща основите на програмирането в Python, включително елементарни типове данни (числови типове, низове, списъци, речници и файлове), контрол на потока, функции, обекти, методи, полета и променливост.

Модули

  1. Инсталиране на Python, IDLE, математически изрази, променливи, израз на присвояване, извикване и дефиниране на функции, синтаксис и семантични грешки.
  2. Низове, вход / изход, повторно използване на функцията, рецепта за проектиране на функции и docstrings.
  3. Booleans, import, пространства от имена и 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 часа седмично, което е приблизително стандарт за повечето онлайн курсове, създадени от университети. Ако предпочитате да изучавате MOOCs, това е 72–96 часа, което може да бъде изпълнено за две до три седмици, особено ако имате малко опит в програмирането.

Друг чудесен вариант на Python

Ако вече сте запознати с програмирането и нямате нищо против учебната програма, която има забележим наклон към игрите и интерактивните приложения, бих препоръчал също така „Въведение в интерактивното програмиране в Python“ от Rice University (Част 1 и Част 2) на Coursera.

С 6 000+ отзива и най-високата средно претеглена оценка от 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, Intermediate R, Intermediate R - Практика и Функции за писане в R. Въпреки че последните три идват на цена от $ 25 / месец, DataCamp е най-добрият в категорията за обхващане на програмните основи и R-специфични теми, което е отразено в средния му рейтинг от 4,29 / 5 звезди.

Ние вярваме, че най-добрият подход към изучаването на програмиране за наука за данни, използвайки онлайн курсове, е да го направите първо чрез Python. Защо? Липсват опции за MOOC, които преподават основни принципи на програмиране и използват R като език на обучение. Открихме шест такива R курса, които отговарят на нашите критерии за тестване, в сравнение с двадесет и два курса, базирани на Python. Повечето R курсове не получиха големи оценки и не успяха да отговорят на повечето от нашите критерии за субективно тестване.

Разбивката на серията е както следва:

Въведение в 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 и 6 069 отзива. Нека разгледаме другите алтернативи.

Курсове по Python (низходяща среднопретеглена оценка)

  • Програмиране за всички (Първи стъпки с Python) и Структури от данни на Python (Университет на Мичиган / Coursera): друга чудесна възможност. Има и страхотен учител (д-р Чарлз „Чък“ Северанс). Тази поредица се доближи до узурпирането на нашия номер 1, тъй като му съответства по рейтинг и по повечето субективни критерии. Този курс обаче е по-щадящ, като рецензенти отбелязват, че може да не ви подготви, както и други опции. Самият д-р Чък отбеляза, че този курс е мост към по-напреднали курсове по програмиране: „ Бих предложил след като студентите завършат курса ми по Python, ако се интересуват от повече програмиране, да вземат курса по ориз. ”Също така почувствахме, че отзивите за нашия номер 1 са по-ентусиазирани. Той има средно претеглена оценка от 4,8 звезди над 4800+ отзива.
  • Python AZ: Python за наука за данни с реални упражнения (Udemy): струва пари и има средно претеглена оценка от 4,7 звезди над 52 отзива.
  • Автоматизирайте скучните неща с програмирането на Python (Udemy): струва пари и има средно претеглена оценка от 4,6 звезди над 2000+ отзива.
  • Python за начинаещи: От Noob до Експерт за 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 отзива.
  • Въведение в програмирането Nanodegree (Udacity): той се съсредоточава върху уеб разработката. Това е чудесна възможност за някой, който не знае какъв тип програмиране иска да направи. Той има среднопретеглена оценка от 4.4 звезди над 730 отзива. Имайте предвид, че той съдържа първата половина от популярния курс „Въведение в компютърните науки“ на Udacity, който не отговаря на нашите критерии за включване.
  • CS For All: Въведение в компютърните науки и програмирането на Python (Harvey Mudd College / edX): има много малко отзиви и средно претеглена оценка от 4,33 звезди над 6 отзива.
  • Програмиране на основи с Python (Udacity): не обхваща основите. Той има средно претеглена оценка от 4 звезди над 7 отзива.
  • Научете се да програмирате с помощта на Python (edX / University of Texas Arlington): той има средно претеглена оценка от 4 звезди над 14 отзива.
  • Научете се да кодирате за анализ на данни (The Open University / FutureLearn): той има средно претеглена оценка от 3,5 звезди над 2 отзива.
  • Серията Python на DataCamp (3 курса): няма отзиви в двата основни сайта за преглед на курсове, но DataCamp е популярна опция.
  • Инструкция за Python 3 на SoloLearn: няма рецензии, но има изчерпателна учебна програма и специална база от фенове.
  • Серията Python на Dataquest (3 курса): няма рецензии, но има изчерпателна учебна програма и откровена база от фенове.

R курсове (низходяща среднопретеглена оценка)

  • R Програмиране AZ ™: R За наука за данни с реални упражнения! (Udemy): струва пари. Той не предлага толкова много пари за вашите пари, колкото нашето предложение # 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 за наука за данни (Microsoft / edX): по-скоро въведение в езика R, а не програмиране. Сайтът на курса гласи: „Ако имате опит в програмирането и искате да научите повече за R, тогава сте на правилното място.“ Той има 3-звездна средно претеглена оценка над 12 отзива.

Опаковане

Това е първата от поредицата от шест части, която обхваща най-добрите MOOC за стартиране в областта на науката за данни. Той ще обхване няколко други основни компетенции в областта на науката за данни: статистика, процес на науката за данни, визуализация на данни и машинно обучение.

Ако искате да научите Data Science, вземете няколко от тези класове със статистика

Изчерпателно ръководство за онлайн статистика и вероятностни курсове. medium.freecodecamp.com Класирах всеки курс за въведение в науката за данни в интернет, базиран на хиляди точки от данни

Изчерпателно ръководство за онлайн въведение в курсовете по наука за данни. medium.freecodecamp.com

Последната част ще бъде резюме на тези курсове и най-добрите MOOC за други ключови теми, като преборване на данни, бази данни и дори софтуерно инженерство.

Ако търсите пълен списък на MOOC на Data Science, можете да ги намерите на тематичната страница на Data Central и Big Data на Class Central.

Ако ви е харесало да четете това, разгледайте някои от другите парчета на Class Central:

Ето 250 курса на Ivy League, които можете да вземете онлайн в момента безплатно

250 MOOC от Браун, Колумбия, Корнел, Дартмут, Харвард, Пен, Принстън и Йейл. medium.freecodecamp.com 50-те най-добри безплатни онлайн университетски курса според данните

Когато стартирах Class Central през ноември 2011 г., имаше около 18- ина безплатни онлайн курса и почти всички ... medium.freecodecamp.com

Ако имате предложения за курсове, които съм пропуснал, уведомете ме в отговорите!

Ако сметнете това за полезно, щракнете върху? така че повече хора ще го видят тук в Medium.

Това е съкратена версия на оригиналната статия, публикувана в Class Central, където са включени описания на курсове, учебни програми и множество рецензии.