コーディングを支える技術――成り立ちから学ぶプログラミング作法
はじめに
世の中にはたくさんのプログラミング言語があります。読むべきドキュメントもたくさんあります。しかしあなたの使える時間は有限です。すべてを学ぶことはできません。
また、特定の言語やツールなどの知識はすぐに陳腐化します。変化の速度が速いからです。意識して「変化しにくい知識」を学ばなければ、学んだことがどんどん価値を失ってしまうでしょう。
それでは、何をどう学べばよいのでしょうか? 筆者は学び方には3つの柱があると考えています。
- 比較から学ぶ
- 歴史から学ぶ
- 作ることで学ぶ
1つ目は,複数の言語を比較することです。何がその言語特有のことで,何がいくつもの言語で共通のことなのかを学ぶことができます。
2つ目は,言語の発展の歴史を追うことです。どう生まれ,どう変化し,どう滅んだのかを学ぶことで,「なぜこうなっているの?」というよくある疑問が解決することが多いです。
3つ目は,自分で言語を作ることです。「自分ならどう作るだろう」と考えることで,言語設計者の意図を理解しやすくなります。また,実際に作ることで自分の知識のあやふやな点がどこかを知ることができます。
読者のみなさんは,きっと今までにいろいろな本を読んで「なぜ?」と思ったことがあるでしょう。本書の目的はみなさんの「なぜ?」を解決することです。あまりプログラミングに慣れていない方を想定し,「比較から学ぶ」と「歴史から学ぶ」方法にページを多く割きました。この「学び方」自体を学んでもらえれば,著者としては大成功です。
謝辞
本書の執筆にあたっては多くの方のご協力をいただきました。ご協力いただいた方に順位を付けるのは心苦しいので,敬称略,順不同ですがご容赦ください。和田英一氏,井出真広氏,佐藤敏紀氏,長慎也氏,鷲見正人氏,石本敦夫氏,瀧澤昭広氏,文殊堂(monjudoh)氏,小泉守義氏,笹田耕一氏,園田裕貴(Yugui)氏,庄司嘉織氏,尾崎智仁氏,水島宏太氏,矢野勉氏,松原豊氏,cactusman氏,都元ダイスケ氏,小田切篤氏,竹迫良範氏,光成滋生氏,中谷秀洋氏,蓑輪太郎氏,中山心太氏,Paweł Marczewski氏,Harry Roberts氏,ありがとうございます。
また,技術評論社の池田大樹氏にはこの本を形にするためにご尽力いただきました。ありがとうございます。
最後に,執筆に時間を使えるのも,妻の協力があってこそです。ありがとう!