日々のソフトウェア開発業務のなかで当たり前のように行っているコードリーディングを得意にする必要はあるのでしょうか?面倒だなとかやりたくないなと思うことはあっても、得意になりたいというモチベーションは湧かないかもしれません。しかし、コードリーディングが得意になると、
- 技術力の向上
- ストレスの低減
- 自信の確立
- 信頼の獲得
というメリットがあります。特にコードリーディングへ苦手意識のある方にはぜひとも克服しようと頑張ってもらいたいです。
技術力の向上
コードリーディングは、ソフトウェア開発におけるインプット作業です。コードリーディングが得意になることによって「技術力が向上する」とは、 コーディング(=アウトプット)を上達させるためにコードリーディング(=インプット)を増やすという基本的な考え方 にもとづいています。直接的にコーディングの力を向上させる知識やテクニックを身に着けたいと思うのが自然な発想ですので、やや間接的なアプローチとなる「コードリーディングの量をこなす」という方法を重視する方は少ないでしょう。
ましてやコードリーディングに苦手意識があると、どうしても量をこなさなくなります。英語学習に置き換えてイメージすればわかりやすいでしょうか。苦手意識があると取り組み頻度は上がりにくく、いざ着手してもすぐに疲れてしまいます。まず苦手意識を克服し、徐々にコードリーディングの量を増やすことができれば、自ずとそのインプットがコーディングというアウトプットへ反映されて、技術力の向上を実感できるはずです。
ストレスの低減
コードは読みにくいものです。かんたんに読めるものであるならば、「リーダブルコード」のように書く段階から読みやすさを意識しようという考え方がことさらに持ち上げられることはありません。コードリーディングが得意になるとは、 コードの読みにくさ、とっつきにくさへ耐性がついていく ことでもあります。コードリーディングへ感じるストレスを減らすことができれば、コードリーディングの量も自然と増えていき、前述のような技術力の向上によって好循環が生まれ、成長していけることでしょう。
「慣れる」ことが始めの一歩となるわけですが、そもそもコードリーディングへ苦手意識があるエンジニアにとって、「慣れる」までの道のりは決して楽なものではありません。コードの読みにくさにストレスを感じるからこそ、コードリーディングを敬遠してしまうのであり、その結果としてますますコードリーディングが上達しないという悪循環に陥ってしまうわけです。わずかなヒントを求めて延々とメールの履歴を追いかけたり、検索を繰り返して的はずれな記事を開いては閉じるという無駄な作業に時間を浪費してしまったという経験は誰しもあるかと思います。コードリーディングを避けて迂回路を進むのではなく、コードを読んで解決策を考えるという直接的な経験を積み重ねていけば、コードリーディングへのストレス耐性も強くなっていきます。
自信の確立
技術力が向上し、コードリーディングへのストレスや不快感が低減すれば自信がつくのは当然です。しかしそれだけでなく、コードリーディングが得意になったことで得られる自信は、 初見ですぐに解決策が思いつかないような困難な課題であっても必ず原因を突き止めてやろうという姿勢にあらわれてきます。こういった問題解決への粘り強い態度は非常に重要な素養であり、それが身につくことは大きなメリットと言えます。
コードリーディングへの苦手意識に限らず、初級者の場合には漠然とした不安や自信のなさを抱えています。何か力をつけられるものはないかと情報を集めることに必死になってはみたものの、やるべきこと、やったほうがいいことが膨大すぎて何も手につかないのではないでしょうか?コンピューターサイエンスの学科に行っていないことをくよくよと悩む気持ちをふくらませるのではなく、今できていないことを少しずつ解決していくことで、できないことよりもできるようになったことに視点が移っていきます。コードリーディングはソフトウェア開発業務において基礎的な作業だからこそ、苦手を克服したときの効果も大きく、その価値も十分にあります。
信頼の獲得
コードリーディングが得意になることで、わからないことを同僚や上司に質問する回数は減っていきます。同僚や上司が当然自力で解決してほしいと期待していることができるようになるため、信頼を得られるソフトウェアエンジニアへと変わっていくことができます。
当たり前のことのようですが、裏を返すと コードリーディングすれば自力で解決できることを他人に頼っているうちはソフトウェアエンジニアとして信頼されていない ということです。面倒ごとを避けるどころか、周りに押し付けているという仕事ぶりから抜け出す必要があります。初級者の段階では必死にやった上でわからない、できないので仕方ないところも多分にありますが、苦手なものがあると自覚できたのなら、迷わず克服しようと前へ進むことをおすすめします。
終わりに
コードリーディングへの苦手意識を克服し、徐々にコードリーディングが得意になっていくことで得られるメリットについて紹介しました。抽象的なテーマであり、中上級者のソフトウェアエンジニアにとってはすでに通過した過去の話だったかもしれません。しかし、コードリーディングという面倒で厄介なタスクをなぜやらなくてはならないのか?と新人のソフトウェアエンジニアに聞かれた時に、今回紹介した技術力の向上、ストレスの低減、自信の確立、信頼の獲得に相当する話を体験に基づいて語る機会があるのではないでしょうか?
苦手で逃れたいことであるからこそ、なぜ克服しようとすべきなのかを繰り返し思い出してモチベーションを保っていく必要があります。そういった場面で本記事を思い出してコードリーディングによって成長した姿をイメージしてみてください。一緒に頑張っていきましょう。