こんにちは,学生エンジニアの迫佑樹(@yuki_99_s)です.
先日,ゲーム開発の初心者向け勉強会を開催しました.
参加者6人全員がUnityというソフトを使い,たった2時間で簡単な1つのゲームを完成させました.
さて,勉強会を開催したり,ブログでプログラミング系のことを発信していると,こんな相談を頻繁に受けます
初心者
効率的な勉強法はあるでしょうか?
1日2〜3回はこの質問が来るので,月に80〜100回ほど同じ相談を受けていることになりますw
ということで今回は,「こういう流れで勉強すると良いんじゃない?」ということを実体験に基づいて説明したいと思います
目次
プログラミング学習時の6つの手順
まずはじめに,プログラミング学習における6つの手順の大枠を理解してみましょう.
- 作りたいものを明確にする
- 何を学ぶべきかを知る
- 無料サイトで基礎学習
- 既存サービスをクローン
- オリジナルサービス開発
- リリースしてフィードバックをもらう
この手順をしっかりとやることで,受託開発で仕事を取れるだけのスキルはつくと思いますよ.
詳しくは1つずつ説明していきますが,この手順にそって勉強することで,プログラミングの楽しさを実感しながら実践的なスキルが自然につくようになるはずです.
また,この記事の内容は動画にもまとめたのでそちらをみてもらっても構いません.
手順1 作りたいものを明確にする
まず,モチベーションを高めるために作りたいものを明確にしましょう.
プログラミングでできることはたくさんあって,ゲームもアプリもWebサイトも作れるんですよ.
ただ,何をしたいかでやるべきことが少し変わってくるので,この時点で決めておくことをオススメします.
ちなみに,この『やりたいこと』や『作りたいもの』は自分の理想のライフスタイルから逆算してみてもOKです
例えば,『スキル身につけてリモートワークでゆったり仕事をしたいから,リモート案件が多いWeb系エンジニアになりたいな〜』とかも良いと思いますよ.
「リモートでゆるっと働きたいからプログラミングを学ぼう」といった意識の低い目標はとても良いと思ってます。
建前上のかっこいい目標よりは自分の欲と直結してる目標の方が達成しやすかったりする
— 迫 佑樹/プログラミング講師 (@yuki_99_s) 2018年5月21日
手順2 学ぶべきことを調べる
手順1で作りたいものが明確になったら『それを作るために何を学ぶべきか』を調べてみてください
ただ,最初のうちは『調べ方がわからない』ということも多いと思うので,周りのプログラミング経験者に聞いてみるといいかなと思います
周りにエンジニアがいない場合は侍エンジニア塾などのスクール無料体験を活用するのがオススメです.無料のものは使い倒してしまいましょう.
『何を学べば何を作れるようになるか』を知れば,やっとスタートラインにたったと言えます.
手順3 無料サービスで基礎固め
それでは,いよいよプログラミングを学んでいきましょう.
この段階でオススメしたい無料のサイトはこちら
無料学習サービスを使い倒して,基礎固めをしていきましょう.
その時に必ず意識して欲しいのが「プログラミングできたらこんなものも自分で作れるようになるのか!?」という驚きを得たり,プログラミングの楽しさを知るということ..
人間,モチベーションは一番大切で,楽しくないことを無理やりやっても絶対に続きません.
上記で紹介したProgateなど,今はゲーム感覚でプログラミングを学べるのも多いので触ってみると良いと思います.楽しすぎて一日があっという間に過ぎているはず.
この段階で意識して欲しいことは以下の3つ
- ゲーム感覚で初めてみて,『楽しさ』を知ること
- 初めのハードルは低くして,『難しそう』という先入観を捨てること
- 基礎構文に触れて,おおよその内容を理解すること
無料学習サイトを使ってゲーム感覚で勉強することで苦手意識をなくし,モチベーションを高めながら基礎をマスターするのがこのフェーズです
学びが楽しいと思えれば,自然に学び続け,スキルも自然についてくるはず.
この無料サイトもあなどることはできなくて,2・3周すればかなり力つくのでオススメですよ.
ちなみに,分厚い本を買って勉強するのは,だいたいの人が挫折するのであまり推奨できません.
僕も中学生の頃,はじめてのプログラミングでJavaの分厚い本に手を出して,数ページ読んで挫折しましたw
手順4 既存サービスをクローンしてみる
無料サイトを活用して,一通りの基礎文法を学んだ後はいよいよ実践的なスキルをつけていく段階に入ります.
学びたてのスキルを使えるスキルにするには,まず何かを作ってみるのが一番手っ取り早いんですよね.
例えば『Webサービスを作ってみたい』という人であれば『Twitterと同じ機能を持ったサービスを開発してみる』というのでもいいと思います.
この『既存アプリを模倣する』というやり方は大手プログラミングスクールのTechAcademyでも採用されていて,Instagramのクローンアプリを作るようなカリキュラムになっていたりするんですよね.
『模倣する』とはいっても,学べることはかなり多いのでかなりオススメです.
手順5 オリジナルサービスを作ってみよう
ここまできたらかなり実力は付いていると思うので,オリジナルサービスを作っていく段階に入ります.
最初の段階では,『既存のサービスを少し改善して自分なりのサービスにする』という形で大丈夫ですので,気軽に考えてくださいね.
ここで大切なのがクオリティが低くてもいいからとにかく完成させるということ
もっとも大事なのが,小さな成功体験を積み重ねていくことなんですよね.
完璧を求め過ぎてしまうと,どうしても完成前に挫折してしまうことが多くなるのでまずは70%のクオリティでいいから完成させてください!
例えば私は以前,「Twitterでいいねきた数だけクソアプリを作ってみる」なんて企画をやったんですがめちゃめちゃ実力付きましたからね.
手順6 リリース・発信・アウトプットをする
最後に大事なのが『しっかりアウトプットをする』ということです.
もっとも単純なアウトプット先として,手順5で作ったオリジナルアプリをリリースしてSNSで発信してみるというのがオススメです.
実際にリリースして発信することで,ユーザからのフィードバックを得られて,改善点なども多く発見できます
例えば私の場合は,オリジナルサービスを作ったらリリースしてアプリコンテストなどに出してフィードバックをもらったりしていました
考えてみれば,アウトプットのやり方ってたくさんあるんですよね
- 作った作品を公開して,SNSで発信してみる
- 学んだことをブログで公開してみる
- 初心者向けの勉強会を開催してみる
- ライトニングトークなどでプレゼンしてみる
オリジナルサービスを作り終わったあなたは,もう初心者の域は卒業し終わっているはず.
あなたが学んできた過程や,知っている知識を共有することで初心者プログラマを助けながら思考を整理することができます.
プログラミングスクールってどうなの?
勉強法について説明すると,セットで受けるのが以下の質問
初心者
少し高いような気もしますが,いったほうがいいのでしょうか?
僕個人としては『基礎をおさえた上で学習効率をあげたいのならいくべき』という考えを持っています
プログラミングスクールでは,独学だと半年とかかかるところを1ヶ月でやるようなカリキュラムになっています.
そのため,学習効率はとても良いのですが初心者にとっては少しハードルが高いんですよね
今回の学習手順でいうところの手順3まで終わった段階であれば,プログラミングスクールにいくのはかなりオススメです
私の場合,テックアカデミーやTECH::CAMPなどのプログラミングスクールに通って知識をつけました.
プログラミング学習時,初心者はプログラムのエラーを直すのにひどい時だと丸一日かかってしまうことも多いです.
プログラミングスクールで先生に聞けば,たった1分で解決することも少なくないのでうまく使えばスキル習得にかかる時間をだいぶ短縮することができます.
スクール体験談に関しては別記事でしっかりまとめているので参考にしてくださいね!
また私が各スクールの卒業生であることから,当ブログの読者の方には特別に紹介者割引も適用できるのでご活用ください.
一通りこのやり方をやった後は…
この6つの手順を終えると,かなりスキルはついているはず
そこからは自分で仕事をとったり,オリジナルサービスをブラッシュアップしたり,開発系バイトなどをやるなどしてスキルをブラッシュアップして行くと良いです
クラウドワークスみたいなサイトを使えば普通に実務経験なくても仕事取れたりするのでオススメですよ.
私が初めてフリーランスとして受注した案件は,「クイズアプリの開発」でした.その程度だったら,2ヶ月くらい学べば作れるものですし,実際そこまで凄腕エンジニアになる必要なんてないんですよ.
「お金を稼ぎながらスキルアップして行く」というフェーズに入ることができれば,指数関数的に実力がつくと思います.
エンジニアは本当に足りていないため,スキルが多少低くても仕事とかは取ることができます.
大学生の私ですらフリーランスとして1本145万円の案件をとったことがあるくらいなので,スキルさえつければなんとでもなる業界なんですよ
まとめ
いろいろ長々と説明しましたが,再度まとめると以下の手順を踏めば誰でもエンジニアになれます.
- 作りたいものを明確にする
- 何を学ぶべきかを知る
- 無料サイトで基礎学習
- 既存サービスをクローン
- オリジナルサービス開発
- リリースしてフィードバックをもらう
そして,この6手順の後は個人で仕事をとったり開発系アルバイトをするなりで技術を高めて行くきましょう.
今回の私の手順では『実際にものを作る』というのにかなり多くの時間を使っています
プログラミング学習においては『自分で手を動かしてどんどん色々なものを作って行く』というのがもっとも効率のいい勉強方法なんですよね.
既存サービスをクローンしたりオリジナルサービスを作る上では,いろいろなことを調べるはずです,しかも高いレベルで.
基礎を大事にしつつ,たくさんアウトプットしていくこの勉強法,大変かもしれませんが確実にスキルは上がりますよ!