もしあなたが凡人なら、とにかく量を意識して勉強しないと一流のプログラマーになることはできないでしょう。これ、まず間違いありません。
できないやつに限って、自分はできると思い込んでいる傾向があって、実際にコードを書く数が圧倒的に足りていない人がかなりいます。
何でプログラミングができるようにならないかって言ったら、量をやっていないからなんですよ、単純に。
逆にいえば、信じられないくらいプログラミングができる人は、口では勉強していないと言っていますが、よくよく聞くと休みの日は1日ずーーっとプログラミングをしていたり、ご飯も食べることすらも億劫になるくらいプログラミングに夢中になっていたりしていて、まず圧倒的な量をこなしています。やっぱり量をやらないとできるようにならないんですね。
これはプログラミングに限った話ではなく、何にでも当てはまる当たり前の話です。
もしあなたが凡人なら、効率を考える前にまず数を意識することです。
数をこなすことによって、初めて見えてくることがあります。
もし自分が人より優れたいなら、人の何倍もやる必要があるってことです。
天才プログラマーと凡人プログラマーの違いは何?
俗にいう天才プログラマーは、まずスピードが凡人プログラマーと全く違います。
凡人が100かかる間に、天才は1の時間で完成させてしまいます。
こちらが何日もかかってプログラムを完成させる間に、たった1日で完成させてしまうことができます。
書くソースもとてもシンプルで保守性の高いコードを書くことができます。
何度も繰り返す機能は、反復してコードを書くことはなく、一つにまとめて記述しています。
自分が書いた時はめちゃくちゃ長いソースになってしまった時も、できるプログラマーの人にレビューしてしまったらめちゃくちゃ短く、シンプルなソースになることも多々あります。
これがソースが美しいってことなんですね。
知識量も圧倒的なものがあります。
常に最新技術を自分の中に取り入れて、幅広くとてつもない情報を持っています。
天才と言われている人は間違いなく、プログラミングに対して勉強熱心です。
凡人プログラマーが天才プログラマーと勝負するには
もしかしたら凡人プログラマーは天才プログラマーが1時間でできるプログラムを書くのに何時間もかかるかもしれません。
それでも凡人は数をやるしかない。数をやらないとうまくなりません。とにかく悩む暇があるなら、コードを書く。そこからしか次のステージは見えてこないんですよね。
凡人が悪いわけではありません。凡人だからこそ、できることがあります。
凡人だからこそ、天才に勝てる。勝負できる。
プログラミングに多少の才能は関係あるかもしれませんが、長期的にみたら才能なんてあまり関係ありません。
天才が1やるのに凡人が100をやらないといけないなら100をやればいいんです。
できないならできるようになるまで時間を書けたらいいんです。
昔の雨乞いの人が儀式で雨を降らせることができるのは、雨が降るまで踊り続けたという話のように、プログラミングができるようになるまで時間を書けてじっくりと取り組めばいいんですよ。できるようになるまでやる。覚悟を決める。それだけです。
挫折しないためには他人に合わせないこと
凡人が無理に天才に合わせてできるように合わせる必要なんてないんです。
自分の今の実力に見合ったレベルで物事を考え、努力していくことです。
毎日、自分の理想に向かって一歩でも努力していく。
自分という「駒」を、自分の夢に向かって進めていくこと。
それがたった一歩かもしれませんが、その一歩が確実に進められるか。
自分の理想に到達するには、毎日の小さな確実な前進が欠かせません。
逆にいえば、その努力をこなすことができれば、絶対にいつの日か優秀なプログラマーになることができます。
勉強は歯を苦痛を感じながら勉強するものではありません。
プログラミングの勉強を継続させるコツはこちらの記事に詳しく書きました。
やる気があろうがなかろうが、そんなものはあまり関係なく、日々、努力することができるかどうか。
この小さな努力の大切さに気づくことで、きっとあなたはもっと自由になれます。
スピードだけは最速でやる
結果を出したい人に多い特徴だと思うのですが、失敗したくないと思っている人ほど思い悩んでしまい、結果行動できず、大した成長ができない人が多い気がします。
最短最速で結果を出したいという気持ちからなるべく失敗したくないと考えてしまい、
どう行動すればいいか永遠と考えてしまうんですね。
本人はいたって真剣なのですが、どれだけ悩んだところであまり良い結果がでたことは経験上あまりありません。
どれだけ悩んでも大したものができないなら、スピードだけは意識しましょう。
とにかく最速で仕事をかなすことを意識します。
経験した分、自分は成長しているわけです。どんどん周囲と差をつけて成長できます。
特にレスポンスは最速で返す。これを意識するだけで、きっと周囲の自分を見る目は変わってくると思います。
もちろん失敗はします。怒られもします。
それでもその経験すべてが自分の血肉となり、成長の糧となります。
天才が1やる間に100の仕事をするつもりで仕事をしましょう。
天才が1やった仕事のクオリティを、凡人が100やったうちの1つでも同じクオリティを出すことができたら、結果的には同じなんです。
どれだけ悩んでもできるものはあまり変わらない
特に初心者の内は、どんなに考え、悩んでも良いものなんてできません。
いくら考えても、大したものなんてできないんですね。
それならあまり深く考えずに、ガンガンコーディングした方が絶対にいいです。
実際に自分の体を動かして書いてみて、初めて分かることがあります。
それは実際にやってみなきゃ分からないことで、その体験が自分の成長となり、新たな自分のステージが見えてくるんです。
「ちょっと悩みすぎで、最近前に進んでないな…」と感じている人は、ぜひ失敗を恐れず何かアクションをしてみてください。
失敗してもパソコンは壊れない
プログラミングで失敗しても、パソコンは壊れません。これって当たり前のことですけれど、プログラミング未経験の人は案外このことを知らないんじゃないでしょうか?
いくら間違ったコードを書いても、すぐに元に戻すことができます。失敗を恐れる必要はないんですね。
現場の本番環境とかで、データ全部消す!みたいなことはさすがにまずいですが、そこまでリスキーなことを初心者にやらせることはないですし、バックアップやGitのプルリクなどのコードの反映に事前承認が必要になっていたり、もしもの時の対策はしっかりととられています。
もしプログラミングというものにどこかしらの敷居を感じている人は、まず失敗ししてもパソコンは壊れないという事実に気づきましょう。
そして、失敗してもいいからどんどんコードを書いてみましょう。
参考書に乗っているコードを自分で打ってみて、それを自分の好きなようにいじくってみて、このコードのこの部分がこの動きをしているのだなということを体で感じてみましょう。
できる人の特徴は間違いなく、自分でプログラムあれこれイジル人です。
これはもう入社してすぐに分かりました~
→プログラマーになるのに向き不向きはある?才能は?性格は?適正チェック!
凡人プログラマーよ、天才プログラマーに負けるな!!
プログラマーの世界は、なんだかんだ効率よくできる人が評価される世界です。
才能があると言われるプログラマーは凡人プログラマーより5倍も10倍も生産性が違うと言われています。
子供の頃からプログラミングに親しんできた人は、比較的才能があると評価されている人が多いと思いますが、僕のような30歳手前から 未経験でIT業界に転職した人は、最初のうちは劣等感を感じることでしょう。
なかなか最初のうちは、周りのプログラマーに萎縮してしまいがちですし、職場によっては自分はプログラミングに才能がない…なんて思いこまされてしまうことも多々あると思います。
ですが、みなさん。負けないでください。萎縮しないでください。
異業種から挑戦してきたみなさんだからこそ、もっともっとユニークな仕事ができると僕は信じています。
プログラミングに才能なんてものはあまり関係ないと僕は思っています。
才能なんて言葉は、人と人とを比べて優劣を言い表しただけの単なる言葉です。
プログラマーは時代を改革させる力があるほどのエキサイティングな仕事です。
ぜひ力いっぱい挑戦して欲しいと思っています。
初心者はまず写経、そこから!
プログラミングの初心者の方はまずは写経から始めましょう。まずは自分の書き方は置いておいて、参考書などに記載されているコードをそのまま書き写します。
目前の目標としては、参考書に書かれているコードを何も見ないで書けるようになることです。
初心者はまずそこを目指しましょう。
写経をすることで、プログラミング言語の基礎的な文法を覚えることができますし、実際に自分の手を動かしてコードを書くことで、プログラミングというものを体験できますし、実際に書かないと分からない新しい発見などを得られることができます。
そこから次第に技術が自分の中に蓄積されていき、その技術を組み合わせながら少しずつ自分のプログラムを書く練習をしていきましょう。学んだ技術の組み合わせを試していくだけでたくさんの気づきが得られるでしょう。
一流のプログラマーになるには何を勉強すればいい?
プログラミング言語はお好きなものを勉強すればいいと思います。
プログラミング未経験の方であれば、実際にパソコンの動きがわかるJavaScriptとかPHPがいいのではないのでしょうか?
仕事の案件も豊富なJavaもご自身のキャリアに活かせると思います。
まだプログラマーとして就職していない方であれば、面接でアピールするためにもタイピングを強化しておくことも重要です。プログラミングはよく知らないけれど、タイピングだけはめちゃ早いですというのは、実は企業にとっても魅力的な人材と評価されます。
逆に未経験かつタイピングはめちゃ遅いのでは、なかなか採用されにくいと思われます。
だって、タイピングが遅いプログラマーってなんか嫌でしょう?仕事ができないと思われてしまいます。
タイピングを評価するには、etypeのサイトがオススメです。最低Aランクを取得しましょう。
その他には、Ruby, Python なども2017年に入って人気が出てきています。
特にPythonは昨今流行りのディープラーニングをPythonで実装されることが多く、今後も人気が出てくると思います。実際にまだまだこの二つの言語をできる人は少なく、会社も積極的に採用しているところは多いです。
JavaとPHPは、現在、もっとも仕事の案件が多い言語です。一番最初に学ぶ言語としては、とっつきやすいものですし、参考書も豊富ですので勉強しやすい言語ではないでしょうか?
プログラミングの言語と合わせて、IT用語についても勉強しておくことをおすすめします。
IT用語は普段聞きなれない言葉が多く、実際に知らないことを一つずつ調べないといつまでたっても理解することができません。
実際の業務でもすぐに仕事に役立つわけではありませんが、日頃から自分の知らない単語を調べることによって少しずつエンジニアとしてのレベルをあげることができるでしょう。
→一流のプログラマーになるには何をすればいい?優秀なプログラマーになるために今日からすべきこと
なにはともあれ、ガンガンコーディング!!
悩んでいる暇あったら、何かしらコーディングしろって話なんですよね。
プログラミングができる人は、休みの日もずーっとプログラミングしていますし、自分で開発したソースをgitにガンガンあげてコードレビューしてもらっています。
趣味はプログラミングって平気で言える人は、ぐんぐん成長していきます。有給使って、わざわざ出社してプログラミングしている人もいるくらいですから。
その人いわく、会社は集中してプログラミングをするには最適の場所らしく、好きな時にきて、好きなときに帰れる環境は最高らしいです。
さすがにそこまでは思えないわ~~すごい
プログラマーとして優秀な人は、アウトプットだけではなくインプット量もすさまじく、業務で仕様しているソースはほぼすべてのソースを読み込んでいますし、休日中にも人のソースを読んでいろいろと意見を言ったりしています。
ぼくももっとソースにたくさん読み込んで、もっとプログラマーとして成長したいなぁと燃えている今日この頃なわけです。
背伸びしてもなかなか思うようにはいきませんし、努力が人より優れたいという気持ちからきているようなら本来の目的からずれてしまいます。
そうではなく、自分の身の丈にあったレベルに目標を設定し、手の届く範囲で毎日、1歩でも理想に向かって努力できるかということがとても重要になってきます。
努力は苦痛ではなく、自分が自由になるための一歩なんです。
失敗を恐れず、楽しみながらプログラミングしてみませんか?