ブログ記事一覧

プログラミング初心者が3ヶ月でマスターするトレーニング方法

Top

こんにちはスキルハブの吉田です。
今年こそプログラミングをマスターする!そう思っている方も多いと思います。「やってみたけど、挫折してしまった。。。」「どこから手をつけていいのかわからない」など良く聞く話です。

ここでは、そんな方たちのために、プログラミングを短期間でマスターする方法をお話しようと思います。今からあげるトレーニングをだいたい1日3時間、2〜3ヶ月間続けることによって、基礎的なプログラミング技術をものにすることができます。

私自身はけっこう大人になってからプログラミングをはじめました。最初はなかなか理解することが難しかったのですが、これから紹介する「初心者プログラミングマスター7つのステップ」方法を実践したことで、けっこう良い感じでマスターすることができました。今ではこのサイトである「Skillhub [スキルハブ]」はもちろん複数のサイト(請負仕事で)のコードを書いています。それでは、「7つのステップ」少し長いですがお付き合いください。

目次

STEP1 入門書を1冊やる…分厚い本を買わない!
STEP2 フレームワークを覚える
STEP3 制作を進めるための7つのステップ
STEP4 基本に立ち返る …7日間徹底してやる
STEP5 応用的な本に目を通す(レシピ本など)
STEP6 ふたたび制作(アプリのブラッシュアップ)
STEP7 コミュニティに参加する

[1週目] STEP1 入門書を1冊やる…分厚い本を買わない!

当たり前なのですが、まずは入門書でしょう。ここで絶対にやってはいけないのは「分厚い本を買わない」ということです。できるだけ薄いものを選びます。「500ページで3000円!コスパいいね!」みたいな感覚で買わないことです。基準としては評判のいいものでページ数の少ないやつ。それがあればベストでしょう。

あと初心者にやさしく見せるために絵を多く入れているもの、かつキャッチーな感じのものもあるのですが、それも注意が必要です。絵があるから解りやすいということはありません。むしろあまりよくない場合が多いです。変に余計なイメージがついてきて、むしろ混乱することが多いのです。

絶対的なプログラミング勉強方法「写経」

プログラミング学習の基本は「自分でコードを書く」ということです。ただ読むだけではなくしっかりと「書く」こと、これが一番大切です。書くことでコードをカラダで覚えることができますし、「あ、動いた!」なんていう感動も味わうことができます。なので、とにかく書く!それが基本でありプログラムをマスターする唯一の道です。

このとにかく書くという方法は「写経」と呼ばれ、中上級者になっても勉強の一環として行っています。他人の書いたコードは一番勉強になりますし、コードを理解する一番の方法はこの「写経」と呼ばれる、コードを写すという作業なのです。

期間は1週間以内(短ければ短いほどいい)

この期間はできるだけ短くした方がいいでしょう。入門書を何度も繰り返し読んで、コードを写すというのはけっこう「苦痛」ですよね。根気があって、わりと単純な作業に耐えられる人であれば、もう一度繰り返しやるのもいいですが、なかなか難しいし、ここで挫折したくないですよね。なので、「まぁ、わかったかな」くらいの状態で構わないので、次に進みましょう。もっと楽しいことが次には待ってますよ。

[2-3週目] STEP2 フレームワークを覚える

フレームワークを覚える理由は「楽しみながらマスターする」

Step1を終えた段階で「最低限の技術は身についている」という状態とは言えませんね。でも「だいたいこんなものかな?」というイメージを持っている状態になっていると思います。けっこう職場の先輩とかだったら「お前、あと2回は読めよ」とか「次はプログラムはなぜ動くのかって本読めよ」ってなことを言われたりする場合もありそうですね。「じゃないと理解したとは言えないよ」なんて言われたりもするかもしれません。

しかし、そういった生真面目なやり方と言いましょうか、回りくどいやり方はリスクが大きいと思ってます。精神的に続かないし、挫折してしまう確立が高くなってしまう。やっててもまったく面白くないですからね。

