快要放假了,最后坚挺的时刻,读本书吧。《我编程,我快乐 ——程序员职业规划之道》。
1,
当你开始做一个程序的时候,或许手头上有一个从网上复制的示例程序,看上去这个程序可以使用。为了满足你的需要,你会对这个程序稍加改动--添加一些代码,再加一点。你根本就不知道自己在做什么,只是不断地做一些小的修改,直到这个程序完全满足你的需要。但问题是,这样做就像是用纸牌搭建房子,每增添一张纸牌,就增加了一分纸房子坍塌的危险。你根本就不知道这个程序是如何工作的,所以你每做一点儿改动,都有可能导致你的程序完全失败。
注:深有同感。从开始开发,到现在感觉有点经验。上面的话我都浑身中箭。GitHub,是好朋友。我想,为了赶工期是很大的原因。也许刚开始编程的一段时间,可以搭纸牌。但是,感觉自己有点经验了,仍然在搭纸牌,这就说不过去了。至少,照着别人的纸牌,实现自己的纸牌吧。
2,
在有目的地选择投资哪种技术和领域时,风险收益平衡是一个很重要的权衡因素。
3,
从供求规律中,我们可以学到重要的一点--需求的增长会加剧价格的竞争。如果只想做稳定可靠的工作,并且跟随着工作发展,那么你就会卷入与国外开发人员的价格竞争中,因为你的技术决定了你只能进入平衡的外包市场。如果在主流技术市场中竞争,你就必须在更高层面上竞争,否则,你就要去发现市场上的不平衡,找到外包公司无能为力的工作。这两种情况,你都必须找到工作的动力,提高自身的技术和灵敏度来应对一切变化。
4,
只思考在哪种技术上投资是不够的。毕竟,技术只是一种商品。你不可能只掌握一种编程语言,或者只能够操作某种系统,然后把生意交给老板打理。如果他们只想找个懂代码的机器人,那不如雇个外国廉价的程序员。如果你想站稳脚跟,必须要深入了解你所处的领域。事实上,软件工程师不能只会开发软件,应该要成为这个业务领域的专家。
5,
学习一种新的编程语言。但不是从Java到C#或者是从C到C++。这门新的语言应该可以让你的思维方式产生变化。如果你是Java或者是C#的程序员,那就尝试学习类似Smalltalk或者Ruby这种不需要采用强类型的静态编程方式的语言。或者,如果你一直在做面向对象开发的话,可以尝试Haskell或者Scheme这样的函数式语言。你不需要成为专家,可以感到这种新的编程环境与你之前所处的环境的不同之处即可。如果你觉得并没有什么不同,那就说明你选错了语言或者你仍然将固有的思维方式运用到新的语言中。要彻底改变你的思维方式来学习新的语言。向熟悉这些语言的程序员请教,让他们检查你的代码并提出建议,使之更符合此种语言的特性。
6,
父母总不希望儿女去冒险,所以他们并不期望儿女有一个多么卓越的职业,只要差不多就行了。比起其他人的建议,父母给的建议总是包含着种种担心。这种出于担心的建议目的就是不要让你经历失败。但想着如何避免失败绝对不是取得成功的方法!成功是要冒险的。胜利者想的是他们想要做什么,而不是其他人会怎么做。出于担心的职业规划不会让你走向成功,而是会局限你的发展。没错,这条路很安全,但毫无乐趣而言。
7,
遗憾的是,软件开发界有很多这样肤浅的专业人士,这些人以"专业人士"为借口,只知道一门技术。
8,
你是否使用在虚拟机上编译并执行的编程语言?如果你使用,花点时间学习虚拟机内部是如何工作的。很多书籍和网站都专门就Java,.NET和Smalltalk进行讨论。学习这些东西总比你凭空想象要简单。