書く力より読む力。プログラミング初学者に足りないこと。
こんにちは、ソネ(_kok____)です。
ふと気づいたんですよね。それじゃあ伸びないな、それじゃあ実戦きついな、と思う要因を。プログラミング初学者や未経験エンジニアに向けたメッセージです。
書く力に重きが置かれすぎている
これが大きな要因だと思います 。とは言え致し方ないとも思います。書けなかったらプログラマではないですしね。
問題なのは「書くこと」しか意識できていないことです。
書けると画面なりのアウトプットが目に見えてやってる感出ますよね。さらに最近のよくできたフレームワークを使えば、大してプログラミング(やデータベース・インターネット・コンピュータなど)を理解していなくても簡易版twitterみたいなものはすぐ作れます。
そこで基礎もままならないのに「書ける!」と思ってしまって、書く方にひた走るのではないでしょうか。
また、なぜかポートフォリオ至上主義的な雰囲気を駆け出しエンジニアコミュニティから感じますが、これも書くことに重きが行き過ぎてしまっている原因だと思います。(ちなみに、私も採用活動をしていますが、相当オリジナリティあるものでない限り、ポートフォリオはほぼ参考にしません。)
書くことしか頭にないと、書ける範囲でしか書かなくなります。これでは伸びませし、いざ就職した際にホンモノの動いているコードが理解できず、苦戦するでしょう。
そうならないためには読む力をまず鍛えるべきです。
読む力とは
難しい話ではありません。コードが実行される流れに沿って「何が行われているか」「何が出力されるのか」をたどって理解できればOKです。プロのプログラマが当然の如くやっていることです。言うなればプロとしての最低ライン。
例えば、methodやfunctionであれば何を入力(引数)とし、何を出力(戻り値)するのか(またはどんな処理をするのか)を、データ取得処理であればどんなSQLが走りどんなデータが取得できるかを、UIであればどんなマークアップやスタイルシートが表示要素を構成しているかを読み解きましょう。
難しい話ではないのですが、コードが読めない人は初学者にとても多い。文法が理解できていない、基礎知識が足りていない証拠です。
なぜ読む力が重要か
プログラミングの場合、読めれば書けるからです。コードの綴りや書き方を暗記する必要はありません。一度読んで理解していれば「こんなのあったな」というのを検索すればすぐ書けます。
自分の狭い視野で書き続けるより、諸先輩方のよくできたコードを読んで理解する方が圧倒的に力が付きます。
また、コードが読めれば初めて触るプロジェクトでも内容を理解し、書くことができます。担当のサービスが変わったり、職場が変わっても即戦力になることができます。
他の言語に幅を広げるときも、読む力がついていれば問題ありません。書き方の違いはあれど、プログラムの処理の流れはどれも基本的には同じなので、ざっくり読み進めていけますし、すぐ書けるようになります。
何を読めばいいか
実際に動いているホンモノのコードを読みましょう。誰でも見られるOSSなんかがいいですね。
例えば、railsを使っている人ならrailsの中身や自分が使っているgemの中身を見てみるといいと思います。普段から使っているpresent?の中身は何でしょう?コードをたどるとこうなっています。
def present?
!blank?
end
blank?の否定ということですね。じゃあblank?の中身は?と見ると
def blank?
respond_to?(:empty?) ? !!empty? : !self
end
こうなっています。「respond_to?って何?」「empty?は見たことある」「!!ってどういう挙動?」「selfってここだと何だ?」なんて思ったんじゃないでしょうか。知っていることは理解を深め、知らないことは調べて理解するをコードを読みながら繰り返していくうちに、書けるコードが広がっていることに気づくはずです。
もちろん読むだけではダメです。特に動作確認としてのライティングはとても大事です。先程の「!!」は実際にpryなどで書いて、いろいろなパターンで挙動を確認した方が理解は深まるでしょう。
書く→書く→書く→書く
ではなく
読む→調べる→書く→理解する
のバランスとサイクルを意識しましょう。
この記事が気に入ったらサポートをしてみませんか?