关闭

关于编程,大学没有传授的10件事

390人阅读 评论(0) 收藏 举报
我依然记得当我完成学业时,我是多么的天真。那时我深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久我就意识到,还有很多事是我所不了解的。 在不断吸取经验的同时,我一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本知识。以下是我希望自己能在学校就学到的10件事。

0. 我们总是错的

开发人员有着相当大的自我意识,包含了一些其他的非技术性缺陷,这也正是为什么我们很难发现我们做错了什么。我看到过很多无休止的设计讨论,开发人员不断地发表自己的想法……呵呵!猜猜怎样……我们都错了,唯一的区别就是我们犯错的离谱程度不同。

理解并接受这个事实非常重要,我们只有这样做了,才能敞开心胸去听听别人的意见,采用他们的想法,来得出一个更好的解决办法。

1. 事情若有可能出错,就一定会出错

也就是说“希望驱动开发(hope driven development)”,如果你对于某些事并不确定,如果你发现自己使用了“应该”这个词,那你就麻烦了。

而这只有一个解决方案,尽己所能去保证它不会出错,这可能意味着你需要编写一个测试、调试并验证需求……

2. 所有的代码都烂

在我抱怨那些我碰到过的代码十年之久后,我得出了一个精辟的结论,所有的(包括我自己写的)代码,都烂。当然,烂还是有等级之分的,但即便是我见过写得最好的代码,也是难以读懂的。

这并不意味着把你的代码写得更好是没有意义的,恰恰相反,最好和最坏的代码还是有天壤之别的。

3. 错误(Bug)总会存在

永远存在!问题只在于要发现它困难与否。

4. 客户最大

许多客户并不在乎你在方案中使用了哪些技术,应用程序需不需要做更多的事……或通俗上说,你是否使用了好的实践方案。

也因为我可以想象,要是我只说了前面那一段,我会收到多少恶评,让我说得更清楚些……我想说的是,我们永远不应该忘记客户的立场,有时候,开发人员为 了最佳实践而在项目工程中过度坚持采用(某些)技术,但要记住,若这些技术无法给客户带来价值,那就放弃吧!(编注:关于客户,作者Alberto在其前 几篇文章《我的10个开发原则》和《程序员常犯的5个非技术性错误》都有提到,可见他对这一点的体会。)

5. 纸上谈兵是行不通的

我曾认为,我可以在前期就把我的整个设计置于纸上,然后只要将缺漏处填上就好,但这样根本行不通。

软件开发是复杂的,若不亲手去碰碰看,很难看到所有的实际层面以及它们之间的关系。因此,在前期保持规划与设计是很有用的,但不要过度坚持,也不要把设计图表当作合约固守。

6. 少即是多

或者,你可能知道更好的说法是:“Keep it simple, stupid!”(保持简单,KISS设计原则)。所以,如果没有必要的就舍弃吧!因为要记住:“事情若有可能出错,就一定会出错。”

7. 编写代码只是我们所做工作的20%而已

请准备好,花80%的时间用于思考、调试、测试、开会、谈话……而所有的其他活动都是非常重要的,所以若要成为一个优秀的软件开发人员,你必须培养广泛而全面的技巧(Skill),而不仅仅是技术(Technical)。

8. 客户永远不知道他/她想要的是什么!

客户若有需求,或是想法,但是他们不知道详细情况……软件开发要做的工作就是,发现细节并去除所有的不确定性,将这些需求转换成客户想要一个应用程序。

9. 已经有人做过了

所以不要再重新发明轮子,用谷歌找找看,或者更好的方法是,请教你的同事,很多时候他们可能都已经做了相同、或非常类似的事情。  
0
0
查看评论

关于编程,大学没有传授的10件事

我依然记得当我完成学业时,我是多么的天真。那时我深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久我就意识到,还有很多事是我所不了解的。  在不断吸取经验的同时,我一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本
  • lpy123456
  • lpy123456
  • 2011-07-18 14:21
  • 315

ACM_总论_关于编程大学没有传授的10件事

转自:http://kb.cnblogs.com/page/109195/    我依然记得当我完成学业时,我是多么的天真。那时我深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久我就意识到,还有很多事是我所不了解的。   在不断吸取经验的同时,我一直...
  • essencelite
  • essencelite
  • 2013-09-18 21:12
  • 347

就编程而言,大学没有传授的10件事

我依然记得当我完成学业时,我是多么的天真。那时我深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久我就意识到,还有很多事是我所不了解的。  在不断吸取经验的同时,我一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本
  • SmartTony
  • SmartTony
  • 2011-08-28 23:23
  • 634

关于编程,理应传授的10件事

关于编程,理应传授的10件事我依然记得当我完成学业时,我是多么的天真。那时我深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久我就意识到,还有很多事是我所不了解的。在不断吸取经验的同时,我一直在努力学习那些我从来没有学过的,但却是成为优秀
  • sinceow
  • sinceow
  • 2011-07-25 09:59
  • 271

关于编程,大学没有传授的十件事

笔者依然记得当年完成学业时,深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久,笔者就意识到,还有很多事是我所不了解的。   在不断吸取经验的同时,笔者一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本知识。以下是笔者希望自己能...
  • wangqi0079
  • wangqi0079
  • 2013-08-26 16:03
  • 467

关于编程,大学没有传授的8件事儿……

1、我们总是错的; 2、事情若有可能出错,就一定会出错; 3、所有的代码都烂; 4、Bug总会存在; 5、客户最大; 6、纸上谈兵是行不通的; 7、少即是多; 8、编写代码只是我们所做工作的20%而已。 转自:http://echowong.info/post/2011-12-10/...
  • jinzi12345678
  • jinzi12345678
  • 2011-12-12 13:17
  • 725

大学四年要做的四件事

   大学之初的确不知道自己应该做什么,有一次看鲁豫的节目,她说大学四年必须要做的是: 1.学好英语;这直接决定了你大学四年的生活是怎样的 2.学一门能够以后在社会立足的手艺 3.结识一个或者一群朋友 4.谈一场轰轰烈烈的恋爱现在大学生活结...
  • ligaorenvip
  • ligaorenvip
  • 2006-08-29 13:05
  • 429

10件大学里没有传授的事!~

0. 我们总是错的   开发人员有着相当大的自我意识,包含了一些其他的非技术性缺陷,这也正是为什么我们很难发现我们做错了什么。我看到过很多无休止的设计讨论,开发人员不断地发表自己的想法……呵呵!猜猜怎样……我们都错了,唯一的区别就是我们犯错的离谱程度不同。   理解并接受这个事实非常重要,我们只...
  • win2000_li
  • win2000_li
  • 2012-09-07 08:49
  • 448

架构师最怕程序员知道的10件事情

http://developer.51cto.com/developer/top10Architect/#rd?sukey=66d4519b2d3854cd535bf0462edeb1d5721720363e90d6701c95530c7d8a78ac6203d54a7f38501ac7386ff1...
  • maikelsong
  • maikelsong
  • 2016-11-23 11:40
  • 355

{思想上进心} 架构师最怕程序员知道的10件事

转载地址:http://developer.51cto.com/developer/top10Architect/ 10 艺术气质 优美的系统与架构师的艺术气质; 梁远华:架构师需要广泛的知识面;   9 管控能力 架构师要善于管理整个开发团队;   8 权衡...
  • cjqqschoolqq
  • cjqqschoolqq
  • 2013-03-14 21:34
  • 783
    个人资料
    • 访问:271544次
    • 积分:2623
    • 等级:
    • 排名:第16389名
    • 原创:35篇
    • 转载:48篇
    • 译文:0篇
    • 评论:12条
    最新评论