プログラミング学習サイト「SHAKYO.io」を使ってみた感想を紹介します。
SHAKYO.ioについて
詳しくは以下で紹介されています。
>>タイピングゲーム感覚でプログラミングを“写経”して学べる「SHAKYO.io」のベータ版公開
簡単に言うと「提供されているプログラムのコードを「写経」することによって、プログラミングスキルを身体で覚える」サービスです。
個人的にもネットでググって見つけたコードを「写経」して身体に叩き込む特訓をしたことがあったので、上記サービスを試してみることにしました。
自分のプログラミング経験について
私のプログラミング経験は以下の感じです。
- Java歴:仕事で2年くらい
- その他、C/Objective C/Python/JSなどを趣味レベルで
決してプログラミング初心者ではありませんが、中級者と言うには経験が足りないって感じですね。
他の記事で紹介しているビットコイン自動売買BotはPythonで作っていますが、Pythonの特徴を理解した上でコーディングしているとまでは言えないレベルです。
実際に使ってみた
まずはSYAKYO.ioにアクセスしてユーザ登録を行います。
ユーザ登録は一般的なサービスと同様に行います。
登録後にサインインを行うと、以下の画面が表示されました。
CやJava以外にもPythonやGoがあるのが良い感じ。そろそろGoも基本文法を理解しなければと思っていたので。
とりあえず毎日触っているPythonを選択。
すると、上記のようなレッスン選択画面が表示されました。「Sorts」や「Search」など、様々なアルゴリズムを「写経」できるようです。
とりあえず「Sorts」を選択してみます。
すると、様々な「Sorts」のアルゴリズムが表示されます。
私のアカウントでは「bubble sort」しか選択できませんでした。ちなみに鍵付きのアルゴリズムを選択すると。
「こちらのコードは課金アカウントのみプレイ可能です」
はっきり言いますね(笑)ただ、以下の記事では期間限定で無料とのことだったのですが、これは制限があるのかもしれません。
>>新型コロナウイルスの影響でオンライン学習を余儀なくされている教育機関、自宅待機中の新社会人向けにライセンスを無償提供いたします。
さて、気を取り直して、「Bubble sort」を選択すると・・・
こんな感じでBubble sortのアルゴリズムのコードが表示されます。このコードを写経していきます。
タイプをはじめると、タイプした文字の色が白色に変わります。
さらに、タイプミスした場合は上記のように赤文字に変化するのでわかりやすい。左上のカウントがアップしていって、全て終わった後にタイムが表示される仕組みです。
ゲーム感覚で練習できるのは良いですね。
他にも「他の人が作ったコードを写経できる」などのサービスもあるようですが、基本的にできることは同じです。
個人的な感想
さて、ここからは個人的な感想ですが・・・
試みは面白いのですが、プログラミング初心者に勧めるか?と言うと、、、私は「勧めない」と思います。
理由は2点。
アルゴリズムを写経しても面白くない
これが最大の理由です。
SortやSearchなどのアルゴリズムを理解することは「昔は」とても重要でした。私もJavaのプログラミングでお金を貰っていた時期は、アルゴリズム辞典がバイブルだった時期があります。
しかし、それは昔の話でして、最近の言語はライブラリが提供されているケースが多い。ライブラリが公開されていなくても、ネットでググったら大抵のアルゴリズムのコードが公開されています。
結果、自分でアルゴリズムを一からコーディングする機会は極めて少ない。
コードを写経する意図は「その言語のコーディング感覚を身体に叩き込む」ことにあると思うのですが、自分が実務で行わないコードを写経すると「無駄な作業を行っている」気持ちになり、中々ノッてこないんです。
プログラム特有の記述に特化したコースが(見た限り)見当たらない
Pythonで言えば「イタレーター」とか「ブロードキャスト」とか「配列の扱い方」とか。
アルゴリズムよりも「プログラム特有の記述に特化したコース」の方が、そのプログラムの記述を学べると思うのです。
あと、そのプログラムのシンタックスですね。例えばPythonの場合は「ループの中はインデント」とか、こういうシンタックスこと「写経」することで身体に覚え込ませることに価値があると思うのです。
確かにアルゴリズムの写経でもシンタックスの学習はできるのですが、特有の記述を学ぶ中で得たほうが学習効果は高まると考えます。
まとめ
試みとしては面白いとおもいました。ポテンシャルも秘めていると感じました。
ただ、現時点で課金するまで価値があるかと考えると・・・まだ発展途上だなと。
個人的にはアルゴリズム以外のコースを増やしてほしいと思いました。
コメント