作者:金蝶中间件公司CTO袁红岗
不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手, 因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基 本原则是可以遵循的。
1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果 不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专业的人更能 写出高质量的软件。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想 想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到 一些基本算法的时候可能也会束手无策。
2. 丰富的想象力。不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的 方案,试试别人从没想过的方法。丰富的想象力是建立在丰富的知识的基础上,除计算机以外 ,多涉猎其他的学科,比如天文、物理、数学等等。另外,多看科幻电影也是一个很好的途径 。
3. 最简单的是最好的。这也许是所有科学都遵循的一条准则,如此复杂的质能互换原理 在爱因斯坦眼里不过是一个简单得不能再简单的公式:E=mc^2。简单的方法更容易被人理解, 更容易实现,也更容易维护。遇到问题时要优先考虑最简单的方案,只有简单方案不能满足要 求时再考虑复杂的方案。
4. 不钻牛角尖。当你遇到障碍的时候,不妨暂时远离电脑,看看窗外的风景,听听轻音 乐,和朋友聊聊天。当我遇到难题的时候会去玩游戏,而且是那种极暴力的打斗类游戏,当负 责游戏的那部分大脑细胞极度亢奋的时候,负责编程的那部分大脑细胞就得到了充分的休息。 当重新开始工作的时候,我会发现那些难题现在竟然可以迎刃而解。
5. 对答案的渴求。人类自然科学的发展史就是一个渴求得到答案的过程,即使只能知道 答案的一小部分也值得我们去付出。只要你坚定信念,一定要找到问题的答案,你才会付出精 力去探索,即使最后没有得到答案,在过程中你也会学到很多东西。
6. 多与别人交流。三人行必有我师,也许在一次和别人不经意的谈话中,就可以迸出灵 感的火花。多上上网,看看别人对同一问题的看法,会给你很大的启发。
7. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保 持一致。大家都知道如何排除代码中错误,却往往忽视了对注释的排错。注释是程序的一个重 要组成部分,它可以使你的代码更容易理解,而如果代码已经清楚地表达了你的思想,就不必 再加注释了,如果注释和代码不一致,那就更加糟糕。
8. 韧性和毅力。这也许是"高手"和一般程序员最大的区别。A good programming is 99 weat and 1ffee。高手们并不是天才,他们是在无数个日日夜夜中磨练出来的。成功能给 我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数 表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这 一条。
这些是我这几年程序员生涯的一点体会,希望能够给大家有所帮助。
分享到:
相关推荐
~~~软件设计师历年考试真题含答案、解析~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2007年上半年软件设计师考试试题分析 本文将对2007年上半年的软件设计师考试试题进行分析,并对试题的知识点进行详细的解释。 首先,从计算机与软件工程知识试题来看,软件工程、数据结构、网络基础的比例仍然很大...
软件设计师 职业生涯中积累了一些宝贵的经验和心得...作为一名软件设计师,我们的目标是创建高质量、可扩展和易于维护的软件。通过不断学习、与团队合作,并保持对技术的热情,我们可以在软件开发领域取得长期的成功。
为了成为一名优秀的软件设计师,持续的学习与技能提升至关重要,这离不开高质量的学习资源和资料。以下是一个综合性的资源描述,旨在为有志于成为或提升为软件设计师的朋友们提供指导。 ### **核心教材与官方指南**...
这是我考软件设计师时使用的复习资料,把每个文档认真看一遍,再把历年的题做一些,总结一下,一次应该能过的,本人一次考过,当时成绩为全省第二名。
主要就是我博客中写的那个视频的课堂笔记,然后就是我整理的一个 设计模式 的表,我觉得还不错,浏览完我的笔记,和看视频一个效果了
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多线程编程、网络...