ようするに、すぐに何かを作っちゃいましょう!ということです。作るのは楽しいですからモチベーションはあがりますよね。で、作っていると、そこから必要になることが見えてきます。そうすると心から「これ覚えなきゃ」「勉強しなきゃ」と思えることが出てくるはずです。そう思った時にやればいいのです。そうすれば、3回我慢して読むよりもよっぽど高い効果が得られるでしょうし、途中で投げ出して辞めるということはありませんよね。

フレームワークとは

フレームワークとは、何かを作るときに「良い方法」を提供してくれるもののことを言います。例えばRuby on Railsやdjangoでしたら「Webアプリケーションをつくる良い方法」を提供してくれます。Railsでしたら「RailsWay」と言って「こうやってRailsのお作法に乗っ取ってやれば上手に作れるんだよ」というものを提供してくれるわけです。
そういったフレームワークに乗って、何かを作り上げるほうがクオリティも高いものになるし、すぐに完成までたどり着けます。なので、本当に楽しい部分を味わうことができるのです。この「楽しい、ワクワクする」といった気持ちを味わうとモチベーションがグッと上がります。

フレームワーク勉強方法と期間(3週間以内)

これも「なるべくページ数の少ない本」を読むということでしょう。そして、しっかりとコードを自分で打ち込むこと。写経することですね。フレームワークの本というのは、あまり出版されていない場合が多いので、その場合はWebサイトで学ぶのもいいでしょう。でも、なるべくだったら本がいくつか発売されているフレームワークを選択するといいでしょう。

フレームワークを修得するということは、けっこう時間がかかります。言語の基礎を知ることの倍はかかると思っていいでしょう。もしWebアプリケーションの場合であれば「プログラミングの進め方」に加えて「バージョン管理」「テストの仕方」「デプロイ」など、Linuxを知らなければ、それらの基礎、などたくさん知らないことにぶつかるでしょう。それらを完璧に理解する必要はありませんが、先に進むために少しは理解する必要があります。そういったところで時間がかかるのです。

しかし、ここでも必要以上に時間をかけてはいけません。これも最長で3週間くらいを目安に終わらせます。「あー、終わったけど、ぜんぜんわからん。。。」でもいいんです。なんとなくのイメージが出来上がればすべてはオーケーです。不安かもしれませんが、次の「実際につくってリリースする」に進んでください。


[4-7週目] STEP3 実際につくってリリースする

いよいよ一番楽しいところに来ました。自分で創りたいものを考えて、実際にそれを創り、さらにはリリースしてみんなに使ってもらう!ということにトライします。これは、かなり大変かもしれませんが、やりとげると一段階レベルが上がると思っていいです。

人に使ってもらうということは大変なプレッシャーがかかりますし、ほんとうに「怖い」ことです。本来であれば「えー、もっと先にしてよー」と思うかもしれませんが、これを早くに体験しておくほうが絶対にいいのです。リリースすることを前提に制作にとりかかることで「恥ずかしいところは見せられない」「どうせならいいものを創りたい!」そういう気持ちになるはずです。それと同時に「達成できなかったらどうしよう。。」という「怖さ」が出てきます。そういう状態になれば必死になってやりますよね。それが本当にリリースするということのねらいです。

とは言っても、生き死にをかけてるわけではありませんし、会社をクビになることはありませんので、そこまで状態をどうやって作るのかということが問題です。次ではプレッシャーがかかりながら実制作する方法を解説します。

制作を進めるための7つのステップ

1.友人を思い浮かべて「創りたいものを決定する」

まずあなたの回りの人を思い浮かべてください。その人達が困っていることや、あったらいいなぁと思っているものはなんですか?「萩原だったら、知らない人が気軽に飲みに行ける仕組み」「吉田だったら音楽をディープに語り合う場」であるとか思い浮かべる友人によって様々なことが頭をよぎるのではないでしょうか。そのような人たちが3人以上使いたくなるようなものを考えましょう。そして「手描きのモックアップ」を創ってください。それが第1歩です。

2.期限を確定する(1週間〜2週間)

想定されるものが完成するまでの期限を決めます。これは1ヶ月などと長くしてはいけません。1週間から2週間の間くらいがちょうどいいでしょう。もしこの期間で収まらないようであれば、アプリを見直します。ようするに、もっとシンプルなものにするよう見直します。

