美しい文章と美しいコード
英語を学び始めた頃、英文を書くときに、まず日本語で考え、それにあった英単語を辞書で調べて使ってみる、ということをしていた。今でも同じプロセスを経ることがあるが前に比べて注意深くなった。同じような意味であってもcontextによって使えないということはよくあるし、論理的には正しそうでもそういう表現はしない、ということもよくあるからだ。単語の意味は日本語訳があってもわからない。「楽しい」という単語を辞書で引けば、pleasant、happy、enjoyable、delightful、merry、joyful、joyousといった言葉がでてくるがどの場面でどの単語を使うべきかということはわからない。例文から類推するしかない。
実は自然言語だけでなく、コンピュータのプログラミング言語でも似たようなところがある。プログラミング言語は自然言語に比べて厳密なので正解と不正解がはっきりしている。それでも同じような動作を複数のやり方で実現することができその際にどのやり方を選ぶかというのは感覚で選ぶことが多い。おそらく効率のよさであったり、自分以外の人にとってのコードの見やすさであったり、後に起こり得るコードの変更のしやすさであったり、いろいろな要因を考慮して選んでいると思うのだが無意識のうちに選ぶこともある。美しい文章が存在するのと同様美しいコードというものが存在する。ロジックとしては正しくても通常はそういう使い方はしないということもありえる
自然言語でもプログラミング言語でも覚えたての頃は使い道を覚えた少ない語を多用しながら何とか意味の通るぎこちない文章あるいはかろうじて実行可能なコードをつくる。しかし、量をこなしていくうちにだんだんアウトプットが洗練されていく。語彙数や知っている関数が増えていくということもあるだろうがそれ以上に直観のようなものが鍛えられていくことが大きい。洗練されていくと不要なものが省かれシンプルになっていく。それがネイティブの書く美しい文章であり、美しいコードだと思う。
大学受験等の短期的な目標があると、単語を覚えたり、文法を学んだりする方が近道に見える場合もあるが、外国語の習得においてもプログラミング言語の習得においてもネイティブに近づくためには結局インプットとアウトプットの量が必要になる。量をこなしていく中で自然と、「何となく」こっちのがいい、という感覚が身についていく。その感覚があって初めて洗練された文章、洗練されたコードが書けるようになる。
洋々ではプロフェッショナルによる無料の個別相談を承っております。
個別相談申込ページからご予約いただくか、
電話またはメールにてご連絡ください。
電話:03-6433-5130(平日1400-2100、土1000-1900。水日祝休み。)
Eメール:you2_info@you2.jp
お気軽にご相談ください。
洋々代表。日本アイ・ビー・エム株式会社にて、海外のエンジニアに対する技術支援を行う。その後、eラーニングを中心とした教材開発に、コンテンツ・システムの両面から携わる。 東京大学工学部電子情報工学科卒。ロンドンビジネススクール経営学修士(MBA)。