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

paiza開発日誌

paiza(https://paiza.jp)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

Webサービスを作りたい人が、素早くプログラミング言語を学べる15サイト

プログラミング プログラミング学習 Webサービス紹介 プログラミング初心者

f:id:paiza:20161213114529j:plain
Photo by Daniel Cukier

コーディング転職サイトpaizaを運営している関係上、Webサービスを作りたいけど、プログラミング言語をどこから学んだらよいか?」という質問をよく受ける事があります。今回はプログラマ視点でプログラミングを学ぶときに躓きやすいポイントと、プログラミング言語の基礎を簡単に楽しく学べるサイトをまとめてみました。

最近はオンラインでプログラミングを勉強できるWebサービスが多数登場してきているので、以前よりプログラムを学ぶコストはぐっと下がっています!!

目次

 ・プログラミング言語を学ぶときに躓くポイント
 ・学ぶ言語を選ぶのに役立つサイト
 ・すぐ書きはじめられるプログラミング学習サイト
 ・講義型のプログラミング学習サイト
 ・少しコードに慣れてきてからお勧めのサイト
 ・さらにスキルアップするのに最適なサイト
 ・基礎文法をマスターしたいなら(おまけ)
 ・英語が得意ならおすすめのプログラミング学習サービス(おまけ)
 ・各言語のリファレンス

プログラミング言語を学ぶときに躓くポイント

「実行環境構築するので疲れてしまい、コードを書くに至らない」
 
プログラミングをする際に、実際にプログラムを手元のPCで動かすための、ローカル環境を構築するので躓いてしまう人が非常に多いので、今回は、ブラウザ上でプログラミングがすぐ始められる「オンライン実行環境」があるサイトを中心に、楽しく、簡単に始める事の出来る学習サイトを紹介します。
まずは実際にコードを書くところから初め、ある程度書けるようになってから実行環境を作っても遅くありません。

◆学ぶ言語を選ぶのに役立つサイト

プログラミング言語人気TOP10の簡易解説
http://www.mwsoft.jp/column/program_top10.html
プログラミング言語を始める際には、必ず何の言語を学ぼうか悩むもの。こちらのサイトではそれぞれの言語の「特徴」、「長所、短所」、「たれが学ぶべきなのか」、「参考図書」という構成になっているので非常にわかりやすいです。

◆すぐ書きはじめられるプログラミング学習サイト

【CODEPREP】

お勧め度:★★★★★
対応言語:JavaScriptRubyPHPPythonRuby、HTML、CSS
http://codeprep.jp/ja

プログラムの要所を穴埋め式で記述+ヒントが示される形で学習ができます。疑似実行環境が用意されており、実行結果がすぐに出るので実行環境を用意せずに手軽に始められます。実際にコードを書く感覚を掴むのにもってこいです。

【paiza動画ラーニング】

お勧め度:★★★★★
対応言語:RubyPHP
https://paiza.jp/learning

3分程度の動画と、自由にプログラミング可能なオンライン実行環境、練習問題を組み合わせた学習サービスです。Codeprepと比較するとこちらは本当にプログラムを実行しているので、指示された以外のプログラムを書く事も出来る自由度の高い学習環境が用意されています。Ruby入門編、PHP入門編の全47回は全て無料で、演習問題や学習系ゲームが充実しており、アドバイザーに質問できる機能もついているのでオススメです。

【Codecademy】(一部英語)

お勧め度:★★★★☆
対応言語:JavaScriptPHPPythonRuby、HTML
http://www.codecademy.com/

一部日本語化されていますが、基本的に英語です。。CODEPREPに比べると若干難易度が高いので、CODEPREPに慣れてからCodecademyを試してみるとよいでしょう。

【CodeStudy(JEEK)】

お勧め度:★★★☆☆
対応言語:JavaScript
http://jeek.jp/study/exp

就活サイトの1コーナーですがJavaScriptの実行環境が提供されており、課題に従って画面上でコードを書きながらJavaScriptが覚えられるつくりになっています。コードのエラーが日本語で表示されるので、ライトにJavascriptを書きながら学ぶのには良いサービスです。

【code.9leap.net】

お勧め度:★★★☆☆
対応言語:JavaScript(enchant.js)、HTML
http://code.9leap.net/

JavaScriptをベースにしたゲームエンジン「enchant.js」を使った学習サイトです。オンラインエディタ、オンライン実行環境が用意されており、ブラウザだけで学習が可能です。サイト上でゲームを作ってコンテストに投稿することも可能です。ゲームを作りたいという方にはお勧めの学習サイトです。

【プログラミン】

お勧め度:★☆☆☆☆
対応言語:独自のビジュアル言語
http://www.mext.go.jp/programin/

文部科学省が運営している子ども向けのプログラミングサイト。ドラッグ&ドロップでビジュアル的にプログラミングが出来ます。プログラミングとはどういうものか概念学ぶのには良いかもしれません。ただWebサービスに直接使えるプログラミング技術は覚えられないので、本格的にプログラミングに取り組む前の練習としてやってみるとよいでしょう。

◆講義型のプログラミング学習サイト

【ドットインストール】

お勧め度:★★★★★
対応言語:JavaScriptPHPRubyPythonJavaPerl、C、Node.js、HTML、CSS
http://dotinstall.com/

動画でプログラムの書き方や、ローカル実行環境の作りかた、サーバ構築の仕方など、Webサービスを作るための1から10までを動画で公開してあります。まず最初にこちらで「手軽にプログラミングができるJavaScriptを覚えよう」、「Webサービスが作れるPHPを勉強してみよう」などを見てプログラミングについての全体感をつかむと良いでしょう。自分の周りにもこれを見てプログラミング始めた方が居ます。

【スクー】

お勧め度:★☆☆☆☆
対応言語:JavaScript(2014/4現在)
http://schoo.jp/guest

プログラミングに限らず、様々なジャンルの動画授業を扱っている学習サイトです。 
ノンプログラマーでも明日から使えるJavaScript簡単プログラム


【ShareWis】

お勧め度:★☆☆☆☆
対応言語:PHPJavaScript、HTML、CSS(2014/4現在)
http://share-wis.com/

動画投稿型の学習サイト。動画、理解度チェックの選択問題、という流れでライトに勉強ができます。ただ、実際にコードを書くことはないので流れをつかむレベルで考えておいたほうが良いでしょう。

◆少しプログラミングに慣れてきてからお勧めのサイト

Rubyがミニツク】

お勧め度:★★☆☆☆
対応言語:Ruby
http://www.minituku.net/

自分でRubyのローカル実行環境作ってあることが前提となっているのでハードルが高めです。Rubyをやってみようという人がドットインストール、CODEPREPで学んだ後にこちらで学ぶとよりレベルアップできるでしょう。

◆さらにスキルアップするのに最適なサイト

【paiza】

お勧め度:★★★★★
対応言語:JavaPHPRubyPythonPerl、C、C++C#、node.js
http://paiza.jp

用意された問題を解くとプログラミングスキルを6段階に評価してくれるサービスです。評価に応じて書類選考なしで面接に行けるコーディング転職サイトではありますが、プログラミング実行環境が用意されているので、すぐにプログラミングする事が可能です。学んできたことのスキルチェックや、スキルアップとしてコーディングスキルチェックを受けてみてはいかがでしょうか。

会員登録せずにプログラミング問題にチャレンジ、その場で採点されるオンラインハッカソンもお手軽に試せるのでお勧めです。最近はマンガ形式で、物語の途中でプログラミング問題が出る形になっております。
paizaオンラインハッカソンVol.5「マンガ版 俺の許嫁と幼なじみが修羅場すぎる」
paizaオンラインハッカソンVol.4「マンガ版 エンジニアでも恋がしたい」


【CODECOMBAT】 日本語版あり

お勧め度:★★★★★
対応言語:JS
http://codecombat.com/

JavaScriptをゲームで学ぶサービスです。魔導士になって兵士を操作してゲームを進めていく、という内容になっており、RPGを楽しむ感覚でJavaScriptを学ぶことが出来るのが素晴らしいです。

【AIZU ONLINE JUDGE】(会津オンラインジャッジ)

お勧め度:★★★☆☆
対応言語:C、C++, Java
http://judge.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja

会津大学が提供しているプログラミング問題サイトです。お題に対して問題を解いていく形式で、提出したプログラムをオンラインで採点してくれます。若干とっつきにくいですが、解いた問題によりランキング表示などもされるので、スキルアップ、実力チェックに良いサイトです。

【Codeeval】 英語

お勧め度:★★★☆☆
対応言語:Bash、C、C#C++Clojure、Go、HaskellJavaJavaScriptLuaObjective-CPerlPHPPythonRubyScala、Tcl
https://www.codeeval.com/

約150問程度のプログラミング問題(初級、中級、上級)が掲載されており、点数が良いと海外の企業からスカウトが来るサービスです。非常に多くの言語に対応しており、スキルアップにちょうど良いサイトです。

【Check iO】 英語

お勧め度:★★★☆☆
対応言語:Python
http://www.checkio.org/

ゲーム感覚でPythonを学ぶことのできるサービスです。ただ、新規登録時に簡単なPythonの問題が出題されたりするので、ある程度書けるようになってからが良いでしょう。ゲーム作りやWeb開発に役立つ知識を得られる問題が出題されるので、Pythonで本格的にWebサービスを作ろうとしているならおすすめのサービスです。

TopCoder】 英語

お勧め度:★★★☆☆
対応言語:Java, C++, C#, VB
http://www.topcoder.com/

世界中のプログラミング猛者が集う競技系プログラミングサイト。プログラミングはマスタしたな、と思ったらチャレンジしてみても面白いかもしれません。問題によっては賞金がつく場合も有ります。

◆基礎文法をマスターしたいなら(おまけ)

一時期プログラマーブロガーの間ではやった、プログラミング言語の文法をまとめた最速基礎文法マスターシリーズ。
この辺りになってきたら、自分で何か簡単なプログラムを組んでみるとよいでしょう。

JavaScript基礎文法最速マスター
http://gifnksm.hatenablog.jp/entry/20100131/1264934942

PHP基礎文法最速マスター
http://www.1x1.jp/blog/2010/01/php-basic-syntax.html

Ruby基礎文法最速マスター
http://route477.net/d/?date=20100125

Perl基礎文法最速マスター
http://d.hatena.ne.jp/perlcodesample/20091226/1264257759

Python基礎文法最速マスター
http://d.hatena.ne.jp/dplusplus/20100126/p1

Java基礎文法最速マスター
http://d.hatena.ne.jp/nattou_curry_2/20100130/1264821094

Objective-C 最速基礎文法マスター
http://d.hatena.ne.jp/fn7/20100203/1265207098

上記以外の言語の基礎文法一覧
http://gifnksm.hatenablog.jp/entry/20100202/1265105961

◆英語が得意ならおすすめのプログラミング学習サービス(おまけ)

【Dash】 英語

対応言語:JavaScript、HTML/CSS
https://dash.generalassemb.ly/
架空の依頼人と対話式でWebプログラミングを学習するサイトです。
日本語記事:架空の依頼人と対話式でWebプログラミングを学習する「Dash」が抜群に分かりやすい!


【Code School】 英語

対応言語:JavaScriptRubyObjective-C、HTML/CSS
https://www.codeschool.com/
ブラウザ内でコーディングできるオンライン実行環境を提供しており、Codecademyのように自由度の高いプログラミング環境で楽手が出来ます。無料版だけでなく実用性を重視した内容の有料版もあります。

【TREE House】 英語

対応言語:Objective-C、HTML/CSS
http://teamtreehouse.com/
動画+小テストによるWebサイト作成プロセスが学べるサービスです。一部無料ですが、基本は有料コースとなっています。

【LearnStreet】 英語

対応言語:Java,JS,Ruby,Python
https://www.learnstreet.com/lessons/languages/
ふつうの人が最新のWeb技術を学んで実際にアプリを作れるようになることを目指して作られたサイト。ブラウザ上の実行環境+動画、課題演習からなる学習プログラムとなっており充実しています。

【Udemy】 英語

対応言語:JavaPHP、Pyhton、JavaScriptObjective-C(2014/4現在)
https://www.udemy.com/courses/search/?q=programming&view=grid&price=free
 有料の動画学習サイトです。プログラミングに限らず幅広いジャンルの学習コンテンツが提供されています。

【KHAN ACADEMY】 英語

対応言語:JavaScript(2014/4現在)
https://www.khanacademy.org/computing/cs
無料で、英語で小学校の算数から大学教育レベルのファイナンス、化学、生物、歴史、美術、プログラミングまで学べる動画学習サイトです。

◆各言語のリファレンス

ある程度書けるようになってきたら、各言語のリアファレンス、マニュアルをみて作業するのが良いでしょう。

JavaScript
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference

PHP
http://www.php.net/manual/ja/

Ruby
https://www.ruby-lang.org/ja/documentation/

Perl
http://d.hatena.ne.jp/perlcodesample/20100808/1278596435

Python
http://docs.python.jp/3.3/

■まとめ

プログラミングを0から始めるならば、ブラウザのみで環境構築の必要なく始められるJavaScriptがお勧めです。JavaScript対応の学習サイトも数多くあるため一番とっつきやすい言語と言えるでしょう。ただしJavaScriptだけだとWebサービスを作るのは難しいので、Webサービスを作りたいのであればPHPがとっつきやすいといえます。PHPは大抵のレンタルサーバであれば動き、学習サイトもPHP対応が多く、かつ日本語の情報も多くあるため最初に覚えるには良い言語です。

最後に一つ、4ヶ月でWebサービス作った方の話です。やる気さえ有れば半年足らずでWebサービスが作れるという事に勇気づけられると思います。
自分でWEBサービスを作りたいと思っている人へ

プログラミングは講義を聞くだけではなく、手を動かしてコードを書くことが重要です。今回はオンラインで実際にコードを書いて動かせる学習サイトを中心紹介しました。是非プログラミング学習にお役立てください!(そして基礎が身に付いたら是非、我々が運営するpaizaでプログラミングのスキルを測ってみてください!)

paiza動画ラーニングについて

f:id:paiza:20160307113923p:plain
paizaには、オンラインでプログラミング学習ができるパイザ・ラーニングという無料学習コンテンツがございます!現在、PHPRubyPythonの入門編を学ぶことができますが、対応言語は今後もどんどん追加される予定となっています。

プログラミング未経験の方でも、「やさしく・楽しく・わかりやすい1本約3分のレッスン動画」 や 「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、未経験者でも無理なく学習を続けることができます。




paizaではITエンジニアとしてのスキルレベル測定(9言語に対応)や、プログラミング問題による学習コンテンツ(paiza Learning)を提供(こちらは21言語に対応)しています。テストの結果によりS,A,B,C,D,Eの6段階でランクが分かります。自分のプログラミングスキルを客観的に知りたいという方は是非チャレンジしてみてください。

http://paiza.jp

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編