プログラミングって挫折しやすいんですよね。
今の会社に入社する前に、技術書を買って何度か挑戦はしたのですが、本に書いていることが全く理解できず、最初の数ページですぐに挫折してしまう経験をふと思い出しました。
挫折してしまった原因として考えられるのは、
- 書いていることがなかなか頭に入らない(理解できない)
- 単なる写経なので、本に書いてある通りにPCが反応しなくなったら即ツミ
- 参考書が初心者にとっては分厚すぎるので苦痛しかない
- 全く面白くない。楽しくない。
- そもそも何が作りたいのか、プログラミングで何ができるかもよくわからなかった。
このあたりがあげられると思います。
技術書を買うまではモチベーションMAXなわけですよ。
自分の愛機Macbook Proでカフェで猛烈にコーディングしまくっている自分が想像できているわけですよ。自分の仮想現実の中で、夢中でプログラミングにはまっている自分に酔っているわけです。
そのためにPCを買いましたし、スタートダッシュはバッチリでした。
なのに続かない!!
やりたいのに続かない!!
なぜや!!と。笑
気づけば、プログラミングから離れてしまい、忘れた頃に再挑戦→挫折→(無限ループ)という繰り返しを行っていたと思います( ;´Д`)
さて、プログラマーとして入社して約半年ばかりたった今になって思うことは、プログラミングの勉強方法はちょっとコツがあるかな〜、なんて思うことがあったので、今回のエントリーを書こうと思います。
プログラミングは楽しくてなんぼ
プログラミングってそもそも楽しいことなんです。
必死に歯を食いしばりながら、参考書を睨みつけて勉強するもんじゃないんです。
まず勉強に苦痛を感じているなと思ったら、自分の勉強法を見直してみましょう。
そもそも何のために勉強しているのか?
プログラマーになりたいから?
会社の同僚を負かしたいから?
お金のため?
そのようなことがモチベーションであるのなら、プログラミング本来の作る楽しさを味わうことはできません。
人より優れようと思う気持ちからする努力は、私の経験上、とても辛いものです。
人は自分の思い通りにはいきませんし、自分の努力と比例して結果が出るものでもありません。
うまくいく場合はそれでいいですが、もし努力してもいつまでも結果がでない状態が長く続くようでしたら「自分はプログラマーに向いてないな…」などという劣等感を感じてしまい、しまいにはプログラミングを辞めてしまうという事態にもなりかねません。
せっかく自分がやりたいと思って始めたプログラミングなら、それを他人との優劣で諦めてしまうのは本当にもったいないことなんです。
ぜひプログラミングは楽しいということを前提に勉強に取り組んでみましょう。
すべてを理解するなんて絶対にムリ!!
知らないと理解できないことは当たり前なんです。そもそも全くの初心者が全てを理解しようと思ってもできるわけないんですね。技術書の頭から全て理解してやろうと思って意気込んでやってもすぐに息切れしてしまうのが落ちです。
ここは多少楽観主義くらいの方が、フットワークが軽くプログラミングの学習に取り組めるかも知れません。
逆に完璧主義な人ほど、勉強に向かうまでのスピードが遅いんじゃないのかな〜なんて思う今日この頃です。
やりたいと思った瞬間にトップスピードでPCに向かう。
PCのモニターがついた瞬間に、コードを書き始める。
それくらいのスピード感を意識しながら勉強をすれば、今まであれだけ勉強したくないと思っていたことが意外にもできていることに驚くことでしょう。
プログラマーって覚えることが膨大なんで、初心者はとても大変なんですよね。
学び始めてすぐに苦しくなって挫折してしまうのも、正直無理ないと思います。
それでもプログラミングって本当に楽しいものだと思うんです。
まだ本格的にプログラマーになって半年も経っていないですが、その片鱗くらいは感じられるようになってきましたし、twitterなどでいろいろ情報収集していると本当にプログラミングを愛しているんだなぁと思える人がたくさんいます。
もしプログラミングがきつい、苦しい、楽しくないと思っている人がいるなら、一度、外に目を向けて見て、自分の模範となる人を探して見てもいいかも知れません。
楽しくするには、「作る」こと
さて、本題のプログラミングの勉強を楽しくする方法ですが、ポイントは「作ること」です。
「ああ、またその話ね〜」と思ったあなた。本当に自分で何か作ったことがありますか?
何もアプリを開発して、リリースしろとか言っているわけじゃないんです。
自分のできる範囲のことで、何か作ってみるってことが本当に大切なことなんです。
全くの初心者はもちろん写経から入ります。
それで簡単なコードを3つほど、参考書に乗っている通りに書けるよう何回か練習するじゃないですか。
何でもいいです。比較的簡単なもの、この機能は面白いと興味をもったものなどなど。
参考書は冒頭からクソ真面目にやる必要もありません。自由に自分のやりたいところをつまみ食いして勉強します。
それでいくつか参考書を見ずに書けるようになったコードがありますよね?
それがあなたの技術なんです!
ミュージシャン風にいえば、それがあなたのフレーズ!手癖!
そんで何をするかと言ったら、その持ち合わせの手癖フレーズを組み合わせて何か作れないかと考えることなんです。
この考える時間が本当に超重要なんです!
写経する時間より、何が作れるか考える時間が本当に大事です。
これは実際に自分がこの半年で学んできたことですが、ただ単に本に書いてあることのインプットや写経ばかりしていても、いまいちプログラムのスキルって上がった気がしないんですよね。
もちろん知識はある程度増えますが、成長が早くないというか、そもそもプログラマーとしての根本的なことが何か抜け落ちている気がするんです。
その根本的なことって何かと言われたら、間違いなく創造性なんですよね。
何かこれを作りたいと思っても初心者はなかなか自分の思うものを作れないと思います。
何を作ったらいいかわからない、
むしろプログラミングで何が作れるのかもよくわからない人って結構いるのではないでしょうか?(自分がそうだった…)
何か自分で作ることの重要性はわかっているのですが、何が作りたいかわからない、何が作れるかもわからない。
何か勉強はしているが、いつまで経ってもプログラマーとして成長を感じることができない人って多いと思うんですよね。
ただ単調に技術書に乗っているコードをすべて写経するだけじゃ、いつか挫折してしまいます。
なぜなら、頭の使わない写経はフィジカル的な練習になってしまい、身につくスピードが遅くなりがちだからです。
せっかく写経して身につけた技術でも、実際に自分で自由に書けないと全く意味がありません。
その練習も含めて、自分が今までに身につけた技術を組み合わせて何か作れないかと考える時間こそが最も価値ある勉強なんです。
小さな円を描け
成長するポイントは目標を低くすることです。
人はつい目標は高く設定してしまいますが、自分の現段階のレベルに見合わない目標を設定してしまいがちです。
最速でこの技術書を終わらして、人の何倍も成長してやるとか典型的ですねw
もちろん、それをこなせる人はいいのですが、自分のような凡人は今までの人生で100%こなせたことはありません。無理やりこなせたとしてもそのうちの2割も身についていないことが多かったように思います。
人より優れたいから大層な目標を設定するのではなく、今の自分より成長できる確実な小さな一歩を目指しましょう。
今、目の前にある参考書のたった3行ほどのソースをまずは自分の手を動かして書いてみて、それを覚えるまで何度か繰り返すことです。
それを繰り返すことで覚えた小さな1フレーズを、小さく何度も何度もその動きを噛み締めながら繰り返すことで、覚えたその1フレーズはあなたの血肉となり、あなたの言葉になります。
何も考えなくても、ふっと湧き出るレベルまで反復することができた時点で身についたと考えてもいいと思います。
写経と開発の割合は3:7くらいで調度いい
写経と開発の割合は3:7くらいでいいと思います。
一つ写経したら、その新しい技術と今までストックしてきた技術を組み合わせて何か簡単なプログラムを書いてみましょう。
そしてそのプログラムが完成したら、また次の技術(ネタ)を習得して、また新しいものを作る。いくつかバリエーションを作ってみる。
一番最初は何事も億劫ですが、何かひとつでも自分が構想してプログラムを書くことができたら、きっとプログラミングの面白さを感じられると思います。
作るものはどんなにくだらなくても、どんなにシンプルでもオッケー!
誰にも見せずに、ひとりだけの世界で楽しむものです。
作ったものは自分の作品です。
愛情を持ってストックしていきましょう。
数をこなしていくうちに、あなたのスキルはどんどん上がって、いずれ見返した時に自分の成長度も確認することができます。
作る楽しさを知れ
何度も書きますが、プログラミングは本来楽しいものです。
会社に言われたから、いやいや勉強するものではありません。
休日も勉強しないといけないわけじゃありません。
別にプログラマーとして、他人より優れないといけないわけじゃありません。
休日もプログラミングをしている人は才能があるからやっているのではないんです
ただ純粋にプログラミングが楽しいから、楽しいから好きになる。好きだから、人から言われなくても積極的に学ぶようになる。この好循環を無意識で作り出しています。
もし、プログラミングに苦痛を感じていて、「才能ないわ〜〜」とか考えてしまっている人。
プログラミングに才能なんて関係ありません。
他人と比べてもキリがありません。
まずプログラミングは楽しいもの。
楽しむためにはどうするのか?
プログラミングで何かものを作る喜びを得られるときっと世界は変わってくると思います。
ぜひトライしてみてください^^
30歳までに就活・転職したいなら転職エージェントに相談!
ジェイックでは既卒、第二新卒、大学中退、フリーターまで20代の就職支援をで無償提供。
実際にいろいろと転職エージェンと利用してみましたがジェイックが一番親身かつ的確なアドバイスをいただいたきました。
こちらは営業系ですが就活・転職に関する不安や今やるべきことを素直にぶつけたところ、いろいろと優しいアドバイスをいただいて本当に勇気をもらえました。
プログラマーになりたいという話を他の転職エージェントにも相談しましたが、もうアラサーということで「希望の職種はつきにくい。好きなことを言っている場合じゃない」というような可能性を狭めるアドバイスが多かったですが、こちらのジェイックは「まだ20代の残された時間があるから、やれるだけのことをやってからジェイックを利用してください!!」っていう熱いメッセージをいただきました。あの相談があったから、本気で転職活動に取り組めたし、その結果、わずか1ヶ月という驚異のスピードで未経験からプログラマーに就職することができたと思います。もし、20代後半で、もう転職は無理なんじゃないかと迷われているなら、一度相談してみることをおすすめします。マジでおすすめです。
ご利用は20代まで!お急ぎください!
20代の既卒・フリーター・第二新卒を専門にした就職支援を10年前からスタート!再就職ならジェイック!
未経験だけど今すぐプログラマーになりたい人はProEngineerの無料カリキュラムもオススメです。
30歳以下であれば職歴不問で誰でも完全無料でプログラミングの講座を受けることができます!
就活支援も行っており、正社員の就職率は驚異の99%!!
気になる人は今すぐチェック!!
→ 【未経験からプログラマ】完全無料であなたの就職をサポート
アーティストのようなWebデザインプログラマーを目指している人はWebCampのスクールもチェック!
こちらはデザイン性のあるサイト作成に注力しており、卒業生の作品をみると、だいたいどのようなことが学べるかイメージできると思います。プログラミングを楽しく学びたい!って人にはとてもオススメのスクールですね。
このWebCampは短期間でプログラミングを学び、結果にコミットすることを売りとしています。
個人個人に合わしたオーダーメイドカリキュラム性を導入しており、継続してプログラミングを学び続けることができるようになります。
プログラミングって最初のスタートダッシュが肝心ですから!ここでつまづいたら、なかなか続けられません。参考書を買って、すぐに挫折してしまうのはここが原因ですね。
11:00~23:00の間であれば、自由に通える教室、講師の方に質問することもでき(もちろんオンラインも可)、プログラミングを思う存分学びたい人にとっては最高の環境なのではないでしょうか。