行列屋さんの作業ログ

行列まわりで色々やってたエンジニアの作業メモ&国内外旅行記ブログ

プログラミング経験者のPython3入門にSoloLearnが良かった話

f:id:liberaldays:20170221164452j:plain

SoloLearnという完全無料のプログラミング学習サイトがあります.
www.sololearn.com

このサイトのPython(Python3 Tutorial)コースを完了したのですが,プログラミング経験者がPythonに入門するにはちょうどよい教材だったためレビュー的なものを.

コース概要

コースは,"Basic Concepts","Control Structures"等9つのModuleから構成されています.
各Moduleには10程度のLessonがあり,コースを通じて92のLessonが提供されています.
各レッスンは「Pythonの機能・文法解説」と「その内容と確かめるQuiz」の繰り返しで構成され,1 Lessonの所要時間は5分程度です.
Python3コース受講者は全世界で166万人ほどとのことです.

コースの詳細はこちら
Python 3 Tutorial | SoloLearn: Learn to code for FREE!

コースの進め方

SoloLearnの利用には登録が必要です.FacebookGoogleの認証情報を利用することも出来ます.
コースはWebサイトはもちろん,無料のiOS,Andriod,Windows Phoneアプリから進めることも出来ます.
(以下の解説ではiOSアプリの画面を使用しています)
進捗は同期されるためいつでもどこでも学習できます.


iOSアプリのModule選択画面

Lesson選択画面 各レッスンを選択すると...

解説(これはFloatに関する解説)が表示されます.
Continueすると...

先程の内容に関してのQuizが出題されます.これは選択式.

他にも選択肢ありの穴埋めや...

自由記述の穴埋め問題もあります.入力長はせいぜい数単語なので,スマホでも問題なく打ち込めます.
解説を読んだその場で問題に取り組めるので,確実に記憶に定着します.

もし解らない問題があれば,問題画面からQ&A掲示板を呼び出すことが出来ます.

さらに凄い点として,解説画面のサンプルコード下にある"TRY IT YOURSELF"を押すと

"Code PlayGround"が開き,好きにコードを組み替えて実行結果を確認することが出来ます.長文を打ち込むのはスマホからだと疲れるので,PCでWebサイトから試すとよいでしょう.

SoloLearnで学習を行うメリットとデメリット

メリット

シンプル

登録,UI,解説,Quiz...全てがシンプル.UIが洗練され操作もわかりやすいですし,解説も簡潔によくまとまっています(これはデメリットでもあります).
広告が一切表示されないのもメリット(なんだけど運営大丈夫か).

レッスンが細分化されておりスマホ対応.スキマ時間で取り組める

1レッスンに掛かる時間は5分程度.画面のちいさなスマホからでも難なく取り組めるため,移動時間の暇つぶしにも最適.
私の場合,年末年始の行事のスキマ時間を活用し1週間くらいでコンプリートしました.

学習内容は手抜きなし

"Python3 Tutorial"というコース名称の通り基礎コース的な位置づけですが,オブジェクト指向プログラミング,関数型プログラミング,クラスの活用法などPythonで抑えるべき内容をきちんと簡潔にまとめられています.ifやwhileだけに留まらない「本格的」入門になっています.

解説->Quizで知識を定着できる

上でも書きましたが解説を読み,理解しているかQuizを解くという流れを通じて能動的に学習できます.ただ本を読んでいるよりは確実に身につきます.Moduleの最後には章末問題のようなLessonもあり,反復学習にもなります.

何かと機能豊富で楽しい

自分で自由にコードを書いて動かせる"Code Playground"や

全て無料

最後に,以上の豊富なメリットが有りながら完全に無料です.コースを最後まで進めるとCertificateが発行され自身のLinkedInプロフィールに追加できるのですが,この発行も無料です
f:id:liberaldays:20170221205218j:plain:w300
(まあSoloLearnの設定画面からCertificateの名前書き換えられるので,有効性があるかというと...).

デメリット

解説が簡素すぎて初学者に向かない

メリットでも挙げましたが,最大のデメリットも「シンプルさ」.解説が最低限で,サンプルコードも各項目1-2例しか用意されていません.レッスン間の関係も明確には説明されていません.
ある程度コース全体を見通せ,足りない知識を適切な手段で補完できる経験者ならよいですが,初学者がSoloLearnだけで学習を進めるのは辛いし非効率なのではと思います.

全て英語

全てが英語です(難しい書き方はされてませんけどね).日本語化というか英語以外への翻訳は現在行われていません

あくまで"Tutorial"

別にSoloLearnをやってもスクレイピングが出来るわけでもアプリが書けるようにもなりません.Pythonを使っていくためには更に知識を積み重ねないといけません.

結論

SoloLearnは全てがシンプルで,まったくの初学者には向かないです.ある程度雰囲気で解き進めることは出来るでしょうが,解説が丁寧でないので変なところで引っかかり非効率な気がします.一応コミュニティに質問を投げることは出来ますが,質問の仕方すら解らないかもしれませんし.まずは適当な言語を入門本(Pythonスタートブックとか)や授業で一度体系的に学んでおくことをお勧めします.

一方で,他の言語を体系的に学んだことのある人がPython特有の文法,概念を理解するのにはとても便利です.能動的に進められるのでただ本を読むよりも知識の定着が良く,いざコードを書くときに「Pythonだとswitchってどう書くんだったっけ...,tryは...」と数行おきにリファレンスを引かなくて済みました.ストレスも軽減.

SoloLearnをクリアした上で,「実践Python3」辺りの中級本に手を出し,それと並行して興味の向くまま簡単なゲームでも実装してゆくことでPythonの実力も培ってゆくことが出来る...と思って現在学習中です.

(あと専門の関係からPython機械学習プログラミングもやらなきゃ)

ところで,SoloLearnにはPython3以外にもC++,C#,Java,JavaScript,PHP,Swift,Ruby,jQuery,HTML,CSS,SQLと多くの言語のコースが現在提供されています.いずれもPython3と同じような流れで学習が進みますので,新たな言語を学びたい経験者はいかがでしょうか.

www.sololearn.com