`

一名优秀的软件设计师

阅读更多

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

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

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

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

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

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

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

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

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

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

 
分享到:
评论

相关推荐

    软件设计师分章节题库+答案+解析

    ~~~软件设计师历年考试真题含答案、解析~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    软件设计师考试复习总结文档

    这是我考软件设计师时使用的复习资料,把每个文档认真看一遍,再把历年的题做一些,总结一下,一次应该能过的,本人一次考过,当时成绩为全省第二名。

    软件设计师软考笔记.zip

    主要就是我博客中写的那个视频的课堂笔记,然后就是我整理的一个 设计模式 的表,我觉得还不错,浏览完我的笔记,和看视频一个效果了

    软件设计师题目答案大礼包

    06-07年软件设计师题目,一套模拟题目,及辅导教程还有历年的题目 东西好就留个名啊

    Codeproject对现任VC++.NET首席软件设计师Stan Lippman的采访.doc

    最近,Lippman受邀加盟微软,成为Visual C++.net的新任首席软件设计师。这件事情在C++社区中引起了巨大的反响。几乎所有为.NET所困扰的传统C++程序员都感到欢欣鼓舞,连C++之父Bjarne Stroustrup都在私下里表示,这...

    架构之美(全球19位顶尖架构师智慧结晶)

    本书通过一系列优秀的文章回答了这个问题,这些文章来自于十几位当今一流的软件设计师和架构师。在每篇文章中,作者都向我们展示了一个著名的软件架构,并分析了什么让其具有创新性,让其极其符合设计目标。.  本书...

    设计师必备丛书之——基础

    设计师必备丛书之——基础 做一名合格的软件设计师。

    24年新考纲-系统架构设计师(软考高级) 一站式通关课程

    然后对系统架构设计师的定义、职责、范围和工作内容等进行讲解,并说明了对于一名合格的系统架构设计师的要求。 二、系统架构设计师(软考高级)考哪方面内容 掌握计算机硬软件与网络的基础知识; 熟悉信息系统开发...

    中级软件设计师考试总结.zip

    分享软考知识点总结,以及自己对各种题型的解析看法,内容总共包括12章节,对每一章节考点,考点分值,题型分析,个人解析都做了详细的描述,带领10多名小伙伴过了中级软件职称考试,希望本文档帮助了很多的人,欢迎...

    网络规划设计师教程

    书 名: 网络规划设计师教程 作 者:黄传河 出版社: 清华大学出版社 出版时间: 2009-6-1 ISBN: 9787302199328 开本: 16开 定价: 96.00元 本书是全国计算机技术与软件专业技术资格(水平)考试的指定用书。依据...

    软件设计师分章节易错题梳理+含答案

    软考历年真题易错题目整理,含答案和部分解析,考前配合教材刷几遍题目,掌握知识点,更容易过关~~~~~

    “华为杯”计算机软件设计大赛.doc

    附件1:"华为杯"计算机软件设计大赛 一、活动主题 展青春之翼,乘科技之风 二、活动时间 2017年11月01日至11月14日 三、活动要求 (一)参赛形式 以组队形式报名参赛,每队可有3名以下(含3名,其中队长1名)队员和1...

    软件设计体系结构+设计模式 全课件PPT,所有设计模式PPT和设计风格PPT及设计原则PPT

    如果您是一名学生或自学者,您可以通过这些课件PPT系统地学习软件设计的基础理论知识,并了解不同的设计模式和原则。如果您是一名软件工程师或开发者,您可以将这些知识应用到实际项目中,提高软件设计的质量和效率...

    嵌入式系统设计师07,08试题分析

    2007年11月3日参加了嵌入式系统设计师的考试,意外的考进了全国50名。最近受导师所托,寻找这份试题和答案。而然在网上只能找到真题却没有发现答案。虽然《2007下半年试题分析与解答(全国计算机技术与软件专业技术...

    高级Java软件架构师学习计划

    主要介绍做为一名java软件架构师都需要掌握哪些技能 Java语法与编程基础 面向对象程序设计与编码 Java流操作和文件系统 Java图形用户界面编程 异常处理与事件响应 Java基础类库与中期项目实战 Java多线程编程、网络...

    程序员面试刷题的书哪个好-software-architect:所以你想成为一名软件架构师?

    程序员面试刷题的书哪个好所以你想成为一名软件架构师? 如果您决定要训练自己成为一名软件架构师,这旨在成为资源的集合。 在第 1 阶段,它只是放入此自述文件中的一堆链接。 在第二阶段,它应该有一个结构,对每个...

    illustrator图形软件 part06

    据不完全统计全球有37%的设计师在使用Adobe Illustrator进行艺术设计。 尤其基于Adobe公司专利的PostScript技术的运用,Illustrator已经完全占领专业的印刷出版领域。无论是线稿的设计者和专业插画家、生产多媒体...

    大斌平面设计实用综合班第1期-视频教程网盘链接提取码下载.txt

    大斌平面设计实用综合班第1期是一门专为想要学习平面设计的学员而设计的...无论是对于初学者还是已有一定经验的设计师来说,本课程都能够满足不同层次的学习需求,帮助学员成为一名优秀的平面设计师。 视频大小:19.4G

    新考纲-系统架构设计师(软考高级) 一站式通关课程(2024版)

    软件架构指从需求分析到软件设计之间的过渡过程。只要软件架构设计好了,整个软件就不会出现坍塌性的错误,即不会崩溃。架构设计就是需求分配,将满足需求的职责分配到组件上。 软件架构为软件系统提供了一个结构、...

Global site tag (gtag.js) - Google Analytics