僕が思う、最も効率的なプログラミングの勉強方法を解説する

Writing by Naoto

僕が初めてプログラミングを勉強したのは。大学1年の授業でした。

一体これで何かできるの?if文で条件分岐できるのはわかったけど、これでなんでサービスが出来るの?とよくわからなかった覚えがあります。

 

何も知識がない状態から、勉強をスタートした場合、多くの人は僕と同じように思うでしょう。

 

プログラミングを勉強して、何かサービスが出来ることを最初から想像できる人は少ないはずです。それ故、断念したり、間違った学び方をしてしまう人もいると思います。

 

この記事はそんな昔の僕のような人に向けて、プログラミングの最も効率的な勉強方法を紹介します。

 

因みに僕は過去に100人にプログラミングを教えてきました。学生から社会人まで、色んな生徒を見てきたので、ぜひ参考にして見てください。やってきたことなどは下記の記事に詳しく書いてあります。

TOPICS

プログラミングの効率的な勉強方法を知るために、まず何がしたいか考える。

まずは『プログラミングを学んで、何がしたい』かを明確にする必要があります。努力は方向性と量が大切だと思います。下の図のようなイメージです。

 

最短ルートで目標を達成できるように何がしたいのか決めましょう。何がしたいか決まれば、何を(どんな言語)を勉強すればいいかが決まります。

 

  • webサイトを作りたい
  • webサービスを作りたい
  • スマホアプリを作りたい
  • フリーランスになりたい
  • エンジニアとして就職したい

よくある目的がこのあたりだと思います。

 

1つずつ説明します!!

webサイトを作りたい場合

勉強する言語

  • html,css
  • JavaScript(jquery)
  • wordpress
  • php(できれば)

デザインもやりたい人はデザインの勉強も必要ですが、それはまた別の機会に書きます。

 

webサイトはLP、HP、メディア、ブログなどのことです。

 

HP、メディア、ブログはwordpressを使って作ることが多いです。wordpressは世界で最も有名なCMSで、無料や有料で様々なテーマ(サイトのテンプレートデザイン)があり、プログラミングの知識がない人でもサイトを運営することができます。

ただweb制作の仕事では、そういった既存のテーマではなく、1からコードを書いてオリジナルのデザインでサイトを作らないといけません。僕が受ける案件もwordpressを使った案件が1番多く、webサイトを作りたい人にとっては必須スキルです。

 

phpはあまり出来なくてもOKです。

ただ出来るとwordpressの高度なカスタマイズなども対応できるようになるので、仕事の幅は増えます。とはいえ高度なカスタマイズが必要なことはあまりないんですけどね。

 

JavaScript(jquery)はサイトに動きをつけるのに使います。例えばクリックしたら何かコンテンツが出てくるとか、画面に入ってきたタイミングでテキストや画像をフェードインさせるとか。案件によってはJavaScript(jquery)をバリバリ使って派手に動かすこともあるので、しっかり勉強する必要があります。

webサービスを作りたい場合

勉強する言語

  • html,css
  • JavaScript
  • サーバーサイドの言語1

webサービスは例えばECサイトや顧客管理システムなどです。

 

webサイトを作りたい場合は見た目を作れるようになればい良いのですが、webサービスを作りたい場合は裏で動くシステムも作れないといけません。裏で動くシステムとは例えば、ECサイトだと決済の部分、ログイン機能などです。

 

そういったシステムを作るためにはサーバーサイドのプログラミング言語を学ぶ必要があります。勉強するサーバーサイドのプログラミング言語はphp,ruby,pythonのどれかが良いです。1つだけで大丈夫です。

 

また、各言語フレームワークといって簡単にプログラムを作れる仕組みがあるので、その勉強も必要です。

  • phpを勉強する人はLaravel
  • rubyを勉強する人はRails
  • pythonを勉強する人はDjango

をやりましょう。

 

他にもフレームワークはありますが、出来ることや業界シェアを考えると上記がオススメです。マイナーなものをやっても案件や就職先が少ないので、気をつけましょう。

 

AIやデータ分析をしたい人はpython一択です。あまり欲張らないほうがいいと思いますが、webサイトも作りたい人はwordpressphpで作られているので、phpがおすすめです。

 

フロントエンド(html,css,JavaScriptで作る見た目の部分)とバックエンド(php,ruby,pythonなどで作るシステム部分)で仕事を分担することが多く、どちらかを極めれば十分やっていけるので、html,cssはがっつり勉強しなくても大丈夫です。

スマホアプリを作りたい場合

勉強する言語

  • swiftIOSアプリの場合)
  • java(アンドロイドアプリの場合)

スマホアプリはIOSアプリを作りたいのか、アンドロイドアプリを作りたいのかで学ぶべき言語は変わります。まずはどちらか1つを勉強しましょう。

 

php,ruby,pythonを勉強してからスマホアプリを作るための勉強をする人もいます。その手順でも良いと思いますが、スマホアプリのみに集中してもいいと思います。

 

