软件开发常识

2023-02-14 综合 86阅读 投稿:藕花处

1. 软件工程师 需要了解什么知识

一、考试说明

1.考试要求:

(1) 掌握数据表示、算术和逻辑运算;

(2) 掌握相关的应用数学、离散数学的基础知识;

(3) 掌握计算机体系结构以及各主要部件的性能和基本工作原理;

(4) 掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;

(5) 熟练掌握常用数据结构和常用算法;

(6) 熟悉数据库、网络和多媒体的基础知识;

(7) 掌握C程序设计语言,以及C++、Java、Visual、Basic、Visual C++中的一种程序设计语言;

(8) 熟悉软件工程、软件过程改进和软件开发项目管理的基础知识;

(9) 熟悉掌握软件设计的方法和技术;

(10) 掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;

(11) 了解信息化、计算机应用的基础知识;

(12) 正确阅读和理解计算机领域的英文资料。2.通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;具有工程的实际工作能力和业务水平 追问: 谢谢! 我更想知道的是:实际生活中软件工程师需要的能力。很多人(包括我)认为:现在证书只是供参考的。当然,完全达到考试大纲要求是相当不容易的…… 回答: 在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。

2. 当程序员需要什么知识

如果做一个专业的程序员:

1.基础语言知识 :从底层的ASM 到结构化的C,到面向对象的C++ JAVA,如果不能都精通,但是要了解,至少要精通一门

2.基础数学知识: 高等数学(数学分析) 线性代数 离散数学,概率.数理统计等等

3.基础计算机原理:操作系统原理,微机原理,编译原理 数据库原来等等

4.看你感兴趣的学习一个方向:图形学。windows应用程序开发。Linux程序开发,数据库方面 网络编程,等等

----------------------------------------------------------------------

如果只是想快速编软件:

敬告:这样不会成为一个真正的高手!

比如windows平台的编程:

学习C语言(熟悉结构化编程)->《windows程序设计》(学习windowsAPI知识) ->可以用API进行编程了。

但是现在用纯API编程几乎绝迹。不是淘汰,因为商业用要尽快成为软件好卖,API开发会消耗程序员大量时间,但是API是基础。

或者

学习C++语言(熟悉面向对象技术)->《MFC程序设计》(学习MFC编程)->MFC开发 ->MFC应用比较广

.net技术我没有接触过。现在正流行这个,等楼下的给你介绍吧!

------------------------------------

相比较而言,用DELPHI最省事。但是你要了解Object Pascal语言,这个编程工具是以这个语言为基础的。Delphi开发也是很不错的。

-------------------------------------

以上只是一个建议,学习不可能简单,而且路子不一样,上边提到的两windows书,是微软出版社,在这个方面最权威的书。

3. 软件开发一般要学习什么知识

如何成为好的程序员?How To Become a good Programmer?首先问你一个问题:你们在学校都学些什么课程?问这个问题的原因是,我认为学校的计算机科学基础课很重要。

如果你所在学校的课程设置合理,那你应该先把主要精力花在这些基础课上。很多学生看到基础理论就茫然,不知道这些图表,符号,甚至硬件的知识对将来的软件开发有什么用。

用处大得很哪。比如,操作系统课里讲到的多线程的东西在系统编程里很有用。

又比如,尽管你将来不会去涉及电脑的硬件,计算机架构里的知识对分析算法的性能(快慢等等)很有用。可以把计算机语言和开发工具比作文字,而把计算机科学的知识比做思想。

只有思想,不会行文,不行;但是,行文流畅,思想空洞,也不行。大学的阶段正是打好基础,丰富思想的年代。

成为一名好的程序员,不是简单地通过学几门课程就能做到的。我个人认为成为一名好的程序员的要素有:1。

扎实的基础知识;2。很强的解决问题的能力;3。

熟练的编程调试能力;4。创新能力;5。

团队合作能力;6。持续的自学能力;7。

好奇心 这些能力和品质(甚至可以说是习惯)都应该从大学阶段就着手培养,并且从身边的小事开始培养。比如,很多中国的大学毕业生都缺乏编程和调试经验。

学习C语言,考试过关就算学会了。课题项目中,只要程序能够编译,运行,并且输入输出满足要求就了事了。

但是,写程序的时候是否想过如何把程序写得更加精炼,高效,高质量?对程序调试中出现的问题是否刨根问底知道原因,还是不求甚解搪塞过去算数?还有,很多中国的大学毕业生对于知识的掌握肤浅,机械,没有好奇心,不会刨根问底。比如,学会了C++,有没有看过一个object在编译后,在汇编代码中是如何被初始化的?这个object的各个成员在内存中是如何放的?在一个成员函数被调用的时候编译器在汇编代码中加入了哪些额外的动作?虚函数的调用是如何实现的? 这些东西恐怕在编程语言或编译原理中都没有详细提到。

但是,你是否有过好奇心去知道?最后,一些中国学生的大问题就是死记硬背,没有学到某种算法技术的根本原理,没有应变和创新的能力。比如,有个问题是如何在不用额外内存的情况下把一棵树的同一层节点都连起来。

