データサイエンスを学びたい場合は、これらのプログラミングクラスのいずれかから始めてください。

1年前、私はコーディングの背景のない数字マニアでした。オンラインプログラミングコースを試した後、私はカナダで最高のコンピューターサイエンスプログラムの1つに入学したほど刺激を受けました。

2週間後、代わりにedX、Coursera、およびUdacityを使用して必要なすべてを学習できることに気付きました。だから私は中退しました。

決定は難しくありませんでした。必要なコンテンツをより速く、より効率的に、わずかな費用で学習できました。

私はすでに大学の学位を取得しており、おそらくもっと重要なことは、すでに大学での経験を持っていることです。学校に戻るために3万ドル以上を支払うことは無責任に思えました。

その後すぐに、オンラインコースを使用して自分のデータサイエンス修士号を作成し始めました。それは、コンピュータサイエンスよりも自分に適していることに気づいた後です。プログラミングの概況を精査しました。私はすでにいくつかのコースを受講し、他の多くのコースの一部を監査しました。データアナリストまたはデータサイエンティストの役割をターゲットにしている場合、オプションと必要なスキルを知っています。

このガイドでは、2016年8月時点で提供されているプログラミングコースのすべてのオンライン紹介を検索し、シラバスとレビューから重要な情報を抽出し、評価をコンパイルするのに20時間以上費やしました。このタスクでは、オープンソースのClass Centralコミュニティと、何千ものコース評価とレビューのデータベースにほかなりませんでした。

クラスセントラルのホームページ。

2011年以来、Class Centralの創設者であるDhawal Shahは、おそらく世界中の誰よりもオンラインコースに注目しています。ダワールは個人的にこのリソースのリストを作成するのを助けてくれました。

考慮すべきコースの選択方法

各コースは4つの基準に適合しなければなりませんでした。

  • プログラミングと、オプションでコンピューターサイエンスを紹介します。以下の「プログラミングとコンピューターサイエンスに関する注意事項」を参照してください。
  • 命令の言語はPythonまたはRです。これらは、データサイエンスで使用される最も人気のある2つのプログラミング言語です。
  • インタラクティブなオンラインコースでなければならないため、本やテキストベースのチュートリアルは必要ありません。後者に関しては、Codecademyのビデオレスおよびテキストエディターベースのコースは資格がありますが、Rチュートリアルのような厳格なテキストチュートリアルは資格がありません。本はプログラミング、Python、およびRを学習するための実行可能な方法ですが、このガイドはコースに焦点を当てています。
  • それはまともな長さでなければなりません:推定完了のために少なくとも合計10時間。
PythonとRは、データサイエンスで使用される2つの最も一般的なプログラミング言語です。

コースの評価方法

存在し、上記の基準に適合するすべての注目すべきコースを網羅したと考えています。 PythonおよびRのUdemyには数百のコースがあるように見えるため、最も評価が高く評価の高いコースのみを検討することにしました。ただし、何かを見逃した可能性があります。そうだと思われる場合はお知らせください。

Class Centralおよびその他のレビューサイトからの平均評価とレビュー数をまとめました。各コースの加重平均評価を計算しました。シリーズに複数のコースがある場合(ライス大学のパート1およびパート2など)、すべてのコースの加重平均評価を計算しました。また、テキストレビューを読み、このフィードバックを使用して数値評価を補足しました。

次の3つの要因に基づいて、主観的なシラバス判定を行いました。

  1. プログラミングの基礎を網羅。
  2. プログラミングのより高度ではあるが有用なトピックを網羅しています。 (例えば、いくつかのコースはオブジェクト指向プログラミングをカバーしないことを選択します。これは重要なトピックであると考えていますが、これらはブレイクマークではなく、考慮から除外されません。)
  3. シラバスのどれくらいがデータサイエンスに関連していますか?

プログラミングとコンピューターサイエンスに関するメモ

