プログラミングの勉強って暗記だと思っていませんか?
プログラミング初心者である僕自身も、最近まで暗記が全てだと思い込んでいました。
どれだけプログラミングに関する知識を自分の中にため込むことができるかが勝負だと思って、必死に暗記していましたw
参考書は片っぱしから手にとって黙々と読む。
なんとか頭に残そうと紙に書いて覚えようとする。
そんな原始的な勉強を続けていました。
今から思うと馬鹿すぎる…
なんて非効率な勉強方法なんだ!!
優秀なプログラマーの条件とは?
ところで優秀なプログラマーの条件ってなんだと思いますか?
それはズバリ、「知識量」です。
優れたプログラマーは間違いなく引き出しの数が多い。
ひとつのプログラムをコーディングするにしてもいろいろな書き方を知っていますし、自分がどうしても分からないことに質問するとすぐに答えがかえってきます。
コーディングが早いってことも、よくよく考えれば知識があればこそできることですし、
自分がプログラマーとして成長するにはまずは暗記だと思い込んだわけです。
知識の量が優れたプログラマーのステータスだと悟った自分は、片っぱしから暗記してやろうと勉強方法を暗記にシフトしていきました。
暗記を試みた結果どうなったかというと…
結果として、まったくプログラマーとして成長できていないように感じました´д` ;
むしろ、プログラミングがつらい
覚えても覚えても、片っぱしから忘れていく自分がいました。
単に覚えた気になっちゃって、それを現場で使えるかといわれたらまったく使えません。
なんとなくムズカシイ分厚い本を読んで、勉強した気になっちゃってました。
無理やり暗記するというような勉強法を続けていましたので、その作業は苦行以外のなにものでもなく、
次第にプログラミングというものが辛いものと思うようになってしまっていました。
やっぱり辛いと感じ始めたら、モチベーションは低下しますし、ますます効率は落ち、結果など出すことはできません。
こんな勉強方法をつづけていては、いつまでたってもプログラマーとして成長できないと直感した自分は、勉強方法を見直すことにいたしました。
プログラミングで必要なことは覚えることではなく、「考える力」
プログラミングで重要なことは単なる暗記ではなく、覚えたことをしっかりと自分の書き方で表現できる力です。
あえて表現という言葉を使いましたが、しっかりと文法を理解し、いろいろな書き方がある中で自分はこの書き方でいくという意思決定のもとでコーディングするという流れは、自己表現以外のなにものでもありません。
初心者はまず、ひとつのことをしっかりと自分の言葉で書ける、表現できるようになることが第一です。
そのためにまずやるべき勉強方法としては、参考書などを写経ですね。
参考書に掲載されているコードをそのまま、写経してみて動作を確認。
次に目標としたいことは、そのコードを参考書を見ずに書けるようになることです。
1字1句間違わずに書けるようになるということではなく、学んだ動作ができるようになればOKとします。
ここで自分がどこまで分かるようになっているかの目安となります。
自分で書けるということは、その技術が身に付いたと判断できますし、逆に曖昧な理解だと書くことができません。
基本的な文法を理解した上で、自分の書き方でコーディングする習慣を身につけましょう。
追記:
プログラマーに転職して3年が経過しました!
今自分がおすすめするプログラミング学習方法は↓
https://pro-web-engineer.com/post-1832-1832
そもそもプログラミングの暗記は無理
プログラミングを学習する過程において、そもそも暗記なんて無理なんですよ。
IT業界の技術の進化はめまぐるしいスピードで日夜変化しており、去年まで勉強していたことが今年から、まったく使えなくなるなんてことも日常茶飯事です。
また暗記するにしても、覚える量が膨大にあり、それをひとつ残さず暗記するなんてことは、まったくもっと非効率なんですよね。
そんなことにも気づくことができませんでした。
覚えた気になったことも、実際の現場に入って使えるかっていわれても、全然使えていないのが自分の現状です。
優れたエンジニアは、自分が学んだ技術をこっそりと日頃の業務に取り組んでいます。
求められるのは暗記ではなく、索引能力
実はプログラミングで求められる力は暗記ではなく、索引能力なんですよね。
こういう機能を実装したい時に、どういう風にコードを書けばいいか別に覚えてなくても、だいたいこういう書き方があって、あそこに書いてあったな〜っていう検討がつけばいいんです。
完全に覚える必要はなくて、忘れたら調べればいいんです。ネットにつながる環境であれば、スマホでも情報を調べることができるのですから。
暗記することはプログラミング言語の文法のみです。この文法も完全にすべてを暗記するのではなく、基本的な文法で十分です。
あとはプログラムを作る上で、その都度調べながらコーディングしていきます。
この調べる技術が暗記以上にとても大切なテクニックになります。
できるプログラマーはこの調べる力が何倍も速いです。
迷ったらサクッと調べて、すぐに記載されているコードを理解し、自分のソースで書いています。
僕はまだまだこの力が遅すぎる!!参考ページを見て、人の書いたソースを理解するのに余分に時間がかかっている気がします。
この調べる力をつけるためには、量をこなすしかありません。
日頃から迷ったら速攻でググるということを意識することで、徐々に力がついてきます。
プログラミング学習の勉強とは学校のテスト勉強とは違う
よく言われることですが、プログラミングの勉強は学校のテストで点をとるような勉強ではありません。
ひとつの答えを出すための正解はひとつではないんですね。
ただ単にいい得点を取ろうというような固苦しい勉強ではなく、覚えた知識で何をどう作るかが問われます。
プログラミングの勉強は、暗記して良い点をとるものではなく、新しい技術を学び、パソコンが動き、感動し、新しい体験を得るような楽しいものなのです。
徹夜して机にかじりつきながら、必死にやるようなものではないんですね。
もっと勉強を楽しみましょう。
浴びるように情報をインプット
暗記をしないからこそ、浴びるような情報のインプットも有効な気がします。
自分が日頃から取り組んでいることはQiitaで毎日のデイリーランキングのチェックを意識的に行い、最新技術の情報を取り込もうとしています。
この「意識的」というところがポイントで、多少腰が重くても、最低毎日1度は目を通すということは行っています。
もちろん自分のレベルに合わない知らないことばかりなので、記事を読んでも全く頭に入らないことがほとんどですが、気にせずガンガン食べるように記事を読んでいます。
ちょっとした待ち時間、休憩時間、食事の合間などにサクッと記事をチェックしています。
全部を覚えようとするのではなく、浴びるように記事を読む。
すぐ忘れてしまうことは今の自分にはまだ関係ない話だと割り切ると、覚えられない自分をきにする必要もありません。
実際に3カ月ほど続けていますが、少しずつ業務中に、「ああ、これ、どこかで見たことあるな」的なことが起こり始めました。
どこかで見たことあるな的な感覚は、情報が頭に残りやすく、再度反復した時にすぐに身に着けることができます。
未経験だけど今すぐプログラマーになりたい人はProEngineerの無料カリキュラムがオススメです。
30歳以下であれば職歴不問で誰でも完全無料でプログラミングの講座を受けることができます!
就活支援も行っており、正社員の就職率は驚異の99%!!
気になる人は今すぐチェック!!
→ 【未経験からプログラマ】完全無料であなたの就職をサポート