コラム プログラミング

他人が書いたコードを読む方法 | プログラミング書くより読むほうが難しい。

2021年3月31日

0
0

新人エンジニアにおすすめ教材

僕は新人プログラマーとしてプログラミングの勉強を始めた頃から、

 

とりあえず物を作りながらプログラミングは覚えるのが一番早いだろうって思っていました。

 

だから、webプログラミングを独学するときも、mobileプログラミングを独学するときも、

 

まずは作るものを決めて、そこから逆算して作りながらプログラミングを覚えてきました。

 

ですから、サービスを0から作ることは僕は得意です。

 

でも、そんな風なプログラミング学習に固執してきたが故に、決定的な弱点を持つことになってしまいました。

 

それが、「他人が書いたコードを読むのが苦手で、チーム開発が弱くなってしまった」でございます。

 

例えば、僕は技術書を読んでて毎回のように思ってたのは、

 

「コーディングをしてると、OOしたくなることが良くあります」

 

とか書いてる部分があって、そういうのを見るたびに、「そうかなあ?」とか思ってしまってたんです。

 

それで、そういう書き方をしなくてもやりたいことは実現できるし、

 

実際あんまりそういう書き方は見ないから飛ばそうとなって、勉強をサボってきてしまいました。

 

でも、実際にチーム開発で現場に入ると、そこは上級レベルのエンジニアが沢山いて、

 

僕が技術書を読んでいて「こんな書き方、そんなに使うか?」と思うような記述をする人が結構いて、

 

そういう人は上級レベルのエンジニアだから、そういう書き方をするわけで、

 

それで、僕は自分の書き方で永遠に動くコードを書いてきただけなので、勉強不足のコードが読めず詰んでしまう

 

仮に動くコードを実装できても、PRでは「こういう書き方をしろ」と言われるけど、

 

他に人が書いたコードを完全理解で読めないため、中々、他の人が書いたコードを利用してうまく実装できずに詰んでしまう。

 

他人のコードが読めないという悩みを抱えるエンジニアは、概ねこういうパターンに陥ってると思う。

 

別に、他人が書いたコードが読めないとか、他人が実装したコードをうまく改修できないという悩みは、

 

あなたが才能がないのでもないし、向いてないからでもなくて、単純にそこの知識が深く頭に焼き付いてないからだと思います。

 

ふわっと動くコードを実装できるようになるには、そんなに努力しなくても時間をかけて努力してれば出来る。

 

でも、他の人が書いたコードを正確に理解して、細かく読めるようになって改修できるようになるには、

 

努力のやり方にコツがいるのかなって僕は思っています。

 

TypeScriptのような静的型付けの言語であればなおさら、公式docsを全部暗記するくらい隅々まで目を通すのが大事かと思う。

 

別に覚えた端っこから忘れて言ってもいい、忘れるのと知らないのとでは雲泥の差があるし、

 

何回も思い出すことで記憶は強く定着していく。

 

これは、多分受験勉強と同じですよね、数学って別に才能があるひとが上手く出来るんじゃなくて、

 

過去にその問題を解いて解き方を知ってるかが重要で、難問と呼ばれる問題でも、

 

過去の問題で、一回でも解いて頭に入れてれば、汚いやり方でも解けるようになってたりする。

 

でも、目を通してないで、この問題はあんまり出ないでしょと軽んじてると、案の定本番で、その問題が出てきて、

 

読めない、解けない、落とす。

 

だからプログラミングも、公式Docsとか、詳しい技術書に書いてあるコードの書き方は、

 

たとえ自分のやり方で同じ機能が実装できても、書き方をちゃんと学んでおくのが大事です。

 

そうしないと、そういう書き方をしてる人にチーム開発で出会ったときに読めなくなってしまいます。

 

逆に言えば、ちゃんと使わなくても、覚えておけば、チーム開発でそのコードの書き方をしてる人に出会った特に、

 

やっぱり読めるんですよね。

 

僕は、このブログを使って、新しい書き方を覚えてここにブログをアップして、PV獲得するというモチベーションでやってるけど、

 

そういう風にやるようになってから、小さなコードの仕組みを知るのも楽しいし、PVにもなるし一石二鳥で楽しいなと、コードの完全理解モードの勉強が楽しくなりました。

 

是非、あなたも他人のコードが読めないと悩んでる方は、どうにかして細かいコードの動きをサボらず、横着せずに、頭に入れるのを楽しめるようになってください。

 

以上です。

 

新人エンジニアにおすすめ教材

Pocket
LinkedIn にシェア

エンジニアにおすすめできる本

Card image cap
リーダブルコード

より良いコードを書くためのシンプルで実践的なテクニック

Card image cap
Webを支える技術

HTTP,URI,HTML,そしてREST

Card image cap
誰でもPythonで作れる

儲かるAIとソフトウェアの作り方

Card image cap
プログラマが知るべき97のこと

現場で使える実践哲学のマスターピース

Card image cap
情熱プログラマー

時代を超えて。ソフトウェア開発者の幸せな生き方

Card image cap
アジャイルサムライ

プログラミング達人開発者への道

Card image cap
Rubyを作った男 まつもとゆきひろ

コードの世界 スーパー・プログラマになる14の思考法

  • この記事を書いた人
  • 最新記事

藤沢瞭介(Ryosuke Hujisawa)

りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

-コラム, プログラミング

Copyright© off.tokyo , 2021 All Rights Reserved Powered by AFFINGER5.