プログラミングはコンピューターサイエンスではなく、その逆も同様です。初心者があまり気づいていないかもしれない違いがあります。プログラマースタックエクスチェンジからこの回答を借りる:

コンピューターサイエンスとは、コンピューターができることの研究です。プログラミングとは、コンピューターに何かをさせる習慣です。

私たちが探しているコースでは、プログラミングを紹介し、オプションで、新しいプログラマーの意識向上に役立つコンピューターサイエンスの関連する側面に触れます。考慮されるコースの多くは、実際にコンピューターサイエンスの部分を持っています。

ただし、いずれのコースも厳密にはコンピューターサイエンスコースではないため、ハーバード大学のedX上のCS50xなどは除外されます。

データサイエンティスト向けの最高のプログラミングコースの選択は…

トロント大学のCourseraに関する「Learn to Program」シリーズ。 LTP1:The FundamentalsおよびLTP2:Crafting Quality Codeは、284件のレビューで5つ星中4.71というほぼ完璧な加重平均評価を持っています。また、コンテンツの難易度と初心者のデータサイエンティスト向けの範囲が非常に混在しています。

この無料のPythonベースのプログラミング入門は、検討した他の20以上のコースとは一線を画しています。

トロント大学の「Learn to Program」シリーズのパート2。

トロント大学のコンピューターサイエンス学科の2人の准教授であるジェニファーキャンベルとポールグリース(世界で最も優れていると見なされている)がこのシリーズを教えています。自習型の自己完結型のCourseraコースは、「実践的なプログラミング:Python 3を使用したコンピューターサイエンス入門」という本の内容と一致します。LTP1は本の40〜50%をカバーし、LTP2はさらに40%をカバーします。対象とならない10〜20%は、データサイエンスにとって特に有用ではないため、私たちが選んだケースになりました。

あなたの「プログラムを学ぶ」インストラクター:ジェニファー・キャンベルとポール・グリース。

教授は、リクエストに応じて詳細なコースシラバスを親切に迅速に送ってくれました。2016年9月にコースが正式に再開されるまで、オンラインで見つけることは困難でした。

プログラムの学習:基礎(LTP1)

タイムライン:7週間

予定時間:週6〜8時間

このコースでは、プログラミング経験のない人を対象としたコンピュータープログラミングの概要を説明します。基本データ型(数値型、文字列、リスト、辞書、およびファイル)、制御フロー、関数、オブジェクト、メソッド、フィールド、および可変性など、Pythonのプログラミングの基本について説明します。

モジュール

  1. Python、IDLE、数式、変数、割り当てステートメント、関数の呼び出しと定義、構文、およびセマンティックエラーのインストール。
  2. 文字列、入力/出力、関数の再利用、関数設計のレシピ、docstring。
  3. ブール値、インポート、名前空間、およびifステートメント。
  4. forループと派手な文字列操作。
  5. whileループ、リスト、および可変性。
  6. インデックス、並列リストと文字列、およびファイルのループ。
  7. タプルと辞書。

プログラムの作成:クラフティング品質コード(LTP2)

タイムライン:5週間

予定時間:週6〜8時間

Pythonのプログラミングの基本を知っています。基本データ型(数値型、文字列、リスト、辞書、およびファイル)、制御フロー、関数、オブジェクト、メソッド、フィールド、および可変性。このコースで成功するには、これらのスキルを身に付ける必要があります。

LTP:クラフティング品質コードは、次のステップをカバーします:より大きなプログラムの設計、コードが動作することを確認するためのコードのテスト、コードの効率を理解するためのコードの読み取り、独自のタイプの作成。

モジュール

  1. アルゴリズムの設計:関数本体で何を行うかをどのように決定しますか?そもそもどの関数を書くべきかをどのように把握しますか?
  2. 自動テスト:doctestおよびunittest。
  3. コードの速度の分析—検索とソートの詳細。
  4. 新しい型の作成:Pythonのクラス。
  5. 引数、デフォルトのパラメーター値、および例外として機能します。

