プログラミングを独学で脱初心者する為のロードマップ

元々IT系ではなかった僕ですが、必要に迫られてホームページを作ったことをキッカケに、コードを書くようになりました。「もっと上手くなりたい」と試行錯誤をしている内に、気がつけば仕事の中でもコードを書いて業務効率化するようになっていました。そして、先日ついに初めてのiOSアプリをリリースしました。ようやく自分の中でも、プログラミング初心者を脱した感覚があり、これまでの勉強法をまとめておきたいと思います。

 

f:id:takuya0206:20180922232919p:plain

*いまや黒い画面も怖くないぞ

 

独学で身につけるプログラミング

プログラミングの上達のコツは「作りたいものを作る」ことにあると思います。僕はホームページがキッカケだったので、HTML, CSS, JavaScriptから学習が始まりました。Web系の学習は成果が見えやすく、モチベーションが保ちやすいのでお薦めです。具体的なインプット(学習リソース)とアウトプット(成果物)を合わせて記述していくので、学習者の皆さんの「このぐらい勉強すれば、こういうことが出来るようになる」という指標になれば嬉しいです。

   

1. WordPressWebsiteを作る

インプット

Codecademy

ドットインストール

書籍

アウトプット 

メモ

まず初めに、WordPressというブログソフトウェアを使ってホームページの作成をしました。WordPressPHPという言語で動いているので、一応PHPの入門コースの動画を見てみたのですが、ほとんど理解できずに意味がありませんでした。しかし、実際にアウトプットのホームページは完成しています。この"わからないけど動く"というのは大事なことだと思っていて、乱暴に言えば初めのうちは理解できてなくても動けば良いぐらいだと思います。 

僕はCodecademyというサービスを使って、HTMLとCSSの勉強をしましたが、英語が得意ではない人はProgateを使うのが良いかもしれません。両サービスとも手を動かしながら学習できるのが特徴で、とても頭に入りやすいです。HTMLとCSSできるようになれば、それだけで見栄えの良いWebsiteを作ることが可能です。WordPressの環境設定は手間ではありますが、ググると大量に情報が出てくるので、特に気合を入れて勉強しなくて大丈夫だと思います。

 

2. JavaScriptで動的なWebsiteを作る

インプット

Codecademy

ドットインストール

 書籍

アウトプット

メモ

次にJavaScriptを使って、動きのあるホームページを作りました。アウトプットにあげたのは、友人のBarのホームページを作成したときのものです。Bootstrap を中心に外部のライブラリを使って実装しています。ある程度のプログラミングの基礎を掴めば、公開されているライブラリを活用して、それっぽいものが作られるようになってきます。

このときの学習は、お手本通りに書き写す「写経」が中心でした。写経はあまり楽しい学習法ではありませんが非常に効果的です。Codecademyと書籍で基本的な文法を学び、後はひたすらドットインストールの動画を真似していました。紹介している「JavaScript本格入門 」はとてもお薦めです。初級レベルならこの一冊で良いぐらいだと思います。ホームページを公開するには、独自ドメインをとってレンタルサーバーを借りてと、JavaScript以外の知識も入りますが、Google先生に聞きながら真似するだけで事足りると思います。

 

 

3. Node.jsでWebアプリケーションを作る

インプット

N予備校

  • プログラミング入門 Webアプリコース

書籍 

アウトプット 

メモ

ここでは外部のAPIを使ってアプリケーションを作り始めました。APIが使えるようになると、一気にプログラミングが楽しくなってきます。紹介している振り仮名ジェネレーターは業務の中でも大活躍してくれました。が、独学者にとっては、この辺りが学習の一つのハードルではないでしょうか。内容も難しくなってくるので挫折する人も多いと思います。

そこでお薦めするのがドワンゴが提供するN予備校です。はっきり言って、めちゃめちゃクオリティが高いです。環境構築、コマンドラインの使い方、セキュリティなど、実践的な内容がカリキュラムに組み込まれています。N予備校で勉強しつつ、JavaScript 第6版、通称サイ本で知識を深めるというのが自分に合っていて、かなりレベルアップすることができました。

 

 

4. React NativeでiOSアプリを作る

インプット

Udacity

アウトプット (※現在はストア掲載は停止)

バクシン

バクシン

  • Takuya Tokiwa
  • Travel
  • Free

メモ

JavaScriptでもReact Nativeという技術を使えばスマホアプリの開発が可能です。JavaScriptの魅力の一つは、この言語だけで様々なことを実現できることだと思います。ES6, ES7と、コードの書き方が多少変わったりするものの、基本的にはこれまで学習した内容を活かしてスマホアプリを作ることができました。

ここではUdacityのNanodegree Prgramを受講しました。安くはないですが(しかも最近値上げをしている)、カリキュラムの充実度を考えると費用対効果は悪くないと思います。Nanodegree Prgramの良いところは、1. コードレビューがあること、2. 学習コミュニティがあること、です。独学をしているとコードレビューを受ける機会があまりないので、凄く勉強になりました。

 

おわり

以上です。最近は、大人こどもを問わず、プログラミングの必要性が社会で論じられています。僕は全員がプログラミングを学ぶべきとは思いませんが、ひとつ確かに言えるのは、プログラミングがわかると仕事が楽になる、ということです。僕は1~2年間はプログラミングを勉強していますが、その時間的投資に対するリターンは充分にあったと感じています。単純作業が自動化できますから。それになにより純粋に、モノづくりは楽しいです。PC1台から始められて、仕事にも活かせる大人の趣味。そんな風に気軽に始めてみるのも良いかもしれません。独学者の皆さん、お互い頑張りましょう!