软件设计师面向对象中的重要概念是什么?
初学者。
目前光看书只知道接口仅仅声明一些空的成员,这些成员必须在类中来实现,接口可继承。
但我不明白既然接口的这些没有实际代码的成员还要在类中实现,那还要接口干什么,直接用类就可以了嘛,请高手明示,谢谢! 答:类是一个一个的插头. 接口1 是 2线的插头 接口2 是 3线的插头 如果全世界有1000种插头和 2种接口. 如果你现在生产一个插座,你是对这2种"接口"做2种插座还是对1000种插头做1000种插座?????? 显然是做2种,那么不实现这个接口的插头(不是2线或3线的),就不能察进你的插座. 表面看是一种自己束缚自己,其实是一种解放,正是有了这两种"接口",才有我们现在很方便地使用插座和插头,否则,那么多厂家,有人用7个脚的插头,有人用12个脚的,就算一样是3个脚吧,有人排成一条直线,那么你随时发现你找不到合适的插头或插座....每人都要准备成百上千的插座,累不? UnderStand? 应该上面我这段比喻可以提供一小点你看书看不到的东西吧.
软件设计师的工作量如何
一个个回答你,软件开发的工作一般来说男的做的多,但只要你有恒心也一定做得好,我好几个女同学,也仍然在这一行奋斗着。
工作量的话,看你在什么公司,不过一般来说都不会太轻松。
软设考试学习量还是比较大的,入行了会好很多。
你自己本来就是学这方面的,对你来说应该会好很多,你可以去买些相关教材,比如:《软件设计师考试冲刺指南(新修订版)》、《软件设计师考试培训视频教程(76课时)》。
我去年考软件设计师时,参加过希赛软件设计师培训班这样才通过的;前景应该是比较好的,薪水待遇也不错
通过软件设计师考试后有哪些感想?
参加完软考后心里总有些话想说,那就谈谈对软考的感想吧。
(成绩是50,47)。
首先,你要对软件设计师证有个正确的认识,它只是一张纸,有了它不能说明你水平就很强,没有它也不能说明你就不适合搞软件开发,你不会因为一张纸就确定了自己的能力水平吧(你看过研究生或博士去考的吗!如果你坚持看重的话,你应该不适合做开发工作了,最多也只能做个代码写手)。
而且中国的考试向来都是只重课本不重应用,所以对软考也不要太…… 参加完软考后心里总有些话想说,那就谈谈对软考的感想吧。
(成绩是50,47)。
首先,你要对软件设计师证有个正确的认识,它只是一张纸,有了它不能说明你水平就很强,没有它也不能说明你就不适合搞软件开发,你不会因为一张纸就确定了自己的能力水平吧(你看过研究生或博士去考的吗!如果你坚持看重的话,你应该不适合做开发工作了,最多也只能做个代码写手)。
而且中国的考试向来都是只重课本不重应用,所以对软考也不要太害怕(我就是个半道出家的,没进入正规的大学,通过胡乱的自学也敢去考),考试出的题目技巧性都不强,很多都是那类一看就知道考点是什么,更过份的是有些题目很可能甚至书本或资料上都有(中国的教育也要进步了吧:()。
更重要的一点是,现在感觉看重这个证的企业是越来越少了,所以请把自己的精力放在提高自己的理论基础水平上,并且要不断的提高自己的数学能力(看看国外的计算机课程开设,你就不会再小看数学的作用了)。
其次,说说我参加软考时的学习过程。
1.课本准备:大纲、软件工程的教材(推荐《软件工程——原理、方法与应用(第二版)》高等教育出版社)、编译原理的教材(推荐《编译原理(第2版)》清华大学出版社)、数据库的教材(《数据库设计原理》)、数据结构的教材(推荐一本学C++用得上的(如果你有时间学C++的话)《数据结构与算法——面向对象的C++设计模式》国外计算机科学教材系列)、操作系统的教材(《操作系统教程(第3版)》高等教育出版社)、还有就是要准备一到2本练习题及1套模拟试卷。
2.制定学习计划,我是从报名的那个月开始,除了早晨用于学点英语外(不过英语水平一直很差,可能有英语学习障碍),每天分3个学习时段(上午、下午、晚上),每个时段学2门(一门简单的,一门较难的),其中软件工程、编译原理、数据库原理、操作系统、C++为单独的课程,其它的课程就用大纲那本书。
并且要保证考试前一个月做练习用的复习时间,除非你有计算机硬盘一样的记忆能力,否则最好有一个月的练习时间,其中前1-2个星期用来做模式试题。
软件工程是复习的重点,因为下午一定最少有2道软件设计分析方面的题目,一定要熟练的掌握书本中说到的各种软件分析设计方法及有关的分析用图,对各种图的功能作用和制作方法(特别是各种图的组成元素)以及各种图之间的转换及联系(如果有的话),UML面向对象的软件设计方法及面象过程的软件设计方法完全理解,软件测试要达到理解的程度,其它的内容只有去强记了,因为基本是都是上午题,而且每年的题都不定,但与CMM有关的一定会有。
(这科的复习我认为难一点,因为我没有参加项目开发的经验,对里面的概念只能强行理解和记忆,所以在脑中的影像不太深刻,而且考完后就忘得一干二净了,不过学还不是太难,可能是我的教材简单) 数据库也是重点,下午一定有至少一道数据库的题目,而且也一定是考关系型数据库,E-R模式也要搞懂,可由它导出关系,一定要弄懂关系数据库的几个范式及关系的建立方法(因此就要对关系数据库的基础概念非常清楚,如键的定义,函数依赖,范式的定义、作用及转换是建立关系的基础),要熟练SQL常用的几个语句,最好是自己用笔写上几遍每个语句的各种形式以加深记忆,数据库的学习还是不太难的(因为考试不会考数据的物理存储及数据安全,感觉这方面的知识更难,交叉学科更多)。
数据结构的复习以普通的教材为主(相关书籍学计算机的应该都有一本吧),对数组、链、队列、栈、树及堆等基本的数据组织方式要非常熟悉(要做到看见算法就知道要用什么数据组织方式更高效),排序、索引、HUSH及图的各种算法要了然于心(算法的分析过程及代码要非常清楚),算法的分析方法达到理解应用的水平;对C语言要非常熟练(要会应用C语言语句的一些技巧,如可以利用函数的返回值做为判定条件,在循环中对数组的处理可使用a[i++]来提高编写代码的效率,这类的小技巧只有通过大量的阅读代码才能提高),如果是初学面向对象方面的高级语言,建议还是先学C++,感觉它更象一种语言规范,而JAVA是一种编程的工具并且由于它的跨平台特性所以它有很多自己独有的功能和特点,有时间一定要看一本C++语言的数据结构它能使你更全面和深刻的理解类及对象的编程方法。
(下午那道编程题你拿不到分,就考虑做其它方面的工作吧,程序员不适合你了,因为你连编程工具都不会用) 编译原理一定会考词法分析它是后面编译过程的基础,产生的表格在整个编译过程中都会用到(主要考的内容是...
考软件设计师有用吗?
计算机水平考试,现在软件企业比较认的是高级程序员, 这些认证只是一个敲门砖,软件公司主要看你到底有没有实际开发经验, 做过什么大一点的项目,编程基本功底怎么样,如果能力(编程能力, 学习能力以及一些基本修养、素质)不行,就算进了软件企业,也很快被淘汰的。
建议你拓宽自己的知识面,努力提高各方面的能力(社会交往、表达能力、 英语口语、财务知识、营销、管理知识)。
上海matlab 软件工程师待遇怎么样好不好
matlab 软件工程师职位职能:软件工程师职位描述:1、Matlab平台下的算法实现、验证、数据处理、混合编程等工作。
2、Matlab界面设计、开发与测试。
3、编写相关文档。
任职要求:1.本科以上学历,计算机科学与技术、软件工程、数学或计算数学、电子信息与工程、电子信息、数理统计等相关专业。
2.掌握数据处理相关算法,熟练运用Matlab对数据进行处理,掌握matlab界面设计和开发技术;3.具备良好的英语阅读能力,具备良好的英语写作和口语能力者优先;4.具备国家软考程序员,软件设计师、数据库系统工程师证书者优先;5.表现出色者可去香港出差。
软考软件设计师考试成功之法是什么?
这次考试通过了软件设计师考试,为了给后来人帮助,特说说我的复习方法。
1、具体学习每门课程的方法 (1)软件工程。
软件工程是复习的重点,不但上午题当中占10左右,而且下午题里也有2道软件设计分析方面的题目,一定要熟练的掌握书本中说到的各种软件分析设计方法及有关的分析用图,对各种图的功能作用和制作方法(特别是各种图的组成元素)以及各种图之间的转换及联系(如果有的话),UML面向对象的软件设计方法及面象过程的软件设计方法完全理解,软件测试要达到理解的程度,其它的内容只有去强记了,因为基本是都是上午题,而且每年的题都不定,但与CMM有关的一定会有。
这科的复习我认为难一点,因为我没有参加项目开发的经验,对里面的概念只能强行理解和记忆,所以在脑中的影像不太深刻,而且考完后就忘得一干二净了,不过学还不是太难,可能是我的教材简单了。
(2)数据库。
数据库部分也很重要,上午有5分左右,下午至少有一道数据库的题目,而且也一定是考关系型数据库,E-R模式也要搞懂,可由它导出关系,一定要弄懂关系数据库的几个范式及关系的建立方法。
因此,就要对关系数据库的基础概念非常清楚,如键的定义,函数依赖,范式的定义、作用及转换是建立关系的基础。
数据的并发控制,要熟练掌握SQL常用的几个语句,最好是用笔将每个语句写上几遍,对语句的各种形式加深记忆,数据库的学习还是不太难的。
因为考试不会考数据的物理存储及数据安全,感觉这方面的知识更难,交叉学科更多。
(3)学习数据结构和算法。
数据结构和算法是考试的重点内容,它的复习以普通的教材为主(相关书籍学计算机的应该都有一本吧),对数组、链表、队列、栈、树及堆等基本的数据组织方式要非常熟悉(要做到看见算法就知道要用什么数据组织方式更高效),排序、索引及图的各种算法要了然于心(算法的分析过程及代码要非常清楚),算法的分析方法达到理解应用的水平。
对C语言要非常熟练(要会应用C语言语句的一些技巧,如可以利用函数的返回值做为判定条件,在循环中对数组的处理可使用a[i++]来提高编写代码的效率,这类的小技巧只有通过大量的阅读代码才能提高),如果是初学面向对象方面的高级语言,建议还是先学C++,感觉它更象一种语言规范,而Java是一种编程的工具并且由于它的跨平台特性所以它有很多自己独有的功能和特点,有时间一定要看一本C++语言的数据结构它能使你更全面和深刻的理解类及对象的编程方法。
算法的学习不是一朝一夕就能提高的,一定要静下心来学习一些经典算法,比如:穷举法、贪婪法、分治法、迭代法、递推法、递归法、回溯法;找一些有名的算法程序来分析,比如:背包问题、组合问题、斐波那契数列、马踏棋盘问题、货朗担问题、八皇后问题、迷宫问题、汉诺塔问题、约琴夫环问题等。
有了这些算法思想在你的头脑中扎根后,当看到问题,你就自然的想起用什么方法来求最优解了。
(4)程序设计语言。
程序设计语言包括C语言、编译原理和面向对象的程序设计语言(通常以C++为例)。
编译原理一定会考词法分析,它是后面编译过程的基础。
主要考的内容是NFA与DFA的转换、正规式与有穷自动机的转换等。
文法分析有一年考过下午题,这科对初学者比较难,比较抽象,理论性也比较强,反正我是学了4个来月才学通一点,这课复习没什么技巧,用功学吧!不过听听希赛的“编译原理视频教程”,学起来更快一些。
C语言要掌握好三种基本结构、数组、链表、结构体、共用体、参数传递、指针及指针数组、指针函数等等。
面向对象的程序设计语言要对基本概念及初步应用要了解,考得不深。
(5)面向对象方法学。
面向对象方法学不但是上午的考试重点,也是下午的考试重点。
上午平均有12分左右,而下午有30分,一道与UML图形有关的题目,一道面向对象程序设计的选做题。
所以要好好掌握这一块。
UML当中的类图、用例图、状态图、协作图要掌握好,考试中会常出现。
(在希赛辅导平台的在线课堂里,老师多次强调这个要学习的知识点,我通过做题,认为老师抓的很准。
) (6)操作系统。
操作系统没什么说得了,把它的几个功能模块搞清楚及相关的算法搞清楚就好了,如处理器的管理、存储管理、设备管理、文件管理及系统安全,其中我认为比较难理解的是PV操作(在并发进程中它的应用非常灵活)和中断(反正这个对我比较难),一定要把相关内容所讲到的算法及分析过程搞懂,这样考试相关的题目对你来说就小儿科了。
当然还要注意进程死锁的问题,段页式存储的问题。
其它课程的复习就按考试大纲进行,把里面的概念搞清楚就行,因为它大部分都是上午题。
2、看书与练习相结合 我记得在考前20多天的时候,“看书时没有目的性,不带着任务走,看到哪里算哪里;看后不做题进行巩固”,我以前犯得就是这个毛病,每天看得是云里雾里的,不做练习巩固,过几天就忘记了。
所以,我看了书以后,总要找一两个相关的题来做一做。
后来,可以做模拟试题了,几天才做完一套,遇到做错的知识点,就找出教材或辅导教材来,争取弄懂;但进度...