Gries准教授は、コース構造について次の解説も提供しました。「各モジュールには、約45分から1時間以上のビデオがあります。ビデオ内のクイズの質問があり、ビデオの学習に費やされる合計時間はおそらく2時間になります。」

これらのビデオは通常、それぞれ10分よりも短くなっています。

彼は続けて、「さらに、モジュールごとに1つのエクササイズ(1ダースまたは2つか複数の選択肢と短い答えの質問)があります。これには1、2時間かかります。 LTP1には3つのプログラミング割り当てがあり、それぞれ4〜8時間の作業が必要になる場合があります。 LTP2には、同様のサイズの2つのプログラミング割り当てがあります。」

彼は、週に6〜8時間の推定値は大まかな推測であると強調しました。「費やした時間の推定値は、学生によって大きく異なります。たとえば、おそらく別のプログラミング言語でのプログラミングを少し知っている人は、プログラミングに完全に慣れていない人の半分の時間しかかかりません。時には、誰かが数時間概念にとらわれることがありますが、他の概念を突破するかもしれません…それが、自分のペースのフォーマットが私たちにとても魅力的である理由の一つです。」

合計で、トロント大学のプログラム学習シリーズは、週に6〜8時間で推定12週間実行されます。これは、大学が作成するほとんどのオンラインコースの標準です。 MOOCを大胆に学習する場合、72〜96時間かかります。これは、特にプログラミングの経験がある場合は、2〜3週間で完了する可能性があります。

別のすばらしいPythonオプション

プログラミングにすでにある程度精通しており、ゲームやインタラクティブアプリケーションに顕著な偏りがあるシラバスを気にしない場合は、コースラのライス大学のPythonでのインタラクティブプログラミング入門(パート1およびパート2)もお勧めします。

6,000件以上のレビューと4.93 / 5つ星の最高加重平均評価により、この人気のコースは魅力的なビデオ、挑戦的なクイズ、楽しいミニプロジェクトで有名です。少し難しく、基本に焦点を当てず、データサイエンスに当てはまらないトピックに重点を置いています。

これらのコースは、Courseraのコンピューティング専門分野における7つのコース原則の一部でもあります。

CodeSkulptor:ライス大学のMOOCに使用されるブラウザベースのPythonプログラミング環境。

教材は自習形式で無料で、有料の証明書が利用できます。コースは、傾斜した教材にアクセスするために79ドル(USD)で購入する必要があります。

ライス大学のCourseraページ。

要約コースの説明と完全なシラバスは次のとおりです。

「この2部構成のコースは、コンピューティングの経験がほとんどない、またはまったくない学生がシンプルなインタラクティブアプリケーションの構築の基礎を学ぶのに役立つように設計されています。シンプル。これらのアプリケーションには、内容がグラフィカルで、ボタン、キーボード、およびマウスに応答するウィンドウが含まれます。

推奨される背景:高校の数学の知識が必要です。このクラスは、プログラミング経験のない学生向けに設計されていますが、一部の初心者プログラマーは、ペースが速いと見なしています。授業開始前の軽い準備に興味のある学生には、codecademy.comなどの自習型Python学習サイトをお勧めします。」

パート1

タイムライン:5週間

予定時間:週7〜10時間

週0 —ステートメント、式、変数
 このクラスの構造を理解し、計算機としてのPythonを調べてください。

週1 —関数、ロジック、条件
 Pythonプログラミングの基本的な構成を学び、Rock-Paper-Scissorsのバリアントを再生するプログラムを作成します。

週2 —イベント駆動型プログラミング、ローカル/グローバル変数
 イベント駆動型プログラミングの基礎を学び、ローカル変数とグローバル変数の違いを理解し、簡単な推測ゲームをプレイするインタラクティブなプログラムを作成します。

3週目—キャンバス、描画、タイマー
 Pythonでキャンバスを作成し、キャンバスに描画する方法を学び、デジタルストップウォッチを作成します。

