[CSDN]软件工程师,你必须知道的20个常识

作为软件工程师,你必须知道的20个常识

2012-06-28 08:43 | 20039次阅读 | 来源:oschina 【已有54条评论】发表评论

| 作者:junwong | 收藏这篇资讯

作为一名优秀是软件开发工程师,以下的这些常识你知道吗?在实际工作中有没有总结过呢?小编就带大家一起分享这20个软件开发常识。

1.针对面向对象的设计与分析:为了让软件有更好的可维护性,重用性以及快速开发,简短的OOAD与它的SOLID原则对于每一个软件工程师来说都是该牢记的。

2.软件品质因素:软件工程的好坏与软件的品质因素是绝对关联的。请在开发过程中深刻的理解这一点。

3.数据结构与算法:深刻理解像数组,列表,栈,树,图,集合等这样的基本数据结构,并在软件开发过程的关键部分使用好的算法。这样整个软件逻辑就会很清晰了。

4.Big-O符号来标记算法复杂度:在开发过程中,请务必使用Big-O符号来比较两个代码段或者不同算法所消耗的时间复杂度,这在开发高性能软件项目中是非常重要的。

5.UML图:UML图已经是一个通用的软件设计与分析的语言。如果你们在开发软件的过程中还没有做UML图,那么给人的感觉就是这压根就不是软件工程。 

6.正确的衡量软件开发进度

7.设计模式:设计模式是前人在解决各种各样问题的过程中总结出来的一套标准对策,在绝大部分情况下,使用这些模式肯定是利大于弊的。如果你不想在开发过程中重新造轮子,那么就直接使用它吧。

8.理解操作系统的基本原理:因为所有的应用程序都是直接运行在操作系统这个层级的,学习操作系统的基本原理能让我们对应用程序的底层以及性能有更好的把握。

9.学习计算机组成原理:几乎所有的应用程序甚至是OS都需要与物理硬件打交道的,所以学习计算机组成原理与理解操作系统原理一样都可以让你对于应用程序有更深刻的理解。

10.网络基础:网络与计算机组成,操作系统以及传输流程都是紧密关联的,理解网络基础能让你在开发过程中得心应手。

11.需求分析:对于软件工程来说,需求分析是项目的起点,也是整个项目最最重要的部分。如果这玩意你搞错了,整个项目的方向也就错了。

12.软件测试:在软件工程中,测试也是非常重要的。单元测试,黑盒测试,白盒测试,TDD,集成测试等等都是我们必须知道的。

13.独立管理:主要是说类库(JAR,DLL等等)的管理,熟悉使用一些类似Maven,Ant,lvy这样的知名工具对于大型项目的类库管理是非常有用的。

14.持续化集成:持续化集成能让测试大型模块与组件更加简单与自动化,关于这一点,你可以去了解Hudson这个工具。 

15.ORM:了解Hibernate这种将对象与数据库表映射工具是非常有好处的,它可以减少你的代码量并节省你的代码维护时间。

16.DI(独立注入):DI或者IoC(Inversion of Control)的具体实现框架Spring能让你创建对象时更加轻松,对于大型企业级项目更是如此。

17.版本控制系统:VSC工具(SVN,TFS,CVS等)对于团队合作开发以及版本控制都是非常重要的。熟练使用这类工具算得上是必备技能。 

18.国际化:通过i18n来将不同语种的字符串存储在其他文件是让软件支持多语种最好的方法。所以i18n在不同的IDE上使用的方法我们应该了解。 

19.架构模式:理解类似MVC,MVP,MVVM这样的架构模式非常关键,这能让你写出易维护,简洁以及方便测试的代码。

20.编写干净的代码:你的代码仅仅只是能够正常运行是远远不够的,它必须让编程人员轻易看懂来方便后续维护,所以,代码格式以及编写易读的代码技术都是我们需要了解的关键点。

译文出自:OSCHINA

### 回答1: 嵌入式软件工程师是一种专业的软件工程师,他们主要从事于嵌入式系统开发。嵌入式系统是指嵌入于其他产品中以完成特定功能的电路系统和软件系统。嵌入式软件工程师需要掌握多种编程语言,如C语言、C++、汇编语言和其他高级语言。同时,他们需要掌握嵌入式系统的硬件原理和工作原理。 对于嵌入式软件工程师来说,试题主要包括几个方面。首先是嵌入式系统的基础知识,例如系统的结构、组成部分、软硬件接口、中断和时钟等方面。接着是熟练掌握C语言编程,包括指针、数组、结构体和函数等内容。此外,还需要熟悉协议栈的相关知识,如TCP/IP、RS232、RS485等。同时,了解嵌入式系统的调试和测试方法是必要的。 对于企业而言,拥有优秀的嵌入式软件工程师可以极大地提高产品的竞争力和市场占有率。因此,在职场中,嵌入式软件工程师的职业前景非常广阔,其薪资水平也相对较高。但是,能否成为合格的嵌入式软件工程师,取决于其专业知识和实践能力的积累。 ### 回答2: 嵌入式软件工程师试题需要具备以下几方面的技能和知识: 1. 熟悉计算机操作系统和嵌入式系统的原理和应用,具备嵌入式系统开发和调试经验。 2. 熟悉C语言及其编译器系统,掌握基本算法数据结构,擅长利用硬件资源进行系统开发。 3. 熟悉单片机架构,能够进行底层芯片编程和开发,包括通信接口和外设控制等。 4. 熟悉嵌入式系统标准协议,如TCP/IP协议,串口通讯协议等。 5. 具备团队协同和沟通能力,良好的学习和自我提升能力。 在面试过程中,可以通过技术性笔试、手写代码、项目经验等方式来考察应聘者的技能和知识水平。在面试中重点考察面试者的思路和解决问题的能力,看是否能够从问题中提取关键信息,对问题进行分析和解决。同时,需要了解面试者的学习能力和自我提升能力,以确保其能适应不断变化的市场需求和技术要求。 ### 回答3: 嵌入式软件工程师是一种专门从事嵌入式系统软件设计、开发、测试等工作的职业,需要具备扎实的计算机基础、丰富的编程经验以及深入的嵌入式系统技术知识。在csdn上面的嵌入式软件工程师试题,主要测试面试者的技术水平、工作经验以及解决实际问题的能力。 这些试题涵盖了各种嵌入式系统开发技术,例如C语言编程、嵌入式架构设计、嵌入式操作系统、通信接口、调试技术等等。对应的题型也包括选择、填空、编程、设计等不同类型,从而全面考察面试者的知识广度和深度。 在应对这些试题时,面试者需要有很强的逻辑思维能力和独立解决问题的能力,能够从工程实际出发,分析问题、提出解决方案,并深入思考性能优化、效率提升、安全保障等实际问题,从而更好地满足嵌入式系统的实际需求。 总之,嵌入式软件工程师试题所考察的技能和能力是非常丰富和全面的,需要面试者具备扎实的理论基础和实践经验,同时在实践解决问题时注重细节、性能和效率等。对于嵌入式软件工程师而言,不断学习和技术提升才能更好的胜任这项职业。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值