」見下すような冷淡さでバッサリと切り捨てられる。「そうですか・・・どこがまずいのでしょうか?」セキヤはこんな風にサクラと何気なく会話できている自分が嬉しい。内心は小躍りしたいような気分なのだが、表向きは平然と会話を続けられること自体が嬉しい。居直ってはじめてこちらを見たサクラの知的な目がキラリと光る。のぼせ上がっており、もはや目の前のコードやプログラミングコンテストの地区予選のことなどはどうでもよくなっていたセキヤではあるが、ただただサクラとのこの時間を持続させたい一心で上辺の調子を合わせる。「教えていただけると嬉しいです。「来月の頭くらいですね。あいだ思案した様子で、サクラがおもむろに言う。「まあ、ギリギリ間に合うかも。自分の熱心さが部長のサクラに認められたのだろうか?厳しいが美しく能力も高いサクラは、部員への面倒見も良く、絶大な人気がある。雲の上のような存在であるサクラからの思ってもみないオファーにセキヤは心がうち震えるようだった。この高校に入学できてよかった。コンピュータ部に入部して正解だった。今、この瞬間、僕は青春を謳歌している!セキヤは自分の幸運と幸福を噛み締めていた。0から9までの数をすべて足すコードを書けサクラは無造作に近くにあった椅子を引っ張ってきて、セキヤの隣に姿勢よく座った。サクラと寄り添うような格好になってしまった上に、至近距離で自分の名前を呼ばれて著しく混乱してしまっているセキヤだが、なんとか振り絞るように答えた。「JavaScriptです。基本的なところから始めてみましょうか。問題に向かえば、セキヤは不思議と心は落ち着く性分だ。躊躇なく書き慣れたコードをタイプしていった。n;}console.log(s);45「ほら、どうです!こたえは45になりましたよ。軽い達成感とともにセキヤは、サクラへ誇らしげに言う。「動くだけで、やっぱり超ダサい。「今どきこんなダサいコードを書いているようではなにかと厳しいでしょうね。「そうなんですか!?でもどこがダサいのかさっぱりわかりません。先輩がコード書いて、ダサくない見本を見せてくださいよー。」あえて甘えた感じでセキヤは言ってみる。私ならクールにこう書くわ。」キーボード上に細長く美しい指が流れる光景に、しばしセキヤは見惚れてしまっていた。」サクラの声に我に返ったセキヤ。コードをじっくりと見てみる。「クールでダサくないイケてるコードよ。「よくわからないですね。「あと、ダサいと言われ続ける今の僕のスキルじゃ、先輩のコードは意味がわからないし、ごちゃごちゃしてるようにも見えます。うるさいのはあなたよ。今からそれを説明してあげるんだから、ちょっと黙れ小僧。」イラッとしたサクラに叱咤されてしまった。「申し訳ありません、サクラ先輩。失礼いたしました!」セキヤは半ば恍惚としてしまっていた。フローは複雑でバグの元凶サクラはちょっと考えてから作図アプリを立ち上げ、手際よくグラフを作成していった。フローチャートと呼ばれるもので、このフローチャートは僕が書いたコードの流れ、つまり僕のコードのフローをグラフ化したものです。」サクラは満足そうに頷いた。「『0から9までの数をすべて足すコードを書け』でした。「たしかに、わかりにくいでしょうね。」セキヤの若干の反抗を感じ取り、またちょっとイラついた様子のサクラではあったが会話を続ける。仮にこれが『0から9までの数をすべて足すコードを書け』という問題ぽいな!とすぐ見抜けるほど気の利いた人がいるとしましょう。「それはまず居ないと言って良いんじゃないでしょうか。コードにすぐバグが紛れ込む事はプログラマならば誰でも身を削るようにしてよく理解しているはずです。コードが正確かどうか確信をもって断言できると思ってるプログラマが居るとしたら、そいつはモグリでしょう。「よくわかってるじゃない。」サクラは再び満足気に頷いた。「つまりセキヤ君のコードはかんたんなようで実はかなり複雑なのよ。手っ取り早いのは実際にコンピュータでコードを走らせてみてエラーが出るか試してみる事でしょうね。そのほうが速くて正確。エラーが出ないバグが一番やっかいね。最終的には変数をウォッチするデバッグ機能なども利用して変数の値を逐次検証していく必要はある。「おっしゃるとおりですね。「コードのフローを逐一追跡しながら隠れたバグを探し出すのはものすごい骨の折れる作業ですよね。「そして、これこそが多くのコードが抱える根本的な問題。バグを解決できずにプロジェクトそのものが頓挫することはままあるわね。セキヤ君、あなたのコードがダサいと言われる理由は、そこにある。フローは複雑でバグの元凶なのよ。「先輩の言うことはもちろんよくわかるんです。「だから、その発想がダサいのよ。」うんざりとした調子でサクラが言う。「『0から9までの数をすべて足す』という問題自体には、繰り返しや条件判断といったフローはまったく確認できないですね。「それしか方法がないからですよ。この問題を解くには、繰り返しや条件判断といったフローを含むコードを書くしかない。フローは絶対に避けられないと思います。.reduce(plus);console.log(s);「うーん、言われてみればフローが消えてるなあ。僕のコードにあったforループや条件判断がすべて綺麗さっぱり消えてなくなっています。「少しは成長したわね。」サクラはまた満足気だ。「いい?フローをもってコードを書くことは唯一の方法ではないの。フローを書くことは複雑な仕事でバグの温床となるダサいやり方なので、フローを書くプログラミングはもうやめなさい。「『0から9までの数をすべて足す』という問題にフローはない。「それが出来るならば言うこと無いです。コードはクールになりますね。「クールなコードでは、フローの設計やフローの妥当性の検証に労力を費やすようなダサい真似はしないのよ。「つまり、プログラミングの最大の課題であるデバッグの手間が激減するというわけですか?それはかなりクールなことになってしまう。「フローじゃなくて不要(フヨー)ですね。「ダサいダジャレだけど、まさにそのとおりよ。口元をゆるませながらサクラは続ける。私のコードの真価を理解しているとはとても言えないわね。問題の論理だけに集中しているってことに他ならないの。「それはもちろん、問題の論理そのものだけに集中してコードを書いていきたいです。私のコードのクールさの真価はそこにある。問題の論理そのものに集中しているの。「もう少し説明をお願いします。足すと、単純に問題の論理そのものをコードへまる写しにしているだけ。「わかった?私のクールなコードでキモとなる部分はたったこれだけ。「ということは、つまり、私は本当に『0から9までの数をすべて足すコードを書け』の解法として合っていると確信をもって断言できるわけ。論理のみで構成された、これ以上望めないほど見透しの良いクールなコードを書くことは、ダサいコードを平気で書く常人プログラマーの想像を超えた『コードを見透せる眼』をもつことに等しいのよ。God)このサクラの発言で、セキヤには少し思いあたる節があった。「先輩、それはひょっとして『神の眼』のことでしょうか?部員がサクラ先輩は『神の眼』のスキルを持っているとかなんとか噂しているのを聞きました。「なんとも言えないわね。「先輩、教えてください。噂の真相を知りたいです。レベルが低すぎるのよ。『神の眼』と呼ぶなら、これはまだレベル0のスキルだから。面倒になったのか、あきらめるようにサクラは答えた。「私自身は、単に『見透しの良いクールなコード』とか『コードを見透せる眼』と普段言っているわ。それを彼らが大げさに誇張しているだけなんじゃないかしら?だいたい『神の眼』と騒ぐようなたいしたことでもないの。「きっと先輩はIQ145あるからそう思うんですよ。部内では先輩のコーディングのスピードとコードにバグが出ないことは有名だし、僕らにしたら先輩が『神の眼』を持ってるとしか思えないんです。「そう呼びたければ『神の眼』でもなんでも好きにすればいいわ。」まったく興味がなさそうに答えるサクラ。「先輩、僕は先輩のように『神の眼』のスキルが欲しいです。今の僕はまるでダメですね。これまで、問題の論理を上手にフローに変換してフローを設計する作業こそがプログラミングだと勘違いしていたようです。ダサい己のダサさを認めざるを得ません。」セキヤはここぞとばかりに自分の熱心さを懸命にアピールしてみた。「そうね、その自覚がもてればようやくスタート地点に立てたということ。おめでとうセキヤ君、今あなたは、レベル0よ。「ありがとうございます。「まったくしょうがないわね。」サクラはセキヤを見据えて宣言する。問題の論理そのものをコードに単純に書き写す事を徹底的にやっていくということを常に肝に銘じて置いて頂戴。これがクールなコードを書くための唯一の方法よ。間をおいて、サクラは言う。「もういちど私のクールなコードでキモの部分を確認するわよ。足す問題の論理そのものをコードに単純に書き写す事を徹底的にやっていく。9]とそのままのデータまるごと用意してしまうの。『をすべて足す』という論理操作をしてやるのね。//をすべて足すという部分ですね。『0から9までの数をすべて足す』という論理をコードに書き写したことになるの。問題の論理そのものをコードに単純に書き写す事を徹底的にやっていく。「ああそうね、関数について説明しておいたほうがいいわね。「僕はざっくりとしか理解してないので、おねがいします。「関数というのは中学校の数学の授業でも習うとおり、もともとは数学用語なの。それがそのままプログラミング用語に転用されたものね。数学・プログラミング用語として、英語ではfunction、それを和訳したものが関数。関数はfunctionの翻訳語として気の利いたものだとは思えないわね。