软件工程师的八大基本功底

原创 2005年04月26日 15:30:00

1、扎实的基础 

数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。 

2、丰富的想像力 

不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想像力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重要。 

3、最简单的是最好的 

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

4、不钻牛角尖 

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

5、对答案的渴求 

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

6、多与别人交流 

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

7、良好的编程风格 

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

8、韧性和毅力 

这也许是“高手”和一般程序员最大的区别。高手们并不是天才,他们是在无数个日日夜夜中磨炼出来的。成功能给我们带来无比的喜悦,但过程却是无比的枯燥乏味。你不妨做个测试,找个10000以内的素数表,把它们全都抄下来,然后再检查三遍,如果能够不间断地完成这一工作,你就可以满足这一条。 

作为软件工程师应该具备哪些基本素质

1:团队精神和协作能力     把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便...

嵌入式软件工程师经典面试题

1、int a[10]={1,2,3,4,5,6,7,8,9,0};    int *p=&a[1];    则p[6]等于8 2、整数数组清零:bzero(),memset()。 3、sie...

软件工程师的能力评估和职业发展

介绍:  个人软件流程,  职业发展, 个人绩效的衡量和提高, 软件开发是科学, 工程, 手艺, 或是艺术?  我们刚讲了软件工程, 它包括了什么呢? 软件工程包括了开发,运营, ...
  • ex_life
  • ex_life
  • 2013年06月08日 23:28
  • 2154

.NET软件工程师48个面试题目

一.填空题 1.面向对象的语言具有(继承)性、(多态)性、(封装)性。 2.能用foreach遍历访问的对象需要实现 (IEnumberable)接口或声明(GetEnumberator)方法的类...

三年Java软件工程师应该掌握的技能

关于项目经验关于专业技能 1、基本语法 static、final、transient等关键字的作用 foreach循环的原理等等static: 1.静态变量 2.静态方法 ...

一个嵌入式软件工程师的2016年总结

我的2016——我和嵌入式的那些事   墙上的日历只剩下薄薄的一叠,过不了多久,又将迎来一个新的循环。我想用一篇文章记录我的2016,希望通过写这篇文章能够更客观地审视自己,同时给未...

华为--嵌入式软件工程师面试题汇总

(1)什么是预编译,何时需要预编译: 答案: 1、总是使用不经常改动的大型代码体。 2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一...

软件工程师必须掌握的知识结构

软件工程师必须掌握的知识结构       软件工程师必须掌握以下知识结构,给那些准备从事软件工程师的人一些指导。 1.编程开发工具. 至少熟练掌握两到三种开发工具的使用, 这是程序员的立身之本....

从软件工程师到IT猎头:说说跳槽那点事

对于高科技行业的工程师来说,技术的连续性是很重要的,中国的大学生在就业时并没有多少选择的余地,首先是毕业生找工作的时候,虽然头脑里有些大体的概 念,但具体到了公司去做什么决定权不在他们手里,所以这么...
  • dhttony
  • dhttony
  • 2011年04月26日 11:45
  • 507

Java (高级)软件工程师面试考纲

O_O 随便百度一下网上有很多各种各样的Java面试题,很多也是着重在Java语言基础上。实际上,如果要应聘Java (高级)软件工程师,仅仅懂得Java的基础知识是远远不够的,还必须懂得常用数据结构...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软件工程师的八大基本功底
举报原因:
原因补充:

(最多只允许输入30个字)