プログラミングの学び方

8月30日木曜日、晴れ

ここ数日とにかく眠い。平日4時間から5時間の睡眠では、まったくもって足りないということが身にしみてわかるようになった、といえばいいのか。

以前も書いたけれど(書いたとおもうけれど)半年前までは3時間とかで無理を続けていた。よくもまあそれで動いていたものだ。働く頭も働かないとおもうんだけれどねえ?

* * *

配属された新人さんの、卒研を含めていままでの開発経験を聞く。

「いま振り返ると技術がなかった」という反省の言はなかなか興味深い。どこで技術のなさを自覚できるようになる技術を身につけたのか。学校か、就職してからの研修か、はたまた自学自習の賜物か。

研究室に引き継がれてきたコードの山を前に、前任者は卒業してすでにおらず研究ノートにはクラス図もメモもなく、コードを読み解く前に研究発表の時期がきてしまうとおもって諦めましたという話も聞いた。

ノートやメモがあろうとなかろうと、動くコードがあるなら動かしてみればいいし、腰を据えて読めばなんとかなる、気もする。(実際自分はそうしてきた)

けれど本当にこれがいいやり方か? と聞かれれば、そんなわけはない。

以下、尊敬する先輩のツイート。

ほんと、どこで学ぶのだろう?

* * *

クヌース先生は文芸的プログラミングを提唱した。でも説明文のなかに動くコードがあれば助けになるかというと、これまた疑問。もちろん助けになることはあるだろう。
でも全員が全員、小説家でもなければ教師でもない。

よくわからぬまま検索して見つけたコードをコピペして恥じないコーディングも見てきたし、構造化はどこ吹く風で延々と行を挿入しつづけた成れ果ても目にする。

不要と断じた行をザクザク削除して、既存の変数や関数の名前を変え、ヘルパー関数を追加したり逆にインライン展開したり、同じ構造を見つけて共通化したり。
しばしば僕はそんな書き換えをして元コードの意図を知ったりもする。結果として数十から数百の機能実装行が省略され消えたりもする。
ただ、こんな手術めいた操作は商業コードでは逆に嫌がられる。「動いていたものを、なぜわざわざ手を入れ大きく変えてしまうのか?」と。

僕がするのはコードを知るため、だ。

けれど、それは僕のコードの理解の仕方で、万人が採用できる方法ではないだろう。言葉が人それぞれであるように、思考の方法も、理解の方法も、千差万別だ。

* * *

ただ、それでも僕は知りたい。

人の考え方を。

人に考え方を伝える、そのやり方を。

この記事が気に入ったらサポートをしてみませんか?