プログラマー脳 要約 ~ コードを正確に速く読める・書けるようになるには
「プログラマー脳」という素晴らしい書籍を読了したので、今回は特に大事だと思ったことに絞って内容を要約していこうと思います。
ぜひこの記事を参考にして、プログラマー脳を作っていきましょう。
今回は特に、コードの読み方について解説していきます。
「読めるようになるよりも、書けるようになる方が大事でしょ。」
と思うかもですが、そんなことはないです。
というのもの、プログラマーは仕事の6割の時間コードを読んでいると言われています。
なので、まずはコードを正しく早く読めるようになることが大事なのです。
また最後に解説しますが、コードリーディングの質が上がれば、コーディングの質も上がります。
なので今回は、なぜ読めないコードがあるのかということや、どうすれば読めるようになるかを解説していきます。
あなたがコードを読めない理由
まず、あるプログラムが読めない理由は、次の2つに集約されます。
- 知識不足
- 処理能力不足
例えば、COBOLを知らない人にCOBOLのコードを読ませても、どこかで絶対に行き詰まるでしょう。
これが知識不足です。
つまり、単に知識がないから読めないという状態です。
次に説明するのが、処理能力不足です。
これは、人間のワーキングメモリー的に理解しにくいコードのことを言います。
例えば、1つのメソッド内でいくつものことをしていたり、かなり長い変数名が使われたりといった感じです。
基本的に人間の脳は、一度に3つの情報くらいしか処理ができないと言われています。
そのため、そのリソースを超える場合はかなり読みくいコードとなってしまいます。
これが処理能力不足です。
なので、この2つの問題を解決できればコードを難なく読めるようになるはずです。
コードを速く正確に読めるようにする方法
では、具体的にどのようなことをすれば、コードを読めるようになるかといことを解説していきます。
知識不足の対策
まず、知識不足の問題を解決していきましょう。
みなさんは文法の暗記は不要だと思っていませんか?
ググれば分かるようなことを暗記するのは時間の無駄だと。
実はそれ、間違いです。
なぜかということ、ググるという作業を挟むと作業が中断されるため、作業効率が格段に下がってしまいます。
また、曖昧な知識を短期記憶に留めておくという行為も脳のリソースを消費するため、コードを読む難易度が上がってしまいます。
なので、できればよく使う文法くらいは記憶しておいた方が良いです。
そして、そのために最も効果的なのはフラッシュカードです。
これを使い、定期的に繰り返すことで、文法知識を長期記憶にすることができます。
処理能力不足の対策
知識があるのにコードが読めないという場合は、処理能力不足が原因です。
つまり、コードがかなり複雑となっているという状態です。
または、あまり使ったことなかったり、見慣れないコードの書き方をしている場合もあり得ます。
この場合、コードを読みやすくするにはチャンク化するのが重要です。
チャンク化とは、かたまりを作ることです。
例えば、人間は一度に3つの情報くらいしか処理ができないと先ほど言いました。
けれど、9桁の電話番号は容易に記憶することができています。
これは090-2900-5655のように-で区切られ3つのチャンクによって構成されているためです。
このようにチャンク化をすることで、多くの情報も処理できるようになります。
なので、分かりづらいコードは自分なりにチャンク化してみると良いでしょう。
また、他にも効果的なのがデザインパターンの理解です。
実際に、デザインパターンを学んだ人は、そうでない人よりもコードを読むスピードが上がったという研究があります。
なので、使っている言語のデザインパターンを学ぶというのはとても有効でしょう。
他にも、そもそもコードが複雑で頭の中で処理できていないのが原因なので、メモを書き込んだり図解したりすることでコードの見通しをよくすることもアリです。
例えば、変数や関数の関係性を線で繋いだり、コードに対する説明を追記したりすると良いです。
また、状態遷移表を作るのも良いでしょう。
最強のコードリーディングトレーニング
最後に、コードリーティングのトレーニング方法を紹介します。
先ほど解説した対策をすることで、大体のコードは読めるようになるでしょう。
けれど、中にはまだ読めないコードがあるかもしれません。
それは変数名がおかしかったり、自分の理解が間違っているのが原因かもしれないです。
それを対策するのにとても有効なトレーニングとなります。
具体的には次の手順を実行すればOKです。
- 読むコードを選択する
- 図解したり、状態遷移表を作ったりしながらコードを読む
- コード内のどこがなぜ分かりやすかったか、どこがなぜ分かりにくかったを書き出す
- コードを言葉で要約する
- コードを自分で再現してみる
- 間違いがないか確認する
- なぜ間違ったかを考え、間違った場所と理由をどこかにメモしておく
こうすることで、自分が何が分かっていなかったのかということや、どのようなコードが読みにくのかということが分かってきます。
またコードを要約、再現することで本当に理解しているかを判断することができます。
それらの知識を積み上げていく度に、様々なコードに柔軟に対応できるようになります。
なので、ぜひこのトレーニング方法を実践してみてください。
まとめ
今回はプログラマー脳の一部を要約しました。
ぜひ、この記事を参考にプログラマーとしてのレベルを上げていきましょう。
ちなみに、今回コードの書き方について解説しませんでしたが、それは次のような理由があります。
- 文法を長期記憶に格納できていれば、作業を中断せずに効率よくコードを書くとができる
- ワーキングメモリーとコードの読みやすさの関係を理解していれば、どのように書けば他の人が理解しやすいかが分かる
- コードリーディングのトレーニングで、コーディングにおけるアンチパターンの知識が積み上がっていくので、コーディングの質が上がる
つまり、コードを読むという行為は、コードを書くという行為の質を上げてくれるのです。
なので、日常的にコードリーディングのトレーニングをすることをオススメします。
宣伝
0からエンジニアになるためのノウハウをブログで発信しています。
また、YouTubeでの動画解説も始めました。
YouTubeのvideoIDが不正ですインスタの発信も細々とやっています。
興味がある方は、ぜひリンクをクリックして確認してみてください!
Discussion