网上看的一篇文章,感觉会给程序员一些启发
作者:金蝶中间件公司CTO袁红岗
不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手, 因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基 本原则是可以遵循的。
1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果 不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能 写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想 想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到 一些基本算法的时候可能也会束手无策。
2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的 方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外 ,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径 。
3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理 在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc^2。简单的方法更容易被人理解, 更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要 求时再考虑复杂的方案。
4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音 乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负 责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。 当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道 答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精 力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵 感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保 持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重 要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必 再加注释了,如果注释和代码不一致,那就更加糟糕。
8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给 我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数 表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这 一条。
这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。
网上看的一篇文章,感觉会给程序员一些启发相关推荐
- 程序与生活:网上看的一篇文章,据说越有钱越应该看
一.钱是给内行人赚的--世界上没有卖不出的货,只有卖不出的货的人. 二.想干的人永远在找方法,不想干的人永远在找理由:世界上没有走不通的路,只有想不通的 人 三.销售者不要与顾客争论价格,要与顾客讨 ...
- [转帖]看完这篇文章你还敢说你懂JVM吗?
看完这篇文章你还敢说你懂JVM吗? 在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用 ...
- 看完这篇文章前千万别做微信营销
不是经常在朋友圈被微信卖货的人刷屏?是不是经常在网上看到微信创业的人月入过万?一夜之间,全世界的人都好像在做微信营销,赚的盆满钵满,你是不是蠢蠢欲动?可大南还是建议你在看完这篇文章之前千万别做微信营销 ...
- 艾永亮超级产品:不知道怎么做产品?看完这篇文章了解你的产品
体验产品,是每个企业家的必经之路,拆解产品就像一次新生,总结产品,是对自身产品的感知,当你不知道该如何做产品时,可以看完这篇文章,也许会得到一些新的启发. 产品体验是每个企业家对自身产品认知和创新的一 ...
- 看完这篇文章后,你一定知道如何正确选股!
看完这篇文章后,你一定知道如何正确选股!篇幅很长,但是都是干货,请耐心阅读! 选股应该博爱!真正的股票投资人一定是拥有博爱情怀的.很多时候,股民们纠结于某只或某几只股票不能自拨,导致频频在股市中吃亏碰 ...
- linux防火墙伦堂,「linux专栏」自从看了这篇文章,我彻底搞懂了selinux和防火墙...
很多网友提到linux的防火墙就犯难,现在又多出一个selinux,愈加分不清了.曾几何时,小编也是如此,不过当你看完这篇文章之后,再也无需为此犯难了. 何为SELinux 简单来书,SELinux( ...
- python装饰器原理-看完这篇文章还不懂Python装饰器?
原标题:看完这篇文章还不懂Python装饰器? 1.必备 2.需求来了 初创公司有N个业务部门,1个基础平台部门,基础平台负责提供底层的功能,如:数据库操作.redis调用.监控API等功能.业务部门 ...
- 看完这篇文章之后,终于明白了编译到底怎么回事。
看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言 a=b+1; 汇编语言 mov -0xc(%ebp),%eax add ...
- 看完这篇文章之后,终于明白了编译到底怎么回事
看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言 a=b+1; 汇编语言 mov -0xc(%ebp),%eax add ...
最新文章
- EF映射之DataBaseFirst
- java 传入参数_Java 中方法参数的传递
- Java异常分类及处理
- 现在的编程语言越来越多,为什么 C 和 C++ 还没有被现在的时代淘汰呢?
- 通过伙伴系统申请内核内存的函数有哪些?
- 工业机器人关节拆装流程_机器人走进大学——工业机器人拆装与应用工作站
- aspdotnet部分资源
- java----监听器的作用_一、理解监听器的作用
- 十大著名黑客——斯蒂芬-沃兹尼克
- 8 9区别 endnote7_EndNote_9__简明教程_中文版
- VS2019 编译 odb-mysql2.4详细过程
- 阿里职级体系与薪酬全曝光,P10以上都是世界大牛!
- Linux+bridge做透明网桥
- 求曲线面积的原理(微积分入门)
- Linpack安装测试流程记录
- 如何实现网页的自动登录
- urchin的安装及使用
- 苹果手机充值显示服务器异常,球球大作战iOS会员充值异常解决办法
- solaris磁带机 tar 备份
- Android Studio部分汉化中文包 MarkDown格式
热门文章
- 如何使用Jekyll+GitHub Pages搭建个人博客站点
- 【自用】 sklearn 用 train_test_split 简单划分训练和测试集
- 数据库访问的弹性化---WebLogic和Oracle RAC的整合:Active GridLink
- Android获取相册图片
- OD调试9—实例:深入分析代码完成软件破解
- 05-VTK在图像处理中的应用(2)
- [转]java取得Linuxcpu,内存,磁盘实时信息
- 06.系统编程-3.进程VS线程比较
- git 版本操作命令大全
- Typecho反序列化导致前台 getshell 漏洞复现