3.宣言する

そして宣言してください。手描きのモックアップを見せて「こんなの作るんだけど、完成したら使ってみてよ」と身近なまわりを巻き込みます。たいていは「お、いいね、やるやる、いつ出来るの?」という反応になるので、そのときに期日をはっきりと言います。「来月の1日にリリースするから、出来たら案内するよ」ってな具合がいいでしょう。最低3人以上にそれを行なってください。

4.作り始める

プレッシャーがかかってる状態で、さらに宣言して友達の反応を見たことでモチベーションもアップしていると思います。そうなったらしめたもの「開発」をスタートさせましょう!今まで勉強してきた本を傍らに置き、それを見ながらとにかく作ってください。そして、忘れてはいけないこと「必ず締め切りを守る」ということです。不完全でもいいんです、バグだらけでもいいのです、とにかく完成させることを目指してください。

5.リリースする

いよいよなんとか完成しました!友人に見せられる状態にするためにデプロイ(サーバーにアップ)します。そのURLを確認して、いよいよ友人にメールする時がきました。「○○様 完成したので使ってみてください」というメールをしましょう。もしくはチャットの方がいいかもしれません。チャットしながら説明するとスムーズに進むので。

6.フィードバックを得る

使ってもらった感想やアドバイスをもらって、それを何かテキストファイルとしてまとめます。初めてなのでボロくそ言われるかもしれませんが、もしかしたら「いいねぇー!」なんて言われるかもしれません。それらをすべてフィードバックとして保存しておきましょう。

7.改善案を考えて、4に戻る

フィードバックをもらって終わりという訳ではありません。フィードバックをもとに次のバージョン2の企画をします。常に改善をしつづけアプリをいいものに仕上げていきます。4〜7の手順をずーっと繰り返して、よいアプリにするということですね。
ここまで出来たら「ああ、もっとこの知識が必要だよな」「これ知ってれば楽だったよな」ということが出てきますので、次のステップ「基本に帰る」を行います。


[8週目] STEP4 基本に立ち返る …7日間徹底してやる

実際のアプリケーションなどをつくって、プレッシャーのかかった本格的なプログラミングを経験したあとは、必要なことを痛感していることでしょう。このタイミングで「基本」をイチからやり直します。最初に買った本を「写経」し直します。きっと今回は「おお!意味がわかるぞ!」という状態でスラスラと進められると思います。最初は1週間かけてやりましたが、今回はその半分以下の3日以内で簡単に出来てしまうでしょう。

STEP4で実制作をしたおかげで「あ、この配列を回すってのはよくやったなぁ」とか「あ、オブジェクトってこういう意味なのかも」なんていうことを心から実感できます。なので、応用的なことも自分でやってみたりして、学習を深めましょう。1日3~4時間くらいで3日で終わらせるのを目安としてください。 もしかしたら3日間でも長いくらいかもしれません。時間がとれて一日で終わってしまったよ。というのであれば、次に進んでいいでしょう。


[9週目] STEP5 応用的な本に目を通す(レシピ本など)

応用的な本を一冊なにか購入します。レシピ本などがいいかもしれませんね。フレームワークのレシピ本ではなく、ここでは「言語のレシピ本」になります。Rubyであれば「Rubyレシピブック」などがあります。レシピ本には「こういった場合には〜する」みたいな、問題と解決方法という形式で書かれています。多くの人が「これしたい!」という事がたくさんあり、そのやり方が載っているわけですね。なので、それに目を通すことは非常に有意義です。基礎と違ってほんとうに役立つ実践的なことが多く載ってますので、おおいに参考になるでしょう。

これらのレシピ本は、分厚いものが多いので、書経する必要はありません。すべてに目を通し「何ができるのか」を知ることに集中してください。もちろんコードもよく読んでくださいね。このレシピ本を読む目的は、制作時に「あ、これならレシピ本のここに出てたかも」と思えるくらいになればいいのです。

期間は3〜5日間を目安にしてください。分厚いのでなかなか読むのは大変ですが、ここはがんばってすべて読み通してください。先程も言いましたが「何が出来るかを知る」ということが目的なので、大いに読み込む必要はありません。ちょっとわからなくてもスピードを持って読み進めてください。


