2019年/10月/30日

首页回退

十年学会编程

这又是一篇古老的文章,作者是google工程师Peter Norvig, 文章警告,你可能需要十年的编码才入门,只可惜,在这个浮躁的圈子里,十年之后是大量 的人开始放弃,开始管理别人,而殊不知自己还是个外行,以至于恶性循环

原文
翻译

为何人人都这么着急?

因为太多人想走捷径,其实没有捷径,不需要相信21天学通某门学问的鬼话

在十年里学会编程

研究表明 (Hayes,Bloom)在 任何一种领域内,象下棋、作曲、绘画、钢琴演奏、游泳、网球、以及原子物理学和拓 扑学,等等,
要达到专家水平大约都要化十年时间。没有真正的捷径

Fred Brooks在他的随笔 《没有银弹》 中定出了一个寻找优秀软件设计者的三步计划:

 Alan Perlis 说得更简明扼要:“每个人都能被教会雕刻:对米开朗其罗而言, 反倒是告诉他哪些事不要做。
 同样的道理也适用于优秀的程序员。”

应该学习的语言:

学习至少半打的编程语言。包括一种支持类抽象的语言(象Java 或C++),一种支持函数化抽象的语言(象Lisp或ML),
一种支持语法抽象的语 言(象 Lisp),一种支持声明规格说明的语言(象Prolog或C++ 的模板),
一种支持 共行程序(coroutine)的语言(象Icon或Scheme),一种支持并行的语言(象Sisal)
Scheme: Structure and Interpretation of Computer Programs (Abelson & Sussman)可能是最好 的计算机科学的入门书,
而且它的确把讲授编程作为理解计算机科学的一种方法。 但它具有挑战性,会让许多通过其它方式可能成功的人望而却步。

Scheme: How to Design Programs (Felleisen et al.)是关于如何用一种优美的、函数化的方式设计程序的最好的书之一。

Python: Python Programming: An Intro to CS (Zelle)是优秀的Python入门指导。

Python: Python.org上有许多在线指导。

Oz: Concepts, Techniques, and Models of Computer Programming (Van Roy & Haridi) 被视为Abelson & Sussman的当代继承者。它是对编程的高层次概念的巡视。 
涉及的范围比Abelson & Sussman更广,同时可能更容易学习和跟进。 它用了叫 做Oz的语言,不太知名,却可以作为学习其它语言的基础。