【注意】間違ったプログラミング学習方法まとめ
今回は間違ったプログラミング学習法について、
現場のトレーナーから意見を吸い上げてまとめてみました。
■お手本を見ながら写経する
写経コーディングという言葉があるように、お手本をなぞることはプログラマーは誰でもやってきたことです。
ただし、一般的な解釈での「お手本を見ながら書く」という「写経」では考えずにただ写すだけなので身に入りません。
そこでポイントなのは、お手本は何度も見ていいが、コーディングするときは、お手本を見ずに書くということです。
これを神経衰弱方式と呼んでいます。
逆に神経衰弱というゲームと割り切ることで、何を書いているかわからなくても気が楽になります。
そのうち分かるようになるから写経コーディングが有効であるのは先輩たちが証明しているわけですが、
それにもやり方がありますのでご注意ください。
■ビルド(実行)する前に考える
あるひとまとまりのコーディングを終えて、ビルドする前に見直そうと立ち止まる人がいます。
その時間がもったいない。すぐにビルドしてエラーを拾った方が早いことが多いのです。
エラーを起こしたくないばかりに慎重に見直したく気持ちもわかりますが
「コーディング→ビルド→エラー」のサイクルを増やした方が効率的です。
プログラミング学習は「エラー」からはじまります。
「エラー」から学ぶことが多いのですから、「エラー」を怖がらずに行きましょう。
■ググって沼る
わからないとググるのは当たり前ですが、理解を深めようとするあまりに沼る人がいます。
ググるのは英単語帳のように使うのが理想的です。一分以上かけないとルールを決めるといいでしょう。
ちょっとググってなんとなく閃いたら、すぐにエディタに戻ってコーディングしましょう。
■適当に検索をする
検索ワードは適切に選びましょう。
といっても最初のうちには仕方ないかもしれませんので、無駄だったと思ったことをやらないように意識的になりましょう。
■参考書をダラダラ読む、授業をダラダラ見る
プログラミングスキルはコーディングしている時間に比例して向上します。
それ以外の時間はスキルが停滞していることに気づきましょう。
わかったつもりで「書けない」のは、まさに「プログラミングが書けない」ということです。
ちなみにテックジムでは参考書も授業もありません。
それでも、ググったり師匠に聞いたり、答えから類推したりして、プログラミング技術を習得できるのです。
それはテックジムの卒業生が証明しています。
■いちいち理解しようとする
うちの学生エンジニアが受講生にアドバイスしていた言葉が印象的でした。
それは「理解しようとするな」ということです。
理解しようとしても理解できないから、そこで止まってしまうのです。
「やっていくうちにわかるや」と開き直って、もくもくとコーディングしていると急にわかることも多いのです。
これを、私は「理解の自動化」と呼んでいます。
赤ちゃんの言語取得も「理解の自動化」の賜物だと思います。
時々、「何がわからないかもわからない」という方もいます。
そういう方は、プログラミング以前の国語の問題だったりします。
コミュニケーションがうまくいかない方に多いです。
人は不安なときや過労のときに知能が落ちるそうです。
そう言う時は環境をきちんと整えてから、新しい事に挑戦した方がいいでしょう。
■「なんか動きません」と言う
このマインドは本人の成長を阻害します。
原因があるから動かないのですから、試合は放棄するべきではないのです。
言われた方は「ちゃんと調べたのかよ」と言いたくなります。
「どこをどうやったらこうなった」というところまできちんと説明できるようにしましょう。
■いちいちノートにとる
ノートは必要ですが、板書は不要です。
どんな時に必要かというと、理解のプロセスで、図解など思考の整理の時にペンを取った方が早い時です。
あとで見返すものではなく、思考の作業場という感じです。ホワイトボード的な使い方ですね。
しかしながら、ググったらすぐ出るようなことを、わざわざ書くのは時間も無駄でしょう。
リファレンスを自分で作る人がいますがご愁傷様です。
ペンで書いて覚えるとか、何度も見返して覚えるというのは、プログラミング学習において不要なことです。
ある種の自己満足になるかもしれませんが、「わかったつもりで書けない」という沼にはまります。
■意地になって自分で解こうとする
受験時代、赤本を解く時、どんなやり方をやってましたでしょうか?
私は「どうせできないから」という前提で、わからなかったら答えを見てました。
「どうせ何回もやるのだから、その時にできればいいや」というスタンスです。
2回目、3回目とやっていくうちに正答率が高くなってきます。
答えは暗記できませんが、解き方のプロセスをうっすら覚えているのでそれを元に解いていくという感じです。
これを最初から「意地でも自力で解こう」としたらどうでしょうか?
膨大に時間がかかります。中には捨て問題もあるのに勿体無いですね。
プログラミング学習における「捨て問題」は「ケアレスミス」です。
ケアレスミスに膨大に時間を取られるのは学習の本質ではありません。
そんなときは、「おおよそ書けているから良し」として、次の復習の時にちゃんと解けばいいのです。
■独学にこだわる
お金がない。WEBのタダの情報で十分だ。色々な言い分があるかもしれません。
しかし、独学で変な癖がついて、あとで厄介なことになるのは、先人たちが知っています。
これはトレーニングジムにもいえるそうです。
独学でトレーニングをやっている人はこだわりが強く、プロのトレーナーから見て、トンチンカンになっているというのです。
優れた師匠をつけるのが上達の近道であるのは、スポーツでも、職人でも、経営でも同じ。プログラマーも同じです。
■いまやるべきこと以外のことをする
「学習」において、教科書やテキストには、「ここでは、ここを学んで欲しい」という意図があります。
学習期間に学ぶべきことと、仕事の実践で学ぶべきことも、違います。
だから、師匠の言うことに素直に聞くべきです。
時々、「どうでもいいことで悩む人がいる」ということを講師陣から聞きます。
もちろん、遠回りもいいことですが、モチベーションがなくなるのであれば時間の無駄です。
変なプライドがある人もまた、学びが遅いということがあるようです。
■素質のある人の特徴
・素直
・前向き
・一生懸命
テキストの意図通りに学習を進め、師匠の言う事に逆らわないというのが素直な人です。
エラーが起きても「これはヒントなんだ」と良い方向に考えるのが前向きな人です。
ゲームを楽しむように難しいことに挑戦する人が一生懸命な人です。
■創意工夫をしてますか?
・マウス利用をやめてみる
・ショートカットを覚える
・気分転換に早打ちゲームをあうる
・解いた時間を測る
・復習ごとの目的をセットする
・疲れない姿勢をとる
・ディスプレイを磨いてPCを労う
こういったことを、自分なりに創意工夫をする癖は、ビジネス全般にも応用できますので、どんどんトライしましょう。
プログラミング学習を通じて「創意工夫」が楽しくなれば、人生で大切なことが手に入っているはずです。
いかがだったでしょうか?
参考になれば幸いです。
■高速学習の10ポイントも動画にしております。