okuzawatsの日記

Android / Kotlin Enthusiast 🤖

新しいプログラミング言語を習得すること

言語が異なると、同じ問題でも違った解決方法が採用されます。いくつかの異なったアプローチを学習すれば、思考に幅が生まれ、ぬかるみにはまる事態を避けられるようになります。(David Thomas, Andrew Hunt (2020))

他にも何かの本でパラダイムの異なる言語を学ぶことで云々…みたいなことを読んだ記憶があるんですけど何で読んだのか忘れました。抜書を作った記憶もあるんですけど見つかりませんでした。何もかもが駄目です。

つまり、プログラミング言語、さらにはプログラミング言語のパラダイムによって、問題解決のためのアプローチやそもそも解決したい問題が違うので、習得しているプログラミング言語が増えれば問題解決のための引き出しが増える、ということのようです。

もう少し話のレベルを下げると、習得しているプログラミング言語の数が増えると、読み込める技術書の数が増える、ということもある気がしています。例えば、JavaScriptという非常にポピュラーなプログラミング言語を習得していれば、JavaScriptをサンプル言語とした多くの技術書を深く読むことができるようになる、という話です。JavaScriptを習得していない読者は、雰囲気でこのような技術書を読むことになるでしょう1

この話で象徴的なのが、WEB+DB PRESS Vol.100にあった、「計算機プログラムの構造と解釈 第2版」(通称「SICP」)を評した以下の言葉です。

この本を読めただけでLispの学習コストのもとはとれたと言えるでしょう。(WEB+DB PRESS Vol.100, (2017), p.3)

なお、SICPにはJavaScript版が存在します。原著を読む気合いさえあれば、Lispの学習コストを払う必要はなくなりました。

Reference

  1. David Thomas、Andrew Hunt、(2020)、達人プログラマー(第2版) 熟達に向けたあなたの旅、オーム社
  2. WEB+DB PRESS Vol.100、(2017)、技術評論社
  3. Gerald Jay Sussman、Harold Abelson、Julie Sussman、(2014)、計算機プログラムの構造と解釈 第2版、翔泳社
  4. Harold Abelson、Gerald Jay Sussman、Martin Henz、Tobias Wrigstad、Samuel Fang、Structure and Interpretation of Computer Programs JavaScript Edition、retrieved from https://mitpress.mit.edu/books/structure-and-interpretation-computer-programs-1 (最終アクセス日:2022年5月12日)

  1. 自分のことです。 ↩︎

#Other

About me 😎

profile

茨城県つくば市在住のソフトウェアエンジニアです。専門領域はAndroidアプリ開発で、特にアーキテクチャに興味があります。某社でAndroidアプリ開発のテックリードをしています。

Jetpack ComposeによるAndroid MVVMアーキテクチャ入門の著者です。

👉 もっと詳しく

Writing 📝

Android MVVMアーキテクチャ入門

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。

👉 もっと詳しく

See Also 👀