作者:金蝶中间件公司CTO袁红岗

不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手, 因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基 本原则是可以遵循的。

1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果 不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能 写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想 想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到 一些基本算法的时候可能也会束手无策。

  2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的 方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外 ,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径 。

  3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理 在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc^2。简单的方法更容易被人理解, 更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要 求时再考虑复杂的方案。

  4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音 乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负 责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。 当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。

  5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道 答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精 力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。

  6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵 感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。

  7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保 持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重 要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必 再加注释了,如果注释和代码不一致,那就更加糟糕。

  8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给 我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数 表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这 一条。
 
  这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。

网上看的一篇文章,感觉会给程序员一些启发相关推荐

  1. 程序与生活:网上看的一篇文章,据说越有钱越应该看

    一.钱是给内行人赚的--世界上没有卖不出的货,只有卖不出的货的人. 二.想干的人永远在找方法,不想干的人永远在找理由:世界上没有走不通的路,只有想不通的  人 三.销售者不要与顾客争论价格,要与顾客讨 ...

  2. [转帖]看完这篇文章你还敢说你懂JVM吗?

    看完这篇文章你还敢说你懂JVM吗? 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用 ...

  3. 看完这篇文章前千万别做微信营销

    不是经常在朋友圈被微信卖货的人刷屏?是不是经常在网上看到微信创业的人月入过万?一夜之间,全世界的人都好像在做微信营销,赚的盆满钵满,你是不是蠢蠢欲动?可大南还是建议你在看完这篇文章之前千万别做微信营销 ...

  4. 艾永亮超级产品:不知道怎么做产品?看完这篇文章了解你的产品

    体验产品,是每个企业家的必经之路,拆解产品就像一次新生,总结产品,是对自身产品的感知,当你不知道该如何做产品时,可以看完这篇文章,也许会得到一些新的启发. 产品体验是每个企业家对自身产品认知和创新的一 ...

  5. 看完这篇文章后,你一定知道如何正确选股!

    看完这篇文章后,你一定知道如何正确选股!篇幅很长,但是都是干货,请耐心阅读! 选股应该博爱!真正的股票投资人一定是拥有博爱情怀的.很多时候,股民们纠结于某只或某几只股票不能自拨,导致频频在股市中吃亏碰 ...

  6. linux防火墙伦堂,「linux专栏」自从看了这篇文章,我彻底搞懂了selinux和防火墙...

    很多网友提到linux的防火墙就犯难,现在又多出一个selinux,愈加分不清了.曾几何时,小编也是如此,不过当你看完这篇文章之后,再也无需为此犯难了. 何为SELinux 简单来书,SELinux( ...

  7. python装饰器原理-看完这篇文章还不懂Python装饰器?

    原标题:看完这篇文章还不懂Python装饰器? 1.必备 2.需求来了 初创公司有N个业务部门,1个基础平台部门,基础平台负责提供底层的功能,如:数据库操作.redis调用.监控API等功能.业务部门 ...

  8. 看完这篇文章之后,终于明白了编译到底怎么回事。

    看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言  a=b+1; 汇编语言  mov -0xc(%ebp),%eax add ...

  9. 看完这篇文章之后,终于明白了编译到底怎么回事

    看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言  a=b+1; 汇编语言  mov -0xc(%ebp),%eax add ...

最新文章

  1. EF映射之DataBaseFirst
  2. java 传入参数_Java 中方法参数的传递
  3. Java异常分类及处理
  4. 现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?
  5. 通过伙伴系统申请内核内存的函数有哪些?
  6. 工业机器人关节拆装流程_机器人走进大学——工业机器人拆装与应用工作站
  7. aspdotnet部分资源
  8. java----监听器的作用_一、理解监听器的作用
  9. 十大著名黑客——斯蒂芬-沃兹尼克
  10. 8 9区别 endnote7_EndNote_9__简明教程_中文版
  11. VS2019 编译 odb-mysql2.4详细过程
  12. 阿里职级体系与薪酬全曝光,P10以上都是世界大牛!
  13. Linux+bridge做透明网桥
  14. 求曲线面积的原理(微积分入门)
  15. Linpack安装测试流程记录
  16. 如何实现网页的自动登录
  17. urchin的安装及使用
  18. 苹果手机充值显示服务器异常,球球大作战iOS会员充值异常解决办法
  19. solaris磁带机 tar 备份
  20. Android Studio部分汉化中文包 MarkDown格式

热门文章

  1. 如何使用Jekyll+GitHub Pages搭建个人博客站点
  2. 【自用】 sklearn 用 train_test_split 简单划分训练和测试集
  3. 数据库访问的弹性化---WebLogic和Oracle RAC的整合:Active GridLink
  4. Android获取相册图片
  5. OD调试9—实例:深入分析代码完成软件破解
  6. 05-VTK在图像处理中的应用(2)
  7. [转]java取得Linuxcpu,内存,磁盘实时信息
  8. 06.系统编程-3.进程VS线程比较
  9. git 版本操作命令大全
  10. Typecho反序列化导致前台 getshell 漏洞复现