プログラミング勉強が面白くなってきた!

プログラミング勉強が面白くなってきた!

どうも、脱サラ理学療法士のぼんぼりです。

プログラミング勉強に日々取り組んでいますが、ガチで一週間ほど取り組むと少しずつプログラミングが楽しくなってきました。

ということで、これまでの学習過程をサラッとおさらいしつつ、その感触や練習法などを自分なりにまとめておきます。

Java本のサンプルコードをひたすら打ち込む

とりあえず、まずは本を買ったほうがいいですね。

なぜなら、体系的に勉強できるからです。

ネットのみで独学していると、どうも全体像が見えにくい感じがするんですよ。 

ただ、単発的な問題を解決するならネットは心強い味方になるでしょう。

というか、ネットがないとほぼ9割の問題が解決しないかもしれません。

ほんとに、Google先生のおかげ様々なんですよね。

で、本には分野ごとにいろんなサンプルコードが書かれています。

そのサンプルコードをひたすらパソコンでコーディングしていくんですよ。

コーディングし終わったら、実行ボタンを押してしっかり動作確認をします。

これをいくらか繰り返していくだけでも、かなり理解が進みましたね。

僕の場合、それに加えてノートに書くなんかもしてみました。

読んでいるだけじゃイマイチ理解できないので、とりあえず言葉に慣れる、浴びるところから、始めることにしてみたのです。

ちなみに、手書きは猛烈に時間を消耗しますので、効率よく学びたい人にはこの勉強法はおすすめしません。

ただ、実感した効果としては、専門用語に対して既視感を感じるようになりましたね。

専門用語アレルギーが薄まったともいえるかもしれません。

何がなんだかわからないという絶望的な状況であれば、手書きでゆっくり理解していくというのはおすすめです。

とりあえずは、言葉が頭に馴染むようになってくるはずですよ。

ある程度流れがイメージできるようになってきた

そんなこんなでサンプルコードのコーディング&手書きを繰り返していると、素人

ながらも少しずつ理解できるようになったと思います。

たとえば

「BufferedReader a=newBufferedReader(〜) ;」

なんかは「新たに(〜)の機能を持ったものをBufferedReaderクラスの【a】としまっせ」的なニュアンスでサクッと解釈できるようになりました。

これが変数の宣言ですね。

「String a=”おはようさん”;」という宣言も本質的には同じなんですよ。

こういったある程度の決まり文句は「あ、そんなものがあるんだねぇ」くらいの感覚で飲み込むようにしています。

その場ではすぐわからなかったのですが、ページを進めていくうちに段々とイメージがつくようになってきました。

Eclipseのデバッグ作業が面白い

僕がEclipseで感動した機能のひとつが「デバッグ機能」です。

これは、Eclipseに備わっているバグチェックツールなんですが、この機能を知ることで僕のコードの理解度が格段に変わりました。

デバッグの言葉を聞いて、最初は「なんかバグをチェックするんでしょ」「赤い罰印を消していく面倒くさい作業のことでしょ」なんて思っていました。

違うんですよ。

デバッグは、コードの流れをひとつひとう追っていく機能なんです。

なので、どのタイミングでどの値がどの変数に代入されて、それがいつ、どんなカタチで出力されたのかまでの過程をたどることができるんですよ。

この機能を知った時点で、コーディングがかなり理解しやすくなりましたね。

配列とかfor文など、数が増えて複雑になってきたところでデバッグをすれば、ブレずに流れを整理することができます。

デバッグは、Eclipseの上にある「虫」をクリックすれば開始画面が出てきます。

そこから、デバッグの開始位置を決めたら、そこからはF6キーをポチポチしながら1行ずつコードをたどっていきましょう。

1周でわからなくても、何周も繰り返していくと次第にわかるようになりますよ。

詰将棋に似ている

プログラミング勉強を続けていると、なんだか詰将棋に似ているなと思いました。

詰将棋は、ある程度攻め方のパターンがあります。

11手詰とか15手詰めとかになってくると膨大な手数がありますが、そういった複雑性な詰将棋でも、小さなパターンを組み合わせたものであることが多いんです。

小さなパターンとは、1〜3手詰レベルのことですね。

それこそ「頭金」という詰めのパターンを知らないと、将棋にはならないでしょう。

こういったパターンを自分の中にインストールしてしまうことで手を読むスピードが速くなります。

ちょうど、数の計算スピードを九九を覚えることで速くするのに似ています。

なんとなく、体感的にそんな感じがするので、引き続き小さなサンプルコードをガリガリ理解しながら書いていきます。

まとめ:元数学苦手坊主は数で勝負

まとめると、「サンプルをコーディング→デバッグ流れを理解→繰り返してコーディング→デバッグも繰り返し→覚える→どんどんサンプルをコーディング」みたいなループを作ればいいんですよね。

ちなみに、僕はかなりの文系人間です。数学は、数の迷路に迷い込んでしまう傾向があるのでどうしても苦手意識が拭えなかったんですね。

ただ、プログラミングはどうしても身につけたいので、理解できるまで数で勝負するしかないんですよ。

理解できるまで、ひたすらコーディング&デバッグです。

それでも響かなければ、手書きで落とし込みます。

もう、根性の世界ですよね。

頑張ります。