青青子衿, 悠悠我心, 但为君故, 沉吟至今
« Twitter支持上传图片功能智能手机管理软件进入红海 »

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

  笔者依然记得当年完成学业时,深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久,笔者就意识到,还有很多事是我所不了解的。

  在不断吸取经验的同时,笔者一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本知识。以下是笔者希望自己能在学校就学到的十件事。

编程

  1. 我们总是错的

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

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

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

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

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

  3. 所有的代码都烂

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

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

  4. 错误(Bug)总会存在

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

  5. 客户最大

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

  也因为我可以想象,要是我只说了前面那一段,我会收到多少恶评,让我说得更清楚些……我想说的是,我们永远不应该忘记客户的立场,有时候,开发人员为了最佳实践而在项目工程中过度坚持采用(某些)技术,但要记住,若这些技术无法给客户带来价值,那就放弃吧!

  6. 纸上谈兵是行不通的

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

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

  7. 少即是多

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

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

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

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

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

  10. 已经有人做过了

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

  英文原文:10 things they never teach in college about programming

  中文翻译:伯乐在线



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/2769.html
  • 文章排行:
  • 1.Mr男人
  • 现在不是流行称呼为IT矿工嘛
  • 2011/8/11 19:36:54   支持(26)反对(14) 回复
  • 3.小F
  • 我是计算机大三生,总感觉关于编程,大学好像什么也没教给我啊。
    老师也就对那些原理的课程放放PPT。
  • 2011/8/11 18:03:48   支持(21)反对(13) 回复
  • 4.crownboy
  • 网页文本提取器
    自己做了一个程序,看似没有什么应用价值,也在不断的完善,名称叫 Crownboy 网页文本提取器 就是提取网页中的正文,提取网络上的,或者是本地网页中的都可以。不知这个软件有没有其它的使用场合。放在这的目的是让大家评一下这个软件有没有使用价值。
  • 2011/8/12 20:25:03   支持(20)反对(13) 回复
  • 6.zx2011
  • 你有没有访问过你博客的手机版呢?太难用了啊
  • 2011/8/12 20:35:05   支持(21)反对(16) 回复
  • 7.fans
  • 已经有人做过了
    是的,重复的事情没有必要再去做。
  • 2011/10/23 23:48:58   支持(17)反对(12) 回复
  • 8.cherishdyl
  • 只有经过过这些阶段的人,才能深刻理解这里面的内容!
  • 2011/12/5 15:14:11   支持(19)反对(14) 回复
  • 10.天剑博客
  • 我一直想成为程序员,可条件不允许啊。
  • 2011/8/11 23:57:12   支持(18)反对(14) 回复
  • 13.燕行者
  • 说得很好,只是,月光博客啊,我常常来看您,您能不能装扮得漂亮一点啊……?
  • 2011/8/14 21:51:16   支持(15)反对(12) 回复
  • 15.中国站长
  • 错误(Bug)总会存在--如人生
  • 2011/8/11 16:54:29   支持(15)反对(13) 回复
  • 16.绍兴家教
  • 看到楼上那句中国没有大学,只有工厂,终于明白了!
  • 2011/8/11 21:01:12   支持(16)反对(14) 回复
  • 21.putty中文
  • 其实何止十件,还有很多需要子来悟的
  • 2011/8/12 15:21:00   支持(16)反对(15) 回复
  • 23.新新
  • 为何作者是月光而不是投稿?
    SmallAnt 于 2011-8-11 20:28:07 回复
    大概因为月光把标号改了,而且配了图……
  • 2011/8/11 17:40:17   支持(16)反对(16) 回复
  • 24.黄爱美
  • 深表同感。。。。。。。。
  • 2011/8/11 17:58:29   支持(16)反对(16) 回复
  • 25.小黑
  • 月光博客,你好,我现在有个问题,问了很多人,都没法回答,希望你给回答下,谢谢!

    我的问题是:不知道你发现没,在GG中,不管搜索任何词,是任何词额,如果每页10个网站,不会超过90页,如果100个网站,不会超过10页,我的疑惑是,不管任何词,比如说产品词,做这个产品的厂家的网站数绝对不止1000个,不管是国内,还是国外,那么如果总共有6000个这样词的网站,那么其它的5000个站去哪里找?还有这5000个中应该很多都没有做过优化的才对,我觉得。

    问题很肤浅,希望你能耐心看完,然后给我解释下,谢谢了!
    可以的话,我希望能跟你邮件交流,我怕影响到其它人,毕竟你的博客知名度太高。谢谢!
  • 2011/8/12 10:00:26   支持(12)反对(12) 回复
  • 26.gothyeti
  • 这文章,说的全是一堆废话
  • 2011/8/12 15:23:42   支持(20)反对(20) 回复
  • 27.调皮鬼
  • 思想教育虽然传授了,但是没有一个学校能传授好,就目前国内的教育状况看,也许这也是一种必然的结果。
  • 2011/8/13 22:42:35   支持(13)反对(13) 回复
  • 29.只因
  • 中国没有大学 中国大学只是工厂
    生产样板产品而已
  • 2011/8/11 16:13:52   支持(18)反对(19) 回复
  • 30.抱鱼睡的猫
  • 当年差点学编程~一句数学好的才能学好编程~我就打退堂鼓了。。。。。。
  • 2011/8/11 16:44:33   支持(17)反对(18) 回复
  • 32.锋哥
  • 好吧,我编程学到一点点就没坚持下去了,后来又学后期制作,又放弃了,看是来在学校从小学到初二所学的内容无法理解吧
  • 2011/8/11 16:05:52   支持(13)反对(15) 回复
  • 33.一休哥哥网
  • 中国的大学还是大学吗?
  • 2011/8/11 17:53:03   支持(15)反对(17) 回复
  • 35.suwish
  • “事情若有可能出错,就一定会出错”。我觉得这个很对。
  • 2011/8/11 23:46:46   支持(14)反对(16) 回复
  • 37.武动乾坤
  • 我们学设计的也一样,有时过于自我意识
  • 2011/8/12 11:06:04   支持(12)反对(14) 回复
  • 38.豆丁网下载器
  • 又见十大。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • 2011/8/12 13:57:22   支持(19)反对(21) 回复
  • 40.fanny
  • 这个博客很不错喔。。虽然我现在才大一,我要好好想博主学习。
  • 2012/6/8 12:27:50   支持(14)反对(16) 回复
  • 41.zbqgmzb
  • 带数字的经验类文章都感觉一个味
  • 2011/8/12 1:04:16   支持(14)反对(17) 回复
  • 42.网页文本提取器
  • 自己做了一个程序,看似没有什么应用价值,也在不断的完善,名称叫 Crownboy 网页文本提取器 ,不知这个软件有没有他的使用场合。
  • 2011/8/12 13:05:01   支持(15)反对(18) 回复
  • 43.淡淡一笑
  • 刚工作有点懂也有点不懂,再过一段再来看一遍吧....
  • 2011/8/15 9:13:43   支持(15)反对(18) 回复
  • 45.无印良品
  • 果断sofa
    张海华 于 2011-8-11 22:51:25 回复
    果个毛,你这回复,太水了!!
    否何 于 2011-8-12 13:18:52 回复
    哈哈 有意思啊
    yaodot 于 2011-8-15 16:35:48 回复
    果断撤出编程人生
  • 2011/8/11 15:50:21   支持(18)反对(22) 回复
  • 46.胆清强磁外用贴
  • 我以前也是学编程的,伤了,之后就戒了
  • 2011/8/19 15:42:09   支持(16)反对(20) 回复
  • 47.乐问
  • 第十条很重要,尤其是在开发公司项目时,能快速的达到目的最关键,擅于借力的人,会事半功倍。
  • 2011/8/21 23:25:49   支持(13)反对(17) 回复
  • 48.吊灯吧
  • 大学不太实在,还是自己学点东西好
  • 2011/8/11 23:37:33   支持(21)反对(26) 回复
  • 49.深圳地磅
  • 小学毕业的我-程序员对我来说天方夜谭...
  • 2011/8/12 6:23:56   支持(17)反对(22) 回复
  • 50.校园博客
  • 我们学设计的也一样,有时过于自我意识
  • 2011/8/12 9:20:12   支持(7)反对(12) 回复
  • 51.chuangjiang
  • 认识了一点点皮毛,一直感觉自己还是一个门外汉,努力学习中。
    Only dead fish go with the flow.
  • 2011/8/12 9:31:08   支持(13)反对(18) 回复
  • 54.无名
  • 正在找工作 大学学到得真的很少
  • 2011/8/12 12:22:11   支持(10)反对(15) 回复
  • 55.屈晓璞
  •   2. 事情若有可能出错,就一定会出错

    这就是著名的墨菲定律~
  • 2011/8/12 18:42:37   支持(14)反对(19) 回复
  • 57.微故事
  • 当年就是叫编程的老师不好,自己就再也没兴趣了,其实个人因素还是占很大比重。
  • 2011/8/11 20:04:50   支持(9)反对(16) 回复
  • 58.斯人言
  • 原来我以为月光是写程序的。。。
  • 2011/8/11 21:29:05   支持(14)反对(21) 回复
  • 60.colin
  • 我的g+上不去了,谁能告诉我为什么?是不是hosts过期了?有谁知道有谁知道有谁知道
  • 2011/8/12 0:23:28   支持(12)反对(20) 回复
  • 61.张胤网络技术
  • 说的很对,我们现在虽然还没有毕业已经感觉到就业的压力了.现在干什么工作都不好干.
  • 2011/9/13 11:50:45   支持(11)反对(19) 回复
  • 64.路灯魂
  • 在学校总觉得学得很多了,可是当我们踏入这个社会又总觉得无所适从,为什么呢?总觉得我们离现实遥远,但是又觉得我们离童话遥远。
  • 2011/8/15 18:04:11   支持(18)反对(28) 回复
  • 65.酷呗
  • 好像。。。看好几次了。。。
  • 2011/8/11 17:27:47   支持(7)反对(18) 回复
  • 69.龙的传人
  • 是关于编程的话题吗?可惜了自己没能好好地学一学~
  • 2011/8/12 19:23:25   支持(9)反对(24) 回复
  • 70.苏茂哥
  • bug永远存在
    已经有人做过了
    ----------------------
    这几条很重要。
  • 2011/9/10 12:04:17   支持(10)反对(26) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.