4週目—リスト、キーボード入力、モーションのモデリングの基本
 Pythonでリストの基本を学び、Pythonで移動オブジェクトをモデル化し、古典的なアーケードゲーム「Pong」を再現します。

パート2

5週目—マウス入力、リストメソッド、辞書
 マウス入力を読み取り、リストメソッドと辞書について学習し、画像を描画します。
 
6週目—クラスとオブジェクト指向プログラミング
 クラスを使用してPythonでオブジェクト指向プログラミングの基本を学び、タイル化された画像を操作します。

週7 —基本的なゲーム物理学、スプライト
 加速と摩擦の数学を理解し、スプライトを操作し、ゲームにサウンドを追加します。

Week 8 —セットとアニメーション
 Pythonのセットについて学び、スプライト間の衝突を計算し、スプライトをアニメートします。

Rに設定されている場合

Rのプログラミングコースの概要を設定している場合は、DataCampの一連のRコースをお勧めします。 /月、DataCampは、プログラミングの基礎とR固有のトピックをカバーするためのカテゴリーで最高であり、これは4.29 / 5星の平均評価に反映されています。

DataCampの一連のRコースの最初の3つのコース。

オンラインコースを使用してデータサイエンスのプログラミングを学習する最良の方法は、最初にPythonを使用することです。どうして?コアプログラミングの原則を教え、命令言語としてRを使用するMOOCオプションが不足しています。 Pythonベースの22のコースと比較して、テスト基準に適合する6つのそのようなRコースが見つかりました。ほとんどのRコースは高い評価を受けておらず、ほとんどの主観的なテスト基準を満たしていませんでした。

DataCampのWebサイト。

シリーズの内訳は次のとおりです。

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のもう1つのオプションは、プログラミングの基礎をPythonベースのプログラミングコースで紹介し、Rの基礎コースでR構文を学習することです。これは私がやったことですが、UdacityのRを使用したデータ分析でそれを行いました。

また、統計クラスの最高の推奨事項でRを選択することもできます。これは、統計の問題をコーディングすることによりRの基本を教えます。

競争

#1と#2のピックは、それぞれ284と6,069のレビューで4.71と4.93の星の加重平均評価がありました。他の選択肢を見てみましょう。

Pythonコース(加重平均評価の降順)

  • Programming for Everybody(Python入門)およびPython Data Structures(University of Michigan / Coursera):もう1つの素晴らしいオプションです。また、優れた教師(チャールズ“チャック”退職金博士)もいます。このシリーズは、評価およびほとんどの主観的な基準で一致したため、#1ピックを奪いました。ただし、このコースはより穏やかであり、他のオプションと同様にあなたを準備できないかもしれないとレビュアーが指摘しています。チャック博士自身は、このコースがより高度なプログラミングコースへの架け橋であると指摘しました。 #1ピックのレビューはより熱心でした。 4,800以上のレビューで4.8つ星の加重平均評価があります。
  • Python A-Z:リアルエクササイズを使用したデータサイエンスのためのPython(Udemy):費用がかかり、52件のレビューで4.7つ星の加重平均評価があります。
  • Python Programming(Udemy)で退屈なものを自動化してください:費用がかかり、2,000以上のレビューで4.6つ星の加重平均評価があります。
  • Python for Beginners:NoobからExpert to 22+ Hours(Udemy):費用がかかり、240のレビューで4.6つ星の加重平均評価があります。
  • Pythonを使用したコンピューターサイエンスとプログラミングの概要(MIT / edX):もう1つの優れたオプションです。 240件を超える4.5つ星の加重平均評価があります。
  • 完全なPython Bootcamp(Udemy):費用がかかり、4,700以上のレビューで4.5つ星の加重平均評価があります。
  • TreehouseのPythonシリーズ(9コース):費用がかかります。これは一般的なオプションですが、価値判断を下すのに十分なレビューがありません。 5つ星を超える4.5つ星の加重平均評価があります。
  • Python(Codecademy):ビデオレス、テキストエディターベースのインタラクティブコース。 20件のレビューで4.5つ星の加重平均評価があります。
  • Python for Data Science(Microsoft / edX)の紹介:360件のレビューで4.47星の加重平均評価があります。
  • プログラミングNanodegree(Udacity)の紹介:Web開発に注目しています。どんな種類のプログラミングをしたいのかわからない人にとっては素晴らしいオプションです。 730件のレビューで4.4つ星の加重平均評価があります。 Udacityの人気のある「コンピューターサイエンス入門」コースの前半が含まれていることに注意してください。これは、選択基準に適合していません。
  • CS For All:コンピューターサイエンスとPythonプログラミング入門(Harvey Mudd College / edX):レビューは非常に少なく、6件のレビューで4.33つ星の加重平均評価があります。
  • Pythonによるプログラミングの基礎(Udacity):基本をカバーしていません。 7件のレビューで4つ星の加重平均評価をしています。
  • Pythonを使用したプログラミングの学習(edX /テキサス大学アーリントン校):14件のレビューで4つ星の加重平均評価があります。
  • データ分析のためのコーディングの学習(The Open University / FutureLearn):2つのレビューで3.5つ星の加重平均評価があります。
  • DataCampのPythonシリーズ(3コース):2つの主要なコースレビューサイトでレビューはありませんが、DataCampは人気のあるオプションです。
  • SoloLearnのPython 3チュートリアル:レビューはありませんが、包括的なカリキュラムと熱心なファンベースがあります。
  • DataquestのPythonシリーズ(3コース):レビューはありませんが、包括的なカリキュラムと率直なファンベースがあります。

