Photo by Blake Patterson
こんにちは。谷口です。
初心者がプログラミングの勉強を始めるにあたって、独学でどう勉強したらいいか分からないという方も多いと思います。また、プログラミング言語の本を読んでみたけど難しくて…という方や、環境構築が大変で挫折したという方もいるのではないでしょうか。
今回は、そういった初心者だけど楽しく勉強したい!という方のために、ゲーム感覚で楽しくプログラミング学習ができるサイトを紹介していきます。
現在paizaではプログラミング×異世界ファンタジーRPG『ロジックサマナー~閃光の召喚プログラマ』を公開しています!
主人公はひょんなことから異世界に迷い込んだITエンジニア。異世界では、なんとプログラミングしたコードが召喚獣を呼び出すための詠唱魔法だった!?召喚魔法(※プログラミング)が使える主人公は急に世界を救う伝説の召喚士として盛大に歓迎されてしまい……
あなたのプログラミングスキルを駆使しながら、世界に平和を取り戻しましょう!
■このゲームで勉強ができるの?進化したプログラミング学習サイト
◆CodinGame
http://www.codingame.com/start
対応言語:複数(Java、PHP、Rubyなど20言語)
このCodinGame、学習サイトとは思えないグラフィックと内容で構成されています。
素晴らしいのが、対応言語の数です。Java、JavaScript、Go、C、C++、C#、ObjectiveC、PHP、Perl、Python、Ruby……などなど20言語に対応しているのです。
グラフィックはかっこいいし、ゲーム内容は作りこまれている上、エディタはVim/Emacsバインドにも対応しています。Webブラウザでこんなエディタを使えるのはすごいですね!
◆RubyWarrior
https://www.bloc.io/ruby-warrior#/
対応言語:Ruby
こちらはRPG方式のゲームでRubyを学べるRubyWarriorです。ファミコンのようなドット絵とBGMが非常にかわいくて懐かしい!
本などでRubyの書き方がちょっとは分かってきて、実際に家でも何か動かせたらな……でも何を作ろうか……という人にはうってつけではないでしょうか。
◆CODECOMBAT
http://codecombat.com/
対応言語:JavaScript
フルボイスの本格RPGでJavaScriptが学べるCODECOMBATです。アニメ絵のグラフィックがきれいで、こちらも学習サイトとは思えませんね。
コーディングをしながらゲームを進めるモードだけでなく、自ら書いたコードでゲームを作れるモードもあるので、初心者からやりこみたい方まで幅広くおすすめします。
◆CheckiO
http://www.checkio.org/
対応言語:Python
こちらはPythonの学習サイト、CheckiOです。
アカウント登録の前に最初の問題が出され、それが解けなければアカウントすら作れない仕組みとなっている、非常に意識の高い学習サイトとなっております。ちなみに最初の問題は難しいものではありませんので、Python初心者の方でもそんなに心配はありません。
◆Code Babes
https://codebabes.com/
対応言語:複数(PHP、HTML、CSSなど)
なんとコーディング問題に正解すると、女の人がだんだん服を脱いでいってくださるという、けしからんもっとやれな学習サイトです。これは勉強も捗りますね。
◆paiza
http://paiza.jp/
対応言語:Java、PHP、Ruby、Python、Perl、C、C++、C#、JavaScript
用意された問題を解くと、プログラミングスキルを6段階で評価してくれるサービスです。実行環境が用意されているので、すぐにコーディングする事が可能です。
そして、問題を解くと結果に応じてランクマスターバッジや言語マスターの称号がもらえたり、問題クリアトロフィーを集めることができます。
また、ストーリーに沿った問題を解くと、その場で採点がされるオンラインハッカソンもおすすめです。
paizaオンラインハッカソンLite「天才火消しエンジニア霧島~もしもPMおじさんが『丸投げ』を覚えたら~」
paizaオンラインハッカソンVol.2「女子大生とペアプロするだけの簡単なお仕事です!」
paizaオンラインハッカソンVol.1「新人女子の書いたコードを直すだけの簡単なお仕事です!」
ここまで読んで、「初心者って言ってもある程度コーディングができる人向けのサイトばっかりじゃねーか!」「俺はゼロからプログラミングの学習がしたいんだよ!」「子供にプログラミングの勉強をさせたいんだけどもっと簡単なサイトはないのか!」という方もいらっしゃるかもしれません。
プログラミングについて、全く知識がないところから学びたいという入門者の方は、まずビジュアルプログラミング言語の学習サイトに触れてみることをお勧めします。
ビジュアルプログラミング言語とは、コードを書かなくても、視覚的な操作のみでプログラミングをしてくれるプログラミング言語のことです。Webブラウザ上でドラッグ&ドロップの操作をするだけで動かせるものが多く、最初のプログラミング体験としては最適です。
■こんなに楽しい!大人も遊べるビジュアルプログラミング学習サイト
◆Flappy Code
http://studio.code.org/flappy/1
「米国の全ての学校にプログラミングの授業を導入しよう」とするNPO団体Code.orgのサイトでは、人気ゲーム「Flappy Bird」でビジュアルプログラミングの学習ができます。
コードを表すブロックを組み合わせて問題を解いていく中で、最終的には自分で設定したゲームを作って公開することができ、友達に遊んでもらうこともできます。
実際に、プログラミング経験の全くない弊社社員にも、こちらのFlappy Codeを使ってビジュアルプログラミングを学習してもらい、ゲームを作成するところまでやってもらいました。
次回のブログでは、その模様をお送りいたします。
◆Lightbot
http://lightbot.com/hocflash.html
矢印やジャンプなどのマークを組み合わせて、Light Botというロボットを動かすゲームです。レベルが上がると、メソッドを作ったりループが出てきたり、プログラミングの基礎的な概念も学べるようになっていきます。
◆Code monkey
http://www.playcodemonkey.com/
橋を渡ったり障害物を避けたりしながらサルを動かして、遠くにあるバナナを取らせてあげるCode monkeyです。かわいい。これは子供が喜びそうです。バナナに到達するとサルが喜んでくれるんですが、失敗すると誰にも拾われないまま腐ったバナナが表示されるのがシュールです。
◆Tynker
http://www.tynker.com/hour-of-code/puzzle
ビジュアルプログラミング学習ができるゲームをいろいろ試せるサイト、Tynkerです。
個人的にはLost in Spaceから始めてみるのがお勧めです。最初はどこかの星に不時着した宇宙飛行士を動かすだけですが、ロケットに乗って脱出したりするうちに、for文やwhile文の概念が出てきます。
◆MOONBlock
他のサイトと同様にブロックを組み合わせるビジュアルプログラミング言語ですが、ソースボタンをクリックすれば実際のJavaScriptのコードを見ることができるというのが、MOONBlockのすごいところです。
プログラミングをゼロから学びたいという方は、まず上記のようなサイトでプログラミングの概要を掴むと良いと思います。それから、下記のような学習サイトで実際にコードを書く勉強をしていけば、ゲーム系学習サイトで遊べる程度にはプログラミング能力が身についていくはずです。
■実際のコードの書き方が学習できるサイト
◆ドットインストール
http://dotinstall.com/
対応言語:JavaScript、PHP、Ruby、Python、Java、Perl、C、Node.js、HTML、CSS
コードの書き方や環境設定のやり方、サーバ構築の仕方など、Webサービスを作るための1から10を動画で公開してくれているサイトです。まず最初にこちらで「手軽にプログラミングができるJavaScriptを覚えよう」、「Webサービスが作れるPHPを勉強してみよう」などを見てみるのが良いかと思います。
◆CODEPREP
https://codeprep.jp/
対応言語:JavaScript、Ruby、PHP、Python、Ruby、HTML、CSS
表示されるプログラムに対し、穴埋め式で記述をする問題が出ます。ヒントも出ます。実行環境が用意されており、実行結果がすぐに分かるので、環境設定に手間取らずに学習ができます。
◆CodeFactory
http://codefactory.jp/
対応言語:複数(JavaScript、HTML、CSSなど)
2014年10月にローンチしたばかりの、さまざまなアプリの作り方が公開されているサービスです。初心者でも自分の作りたいものを選んで、手順に従ってインストールやコーディングをしていくだけでアプリを作ることができます。
この公開されている作り方ですが、かなり詳しく親切に書いてあり、作者に質問を送ることもできますので、プログラミングは初心者だけどアプリを作ってみたいという方にはもってこいです。
◆コーディング道場
http://www.coding-doujo.jp/
対応言語:PHP、Ruby
自分で作ったコーディング問題を公開したり、人が作った問題を解いたりすることができるコーディング道場です。問題はレベルごとに☆がついていて、基礎問題もありますので、初心者から上級者まで幅広く使えます。慣れてきたら、自分で問題を作ってみるのも良いかと思います。
ちなみに学生向けサービスなだけあって、就職支援もやっています。
■まとめ
いかがでしょう、全くのプログラミング素人でも、ビジュアルプログラミングから初めて、実際に講義や解説を見ながらコーディングをしていけば、ゲーム系学習サイトでもある程度プレイできるような力がついてくると思います。
何も知らない状態から独学でプログラミングを勉強していくというのは、なかなか大変なことだと思います。
本を読んでいるだけではよく分からない……何か作ろうにも環境設定の段階でつまずいてしまう……という人は、まずこういった作ったものをすぐに動かせるタイプの学習サイトを使うこと、そして自分でコードを書きながら学んでいくことが大切だと思います。
さらに、勉強してある程度の基礎が身につきましたら、ぜひpaizaでご自分のスキルをはかってみてください!
paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。
自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。