很多学生都能够回答这是一个广度遍历的问题。但是,课本上说了广度遍历是一定要有额外数据结构辅助的(队列)。

所以,不给额外内存怎么行?请看,课本上说的用队列的方法记住了,但是就是不知道为什么要用队列。如果深刻掌握了这个队列的作用,那么这个问题是很容易的。

举了这么多例子,我想说明的事,想成为一位好程序员(其实从事任何一个行业都是如此),重要的是要养成一个钻研,好奇,创新,动手,合作,不满足于填鸭,不满足于考试交差,不满足于表象的一种优秀的习惯。这不是学几门课能够一蹴而就的。

当然,如果你的在校课程不能使你满足,我以及论坛上的朋友可能能够给你推荐一些书或科目。我觉得要提高编程的能力,有一位良师很重要。

这位良师可以是在编程方面比你走在前面的同学,也可以是学校里你帮他做项目的老师,也可以是校外公司里的老师或老板。很多东西在实际的项目中,有一位良师察看你的程序,帮你指出不足,手把手地指导你调试,会对你很有帮助。

所以,当学会了书本上的基本知识以后,可以努力寻找一些有实用性的项目,借机在项目中找到高手指导。这个项目可以在学校找,也可以到校外找。

一开始不要计较报酬,甚至如果能够寻到高手指点,白干也行。其次是读好的源代码。

多读好的源代码就象多读好的文章,会有利于自己写作。能够读懂别人的代码也是一门硬功夫。

将来很多项目中你不会重头做,而是在半途加入(一般文档又不很齐全),因此需要能够很快读懂别人代码和想法的能力。再次是看一些编程方面的好书。

Writing Solid Code是一本很经典的书。最近出的Writing Secure Code也不错。

在你熟练掌握C以后,可以学一下C++并熟悉面向对象的程序设计思路。在掌握C++的基础上可以看一下Design Patterns。

看你要把编程学到多么专业。到一定程度,你会发现如果没有学过数据结构,算法原理,编译原理和操作系统,可能在某些方面会遇到一些障碍。

所以,如果有精力和条件的话,可以同时了解这些方面的知识。最后,我要提醒你不要因为编程这一业余爱好而影响了你本专业的课程,除非你决定转行。

对很多在校学生来说,本专业的成绩很重要,因为这个成绩可能会影响到将 来找工作,申请研究生院等等。英语也很重要。

我读翻译的计算机书总觉得隔了一层,翻得不贴切。能够直接阅读英文资料更好。

计算机专业修炼和武侠小说中功夫修炼都是一样的:金庸先生小说中提到高手习武包括内功和外功,其实这个道理在计算机专业同学中一样适用!内功包括:基本心法和高级心法 基本心法需要每个习武者必须修炼,包括:数据结构、编译原理、计算机组成原理、高等数学、线性代数以及外语等。高级心法根据个人需要定,比如:网络类需要学习包括TCP/IP原理等;软件工程需要学习包括软件工程的基础课程。

外功包括:基本招。

4. 学软件开发.需要懂什么些知识

兄弟我现在是搞软件的,大学专业通信工程,后来发现专业前景不妙。转头去学软件了。首先是c语言(估计80%的人是从c开始软件生涯的吧),然后学过sql server,oracle,vb,c++,到大三的时候发现,原来软件人才大部分分两种,一种是java方向,一种是.net方向,所以就开始学习.net。

我2009年7月毕业,现在已经工作了,公司业务主要是做企业的管理软件,笨鸟先飞嘛。

软件这东西很辛苦得,特别是刚开始学的时候,比较枯燥,但是当你具备一定能力的时候,发现会有那么些成就感。但是进公司的时候,我们都是程序员,但是程序员是当不了多少年的,这东西很累。所以,你就要比别人进步得快,要升项目经理,所以你还要不断的学习。这也是累得一方面。

软件开发不一定要编程,可以是美工,数据库方面等等,要看自己爱好。刚开始时,你可以都试一试。

祝你快速入门,加入我们的行列。

5. 软件工程师必备知识

软件工程师考试(高级)大纲 一、考试说明 1.考试要求: (1)理解软件工程管理的概念和任务; (2)理解软件生存期过程; (3)理解软件工程标准; (4)掌握需求分析、测试、维护基本技术; (5)掌握软件度量、软件配置管理方法; (6)理解软件复用概念; (7)理解软件质量保证的手段; (s)理解软件项目对人员的需求; (9)理解软件知识产权的基本知识。

2.通过本级水平考试的合格人员具有从事软件系统分析与工程系统分析员、工程管理员的实际工作能力和业务水平。 3.本级水平考试范围包括三个模块,即模块1、模块2和模块3。

题型为单项选择题十多项选择题十综合题。每个模块考试时间为90分钟。

