笔者依然记得当年完成学业时,深信自己已经准备好进入任何一家软件公司,并开始成为一个顶级的开发人员。显然,开始工作后没多久,笔者就意识到,还有很多事是我所不了解的。
在不断吸取经验的同时,笔者一直在努力学习那些我从来没有学过的,但却是成为优秀的开发人员所应了解的基本知识。以下是笔者希望自己能在学校就学到的十件事。
1.我们总是错的
开发人员有着相当大的自我意识,包含了一些其他的非技术性缺陷,这也正是为什么我们很难发现我们做错了什么。我看到过很多无休止的设计讨论,开发人员不断地发表自己的想法……呵呵!猜猜怎样……我们都错了,唯一的区别就是我们犯错的离谱程度不同。
理解并接受这个事实非常重要,我们只有这样做了,才能敞开心胸去听听别人的意见,采用他们的想法,来得出一个更好的解决办法。
2. 事情若有可能出错,就一定会出错
也就是说“希望驱动开发(hope driven development)”,如果你对于某些事并不确定,如果你发现自己使用了“应该”这个词,那你就麻烦了。
而这只有一个解决方案,尽己所能去保证它不会出错,这可能意味着你需要编写一个测试、调试并验证需求……
3. 所有的代码都烂
在我抱怨那些我碰到过的代码十年之久后,我得出了一个精辟的结论,所有的(包括我自己写的)代码,都烂。当然,烂还是有等级之分的,但即便是我见过写得最好的代码,也是难以读懂的。
这并不意味着把你的代码写得更好是没有意义的,恰恰相反,最好和最坏的代码还是有天壤之别的。
4. 错误(Bug)总会存在
永远存在!问题只在于要发现它困难与否。
5. 客户最大
许多客户并不在乎你在方案中使用了哪些技术,应用程序需不需要做更多的事……或通俗上说,你是否使用了好的实践方案。
也因为我可以想象,要是我只说了前面那一段,我会收到多少恶评,让我说得更清楚些……我想说的是,我们永远不应该忘记客户的立场,有时候,开发人员为了最佳实践而在项目工程中过度坚持采用(某些)技术,但要记住,若这些技术无法给客户带来价值,那就放弃吧!
6. 纸上谈兵是行不通的
我曾认为,我可以在前期就把我的整个设计置于纸上,然后只要将缺漏处填上就好,但这样根本行不通。
软件开发是复杂的,若不亲手去碰碰看,很难看到所有的实际层面以及它们之间的关系。因此,在前期保持规划与设计是很有用的,但不要过度坚持,也不要把设计图表当作合约固守。
7. 少即是多
或者,你可能知道更好的说法是:“Keep it simple, stupid!”(保持简单,KISS设计原则)。所以,如果没有必要的就舍弃吧!因为要记住:“事情若有可能出错,就一定会出错。”
8. 编写代码只是我们所做工作的20%而已
请准备好,花80%的时间用于思考、调试、测试、开会、谈话……而所有的其他活动都是非常重要的,所以若要成为一个优秀的软件开发人员,你必须培养广泛而全面的技巧(Skill),而不仅仅是技术(Technical)。
9. 客户永远不知道他/她想要的是什么
客户若有需求,或是想法,但是他们不知道详细情况……软件开发要做的工作就是,发现细节并去除所有的不确定性,将这些需求转换成客户想要一个应用程序。
10. 已经有人做过了
所以不要再重新发明轮子,用谷歌找找看,或者更好的方法是,请教你的同事,很多时候他们可能都已经做了相同、或非常类似的事情。
来自http://www.williamlong.info/archives/2769.html
转载请保留链接:https://ilovetile.sijie.wang/1477/ 感谢您对版权的尊重
虽然不是程序员,有些内容还是很有帮助的
说得太好了。
大学基本就学不到什么东西。阿修罗更新文章喽,快来瞧瞧吧!
在大学里我学习了c# c++ java 数据库 asp.net 各种关于编程的东西 现在毕业一年了 也没有从事相关行业 脑子里都没有什么概念了。。。
@爱米特 哇学那么多啊
博客的文章值得学习
谢谢分享。
大学里学的是怎么造车轮,实际编程更需要你熟练组合车轮!
呵呵,我来了啊
写的很详细 受教了,博主谢谢
书本上的东西总是很基础很基础的。出来混的时候总是很复杂很复杂的东西才能挣到钱!
@赤血红涯 其实我还没有混过
这些大部分还没体验过,就“纸上谈兵是行不通”的这句,很赞成。。。。
@小呆 这句话貌似到各个行业都有道理的
刚出学门,是迷茫的!
走出社会才知道哪些是重要的。期待回访,快乐每一天!
有些意思。
@SOHO一族 哇你又来拉
大学肯定不会讲这些,大学里面永远是理论多于实践
@小呆
你的网站打不开了
这篇文章对我很有用哦。仔细读完了。
@自贡SEO 感谢支持
大学讲了一些基础的东西,更多的是在自己的实践中学习到的
@郑州网站推广 说得很有道理啊
路过顶下了!
恩,文章写的不错,我也是个IT民工啊。。
@90男孩分享网 嘿嘿
做编程恨辛苦吧,文章写得不错。
非常不错啊,总结的很好
好厉害啊~总结得很有意思啊~
回忆大学很美丽,仔细想想很迷失
在大学学校,老师教的东西不是很多,重要还是自己自学。
事情若有可能出错,就一定会出错。真的,代码领域错误无处不在!
学过一些代码编程,也忘记差不多了