本文是码农网原创翻译,转载请看清文末的转载要求,谢谢合做!html
不论你是刚毕业的大学生,仍是入门级的程序员,亦或是高级程序员,但愿此文都能给你一些启发。程序员
从我11岁初次进入编程领域,我就被她的魅力所倾倒,一直陷在她的石榴裙下不可自拔,我深深地爱上了编程。做为后来者,你可能没有个人这些经历,我如今将这些经验公之于众,但愿能对你们有所帮助。我相信长江后浪推前浪,一代新人换旧人,后生可畏。算法
其实不要说20条经验,哪怕30条、40条,都是远远不止的,可是在我从业20年的时间里,我已经将全部的精华都已经概括到这20条中了,固然若是之后有增长,我会补充更新的。编程
下面就是我目前为止最让我受益不浅的20条。(这可都是我血与汗的结晶啊。)设计模式
好吧,对于这一点,我不得不认可,做为一个程序员我很惭愧。我曾经亲眼目击一个牛人连续8小时坐在电脑前就为了解决某个程序问题,呵呵。给本身定个时间,1小时、30分钟均可以,甚至15分钟也行,若是在这段时间内你仍是毫无头绪,那么为避免浪费时间,能够直接寻求帮助或者自行在网上搜索。不要牛逼哄哄地觉得本身是个超级编码器——你只是一我的,而不是计算机。less
一旦了解了某种编程语言的工做原理,那么其余语言之间的共通之处就显而易见了。咱们选择编程要参照这样的标准:用的得心顺手、生产的效率高、写出来的代码整洁,而最最关键的是,编程语言应该适合项目,反之亦然。编程语言
有时候,比起组合成一个像模像样的模式,还不如编写一个简单的算法来的省时省力。并且通常而言,用于写算法的代码还更整洁,更便于理解。学习
话说有一次个人一个硬盘忽然完全坏了,致使我写的许许多多代码统统丢失,要知道这些代码但是从我年轻的时候就开始存储起来的,意义非凡,是无价之宝。你不明白丢失数据的可怕性只是由于你还不曾经历过。试想一下,要是明天就是最后的期限,而今天你却仅仅是由于没有备份而使得所作的一切努力化为流水,不光是悲剧,仍是人间惨剧。这一条也一样适用于源码和版本控制。测试
有时候我经常坐井观天地觉得老子天下第一。后来慢慢发现,原来别人能比我作的更好。要谦虚谨慎地向他人学习。优化
接上面第5条,我常常手不释卷,抱着杂志和书籍啃上面的计算机和编程的知识(不信能够问个人朋友,他们能够为我做证)。诚然,如今是个信息爆炸的时代,想要跟上技术发展的脚步真心不是件易事。每一天都孜孜不倦地学习,就是我所谓的及时接收这些信息的好办法,这样,咱们才不会被时代的大浪拍死在沙滩上。
咱们学习技术和编程方面的知识应该和咱们买股票同样:要多样化。不要觉得学会了一种技术就能够高枕无忧了。若是某种技术或者编程语言后继无力逐渐被市场所淘汰,那么就得赶快更新简历,而且临时抱佛脚迅速练习新技术。我这么多年的经验告诉我,不要把全部鸡蛋都放在同一个篮子里,至少得掌握两三种语言,以防有一种过期了,另一种还能在你闭关修炼新技术的时候应急顶上。
给予和培训初级/入门级开发人员有关于编程的指导和技巧。温故而知新,要知道,在帮助他们进步的同时,咱们本身可能也在进步,变得更自信,更有发展潜力。
写完代码以后,回过头去再好好进行优化。虽然这边改一点,那边变一点,显得很琐碎,可是从长远角度来看,之后维护起来那可就不是方便了这么一点两点的事了。
不管是Web服务的API,仍是一个简单的类,咱们都应该尽可能编写相应文档。曾经有人指责我注释泛滥,可是我却引觉得豪。写代码的时候加个注释对咱们而言只是举手而劳的事,可是当赶上难以攻克的技术难题时,我想大多数构师、新来的程序员、维护人员都会所以而感激你的。
我是黑盒测试的铁杆粉丝哦。若是咱们不能完全地检查代码,不但会影响项目的进程,还会让你的信誉一落千丈、丧失你们的信任。
不少程序员在好不容易历尽千辛万苦终于搞定那些使人头疼的难题以后,老是会不由自主地和同伴庆祝一下:尖叫、击掌甚至是手舞足蹈。若是有我的兴冲冲地跑来告诉你他写出了一段惊天地泣鬼神的代码,即便关于这个代码片断你已经看过100遍了,也值得你为他第101次的成功而喝彩。
不管是项目的仍是我的的。对于项目代码,通常而言常常会有人要求查阅,对于别人提出的批评不要当作是吹毛求疵、鸡蛋里面挑骨头,把它想成是建设性意见以此来激励本身。对于我的代码,在坚持不断自检的同时,也要经常问问本身,“我怎么作代码才能写得更好?”这有助于你加快学习的步伐,让你迅速成长为一枚优秀的程序员。
当咱们回顾以往的代码时,经常会有两种迥然不一样的态度出现:看到差代码时“有没有搞错,这么烂的代码居然是我写的?!”以及看到好代码时“哇塞,这么棒的代码竟然出自我手!”第一种的态度每每是厌恶的,而后好像有强迫症同样开始想着是否还能提升和改进。而第二种则带点惊奇和成就感了。开发人员总会有那么一两个超棒的项目成果,引领你们膜拜。若是你对你的编程能力足够自信,那么也能够将这些成功的案例拿出来再次仔细雕琢,使之更好更棒越发熠熠生辉。
在这20年时间里,话说,我还历来没有遇到过一个没有幽默感的程序员。别说你遇到过,程序员的幽默外行人怎么会懂?事实上,若是想在这行发展,幽默是必须的。
当你不幸或者不得不和这些家伙合做的时候,不用给他们讲道理,本身成竹在胸、指挥若定就能够了,固然态度上要谦虚,毕竟谦虚是美德嘛。自觉得无所不知的程序员,时刻想着抢风头而不是做为团队一员好好协做。不肯分享的程序员,老是默默无闻自管自地写代码。而经验不足的程序员最烦人了,他们每隔个10分钟就跑过来问你一下,最后搞定代码的时候,呵呵,我不得不吐槽,这代码分明都是我写的了。
个人朋友、家人和同事都曾要求我“快点”搞定一些事情,好比作网站。但是要知道,心急吃不了热豆腐,作网站不是说说的,应该考虑全面,这样才能作出令客户和本身都满意的做品。比方说,开始客户只是想要一个使用Microsoft Access的、只有3个页面的网站,可是最后颇有可能会变成一个使用SQL Server,有15个页面的网站,而且还要有一个论坛,有一个定制的CMS(内容管理系统)。
若是手头上有一个看上去特简单的项目,你或许会想固然地认为这确定很容易搞定。千万不要有这样的想法。除非你有已经一个类和组件,或者一段已经写好的代码,而且在现有的项目上已经测试经过,万事俱备只欠东风,不然你没有理由也没有资格说“小菜一碟”。
曾经有一位程序员告诉我,软件是永远完不成的,它最多只是“暂时完成”。这个忠告我一直铭记于心。若是客户还在使用你写的程序,而且经受了时间的考验,那么有机会的话,不妨保持更新,这对你的发展绝对有好处。
客户、朋友和家人在使用电脑的时候,经常会由于电脑坏掉了等各类缘由变得烦躁、气得只想砸东西,最后本身搞不定只得怒气冲冲地离开。每次看到这样的场景,我都会语重心长地说劝诫,“是咱们人掌控电脑,而不是电脑掌控人”。通常人尚且会心情很差,更不要说成天对着电脑的程序员了。因此咱们程序员更加须要耐心。下次,要是咱们的电脑和程序又出问题了,不要急着对本身发脾气,好好检查,最后,找出问题根源所在了,不妨自嘲地说一句,“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”。
最后我但愿,这20条能对你们有所裨益、有所启迪,能让各位会心一笑。
译文连接:http://www.codeceo.com/article/20-years-20-experiance.html
英文原文:Top 20 Programming Lessons I've Learned in 20 Years
翻译做者:码农网 – 小峰
[ 转载必须在正文中标注并保留原文连接、译文连接和译者等信息。]