GWだし、初心者なので、Pythonの勉強のためにCheckiOを触ってみた。

どうもお久しぶりです、たいがーです。

最近こちらのブログを更新することも少なく、そろそろ書かなきゃな…とは思っていたのですが、なかなか書く内容を作る時間もなく、そろそろ自分で勉強しなければと思っていました。

今回は、Pythonをもっと使えるようになりたい〜!もっとガンガン書きたい〜!だからCheckiO使ってみたよ〜!という話です。


私は今、株式会社サーバーワークスでインターンシップをしています。まだまだ初心者ですが、エンジニア見習いとして活動しています。言語は、私が学校で少し触っただけだったので、もっと触ってみたいという(超絶ワガママな)理由で、Python3です。課題などを出してくれている社員さん含め、普段Python触らないのに、アドバイスもくださって、本当にいい方しかいないのですよ・・・私がインターンで何をしているかはWantedlyで更新しているので、読んでいただけると嬉しいです!

なぜインターンの話を始めたかというと、今回Python3をもっと勉強したいと思ったきっかけだったからです。

始まってから半年が経とうとしているのですが、今まではとにかく”書く!書く!”という形で要するに”ベタ書き”をしていました。

そろそろ慣れてきた頃だろうし、関数化して、リファクタリングしようという話が上がり、関数化を他の方のブログを見よう見まねでやってみた結果・・・「なぜ、ここはこう書いたの?」と聞かれて「すみません。見たまま書きました。」と、見事に玉砕しました。

何か、ポンコツな私でも理解できるものはないのか…もっと使えるようになりたい…そのように思っていた時に、たまたま見つけたのがこちらです!

CheckiOとは?

Coding games for beginners and advanced programmers

where you can improve your coding skills by solving engaging challenges and fun task using Python and JavaScript

初心者から上級者向けのコーディングゲーム
PythonとJavaScriptを使って魅力的な課題と楽しいタスクを解決することで、コーディングスキルを向上させることができます

CheckiO トップページより

トップページのカラフルさに引かれたのは、ここだけの秘密です。海外のこういうカラフルなところ、可愛い。

この中では、Missionと呼ばれるコーディングゲームをクリアしていくことによって、どんどん島が解放され、マップが広がっていきます。

言語は英語かロシア語なのですが、課題は日本語、フランス語、中国語でも表示することが可能です。ちなみに、Python用教材とJavaScript用教材があります。

For Teacherの欄もあったので、学校機材として導入することができるっぽい?

あと、For Companyの欄もあり、半分以上のユーザーがHiringされているとも書いてありました。まじか。上級の内容、結構難しいんかな・・・

とりあえず、やってみた!

ログイン方法

FaceBook、Google、GitHubのアカウントを連携させることができます。連携させずとも、メールアドレスとアカウント名を設定すれば、アカウントを作成できます。

今回はGitHubのアカウントを連携させてみました!(一応アカウントは持っているのですが、インターン以外ではあまり使ってないです…READMEとかで、履歴書書こうかな。)

最初の島々、Home島とElementary島

Home島からスタートしようとすると、どのようにすれば良いのか分からず、詰まってしまい、いきなりやめそうになりました。笑 (Elementary島から始めようというコメントがあったのに、無視した私が悪い。)

一応それぞれの島の中の課題にも、Elementary、Simple、Moderate、あともう一つ上のレベル(現段階の私には見えないレベル)があります。それぞれの島は繋がっていて、片方の島をクリアすると、さらに出来る課題が増えるシステムです。お金を払えば、入ることもできそう?もしかしたら、前の島をクリアしてさらに課金かもしれません。(たまたま見たO’REILLY島は$0.99のようでした。安いし、全然ありかな・・・)

とりあえずHome島とElementary島からクリアしていこうと思います。


初めは掛け算や、Hello World!など、簡単なものから始まります。全て関数で書かれているので、その点でも私にとっては勉強になりそうです。

#your code here の以下の部分を自分なりに書き換え、セルフチェック、そして提出することができます。

課題を解き終わったあとは、他の人の回答を見ることもでき、投票によって決められたベストな解答を探せます。

掛け算の場合だと、oparatorモジュールを使用した人もいたみたいです。答えは一つではないので、こういった新しいものを見つけると、こういう手もあるのか〜!となりますよね。楽しい。

CheckiOの良いところ

他の人の解答を見ることができる

一番はこの点ですね。

例えば、解きたい課題があった時、誰かのブログを見ながら行い、その方法で出来た。

その後、他の方法を探しますか?私はあまり、する気が起きません。

他の方法も探した方がいいことは分かるのですが、意外と適した回答が載っているページを見つけること自体も難しいです。

しかし、自分が解いた後で、サッと見ることが出来れば…見ませんか?

レベルアップ制度

この辺りはRPG要素が強めです。

問題を解くと、その難易度によってポイントがもらえます。

そのポイントを貯めていくことによって、レベルが上がるシステムのようです。

モチベーションを上げるきっかけにもなりそうです。

104個もあるBadge

進めていくと、Badgeがどんどん手に入るらしく、全部で104個もあるみたいです。

私はまだ初めの”Great start”のみです。長い道のりだなぁ・・・

外部のサービスに関しても学べる

どうやら、SendGridやDropboxのAPIも学べるようです。For Companyの欄にあった記述なのですが、

For example, SendGrid became one of such islands. Its missions are strictly oriented on their product, so the user not only gains points in the game, but also tests SendGrid’s API which means actually using it.

例えば、SendGridはそのような島の一つです。そのMissionは彼らの製品に厳密に向けられているので、ユーザーはゲームでポイントを獲得するだけでなく、実際にそれを使用してSendGridのAPIもテストします。

島によって学べる分野が違うのですが、結構な数の島がまだロックされている状態です。

この辺りはまだ島に到達できていないので、わかり次第、またブログを書きたいと思います。

GWもまだまだありますな。

まだあと1週間くらい続く、GW!

やらなければいけないこともありますが、並行して、少しずつ進めていけたらなと思います。