Rコース(加重平均評価の降順)

  • RプログラミングA-Z™:実際の演習でのデータサイエンスのためのR! (Udemy):費用がかかります。それは私達の#1 Rの提供ほどあなたの金のために多くの強打を提供しません。サンプルサイズを考慮すると、評価は同様です。 785件のレビューで4.7つ星の加重平均評価があります。
  • R for Data Science(Microsoft / edX)の紹介:DataCampの提供ほど深くはありません。 500件以上のレビューで4.48つ星の加重平均評価があります。
  • Rプログラミング(Johns Hopkins University / Coursera):プログラミングの基礎を十分にカバーしていません。レビューアーは、それは難しいことであり、良い方法ではないことに注意しています。 Class Centralの212件のレビューに対する2.5つ星評価にもかかわらず、900件以上のレビューに対する4.04つ星の加重平均評価があります。
  • TryR(CodeSchool):テスト基準に適合するには長さが足りず、プログラミングの基礎を十分にカバーしていません。 260件のレビューで4つ星の加重平均評価があります。
  • R for Data Science(Microsoft / edX)を使用したプログラミング:プログラミングというよりも、R言語の紹介です。コースサイトには、「プログラミングの経験があり、Rの詳細を知りたい場合は、適切な場所にいる」と書かれています。12のレビューで3つ星の加重平均評価があります。

まとめ

これは、データサイエンス分野に参入するための最高のMOOCをカバーする6ピースシリーズの最初のものです。統計、データサイエンスプロセス、データの視覚化、機械学習など、他のデータサイエンスのコアコンピテンシーをいくつか取り上げます。

最後の部分は、それらのコースの要約であり、データランリング、データベース、さらにはソフトウェアエンジニアリングなど、他の主要なトピックに最適なMOOCです。

データサイエンスMOOCの完全なリストを探している場合は、クラスセントラルのデータサイエンスおよびビッグデータサブジェクトページで見つけることができます。

これを読んで楽しんでいる場合は、クラスセントラルの他の作品をご覧ください。

私が見逃したコースについての提案があれば、回答で教えてください!

これが役立つと思ったら、Ifをクリックして、より多くの人がここで中にそれを見るようにします。

これは、Class Centralで公開された元の記事の要約版で、コースの説明、シラバス、複数のレビューが含まれています。