プログラミング学習を習慣化する / 「SoloLearn」を始めた

PHPRubyの基礎的な文法を勉強したいと思っていたところ、医者からGoogleに転職したすごい人がこうツイートしていたのを見てSoloLearnの存在を知った。 

 

ちょうど夏休み中で時間もあることだし、始めてみることにした。

 

[SoloLearnで学ぶ]

SoloLearnは、iOS版、Android版、Web版の3つのアプリがある。自分の場合は通勤中などのスキマ時間で学習を進められるように、iOSアプリをインストールした。 

SoloLearn: Learn to Code

SoloLearn: Learn to Code

  • Sololearn Inc
  • 教育
  • 無料

apps.apple.com

play.google.com

www.sololearn.com

 

SoloLearnでは2019年8月時点で以下の13の学習コースが設置されている。全て英語のみで、日本語のコースは提供されていない。

Python 3 Tutorial

C++ Tutorial

Java Tutorial

JavaScript Tutorial

C# Tutorial

PHP Tutorial

Swift 4 Fundamentals

Ruby Tutorial

jQuery Tutorial

C Tutorial

HTML Fundamentals

CSS Fundamentals

SQL Fundamentals 

 

これらのコースについては、学習を進めていく途中で小テストが出題されるので、それらに解答することで内容に対する理解を深めながら学習を進めていくことができる。小テストには、下記の画像のようにいくつかの選択肢から解答を選ぶ選択式の問題と、穴埋めになっている箇所に直接解答を入力する形式の問題の2種類があった。

f:id:kidani_a:20190818084600j:plain

 

解説を読んでいる途中で、解説で利用されているコードに自分のコードを追加して動作を確認するためのプレイグラウンドも用意されており、これも理解を深めるのに役立つ。

f:id:kidani_a:20190818154638j:plain

 

一つずつ解説を読んで理解するのが面倒な場合や、すでに習熟した言語の場合は、ショートカットを選択すると、まとめて試験を受けてレッスンをスキップすることができる。このあたりの学習コースの設計の仕方は、語学学習アプリのDuolingoとほぼ同じだ。

自分の場合はJavaはそこそこ勉強済みなので、最初の3つのチュートリアルをショートカットしてみた。ざっくりと理解度を確認する目的であれば、この機能を使うと便利かもしれない。

f:id:kidani_a:20190818153127j:plain

 

自分が利用しているのは無料版なので、学習コースの解説の途中に広告が表示されている。教科書を読んでいる途中でいきなり広告が表示されているような感じなので、やや違和感があるが、無料なので仕方ない。

有料のPRO版を購入すると、広告を消すことができるらしい。月額780円のサブスクリプションか、1年分一括購入で5,500円(月額458円)のプランを選ぶことができる。このあたりの仕組みもDuolingoとほぼ同じだ。

f:id:kidani_a:20190818085521j:plain

 

上記の13の学習コース以外にも、Web開発であれば(ちょっと古いが)AngularJSやBootstrap3、プログラミング言語シリーズであればKotlinについて、プレイグラウンドを利用しながら学ぶことができる。また、プレイグラウンドなしの単なる読み物としてGitやアルゴリズム機械学習などに関する学習コースも用意されている。

 

[PHP, Rubyを学ぶ理由]

13ある学習コースのうち、これまでに自分が学習したことのない新規の言語としてPHPRubyのコースを選択した。変数の定義方法やコメントの書き方など基本的なところから始められてちょうどいい感じ。

 

PHPについては、先日話を聞いた某社で利用されているということだったのと、最近Laravelフレームワークが盛り上がっているようなのもあり、一通り学んでおくとどこかで役に立つかなと思い学習を始めた。

 

Rubyについては、AWSのサービスであるElastic Beanstalkにおいて、EC2インスタンス内の各種操作がRubyで実装されているのをプラットフォームフックの調査中に発見して「Ruby読めない……辛い……」となって以来、一度ちゃんと勉強せねばと思ったのが学習を始めたきっかけである。

 

また、これまでに付け焼き刃程度に学習したことはあるものの、網羅的な知識が欠けているHTML、CSSSQLPython 3などについても学習をすることにした。

 

[コーディングを習慣化する]

SoloLearnには学習を習慣化するための仕組みとして、以下のような機能が用意されている。

 

  • デイリーボーナスで経験値がもらえる 
  • 経験値獲得によるレベルアップ
  • ユーザーの順位表示
  • デイリーゴールの達成度

 

順位の表示は最近Duolingoでも開始されており、自身の学習を継続し習慣化するのにとても役立っていると感じている。下の画像はDuolingoの順位表示の様子。

f:id:kidani_a:20190818155214j:plain

 

始めたばかりのもの珍しさで色々とクイズを解いていたら、SoloLearnの週間トップ0.61%に入った!多分来週以降は仕事に戻るのでなかなかそこまでは時間を割けないだろうが、細々とでも続けていきたい。

f:id:kidani_a:20190818121217j:plain

 

デイリーゴールについては、正確な達成方法は分からないが、一日に10個程度質問に解答すると100%に到達できる。このデイリーゴールについては、課金してPRO版を利用すると変更できるらしい。

f:id:kidani_a:20190818121148j:plain

 

デイリーボーナスは毎日アプリを開いた初回にもらえるわけではないようだ。何度か開いているうちにいつの間にかもらえることが多いので、1日1回だけしかアプリを開かない場合には、もしかしたらデイリーボーナスをもらえないのかもしれない。

f:id:kidani_a:20190818133304j:plain

 

[まとめ]

  • SoloLearnではアプリとWEBサイトでプログラミングを学習できる 
  • SoloLearn無料版を利用して未経験のプログラミング言語の学習を始めてみた
  • 学習済の言語についてもショートカットを利用して理解度を確認できる
  • Duolingoなどと同様、SoloLearnにも習慣化のための仕組みが色々あって良い

 

RubyPHPの修了証をゲットできるよう頑張るぞ!