软件工程师必备工具工具知识_weixin_34037977的博客-程序员秘密

技术标签: 开发工具  操作系统  数据库  

信息技术的发展时间虽然不长,但其爆炸式的发展速度使信息技术迅速覆盖社会和人类生活的各个角落。程序员们是这场信息化浪潮的见证者之一,更是其中的主要参与者,这是时代赋予每个程序员的机会和责任。

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

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


第一种武器:开发工具


至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是我重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利器,很多系统级的软件还是用C/C++编写。而JAVA的跨平台和与WEB很好的结合是JAVA的优势所在,而本人对SUN公司的“网络即计算机”的概念相当欣赏,并相信JAVA即其相关的技术集JAVA One会成为未来的主流开发工具之一。其次,如果能掌握一种简便的可视化开发工具,如VB,PowerBuilder,Delphi,C++ Builder,则更好,这些开发工具减小了开发难度,并能够强化程序员对象模型的概念。另外,需要掌握基本的脚本语言,如shell,perl等,至少能读懂这些脚本代码。


第二种武器:数据库


为什么数据库是如此重要?很多应用程序都是以数据库的数据为中心,而数据库的产品也有不少,其中关系型数据库仍是主流形式,所以程序员至少熟练掌握一两种数据库,对关系型数据库的关键元素要非常清楚,要熟练掌握SQL的基本语法。虽然很多数据库产品提供了可视化的数据库管理工具,但SQL是基础,是通用的数据库操作方法。如果没有机会接触商业数据库系统,可以使用免费的数据库产品是一个不错的选择,如mySQL, Postgres等。


第三种武器:操作系统


当前主流的操作系统是Windows,Linux/Unix,熟练地使用这些操作系统是必须的,但只有这些还远远不够。要想成为一个真正的编程高手,需要深入了解操作系统,了解它的内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等。Linux作为开发源码的操作系统,是一个很好的学习平台,Linux几乎具备了所有现代操作系统的特征。虽然Windows系统的内核实现机制的资料较少,但通过互联网还是能获取不少资料。只有对操作系统有一定的了解后,你会发现自己上了一个新的台阶。


第四种武器:网络协议TCP/IP


在互联网如此普及的今天,如果您还没有对互联网的支撑协议TCP/IP协议栈有很好的掌握,就需要迅速补上这一课,网络技术已改变了软件运行的模式,从最早的客户/服务器结构,到今天的WEB Services,再到未来的网格计算,这一切都离不开以TCP/IP协议栈为基础的网络协议支持,所以,深入掌握TCP/IP协议是非常必要的。至少,你需要了解ISO七层协议模型,IP/UDP/TCP/HTTP等常用协议的原理和三次握手机制。


第五种武器:DCOM/CORBA/XML/WEB Services


随着技术的发展,软件与网络的无缝结合是必然趋势,软件系统的位置无关性是未来计算模式的重要特征之一,DCOM/CORBA是当前两大主流的分布计算的中间件平台,DCOM是微软COM(组件对象模型)的扩展,而CORBA是OMG支持的规范。程序员需要做的不仅仅是利用商业的开发平台来开发软件,而是要理解这些技术的初衷,即为什么需要这项技术,如果你能理解了这一点,再回头看这些技术的具体实现,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其结构化的表示方法和超强的表达能力被喻为互联网上的“世界语”,是分布计算的基石之一。


第六种武器:软件工程与CMM


现代大型软件系统的开发中,工程化的开发控制取代个人英雄主义,成为软件系统成功的保证,一个编程高手并不一定是一个优秀的程序员,一个优秀的程序员是将出色的编程能力和开发技巧同严格的软件工程思想有机结合,编程只是软件生命周期中的其中一环,优秀的程序员应该掌握软件开发各个阶段的基本技能,如市场分析,可行性分析,需求分析,结构设计,详细设计,软件测试等。一句话可以概括我的看法:“创意无限,流程保证”。


第七种武器:强烈的好奇心


什么才是一个程序员的终极武器呢,那就是强烈的好奇心和学习精神。没有比强烈的好奇心和学习精神更好的
软件工程师考试(高级)大纲
一、考试说明

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计算机软件的商业秘密与反不正当竞争

转载于:https://www.cnblogs.com/seoer/archive/2012/02/29/2373396.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34037977/article/details/93998906

智能推荐

招银网络一面_招银网络面试 代码挂_叫我吴博士的博客-程序员秘密

广联达笔试的时候接到招银的电话面试,直接跑出去了: 自我介绍 项目介绍 springmvc流程 @Controller的安全问题(没答上来,) TCP三次握手,两次握手会出现什么问题 死锁怎么处理 怎么解决线程安全问题 Redis特性 ...

Javascript内存泄露_js内存泄漏_小草旁的大树的博客-程序员秘密

英文原文:JavaScript Memory Leaks  1. 什么是内存泄露?  内存泄露是指分配给应用的内存不能被重新分配,即使在内存已经不被使用的时候。正常情况下,垃圾回收器在 DOM 元素和 event 处理器不被引用或访问的时候回收它们。但是,IE 的早些版本(IE7和之前)中内存泄露是很容易出现的,因为内存管理器不能正确理解 Javascript 生命周期而且在周

