読者です 読者をやめる 読者になる 読者になる

プロクラシスト

みんなのProcrastination(先延ばし、回り道)を少しでも有意義に。

MENU

プログラマ養成ゲーム、CheckIOを始めたよ(始め方と遊び方)

技術Tips 技術ログ

こんにちは!ほけきよです٩( ᐛ )و

職業上、プログラムを書くことが多くなりました。特にpythonpythonは覚えやすく使いやすい初学者にはとてもいい言語だと思います。 しかし、それにもまして自分の実装力の無さに絶望する日々です。

会社の先輩に、CheckIOというのを紹介してもらいました。今日はその紹介と、最初の遊び方について説明します!

15秒でわかるCheckIO

www.checkio.org

  • プログラミングをゲーム感覚で学んでいける
  • pythonjavascriptが対象
  • 出題される問題を解きながら進んでいく
  • web上でプログラミングできるので、事前準備不要
  • 優秀な方々のプログラムを見ながら復習もできる

始め方

HPに行き、登録をする

f:id:imslotter:20161103125300p:plain

登録方法は以下のいずれか - 任意のメールアドレスで登録 - Githubアカウントで登録 - Facebookアカウントで登録 - Google+アカウントで登録

私は今回Githubアカウントで登録しました!

登録が済むと初期画面へ

f:id:imslotter:20161103130022p:plain

こんな画面が出てくると思います。はじめはHOMEにつらつらと英文が書かれているとおもいます(私はNEXTを押してしまったので、ELEMENTARYの説明になっています)

進める順番としては、HOME->ELEMENTARY->SCIENTIFIC EXPEDITIONと進むようです。ELEMENTARYから先は鍵がかかっていて先に進めません。

1から進めていくので、とりあえずHOMEからやっていきます。

課題を始める

HOMEの歯車っぽいところを押すと、課題一覧が表示されます。

f:id:imslotter:20161103131000p:plain

課題の難易度が設定されていて、「Elementary(基礎)」「Simple(簡単)」「Moderate(中級)」「Challenging(上級)」の4段階があるそうです。

課題を見てみる

こんな感じです。右上のプルダウンメニューにて、日本語を選べます。課題は日本語でほしいですよね。

f:id:imslotter:20161103131727p:plain

課題画面には

  • 問題文
  • 入力
  • 出力
  • 条件

が書かれてます。ページ最下部のSolve Itで、問題を解き始めます

解き始める

f:id:imslotter:20161103132132p:plain

こんな画面ですね。初めての人に、軽く説明

def CheckIO(data):

この中に、解くべきアルゴリズムを書いていきます。

  • dataという入力を与え、
  • CheckIO関数でいろいろといじって
  • dataを返す

というところまでは決まっているので、その形式に従って書いていくのが良いでしょう。コードが大規模になると、通常のpython同様関数を分けながら書くことももちろんできます。

assert

assertは、狙った結果を得られているかテストをするものです。

assert 1 == 1
>>> (何も起こらない)
assert 1 == 2
>>> AssertiinError

main文で書かれているテストをクリアするために、関数の中にアルゴリズムを書く、というわけです。

まとめ

この記事をよむと、CheckIOを解き始められると思います。 プログラムを習得するには、日々の訓練が大事ですね。

今後は、CheckIOをやりながら、pythonを(できればjavascriptも)学んでいきたいと思います。モチベーションの維持と頭の整理のために、CheckIO週報的に、学習の過程をはてなブログで報告するのも有りかなと思っています。 日々のcheckIOのメモはQiitaにも取る予定なので、そちらもぜひ参考に!

また、これを機に始めようかな、と思う人。ぜひ一緒にやりましょう!ではでは٩( ᐛ )و

*1:python力は急務の課題なので、進めていきます。