多くの人がスマホを持ち歩くようになったので、アプリの需要は今後も増えると思います。単価も高いのでおすすめです。

フリーランスになりたい

目的がフリーランスになりたいのであれば、まずはwebサイトを作れるようになっておいたほうが良いと思います。理由はその方が案件が多いし、簡単なサイトだと早い段階から作れます。webサービスのようにセキュリティの問題などもほぼ無いので、リスクも少ないです。

 

僕は学生のときに研究や授業でjava,python,Mathematica,Rを使っていましたが、webサイト制作の案件の方が取りやすいことに気づき、独学でhtml,css,JavaScript(jquery),wordpressを勉強しました。

 

上記はあくまで作りたいものがあるとかではなく、とにかくフリーランスになりたいという人はということです。

エンジニアとして就職したい

フリーランスとは逆で就職したい場合は、サーバーサイドの勉強をした方が良いです。就職先も多いですし、給料も高いです。

 

給料だけで見たら、おそらく『フロント < サーバーサイド <= スマホアプリ』かなと思います。因みにスタートアップはrubyを使っている会社が多い気がします。

僕が進める効率的なプログラミング勉強の手順

今まで多くの人に教えてきて、至った結論が、

Progate→ドットインストールと本サービスを作る

の順で勉強することです。

 

理由や進め方を説明していきます。

ステップ1:Progateでプログラミングを知る

Progateの良さの1つは環境構築が必要ないことです。

通常プログラミングを勉強して何かwebサービスを作ろうと思うと、自分のPC内に開発するための環境を構築しないといけません。初心者の最大の難関で、ここでわけがわからなくて離脱する人も少なくないと思います。

 

Progateは環境構築をすっ飛ばして、学習できます。

コードを書いてそれが動くのを環境構築なしで、Progate上で確認できます。

プログラミングに慣れるといった意味では最適です。

 

正直に言いますが、Progateを完璧に学んだくらいではまだまだ実際に仕事をこなすのは無理です。基礎の基礎を学ぶ、プログラミングに慣れる、ものだと思ってください。なのであまり長い時間やる必要はないですし、Progateはやらずにステップ2から初めてもいいと思います。

 

この記事を書くために久しぶりにProgateをやりましたが、サービスの性質上進むのが遅くなるので、僕は少しじれったい感じがして好きじゃないです。ざっくりでもいいのでプログラミングとは何かわかったら次のステップに進みましょう。

ステップ2:ドットインストールと本でプログラミングを本格的に勉強

ドットインストールや本はProgateより少し難易度が高めです。

環境構築も必要です。

Progateをやった後はこの2つで勉強することがおすすめです。

 

必ず各言語1冊は本で勉強しましょう。プログラミングスクールの教材よりも、本のほうが詳しく書かれています。本を選ぶ際はただ文法を学べるだけではなく、なるべく何か実際に作ってみるセクションがあるものを選ぶと良いです。

 

おすすめの本はこちらです。

ステップ3:自分で1からサービスを作ってみる

ローカル(自分のPC内)で開発するだけではなく、実際にサーバーとドメインを契約してサービスとしてローンチするまでしましょう。かかる費用は2000/月程度です。無料のサーバーもあるので下記の記事を参考にしてみてください。

 

webサイトを作りたい人はwordpressを使ってブログを作るのがおすすめです。

デザインもやりたい方は自分のポートフォリオサイトを作るのもありだと思います。ポートフォリオには自分が作ったものを乗せまくりましょう。仕事で作ったものだけでなく、練習で作ったものも載せましょう。

また、仕事で作ったものは契約の内容などにより、ポートフォリオに出来ない場合もあるので、そこはしっかり確認しましょう。

 

参考サイトを載せておきます。

もちろん最初からこんなクオリティは出せなくて当然です。

 

webサービスを作りたい人は、初めは簡単な無料のサービスで良いと思います。有料のサービスになると決済が絡み複雑になるので、最初は辞めた方が良いです。

 

できれば需要があるようなサービスが良いですが、サービスで当てるのはかなり難易度が高いので、自分が使いたいと思うサービスでもいいです。

 

例えば下記くらいの規模とレベルのものが良いと思います。

  • 自分が読んだ本とその感想を投稿できるwebの本棚
  • 気に入ったwebサイトをタグをつけて保存できるサービス
  • 決まった時間に決まった情報を取得して、表示させるサイト

 

大抵の人はローカル(自分のPC内)で作って満足してしまうのですが、実際にローンチすることをお勧めします。あまりやっている人がいないのでそれだけで差別化できます。仕事を取る際や就職する際も見せれるので良いでしょう。

まとめ

僕が思う、最も効率的なプログラミングの勉強方法を紹介しました。

これに加え、もし金銭的に余裕があれば、プログラミングスクールに通うのもいいと思います。独学でも習得は可能なのですが、プログラミングスクールに通った方がその時間は短くなります。

 

少し出来るようになると、楽しくなると思うので、挫折せずに頑張ってみてください!!

 

ぜひフォローしてください!!

Twitter(@naoto_k0401)