二、考试范围 模块1:软件工程技术 1.1软件生存期过程 1.1.1软件工程过程和软件生存期 1.1.2软件生存期模型 1.1.3国际标准:ISO/IECI2207信息技术一软件生存期过程 1.2软件需求分析 1.2.1需求分析的任务 1.2.2需求分析过程 1.2.3需求的类型。 1.2.4需求分析的原则 1.2.5需求分析人员和用户的责任 1.2.6需求文档 1.2.7需求说明技术的选择 1.3软件复用技术 1.3.1软件复用的概念 1.3.2软件开发过程 1.3.3构件技术 1.3.4分层式体系结构 1.3.5实施软件复用开发单位的组织结构 1.4软件测试技术 1.4.1软件测试的基本概念 1.4.2测试用例设计 ●白盒测试 ●黑盒测试 1.4.3性能测试 1.4.4软件测试策略 1.4.5软件测试工具 1.5软件维护 1.5.1软件维护的概念 1.5.2软件维护活动 1.5.3软件维护的实施 1.5.4软件可维护性 1.5.5软件再工程 1.6软件工具与软件开发环境 1.6.1软件开发工具的分类、作用和功能 1.6.2软件开发环境的概念 模块2:软件质量管理与软件质量保证 2.1软件质量 2.1.1什么是软件质量 2.1.2软件可靠性 2.1.3软件质量问题的根源 2.1.4软件产品质量与软件过程质量 2.2软件质量保证 2.2.1软件质量保证的概念 2.2.2软件质量保证体系 2.2.3质量保证的实施 2.2.4软件质量设计 2.2.5软件容错技术 2.3软件工程标准与软件文档 2.3.1什么是软件工程标准 2.3.2软件工程标准化的意义 2.3.3软件工程标准的制订与推行 2.3.4软件工程标准的层次 2,3.5软件工程国家标准 2.4ISO9000国际标准 2.4.1质量管理、质量认证与质量审核 2.4.2ISO9000标准概要 2.4.3ISO9000族标准构成 2.4.4质量体系 2.4.5ISO9001的主要内容 2.4.6ISO9000_3实施指南概要 2.5软件过程能力评估CMM 2.5.1软件过程评估的意义 2.5.2软件过程能力成熟度分级及其关键过程域 2.5.3软件过程评估的国际标准 2.6软件度量 2.6.1软件度量的概念 2.6.2功能点方法计算软件的大小 2.6.3程序环路复杂度计算 2.6.4Halstead程序工作量计算 2.6.5程序风格度量 2.7软件配置管理 2.7.1什么是软件配置管理 2.7.2配置管理计划的制订 2.7.3变更管理 2.7.4版本管理和发行管理 模块3:软件工程管理 3.1软件工程管理和软件项目管理 3.1.1软件工程管理的任务与意义 3.1.2软件工程管理的范围 3.1.3软件文档管理 3.1.4软件成本估算 3.1.5软件风险分析 3.1.6软件项目进度计划与监控 3.2软件人员管理 3.2.1软件开发组织结构 3.2.2软件人员能力成熟度模型 3.2.3软件工程师道德和职业活动规范 3.3软件知识产权保护 3.3.1什么是知识产权 3.3.2计算机软件著作权 3.3.3计算机软件著作权登记管理 3.3.4计算机软件著作权侵权与法律保护 3.3.5计算机软件的商业秘密与反不正当竞争================================= 高级软件工程师哪些必须精通2007年09月26日 星期三 下午 05:31程序员的七种武器 信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。

程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。 信息技术的更新速度是惊人的,程序员的职业生涯则是一个要求不断学习的过程,永远不能固步自封。

本人在工作期间曾看见过很多程序员只要有闲暇时间就浏览一些没有太大作用的网页,在网上聊天,打游戏,浪费了大量的时间,十分不可取。而另外一种情况是,IT技术的日新月异使很多程序员眼花缭乱,什么都想学,却又不知从何学起,今天看看这个,明天学学那个,贪多不熟。

虽然IT技术发展迅速,但很多技术都是有规律可循,一些基本的概念、原理和方法还很通用,可以举一反三。本人根据自己的体会和经验,向那些刚刚踏入IT行业的新程序员们或正在迷茫的程序员们推荐程序员必须掌握的七种武器,有了这七种武器,虽不敢说笑傲江湖,但将自己立于不败之地还是可以的。

第一种武器:开发工具 至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。

其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化。

6. 软件开发的基础知识

一是看书,不打游戏。

二是练习,不听MP3。

三是上技术论坛,不看电影。

四是学好数学英语,不交女朋友。

五是持之以恒,不去打篮球。

总之,玩软件的差不多就是人不食人间烟火的机器人。还要有满腔的热情,刻苦的钻研。不容易啊。

基础书有很多,看下这个好不好:

软件技术基础教程 By 周肆清, 曹岳辉, 李利明

http://books.google.ca/books?id=245EGR2qxNkC&pg=PR5&dq=%E8%BD%AF%E4%BB%B6%E5%9F%BA%E7%A1%80&hl=en&ei=qCpLTMaRPJK4sQPusu1I&sa=X&oi=book_result&ct=result&resnum=4&ved=0CDQQ6AEwAw#v=onepage&q&f=false

声明:沿途百知所有(内容)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们将尽快删除