こんにちは。TechAcademyの小嶋です。

近年、様々な分野が急速にIT化を進めています。そのなかで、プログラミングスキルを持っていると就職において大きな強みになります。
どのような職種であれ、Webやアプリは何かしらのかたちで関わることになるでしょう。
特にWeb業界にいる多くの方は、プログラミングスキルの重要性を感じているのではないでしょうか。

今回は、これからプログラミングの学習を独学で始める方向けに、オススメの無料の学習サービスと学習を継続するためのコツをご紹介します。
 

プログラミングとは

プログラミングとは、コンピュータのプログラムを組み立てる行為、つまり*「コンピュータに特定の動作を行うように指示をする」*ことです。
人間であれば英語、日本語、中国語など様々な言語を駆使して指示します。
コンピュータの場合もコンピュータ用の言語を用いることで指示を与えることができます。

例えば「電源ボタンを押したらPCが起動する」という動作は、裏側で「電源が押されたら起動する」という内容のプログラムが組み込まれているから成立しています。

Webサービスやスマホアプリを自分で作ろうと思ったら、プログラミングのスキルを身につけなければなりません。
 
 

学習サービス

1.ドットインストール

画像5.png
http://dotinstall.com/

プログラミングの学習ではコードを書いて構文を覚えることも大事ですが、まずそれらの言語の構造や開発環境の構築方法など仕組みから学習することも重要です。
「
ドットインストール」では、実際に操作している画面を動画で見ながら学ぶことができるため、使用ソフトのインストール方法なども詳しく理解することができます。
自分のペースで進められるのも独学の良い点でしょう。

 

2.Progate

画像6.png
https://prog-8.com/

次に実際にプログラミングを書いてみて、構文などを覚えるときにおすすめのサービスです。
様々な言語に対応しており、「スライドでの学習→コードを書いて実践」という形式になっています。

また、どのレッスンも導入の部分は無料で受講できるためまずは最初の部分だけでも触ってみるのも良いでしょう。
プログラミングのスキルを身につける上で重要なのは自分の手を動かすことです。

ある程度基礎ができたきたら、以下でご紹介するサービスを使い始めてみると良いでしょう。

3.Qiita

画像7.png
https://qiita.com/

「Qiita」は、ユーザー同士がお互いに情報を交換するサービスです。
自分の興味のある分野をタグとして登録しておくと、他のユーザーが投稿したそれに関する情報を閲覧することができます。

学習サイトで習う構文や関数の基本的な使い方や意味だけでなく、それらを使用して「具体的にこういったことをしたいときはどうすればいいか」というような調べ物をするときに役立ちます。

 

4.paiza

画像8.png
https://paiza.io/?locale=ja-jp

「paiza」はエンジニアを目指す人向けのクイズ形式のサイトです。
練習問題も単純な穴埋めだけではなく、問題文を読んでどういう処理をしなければいけないかという部分を自分で考える必要がある場面も出てくるようになります。


現在の実力の目安が具体的に分かるようにもなっているため、より難しいことに挑戦していきたい場合にもおすすめです。

また問題を解きながら進行していくユニークなゲームも複数存在し、楽しく持続できるようになっています。

画像9.png
(※画像は「もし次の常駐先が女子エンジニアばっかりだったら」のプレイ画面です)

 

書き方が分からなくなったり、つまずいてしまった時のお助けサイト

1.StackOverflow

画像11.png

http://ja.stackoverflow.com/

「StackOverflow」は、世界中のプログラミング学習者が利用しているQ&Aサイトです。「こんな状況なんですが...」と画像を貼るだけでも親切に教えてくれる人が多いので、作業をする中で詰まってしまったら利用すると良いでしょう。
エラーをそのままGoogleの検索窓にコピー&ペーストすると海外のStackOverflowが検索上位に出てくることが多いですが、英語が分かる方には非常に役に立つサービスです。

2.teratail

画像10.png
https://teratail.com/
「teratail」も「StackOverflow」同様、プログラミング専門のQ&Aサイトとなっています。
回答率も90%以上あり、どんな質問をしても短時間で回答が得られるというのが特徴です。初めて利用する人でも質問しやすいように質問テンプレートが揃っています。

 

息抜きに使えるサービス

1.CodeCombat

画像12.png
https://codecombat.com/

「CodeCombat」はプログラミングの学習教育のために作られた、遊びながらプログラムの知識を深めることができるサービスです。
画面に出てくるキャラクターをコードを入力しながらその場で実際に動かし課題をクリアしていきます。
ボリュームもあり長く楽しめるため、ちょっとした休憩に触ってみるといいかもしれません。

 

2.Scratch

画像13.png
https://scratch.mit.edu/

「Scratch」は用意されたスクリプトを組み合わせて自由にゲームを作成・共有することができる学習サービスです。
構文や用語を学ぶだけではなく、実際にこういうことができるようになるというのを形で楽しむことも大切になります。
海外では子供向けの授業やイベントでも使われているので、遊んでいる感覚でプログラミングの概念を理解することができるでしょう。

 

プログラミング学習に挫折しそうになったら・・・

プログラミングはどの言語を学ぶ際でもある一定の時間が必要であるため、長く持続できる環境があることがとても重要です。
基本的な構造は理解したけれどそこから先に進まなかったり、そもそも全然理解できずにやめてしまったりしないための方法をご紹介します。
 

真似から始める

初めのうちは、コードを書いても書いていることが何を意味するのか分からないことが多々あります。まずはネット上にあるソースコードを真似して書いてみて、書いたものが動く喜びを味わいましょう。

いきなり難しいものをゼロから作ろうとすると、つまずいた時に解決方法が分からなくなり、途中でやめてしまう人が多くいます。
まずは簡単なものでも良いので、コードを真似して書いてみましょう。
 

自分で作品を作ってみる

HTML/CSSならWebページをひとつ作る、Javaなら簡単なアプリケーションを作成するなど具体的な目標をひとつ設定します。
プログラミングだけでなく、何の勉強もそうですが、何か目的がないとモチベーションが維持できないことは多いでしょう。

プログラミングを挫折せず続けられる人は、最終的に作りたいものが明確でイメージしながら勉強している傾向にあります。
自分が今必要としているもの、欲しいと思うものを作ることが学習を持続させるモチベーションになるでしょう。
 

アウトプットする場を作る

SNSでも友達同士でも、とにかく人に見てもらうことで勉強を持続させることができます。

もし自分で作りたいものがない人は、進めている内容を友達に見せるといった環境を作ることが大事です。
同じようにプログラミングを勉強している友達がいれば、週に1回程度集まって共有する場を作ると良いでしょう。

学校の宿題と同じように期限やアウトプットする場が決まっていれば、自然と学習する習慣もつくはずです。
 

まとめ

プログラミング学習は、語学やダイエットと同じように目標や学習スケジュールを設定することがとても大切です。

そして最近では、初心者にも学びやすいサービスもどんどん増えてきているので、活用しない手はないでしょう。手軽に始められるのが独学の良さだと思いますので、ぜひプログラミング学習に役立ててみてください。