GNU/Linux实战手记之Emacs篇_wybing的博客-程序员秘密

Copyright(C)http://my9801.51.net 本文依照GNU Free Document Lience发布,任何人都可以将本文原封不动的复制、转载,但请务必保留此声明。作者不对本文所导致的任何结果负责。 一、Linux下的常用软件--Emacs   有了上面的基础,你已经可以自由的使用Linux的控制台了。但是,光靠这些,你还不能编辑和修改文件,不能归档和压缩(解压缩)文件,不

js获取select标签选中的值_jstl 存select的值_xiaodanjava的博客-程序员秘密

菜鸟教程 jsp教程http://www.runoob.com/jsp/jsp-form-processing.htmljs获取select标签选中的值var obj = document.getElementByIdx_x(”testSelect”); //定位idvar index = obj.selectedIndex; // 选中索引va

jQ写的tab选项卡_weixin_42974569的博客-程序员秘密

支持鼠标滑动切换jQ <script> $(function(){ $(".nav>li").mouseenter(function(){ $(this).addClass("ou"); $(this).siblings().removeClass("ou"); $(".current>li").eq($(this).index()).addCl

context:exclude-filter 与 context:include-filter_睡眼惺忪_的博客-程序员秘密

1 在主容器中(applicationContext.xml),将Controller的注解打消掉 2 而在springMVC配置文件中将Service注解给去掉 因为spring的context是父子容器,所以会产生冲突,Controller会进步前辈行扫描装配,而此时的Service还没有进行事务的加强处理惩罚,获得的将是原

随便推点

2020-09-02(clear,after伪类解决高度塌陷,clearfix)_蹲蹲、的博客-程序员秘密

1.clear如果我们不希望某个元素因为其他元素浮动的影响而改变位置,可以通过clear属性来清除浮动元素对当前元素所产生影响clear:作用:清除浮动元素对当前元素所产生的影响可选值:left:清除左侧浮动元素对当前元素的影响right:清除右侧浮动元素对当前元素的影响both:清除两侧中最大影响的那侧原理:设置清除浮动以后,浏览器会自动为元素添加一个上外边距,以使其位置不受其他元素的影响2.after伪类解决高度塌陷<!DOCTYPE html><html lan

鸿蒙系统优先体验的机型,比苹果iOS更流畅,华为鸿蒙首批升级名单确定,7款机型优先体验..._张梅雪的博客-程序员秘密

日前,华为官宣鸿蒙操作系统将于6月2日发布,届时,将会有大批花粉获得更新鸿蒙系统升级资格。对于鸿蒙系统的到来,花粉可谓是期待已久,因此,不少用户最关心的还是自己的设备能不能适配鸿蒙系统。随着鸿蒙系统发布的临近,关于新系统的爆料信息也越来越多,其中就包括新系统适配机型的数量。根据知名数码博主@菊厂影业 Fans透露的细节,华为在6月2日鸿蒙系统发布会的当天,会公布首批升级鸿蒙系统的名单,并在5月31...

jsessionid_[warning] /login.shtml;jsessionid=523758_云栖之家的博客-程序员秘密

在服务器端,我们用惯了session.setAttribute("",userInfo)这样的一行代码,估计你很少想到:服务器与浏览器之间是如何保持会话状态的。好了,先引用一些文章的精彩片段:http://www.xxx.com/xxx_app;jsessionid=xxxxxxxxxx?a=x&b=x。这跟一般的url基本一样,只有一个地方有区别,那就是“;jessionid=xxx...

MySQL-(数据过滤)左外连接、右外连接_sql先连接还是先过滤_IT小生2020的博客-程序员秘密

结合购物商场数据表进行阐述:左外连接关键字:left join on / left outer join on语句(格式):SELECT * FROM a_table a left join b_table b ON a.a_id = b.b_id;说明:left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。 左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。如果右表中没有对应的数据,.

使用python执行cmd命令_python调用cmd并传入命令_盼丨盼的博客-程序员秘密

1、进行app测试前都需要连接手机,使用cmd窗口执行命令:adb devices2、使用airtest无线连接手机时需要提前执行tcpip配置:adb tcpip 48887一、通过os.system('输入命令')来执行import oscmd_devices = os.system('adb devices')print(type(cmd_devices))print('cmd_devices:', cmd_devices)cmd_tcpip = os.system('adb

ASM(五) 利用TreeApi 解析生成及转换Class_asm classnode_智秒数服.未闻的博客-程序员秘密

篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。 在介绍前,先要知道一点, Tree工程的接口基本可以完成大部分我们之前介绍的Core中的功能。但是在实际使用中更加便利,当然也会更加消耗时间和性能。完成一个简单的生成编译后的Class字节码的任务,可能会花费多余Core的30%的时间,同时也会消耗更多内存。但是通过下面的介绍,相信在选择用哪种Api上,我们也会做出自己的取舍和判断。

推荐文章

热门文章

相关标签