作者:金蝶中间件公司CTO袁红岗
不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手, 因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基 本原则是可以遵循的。
1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果 不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能 写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想 想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到 一些基本算法的时候可能也会束手无策。
2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的 方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外 ,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径 。
3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理 在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc^2。简单的方法更容易被人理解, 更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要 求时再考虑复杂的方案。
4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音 乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负 责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。 当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道 答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精 力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵 感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保 持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重 要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必 再加注释了,如果注释和代码不一致,那就更加糟糕。
8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给 我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数 表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这 一条。
这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。
分享到:
相关推荐
~~~软件设计师历年考试真题含答案、解析~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是我考软件设计师时使用的复习资料,把每个文档认真看一遍,再把历年的题做一些,总结一下,一次应该能过的,本人一次考过,当时成绩为全省第二名。
主要就是我博客中写的那个视频的课堂笔记,然后就是我整理的一个 设计模式 的表,我觉得还不错,浏览完我的笔记,和看视频一个效果了
06-07年软件设计师题目,一套模拟题目,及辅导教程还有历年的题目 东西好就留个名啊
最近,Lippman受邀加盟微软,成为Visual C++.net的新任首席软件设计师。这件事情在C++社区中引起了巨大的反响。几乎所有为.NET所困扰的传统C++程序员都感到欢欣鼓舞,连C++之父Bjarne Stroustrup都在私下里表示,这...
本书通过一系列优秀的文章回答了这个问题,这些文章来自于十几位当今一流的软件设计师和架构师。在每篇文章中,作者都向我们展示了一个著名的软件架构,并分析了什么让其具有创新性,让其极其符合设计目标。. 本书...
设计师必备丛书之——基础 做一名合格的软件设计师。
然后对系统架构设计师的定义、职责、范围和工作内容等进行讲解,并说明了对于一名合格的系统架构设计师的要求。 二、系统架构设计师(软考高级)考哪方面内容 掌握计算机硬软件与网络的基础知识; 熟悉信息系统开发...
分享软考知识点总结,以及自己对各种题型的解析看法,内容总共包括12章节,对每一章节考点,考点分值,题型分析,个人解析都做了详细的描述,带领10多名小伙伴过了中级软件职称考试,希望本文档帮助了很多的人,欢迎...
书 名: 网络规划设计师教程 作 者:黄传河 出版社: 清华大学出版社 出版时间: 2009-6-1 ISBN: 9787302199328 开本: 16开 定价: 96.00元 本书是全国计算机技术与软件专业技术资格(水平)考试的指定用书。依据...
软考历年真题易错题目整理,含答案和部分解析,考前配合教材刷几遍题目,掌握知识点,更容易过关~~~~~
附件1:"华为杯"计算机软件设计大赛 一、活动主题 展青春之翼,乘科技之风 二、活动时间 2017年11月01日至11月14日 三、活动要求 (一)参赛形式 以组队形式报名参赛,每队可有3名以下(含3名,其中队长1名)队员和1...
如果您是一名学生或自学者,您可以通过这些课件PPT系统地学习软件设计的基础理论知识,并了解不同的设计模式和原则。如果您是一名软件工程师或开发者,您可以将这些知识应用到实际项目中,提高软件设计的质量和效率...
2007年11月3日参加了嵌入式系统设计师的考试,意外的考进了全国50名。最近受导师所托,寻找这份试题和答案。而然在网上只能找到真题却没有发现答案。虽然《2007下半年试题分析与解答(全国计算机技术与软件专业技术...
主要介绍做为一名java软件架构师都需要掌握哪些技能 Java语法与编程基础 面向对象程序设计与编码 Java流操作和文件系统 Java图形用户界面编程 异常处理与事件响应 Java基础类库与中期项目实战 Java多线程编程、网络...
程序员面试刷题的书哪个好所以你想成为一名软件架构师? 如果您决定要训练自己成为一名软件架构师,这旨在成为资源的集合。 在第 1 阶段,它只是放入此自述文件中的一堆链接。 在第二阶段,它应该有一个结构,对每个...
据不完全统计全球有37%的设计师在使用Adobe Illustrator进行艺术设计。 尤其基于Adobe公司专利的PostScript技术的运用,Illustrator已经完全占领专业的印刷出版领域。无论是线稿的设计者和专业插画家、生产多媒体...
大斌平面设计实用综合班第1期是一门专为想要学习平面设计的学员而设计的...无论是对于初学者还是已有一定经验的设计师来说,本课程都能够满足不同层次的学习需求,帮助学员成为一名优秀的平面设计师。 视频大小:19.4G
软件架构指从需求分析到软件设计之间的过渡过程。只要软件架构设计好了,整个软件就不会出现坍塌性的错误,即不会崩溃。架构设计就是需求分配,将满足需求的职责分配到组件上。 软件架构为软件系统提供了一个结构、...