陈颖频的科学网博客分享 http://blog.sciencenet.cn/u/s110500617

博文

程序员六脉神剑 精选

已有 6238 次阅读 2013-10-24 22:18 |系统分类:科研笔记|关键词:学者| 程序员

园丁在项目研发中大量涉及代码调试,遭遇各种奇怪的问题,深感理论和实践差距之大,希望通过本文和大家分享一些心得,首先,关于理论和实践的问题,那么到底C++程序调试成功和理论基础关系大不大呢?园丁常听很多人说理论只要在实践用到的时候再查,这不失为一种快捷的解决方案,但园丁接触了中石油的一些软件工程师后,深感资深工程师基础之扎实,无论是代码规范还是注释,无不精益求精,而且对于重要的语法现象往往理解精辟并能融会贯通,园丁看了半天没反应过来的代码,工程师在没有信号处理专业背景的前提下就能很好的理解并实现一些编程方案,尤其是对bug的寻找,有非常敏捷的洞察能力,园丁深感冰冻三尺,非一日之寒,从这些资深工程师的能力和其成长过程的调查中,园丁认为其之所以能做好,首先在于他很有经验,经过无数的bug折磨,练就出火眼金睛,从而在基础上达到一个比较扎实的水平,而且事实上他们对C++的理解也相当深刻,我认为这是理论结合实际的最好例子,理论重要不重要,重要!但能不能只看理论?不能,要实践!这就是园丁几个月来的感受,事实上调试代码的过程就一个理论结合实践的过程,不能丢掉理论,但也不能只依赖理论。      

    另一方面,很多时候我们实践之所以不够合理(好比做题不看书或少看书),正是因为理论不够扎实,园丁认为理论不仅仅是书上所学,更是长辈、朋友的经验、教诲,所以一定程度上我感到一个人的情商比智商更重要,因为只有你能体认别人,处于低姿态,才能从他人身上学到优点,别人亦愿意教导于你,无论是理论还是实践,其实都是“道”,无非都是要更好地了解“道”和运用“道”,既然问题(bug)有百态,就必然会有百态之“道”,不深入了解“道”不能很好的运用“道”,如果说有很多bug我们发现不能驾驭,其实是我们理解的“道”出问题了,道法自然就是要我们认识“道”,并实践“道”,所以我觉得无论理论还是实践都是在探索“道”的本质,无所谓谁更重要,这就叫做实质重于形式,其实理论和实践都是形式,无非希望通过这些手段让我们更好地了解“道”和实践“道”,关于"理论无用论",我认为是因为很多人觉得可以不变应万变,其实更多时候是以万变应万变,这才是不变的,何以万变应万变,我认为就是要有“道”,而理论结合实践的过程正是“问道”的过程!那么如何理论结合实践?园丁认为,当我们感觉理论不足以解决实际问题时,通常不是我们理论学多了,恰恰是学少了,以致于你连用什么样的知识和材料来解决问题都不知道,万物运行之道,恰恰是以万变应万变,才是不变的,道行不够,千万不要说这个程序怎么不按理论走,呵呵,一定是有bug的!可能是你对理论理解有问题,也可能是你对理论的应用细节有问题,潜心研究才能小有所成,切不可浮躁,要在实践中领悟理论,同时学习更高深的理论来指导实践,以上是方法层面的讨论。
     接下来是心态层面的讨论,实践的过程比较痛苦,在找不到bug的时候,任你把计算机砸了它也不会好起来,呵呵,所以这个过程需要有很好的耐性和良好的心理素质,不要想着很短的时间就能找到那只臭虫,所以园丁敬佩所有在IT领域奋战多年的工程师们,正因为他们良好的心理素质、好学的心态和精湛的技术成就了日益蓬勃发展的IT行业!这也就很好地解释了为什么很多技术大拿能够创业成功,笔者提炼了一个优秀程序员的六大特征,戏称为程序员六脉神剑,呵呵。。。
      首先,他们已经在内心上比普通人更加沉稳,第一剑,遇事(也就是bug了)不乱,任劳任怨第二剑,处事有法(能正确使用各种工具,技术层面是编译环境,创业层面是人才,呵呵),资深程序员桌子上通常有本小笔记本,记着各种编程方案的简图,把各种技术问题有序记录,一个个突破,第三剑,成事不骄(一个bug解决了不代表程序就是稳定的,黑盒子测试的输入是无限多的,所以程序员时刻 保持谨慎的心态),第四剑坚持学习(我所在的软件公司,每个技术工程师起码懂得4种以上的编程语言,而且很多是现学现用),第五剑,团队合作,善于获得有效积累(没有那个软件公司是一个人搞出来的),程序员也许在很多人眼里就是那种整天对着电脑,不苟言笑的人,然而园丁发现,越是优秀的程序员越懂得沟通和询问,在中石油,有大批的博士和硕士在搞研发,而我感觉比较实力派的研发人员往往都是不耻下问的,有问题不是自己冥思苦想,而是当即在网上查询,并问最专业的技术人员,这反映了一种做事的方法和态度,因为他们知道,除了这么做,其他方法都不够有效,也就是园丁常说的“有效积累”,第六剑,制定计划,定时总结,优秀的程序员往往在工作总结上做到定时定量,保证不松懈,同时也是阶段性的思考,这对一个软件系统的开发和传承也极为重要,他们人手一册开发软件的使用说明。
      道可道,非常道,一个优秀的程序员并非仅仅是程序写得好,更多的是一种高情商和高效做事的结合。作为参考性的建议,园丁认为不管从事哪一行,程序员的这六个重要优点都是值得我们学习和借鉴的,坚持学习,坚持实践,在实践中更好地理解理论,利用更好的理论指导实践,这正是理论结合实践的经典范例啊!最后,园丁和大家分享一本经典好书,名曰《编程匠艺》,此书其实并非纯粹的技术教材,更像是一本管理大师写的书,大量涉及一个人要如何提高自己的做事修为和心态管理,在沉闷的IT出版业中,是我见过最好的一本书,可以和《代码大全》媲美!
    希望所有有志成为技术大拿的人们有志者事竟成!和各位共勉!

 



https://m.sciencenet.cn/blog-684084-735817.html

上一篇:论“有效积累”
下一篇:计算机科学与技术专业经典教材

7 梁大成 张忆文 闵应骅 陆俊茜 彭真明 王林平 zaizaimck

该博文允许注册用户评论 请点击登录 评论 (6 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-10-7 16:53

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部