软件工程师要先学什么
先学C,再学C++,然后学VB, 现在流行的是Java,然后还有asp,jsp,php等学编程从基础做起!现在流行JAVA,可以直接学请一位好一点的老师,或找个学习班 简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。
计算机虽然功能十分强大。
可以供你上网、打游戏、管理公司人事关系等等,但是没有程序,它就等于是一堆废铁,不会理会我们对它下达的“命令”。
于是,我们要驯服它,只有通过一种方式——程序,这也是我们和计算机沟通的唯一方式。
那程序到底是什么呢? 程序也就是指令的集合,它告诉计算机如何执行特殊的任务。
打个比方说,它好比指导你烹调菜品的菜谱或指挥行驶一路到达目的地的交警(或者交通路标)。
没有这些特殊的指令,就不能执行预期的任务。
计算机也一样,当你想让计算机为你做一件事情的时候,计算机本身并不能主动为我们工作,因此我们必须对它下达指令,而它根本不会也不可能听懂人类自然语言对事情的描述,因此我们必须使用程序来告诉计算机做什么事情以及如何去做?甚至对最简单的任务也需要指令,例如如何取得击键,怎样在屏幕上放一个字母,怎样在磁盘中保存文件等等。
这么麻烦,连这些东西编程都要考虑!怪不得人家说编程好难!你错了,其实许多这样的指令都是现成的,包含在处理芯片中内置于操作系统中,因此我们不必担心它们工作,他们都是由处理器和操作系统来完成的,并不需要我们来干预这些过程。
上面讲到的计算机本身不会主动的做任何事情。
因此我们要通过程序的方式来让计算机为我们“效劳”。
而这个过程就是我们“编”出来的。
编程可以使用某一种程序设计语言来实现,按照这种语言的语法来描述让计算机要做的事情。
我们这里所讲的语法和外语中的语法完全两码事,这里讲的语法只是读你的程序书写做出一写规定而已。
写出程序后,再由特殊的软件将你的程序解释或翻译成计算机能够识别的“计算机语言”,然后计算机就可以“听得懂”你的话了,并会按照你的吩咐去做事了。
因此,编程实际上也就是“人给计算机出规则”这么一个过程。
随计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行,程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。
所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由构成的代码。
但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
由于省略了很多细节,所以编程者也不需要具备太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
(1)解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
(2)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。
但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。
现在大多数的编程语言都是编译型的,例如Visual Basic、Visual C++、Visual Foxpro、Delphi等。
这个问题其实很简单。
前面我们讲到,程序是人与计算机进行沟通的唯一方式,因此我们要让计算机为我们服务,就必须有程序,而程序从哪里来?当然是由我们编写出来了。
或许你又会问到另一个问题:现在要什么程序有什么程序,我干嘛还要编程呢?这你就错了,现在的程序虽然很多,需要什么样的程序直接到网上不需要很长时间就可以找到类似的,而且有...
软件工程师要学哪些东西?
软件工程师要学习和掌握的东西:(一).NET方面的开发⒈熟悉.net开发体系,熟悉C# ASP .NET;⒉熟悉SQLServer,Oracle数据库开发;⒊具有企业管理系统项目经验;4.了解企业ERP及财务管理软件(用友,金蝶)者优先;5.善于沟通,能独立撰写方案。
为人诚实,善于学习,做事认真负责,积极主动,具有敬业精神,有团队精神。
(二)JAVA应用程序开发1.熟练使用Struts2+Spring+Hibernate2.掌握Jquery3.掌握Java4.熟悉Oracle5.掌握xml/webservice6.掌握OOD、OOP7.基本文档写作能力(三)web、数据库方面的开发⒈练掌握ASP,NET;等编程语言,熟悉.Net开发环境,理解.Net Framework,理解并能熟练使用WebService、O/R mapping、Remoting、多线程等技术;2.热衷于互联网WEB开发,热衷于钻研最新的前沿技术,精通XML,Javascript,CSS,AJAX等WEB前端技术;3.熟练的技术文档编写能力,熟练使用Rose,Power Design,Visio等建模和设计软件,有一定的架构设计能力;4.精通SQL server数据库技术,了解数据库性能调优者优先.(四)php项目开发⒈使用PHP语言开发互联网应用程序;⒉网站产品和网站功能模块的开发与维护;⒊与页面设计师协调沟通,编写部分Javascript和HTML;⒋参与底层MVC框架的编写与维护。
软件工程师一般指从事软件开发职业的人。
软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。
此外,关于网络工程和软件测试的其他技术也要有所涉猎。
对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。
具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息;一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。
可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。
工作内容:1、 指导程序员的工作;2、 参与软件工程系统的设计、开发、测试等过程;3 、协助工程管理人保证项目的质量;4 、负责工程中主要功能的代码实现;5 、解决工程中的关键问题和技术难题;6 、协调各个程序员的工作,并能与其它软件工程师协作工作;7、还要编写各种各样的软件说明书,如:需求说明书,概要说明书等考试科目。
工程师是中级职称,考试的题目包括了计算机体系结构、软件工程、数据库、数据结构、编译原理等计算机学科的基础课程。
软件工程要学什么基础课?
软件工程专业课程设置分为六大类,依次为公共基础课、专业基础课、专业课、专业选修课、集中实践课和课外实践课。
专业基础课主要有:面向对象程序设计、计算机电路、数据结构、工程数学、离散数学、数据库系统概论、软件集成开发环境、计算机组成原理与实验、工程设计导论、汇编语言、操作系统与实验、计算机网络、软件工程、软件工程专业英语、编译原理与实验、系统分析与设计和软件质量保证与测试等课程。
专业课分为四个方向:动漫与数字媒体艺术方向、数据库应用技术方向、嵌入式软件技术方向和网络与通信软件技术方向。
动漫与数字媒体艺术方向专业课主要有:计算机平面设计、数字媒体艺术概论、构成基础、三维动画-MAYA和Flash AS 程序设计等课程; 数据库应用技术方向专业课主要有:MySQL 数据库设计与应用、SQL Server 数据库设计与应用、XML基础、大型数据库开发与应用和数据仓库等课程; 嵌入式软件技术方向专业课主要有:嵌入式操作系统、嵌入式微处理器结构与应用、Android应用程序开发、嵌入式Linux程序设计和WinCE应用程序开发等课程; 网络与通信软件技术方向专业课主要有:通信原理与技术、网络规划设计、WEB 编程技术、网络操作系统和网络信息安全等课程。
做软件编程师要学些什么?
初级部分: 1. Java 面向对象程序设计、Java API使用、数据结构及算法基础、Java高级类特性、异常处理; 2. AWT及Swing图形程序设计、流、网络程序设计、对象序列化、Applet、多线程程序设计、Java应用国际化基础; 3. Java桌面系统项目开发; 4. Java编程基础提高课程:反射机制、设计模式(I)、正则表达式,Java SE5.0新特性等; 5. 基于Oracle的数据库开发及管理、数据库设计、标准SQL、PL/SQL编程; 6. JDBC、JSP2.0、Servlet2.4、JavaBean编程;Tomcat服务器使用、Jbuilder及Eclipse 等集成开发环境; 7. Linux操作系统中的Java程序开发、Linux系统管理; 8. Java Web编程提高课程:JDBC进阶、高效分页处理、过滤器使用技巧、Struts中动态表单验证、DispatchForm等; 高级部分 1. MVC设计模式、Struts架构核心工作机制、国际化、验证框架、Struts Taglib、ORM基础、基于Hibernate的企业级应用; 2. JavaME手机游戏设计、界面程序设计、数据库程序设计、手机短信、多媒体短信(彩信)开发; 3 .JavaEE核心技术、XML、Web Service、异构系统整合、分布式应用开发、WebLogic和JBoss等应用服务器; 4 .CMM、UML与系统建模和设计、Rational Rose、软件工程和软件过程模型、版本控制及设计模式; 6. Java 企业级应用开发提高课程:Hibernate使用技巧、设计模式(II)、Spring编程入门、提高Java EE应用的性能; .NET程序设计 .NET架构、.NET桌面和Web程序设计、.NET与JavaEE平台应用的整合; 职业素质 IT职业规划、沟通技巧、团队合作、专业技术规范、面试技巧等职业技能培训。
完成以上培训课程后,通过考核就可以获得培训机构颁发的合格证书。
现在比较吃香的是JAVA,特别是J2EE,未来3G出来后,手机编程将成为热点,J2EE当然就会很吃香了。
关于证书的权威性,建议你要去知名的培训机构去,最好是像SUN这类国际大公司有关认证所指定的培训机构,这样权威性高些。
一般来讲,软件公司是非常喜欢通过了软件工程师的人员,学历对他们来说并不重要,而重要的是能力。
如果你的能力够强,在一个好的公司的话,这个月薪我想应该是可以拿到的。
要成为软件测试工程师需要学什么,还有学编程有用么?
适合做程序员吗?1.首先,你应该清楚自己为什么选择程序员这个职业?现在很多人是因为软件行业的薪资高才进入的,其实没有人不想挣钱。
但我的看法是,程序员是没有办法一夜暴富的。
甚至可以说如果你聪明伶俐的话,做程序员不如去做销售人员的待遇和收入上升得更快一些,真的.做程序员首先一定要从兴趣上爱这个行业,否则根本无法忍受成为一个真正程序员要付出的代价.请记住,程序员这种职业是非常辛苦的,需要全身心的投入,如果舍不得付出和牺牲自己的青春的话就最好不要选择这个职业. 2.程序员应该是一种充满激情的人,他们喜欢挑战,喜欢接受新的技术和知识,对好奇和不懂的技术总刨根问底的精神,并以此乐此不疲.他们最大的精神享受是自己的努力成果给别人带来方便,快乐,能够得到别人的肯定和重视.优秀的程序员应该是完美主义,他们对自己开发的软件一丝不苟,从功能到界面到软件的健壮性等.他们甚至会为界面上的一个按钮的外观折腾半天,直到满意为止..一个缺乏激情的程序员的职业生命是很短暂的. 做好准备了吗?好,继续往下看..如果你是初学者(俗称"菜鸟"):1.好高骛远是许多初学者的通病,总幻想自己发疯似地努力几天或几个月就成为"高手"(谁不想呀,看他们多受人尊敬),正是由于自己的这种好高骛远的"雄心壮志",往往给自己定下一些不切合实际的太多的目标,比如:"这个月学汇编,下个月学C语言,再下个月学C++,然后进入VC++集成开发环境做开发.",结果到头来经过几个月的努力,却发现与原定的目标相去甚远,激情和信心也没有了,而且什么东西都没学好.其实并不是因为你笨,学习能力不强,而是太心急了,看看身边的高手们,哪一个不是至少有几年功力的酝酿的?如果你觉得自己很聪明,但请记住这句话:"天下的聪明人太多了,你想在三到五年就把别人十年做的事情做一遍,那你也一定会把别人在十年中所受的苦难在这三到五年中经历一遍." 2.学问是堆积起来的。
基础越深,堆得越高,基础越广,堆得越快。
如果你还是在校学生,请重视基础理论课程,像数据结构,编译原理,组成原理,数据库理论等,学过这些基础课程的人编出来的程序一定会比没学过的人编的程序技术含量更高,更具灵活性.这是一个最坚难的时期,基础理论课程比较枯燥,难懂,而且往往这种教材陈旧,许多朋友开始学习的时候充满激情,到后来学觉得没味,教材也太老陈,我们承认,我国的本科教育教材落后是不争的事实,但计算机始终是二进制的,那些最基础的理论一直没有变.如果你觉得大学里的教材实在学不进去了,我的建议是不妨去上机实践,学一门程序语言和开发工具(比如VC,VB),因为只有在实际编程的过程你才会明白那些基础理论的重要性,比如在编程过程中遇到设计结构体,设计遍历,匹配等算法时你才会明白数据结构的重要性.另外,打好基础,以后学新的东西就会很快,举个例子,我的一个网上的朋友,他有十年的DOS汇编基础,而我只有几个月的基础,我们两差不多同一时间开始学习win32汇编,到现在他的进度已经远远超过我了,而且写的程序技术含量高,更底层. 3.建议初学者特别要注意"知识断层"这个问题.经常有朋友问我"为什么我学不懂操作糸统?","为什么我觉得C++那么难学?" ?我可以简单地这样回答你:因为你存在"知识断层".换句话说,你的知结构不完善,基础不扎实.我个人认为操作糸统原理没有几年实践编程和扎实的基础是不可能有较深刻的理解的,所以建议初学者才开始不应该在操作糸统原理上花太多时间,才开的时候只需建立一些基本概念,只有在以后的编程实践过程增加感性认识(从操作糸统程序级接口来看),多问几个为什么,带着问题和感性认识再回过头来看操作糸统原理,你会发现理解起来容易了.我曾经就是这样,才开始看操作糸统原理怎么也看不懂,直到有一定的编程经验后再回过头来看就感觉轻松多了!再来说C++,我个人观点认为初学者不要学C++,OOP,因为没有编程经验和一定的理论基础你就很难理解为什么要"封装",为什么要"继承",为什么一个程序搞得那么复杂,C语言不是功能很强大了吗?所以建议在没有一定的编程经验之前,不要学C++,不然你会感觉到底层的空虚,候捷说得好:"浮沙不能筑高台"嘛! 4.你的电脑里面不应该装游戏,不要忘了游戏也是程序员编出来的,如果你真的热爱编程的话,你就不会沉溺于游戏而是沉溺于程序代码了.我有一个朋友,是电子科大的,学的是计算机.他非常聪明,但整天沉溺于游戏,到现在什么都没学到.我过去也很喜欢打游戏,像"英雄无敌","星际争霸"呀,一玩就会把用电脑的时候全用上,虽然计划学一些东西,但实际上收获甚少,我想许多还在玩游戏的朋友都是有同感的.其实你可以思考一下游戏是怎么做出来的,它和普通的应用程序有什么区别,虽然不一定会有实质的收获,但它会让你带着好奇心和问题去学习,去编程.请记住,要想学好编程,就不要玩游戏. 5.尽快找一个突破口.一个人的精力是很有限的,不可能什么都学,不可能,也不现实.现在流行的程序语言就有好...
作为一个软件工程学生,该如何学习程序设计和程序编程?
我也是软件工程的,不知道你们学校是什么方向的,有JAVA方向的,有C++方向的Java方向是面向企业的编程,最终方向是J2EE,这是一个制作那些企业级级的网站,比如说那些腾讯网,新浪网这种类型的网站,比如我们学校就是这个方向,然后学校的网站也是J2EE,这方面的话,最主要的就是学习JAVA面向对象编程思想,然后就是java WEB开发,即MVC的网站开放模式,最后大三就学习struct,hibernate,spring整合开发。
但是本人非常不喜欢这个方向,但是学校是这个方向,让我很无奈,只好考研了。
C++方向,这个不太清楚,但是C++就业情况很好,就业方向很多,比如数据库,嵌入式,游戏开发,应用程序开发,所以应该注重学C语言程序设计,数据库,还有MFC开发模式。
最后,虽然方向不一样,但是到最后却是殊途同归,编程最重要的是数据结构以及算法,所以,在你迷茫的时候,就认真学习数据结构和计算机算法吧,这个才是程序员真正应该理解的东西!
软件工程要学什么?
软件工程学的主要内容是软件开发技术和软件工程管理.软件开发技术包含软件工程方法学、软件工具和软件开发环境;软件工程管理学包含软件工程经济学和软件管理学。
1、 专业简介:是计算机领域发展最快的学科分支之一,国家非常重视软件行业的发展,对软件人才的培养给予了非常优惠的政策。
本专业培养掌握计算机软件基本理论知识,熟悉软件开发和管理技术、能够在计算机软件领域中从事软件设计、开发和管理的高级人才。
2、 主修课程:该专业除了学习公共基础课外,还将系统学习离散数学、数据结构、算法分析、面向对象程序设计、现代操作系统、数据库原理与实现技术、编译原理、软件工程、软件项目管理、计算机安全等课程,根据学生的兴趣还可以选修一些其它选修课。
3、 毕业去向: 除考取国内外名牌大学研究生外,主要毕业去向是计算机软件专业公司﹑信息咨询公司﹑以及金融等其它独资、合资企业。
软件工程是学什么的,包括什么?
楼上的真麻烦,又从哪儿抄的贴子!你以为你上软工导论课呢?我来简单的介绍一下吧。
其实,开发软件并不简单只是编编程序(如果是那样,初、高中生就能完成了,要我们这些大学生干嘛),就象做生意(比如开商店),你总不会认为开商店就是站那儿卖货吧,你得先进行市场调研,再选店址,然后上货,卖货,当然还有售后服务),这是一个复杂的,系统的工程,一般包括以下几项:客户需求调查或市场调查、软件的框架设计、各框架的进一步细分,编写程序(内容很多,比如用什么语言,面向什么,设计模式等等),黑白盒测试,发布测试版,软件的交付以及售后服务,还有各阶段的文档总结(包括软件的帮助文件,注释等等),总之,就是一个软件从调研到最后发布的各中间过程,软件工程就是对这各种阶段的说明以及如何去实施各阶段,学好了它,对你今后的软件工程师之路是非常有用的,也是必需的。
想学计算机编程应该选什么专业?
可以选计算机科学与技术专业或者软件工程专业。
1、计算机科学与技术专业:计算机科学与技术是研究计算机的设计与制造,并利用计算机进行有关的信息表示、收发、存储、处理、控制等的理论方法和技术的学科。
2、软件工程专业:软件工程专业以计算机科学与技术学科为基础,强调软件开发的工程性,使学生在掌握计算机科学与技术方面知识和技能的基础上熟练掌握从事软件需求分析、软件设计、软件测试。
软件维护和软件项目管理等工作所必需的基础知识、基本方法和基本技能,突出对学生专业知识和专业技能的培养,培养能够从事软件开发、测试、维护和软件项目管理的高级专门人才。
扩展资料:软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。
它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。
典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。
同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。
这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。
参考资料:百度百科——软件工程专业
软件工程师要学什么
首先,软件工程师本身的技能范围就非常宽泛,大学本科学的内容都是基础,只起到铺垫的作用,实际应用的时候经常需要学习新知识。
其次,各个大学的课程都不太一样,不知道你们学校开了什么课。
一般肯定有基础课和选修课,基础课不用说,必须都上,选修课主要看你的兴趣,其实都是跟软件工程师相关的内容。
具体来说,基础课都很重要,离散数学、数据结构和算法、专业英语等都要好好学;软件工程这门课几乎是所有软件开发的核心;操作系统、网络技术是底层的基础;数据库、XML很重要;编程方面,有的学校学C语言,有的学校直接学Java,都可以,将来还要学习多种其他语言;web开发、嵌入式开发等都是具体应用,应该都是选修方向,另外,还有一些综合性的课程,比如信息系统、智能系统、数据挖掘理论等,如果你们学校开了这些课,有兴趣不妨去听一下,都很有意思。
另外,国家软件水平考试把软件工程师分了5个大类、27个小项。
你也可以参考这个分类来确定你将来想向哪个方向发展,然后决定去上哪些相关的课程。