いいえ、正常ではありません1。少なくとも、優秀なプログラマーにとっては普通ではありません。おそらくプログラミングを学んでいる人にとっては普通のことです。
ソフトウェアを書くことは、それが機能するまでコードの行を一緒に平手打ちするだけではありません。コードを理解しやすくするために意識的に取り組む必要があります。私が非常に尊敬するプログラマーは、「コードは、書かれているよりも何度も読まれます」と私に言った。それは完全に明白なはずですが、彼が私に言うまで気づかなかったという事実でした。あなたのコードの多くは一度しか書かれておらず、一度か二度書き直されているかもしれませんが、ソフトウェアの寿命の間にコードを読むことになるでしょう。
コードを書いてから数分後に理解するのが難しい場合、それはコードが複雑すぎることを示しています。コードの追加を停止し、より良い方法を見つけてください。たとえば、5次元配列はほとんど決して良い考えではありません。本当に、本当に賢いプログラマーでさえ、そのような複雑なデータ構造を理解するのに苦労しています。
コードの読みやすさについて教えてくれた同じプログラマーは、「データ構造を見せてください。コードがどのように機能するか教えてくれます」とも言っています。意味のある、良いコードは、クリーンで理解可能なデータ構造から始まります。データを適切に設計する場合、コードはほとんど二次的な関心事です。確かに、ソフトウェアは単なるデータではなく、データから始まるため、このステートメントは少し誇張されています。そのため、クリーンで把握しやすいデータ構造の作成に取り組むと、コードがかなり理解しやすくなります。
1確かにそこには非常に複雑で、最も賢明なプログラマーでさえ理解するのが難しいコードがあります。一部の問題は本質的に複雑です。しかし、大多数のプログラマーによって書かれたコードの大部分は、そのタイプのコードではないと言うことを敢えてします。