[10-12週目] STEP6 ふたたび制作(アプリのブラッシュアップ)

2度めの基礎固めを行なって、さらにレシピ本を読み終えたので、かなりできることの範囲が広がっていると思います。こんどは、それらの知識を実際に使いましょう。頭の中にある「知識」はまだ眠っている状態だと思ってください。この知識を呼び覚まし「実際に使う」ことで、それは「技術」に変わります。この実制作を通して「知識」を「技術」に昇華しましょう。

すでにアプリをリリースした状態になっていますよね。それを改善します。レシピ本などからインスパイアされて、いろいろなアイデアが湧いてきているのではないでしょうか。それを改善案に加えていきましょう。 手順は以下の通りになります。
1. フィードバックから改善案を考案する
2. 手描きのモックアップを作成する
3. それをもとにアプリを制作する
4. 完成したら友人にメールする
5. フィードバックを得る


STEP7 コミュニティに参加する

言語にはたくさんのコミュニティが存在します。日本全国のみではなく世界的なコミュニティがかく言語であります。例えばRubyであれば世界各国にもちろんありますし、関東だけであっても各地にRubyコミュニティがあります。他の言語ももちろん素晴らしいコミュニティが存在します。

それらを見つけて参加することがこのステップです。そうすることで、横のつながりを作ることができます。たいていは優しい人たちの集まりなので「おお、よく来てくれましたね!」という具合に歓迎してくれます。参加していると本には書かれていないような「最新の情報」や「便利な開発方法」などのTipsを得ることができます。親しくなってくると「質問」などもできるようになります。

まわりに何か頼れる人がいるのは心強いものです。そして、同じことに興味がある仲間といっしょにいることは、とても楽しいですよね。コミュニティはかなり活発なので、いたるところで活動しています。それを見つけて参加してみるといいでしょう。

コミュニティの見つけ方

コミュニティは「勉強会」というイベントを開催しています。その勉強会を探すことがコミュニティを探す良い方法になります。Googleで「Ruby 勉強会」と検索してみましょう。するとたくさんの勉強会が表示されるはずです。それらを見ていって良さそうなものをひとつ探し、勉強会に参加してみましょう。
他の方法としては「IT勉強会」というサイトがあります。そこにはたくさんの勉強会スケジュールが載ってますので、それを使って探すのもいいでしょう。

最後に

以上がプログラミング技術を身につける方法です。プログラミングは実に奥が深いので、これで終わりということがありません。初心者から覚えるのは大変ですが、この手順を繰り返すことで「最短距離」を通ることができます。いちどコツを掴んでしまえば、すごく楽しいし「ああ、コードが書きたい!」と思うようになります。ここまでたどり着けるように楽しみながらがんばってください!

【オンライン&オフラインで身につく】たっぷり30日間のRuby on Railsブートキャンプ!

<オフライン>と<オンライン>を組み合わせました。この2つを適切に組み合わせることで短期間で最大限の効果を得ることが可能です。

詳細を見る


Skillhubの【初心者からOK】なプレミアムプラン

Skillhubではプログラミング初心者もOKなプレミアムプランを用意しています。Webサイト制作技術から集客、マネタイズまでを学ぶことができます。起業したい人はもちろん、結果を出すWebサイトを作りたいという方にも最適です。
Web起業サポート・プラン【じっくり6ヶ月コース】


Mitsu

吉田光利

株式会社スキルハブの代表。企画・運営、デザインからプログラミング、システム構築までを手掛けているオールラウンドなクリエイター。Skillhubのシステムをひとりで構築。著書に「企業のWeb技術:日本実業出版社」がある。

Twitter: @happa

Mail: m.yoshida@skillhub.jp

吉田 光利
日本実業出版社

Skillhubの購読にはFacebookが便利です

Twitterでお得な情報配信中


コメントするにはユーザー登録が必要です。ユーザー登録するとすべての講座を受講する事ができます。

ユーザー登録(無料)

Nao Kuroishiがいいねといってます。