工匠精神,一方面,指的是工匠们对本身的产品精雕细琢、精益求精的精神:“工匠们对细节有很高的要求,他们追求完美和极致,努力把品质从99%提升到99.99%。”另外一方面,指的是整个社会对能工巧匠由衷的敬意,给予较高的社会地位。而现代西方以制造业立国,必定意义上,制造业文化就是工匠文化,尤为是高端制造业,每每须要从业者乃至整个社会具有一种所谓的“工匠精神”。而工匠精神放在程序开发上面来看,是对本身程序的精雕细琢,对本身的程序负责,以及对程序的敬畏心态等各方面。程序员
其实,写好程序并无过高深的学问,不少时候,一个问题无法解决,或程序出bug的,每每是细节没有作好。古人有云“一屋不扫,何以扫天下”,一我的的能力提高,每每也是从细节积累,量变而达到质变,首先有量的积累,而后就会有质的改变,而这个过程,几乎每一个程序员都会经历过这样的过程。设计模式
而不少人在作开发,每每是和别人比,谁谁谁又学习了什么新东西,而后本身必定要想办法超越,而后又开始扎入另一头去研究,而后各类基础的理论,什么架构啊,设计模式啊,基本上都懂一些,而其实并无进行深刻的研究,彷佛懂得不少东西,而后本身也就会有种飘飘然的感受。固然,不断的去研究新东西,这种态度,我以为对于程序员来讲,是一种很好的态度,可是不能舍弃从细节处的研究。架构
具体的如何从细节处研究,该怎么样在细节上面进行雕琢,我在此能够大概举一些例子或是一些状况进行描述一下。好比,在实现菜单点击按钮的时候,通常来讲,点击后就弹出子菜单,而后点击菜单能够进行一些操做,但若是带着工匠精神去作,应该要考虑用户在长按的时候会不会有其余操做,用户按下去以后,颜色是否须要改变,长度高度是否须要改变,而后点击后加载菜单的底层应该如何实现达到相应更快更高效,是否须要验证权限是否能够点击这个菜单?等等,这就是从细节方面进行深刻的思考,我以为这就是程序员细节上该有的工匠精神。工具
对有的人来讲,是玩程序;对有的人来讲,是被程序玩;通常来讲,就是分为这两种状况,但绝大部分人但愿本身是在玩程序。我以为想要玩程序,应该须要抱有一种敬畏的心态。这做何解释呢?看似与玩程序有冲突,实则否则。其实,若是你敬畏他,那么你就能更好的发现问题,发现本身的不足之处,而也才能作到更当心。而我记得也有一句谚语描述了大体是这样的一件事情:越是会游泳的,每每不是死于大江湖海,而是死于沟渠。而其实对于任何人来讲,都看似不可能会发生错误的地方发生错误,而在看似会发生错误的地方反而不会发生错误,这是为何呢?由于,越容易犯错误的地方,人就会越谨慎,越敬畏,而在看似不会犯错的地方,就每每会疏忽、自大,天然就出问题了。学习
而在写程序上的敬畏,我这里也大体说明一些例子来描述这些事情。好比写一个你常常写的功能,都应该作一下测试,看是否达到预期的效果,由于有可能你写的时候会大意,形成语法不对(通常人可能会说,用的IDE,不太可能出现这种状况没发现错误),或者因为环境配置问题甚至是SDK版本不同而形成问题等等;而工做中,出错了,首先不要急于回答不是本身的错误,先思考而后在回复是否是本身的错误,解决方案是什么样的,而后进行总结,最好是整理成笔记,记录详细的错误表现和解决方案;这些都是对程序的敬畏,由于敬畏,因此认真。测试
我在上面的敬畏心态里最后提到一个关于错误的态度问题,这里,我对总结方面进行一下分析和大体分析一下如何去作。设计
开发,其实总结分为不少方面。一方面是在学习新东西过程当中,与当前学到的东西或是结合本身的经验、经历对当前所学进行对比,总结;另外一方面就是对错误进行总结,再者,就是对本身想到的解决方案进行解决;其余方面的总结。开发
而总结,我以为很是重要的一点,就是造成文字,并作详细的描述,能够写在博客或发到技术论坛,或者是纸质笔记本记录,等等。若是是能分享出来,一方面能帮助别人,一方面能够获得更好的建议,再者就是能够作更详细的反思,这些都是不错的。若是不作总结,基本上下次一般会再犯,而后不断的进行迭代犯错过程,也许多犯几回会自动跳出这种犯错迭代。文档
而总结以后,不去看,不去回顾,也是没有卵用的。总结了,能够针对印象快淡了的,进行选择性的查看,反思,也许能温故而知新,或者会想出其余一些点子。而我每每也是经过这种总结,而后就会诞生一些如何让开发更高效的想法,而后就会思考能不能写一个自动化工具来让开发更高效,或是能不能造成更好的规范化文档,等等。博客
本文我大体分为了几个方面对程序员的工匠精神进行了一些分析,以及如何去作等方面举了些稍微具体的例子,但愿分享出来能给其余人一些帮助,而且本身之后能进行回顾和分析,思想能提升到更高的层次。