看《软件随想录》,听Joel Spolsky对程序员的六个建议
Joel Spolsky,你熟悉吗?
世界最具影响的程序员网志Joel on Software的主人,软件业一位旗帜鲜明的思想者,一位传统软件管理理念的挑战者。他创办的这个网站被程序员誉为“反呆伯特宣言书”,并被翻译为三十多种语言。他与人合办的Stack Overflow已经成为如今最热门的技术网站。
9年前,也就是2010年3月17日,Joel Spolsky结束了他的十年软件开发写作生涯。很多人对此感到遗憾,但是这个风格相当独特、坚持十年写下1000篇文章免费和大家分享的人不想再“重复自己”。
Joel 在某种程度上告别了Blog(https://www.joelonsoftware.com/),但是那些“生动活泼、富有启迪”的思想留在了Blog,也留在了Joel Spolsky的书里。
Joel Spolsky将自己对于软件技术、人才、创业和企业管理的随想文集集结为了一本书,中文版《软件随想录》(2009)由阮一峰翻译。在中文版的序中,作者Joel Spolsky表示,“很确凿的一点是,全世界的贸易壁垒都在消退,但是各国软件业之间的隔膜,却仍然大得惊人。”
《软件随想录》,共九大章节,分别是:人员管理、写给未来程序员的建议、设计的作用、管理大型项目、编程建议、开办软件公司、经营软件公司、发布软件、修订软件。全书分为 36讲,每一讲都是一个独立的专题。
现在,我们就一起来了解一下这位最具影响力的blogger为程序员们提出了六大建议!
1. 毕业前练好写作
一个普通程序员与一个优秀程序员的区别,不在于他们懂得的编程语言谁多谁少,也不在于他们喜欢用Python语言还是喜欢用Java语言,而在于他们能否与他人交流思想。如果你能说服其他人,你的力量就可以得到放大。如果你能写出清晰的注释和技术规格说明书,其他程序员就能够理解你的代码,因此他们就能在自己的代码中使用,而不必重写。
如果你做不到这一点,你的代码对其他人就没有价值。如果你能为最终用户写出清晰的使用手册,其他人就能明白你的代码是用来干什么的,这是唯一让别人明白你的代码有何价值的方法。
SourceForge[ ]上有许多优美的、有用的代码,但是它们都像被埋葬了一样,根本没人来用,原因就是它们的作者没有写好使用说明(或者压根就没写)。这样一来就没有人知道他们的成果,他们杰出的代码就衰亡了。
如果一个程序员不会用英语写作、没有良好的写作能力,我就不会雇他。如果你能写,不管你去哪家公司工作,你很快就会发现写作技术文档的任务会落到你头上,这意味着你已经开始在放大自己的影响力了,管理层正在注意到你。
你还可以动手写日记或者网志。你写得越多,写作就会变得越容易。写起来越容易,你就会写得越多。这是一个良性循环。
2. 毕业前学好C语言
请注意,我说的是C语言,而不是C++。虽然在实际使用中C语言已经越来越罕见,但是它仍然是当前程序员的共同语言。C语言让程序员互相沟通,更重要的是,它比你在大学中学到的“现代语言”(比如ML语言、Java语言、Python语言或者其它正在教授的流行垃圾语言)都更接近机器。你至少需要花一个学期来了解机器原理,否则你永远不可能在高级语言的层次写出高效的代码。
你也永远无法开发编译器和操作系统,而它们恰恰属于目前程序员能够得到的最佳工作之列。别人也永远不会放心将大型项目的架构设计交给你。我不管你懂多少延续(continuation)、闭包(closure)、异常处理(exception handling),只要你不能解释为什么while (*s++ = *t++);这句代码的作用是复制字符串,或者不觉得这是世界上对你来说再自然不过的事情,那么你就是在盲目无知的情况下编程。
在我看来,这就好像一个医生不懂得最基本的解剖学就在开处方,他看病的根据完全是因为那些娃娃脸的医药厂商销售代表说这种药有用。
3. 毕业前学好微观经济学
为什么计算机系的学生也应该学经济学?因为,从经营一家公司的角度来看,比起那些不懂的程序员,一个理解基本商业规则的程序员将会更有价值。就是这么简单。我无法告诉你有多少次我是那样地充满挫折感,因为我看到了太多的提出一些疯狂的想法的程序员,这些想法在代码上也许可行,但在资本主义世界中毫无意义。如果你懂得商业规则,你就是一个更有价值的程序员,你会因此得到回报的,但是前提是你要去学习微观经济学。
4. 选修有大量编程实践的课程
计算机科学与软件开发不是一回事。如果你真的非常幸运,你的学校可能会开设很像样的软件开发课程。但是另一种可能是,你的学校根本不教你在现实中如何编程,因为精英学校都觉得,教授工作技能最好留给职业技术学校、犯人重返社会的培训项目去做。
麻烦在于我们没有一种真正教授软件开发的专门学校。你如果想成为一个程序员,你可能只能选择计算机科学专业。这是一个不错的专业,但是它同软件开发不是一回事。在那些400等级的课程代号中,去寻找名称中带有“Practicum”这个词的课程吧(编者注:指供人实习的课程)。不要被这个拉丁语单词吓倒,这些都是有用的课程,之所以起这种名字,只是为了让那些文绉绉、装腔作势、满嘴胡说八道的公司经理们觉得高深莫测。
5. 别担心所有工作都被印度人抢走
我不断听说计算机系的入学人数下降得很厉害,已经到了危险的程度。根据我听到的说法,其中的一个原因是“学生们不愿去学一个工作机会都流向印度的专业”。这种担心大错特错,有很多理由可以反驳。首先,根据一时性的商业潮流决定个人的职业选择,这是愚蠢的。
其次,即使编程工作无一幸存地都流向了印度和中国,但是学习编程本身依然是一种第一流的素质训练,可以为各种超级有趣的工作打下基础,比如业务流程工程(business process engineering)。
再次,不管是在美国还是在印度,真正优秀的程序员依然是非常非常短缺的,这一点请相信我。
6. 找一份好的暑期实习工作
如果你喜欢编程, 就不要随便什么工作都答应,否则你会犯下最大的错误。不管是暑期工作,还是兼职或者其他性质的工作,只要与编程无关,就不要轻易接受。
如果你听从了我的建议,你还是有可能落得一个悲惨的下场,比如很早就卖掉了微软公司的股票,再比如拒绝了谷歌公司的工作机会,原因是你想要一间自己的可以关上门的独立办公室,或者做出了其他生命中愚蠢的决定。但是,这些可不是我的错。我一开始就告诉过你,不要听我的话。
以上就是作者Joel Spolsky对程序员的六大建议。
Joel Spolsky和其他同类书作者不同的是,他的语言有鲜明的态度,“夸张”、“激进”,独特而幽默。如果那些“一本正经”的书读腻了,不妨为自己换换口味,让这位程序员部落酋长和你来一场强势的对话。另外,这本书的另一个特点是,它不会给你答案,却会让你自己去深入思考一个答案。甚至,有些时候,你能读到让自己纠结和矛盾,这也正是本书的魅力所在。
《天堂电影院》里的那句著名台词“如果你不出去走走,你就会以为这就是世界,会相信事情一成不变。”
这句话也适用于程序员的世界,如果你不去了解其他人的世界,你就无法看到更大更鲜活的编程世界。
现在,点击下方链接,即可与最具影响力的程序员blogger ,Joel Spolsky一秒连线。
参考来源:
豆瓣
《软件随想录》
- End -
征题正在火热进行中!
(晋级赛Q1即将于3月10日开启,敬请期待!)
热门文章阅读
热门课程推荐
公众号ID:ikanxue
官方微博:看雪安全
商务合作:wsc@kanxue.com