1、目录1.实习目的12.实习公司概述12.1公司简介12.2发展历程22.3具体的IT实训业务22.3.1高校实训解决方案22.3.2个人职业能力实训解决方案32.3.3专项培训实训解决方案32.3.4政府项目实训解决方案32.4组织结构图42.5业务流程图53.实习内容63.1C语言学习63.2javaSE学习73.3javaEE学习93.4 Oracle数据库学习114 实习收获与体会111.实习目的毕业实习是在我们学完了本专业教学计划规定的全部课程,完成所有教学环节并取得及格以上成绩的基础上进行的。这是一次理论联系实际、接触实际、了解社会、向现场人员学习的极好机会,是毕业设计的必经之路,是
2、我们能否毕业、能否获得学士学位的重要依据,是我们综合大学四年所学的知识解决实际问题的有效途径。毕业实习的具体目的在于进一步巩固所学有关课程的基础理论和基本技能、进一步认识计算机在企业现代化管理中所起重要作用、了解现代计算机应用于企业现代化管理的现状和基本方法、了解所学管理科学知识在企业中的应用、了解企业管理中使用计算机的现状、调查清楚一个具体企业管理系统的总体结构及各子系统的业务内容、了解企业对信息技术的需求以及最新的信息处理模式和技术。在深入调查研究的基础上,我们需要确定毕业设计的题目,收集有关资料,为毕业设计做好准备。毕业设计是我们对大学所学知识的一次总结,一次综合运用,一份毕业设计需要用
3、到我们在大学里所学的大多数课程知识,通过毕业设计,能使我们综合应用所学的各种理论知识和技能,进行全面、系统、严格的技术及基本能力的练习。2.实习公司概述2.1公司简介东软睿道教育信息技术有限公司,是由东软创办的IT人才培训机构,定位是人才服务提供商。东软整合了优秀的教育资源,倡导实践式学习的教育来创办这一子公司,在为自己赚取利润的同时,也为想投身IT行业的年轻人提供了方便。东软睿道倡导“信息技术服务教育未来”的经营理念,致力于成为中国领先的工程教育服务的提供者。目前,公司在沈阳、大连、南京、成都、无锡、天津、郑州、南昌、青岛、广州建立了10个分布式的人才基地,与多所高校、企业建立了持续稳定的合
4、作,从学校招收编程技术部娴熟的学生,结果4个月的培训之后再推荐给IT企业。东软睿道总结多年的培训经验,为软件行业提供高质量、规范化、专业化的IT人才。服务总部设于沈阳,已在大连、北京、天津、青岛、南京、无锡、上海、武汉、成都、广州设有分支机构,以覆盖全国的业务布局,优化的全国性IT类资源配比,快速准确地对应中国软件行业的人力资源服务需求。东软睿道工现有实训基地总建筑面积约20万平方米,容纳50000余人培训,拥有丰富的开发、管理经验的内部讲师300余人和实训经理100余人。目前,东软睿道工程教育,覆盖软件开发与测试、嵌入式产品工程、移动平台、物联网、数字媒体、网站设计、IT技术服务、BPO服务
5、、企业管理等类别的近20余种人才发展方向。2.2发展历程1991年:东软创立伊始,与东北大学合作设立“软件加强班”,联合培养人才。1999年:与Microsoft、Oracle、Cisco、Sun 等厂商深度合作,展开了面对企业和个人的培训服务。2000年:东软在大连、成都、南海先后设立东软信息技术学院,开始大规模为社会培养专门的IT人才。2003年:成立软开事业部,开展IT人才派遣业务。2006年:东软设立人才储备中心,与全国高校开展软件人才的“定制培养”,为东软自身输送合格人才。2008年:东软设立人才实训中心,构造了分布式的实训基地,搭建面向全国高校的人才培养平台。2009年:东软成为教
6、育部软件工程专业大学生实习实训基地并开始大规模实施面向软件相关专业大学生实训,合作院校200余所,培养学员2万人;面向全国100多家企业提供人才供给服务。2011年:东软继沈阳、大连、成都外,在南京、无锡、郑州、天津、南昌等地建立了培训基地,合作院校500余所,培养学员5万人;近岸服务规模扩大至全国20多个城市。2012年:东软成为国家级工程实践教育中心;东软整合全球教育资源,组建东软睿道公司,致力于中国领先的工程教育服务的提供者;为全国近300家企业提供人才服务,近岸服务外包人员突破2500人。2.3具体的IT实训业务2.3.1高校实训解决方案面向计算机及软件相关专业的大学在校生,东软睿道提
7、供不同的培训服务,大学一年级学生的认识实习、大学二年级学生的专业实习、大学三年级学生的项目实习、大学四年级学生的实训、实习。面向计算机及软件相关专业硕士研究生,研一学生的项目研发实践、研二学生的实习、硕士联合招生培养。面向教师,教师的项目实践有,教师参加企业组织的高端技术、管理培训,与教师合作进行专业课程优化。面向学院(系),参与学院(系)的教学与人才培养,参与课程体系的优化,师资合作。2.3.2个人职业能力实训解决方案东软睿道工程教育设计了针对个体的全面提升职业竞争力的培养体系和方法学,开发了快速提升实践能力的多种技术方向的课程。就业技能提升项目实践课程,有JAVA/数据库项目实践,嵌入式项
8、目实践,C+项目实践。东软软件工程师课程,有JAVA/数据库软件开发工程师,嵌入式软件开发工程师,C+软件开发工程师专项技术提高强化课程,有C/C+编程技术/嵌入式技术、Linux技术/JAVA技术、数据库技术/IT日语、SAP EFP基础教育课程。 2.3.3专项培训实训解决方案面向客户提供专项培训解决方案,有软件开发语言技术培训、软件开发数据库技术培训、软件工程技术培训、信息化应用培训、主机及操作系统培训、网络技术培训、中间件技术课程、数据存储技术培训、Web实用技术培训、办公软件整合与应用、数字艺术培训、职业素质训练、项目管理、企业商务日语培训、企业IT日语培训、企业商务英语培训。2.3
9、.4政府项目实训解决方案为认真贯彻政府关于促进高校毕业生就业的一系列方针政策,东软睿道还开展了提升大学生就业技能、促进大学生就业的嵌入式软件培训班,凡是辽宁省内的毕业生,毕业时间不超过两年,不管是什么专业,都可以申请来东软睿道参加嵌入式培训,学费由政府负担,学院只需要负担住宿费,这极大了减轻了学员的负担。2.4组织结构图股东大会董事会总经理监事会区域经理招生部人事部财务部培训部后勤部就业部网上业务员社招业务员高校业务员员工考核嵌入式培训Java培训教学楼清洁学员住宿发放工资收取学费就业推荐设备维护2.5业务流程图培训经理培训需求调查培训需求分析调查结果分析结果制定培训计划审核审批执行培训计划学
10、员参加培训培训课程总结记录学员培训情况总结报告个体学员培训记录全体学员培训记录登记整理存档存储不可行可行3.实习内容本次实习,我在东软睿道进行了4个月的专业知识培训,培训期间老师带领我们对之前实训所学知识进行了系统的复习,归纳和总结,然后进行了扩展。实训期间,我们主要学习了C语言、Java基础、java高级、Java web、SSH三大框架、oracle数据库。3.1C语言学习实习的第一周,老师带领我们先学习了一周的C语言,老师说这是预热,照顾一下那些以前没有编程基础的同学,这也是培训公司多年来积累的经验。用C语言作为入门,这样可以让没有编程基础的学员理解的快点。我们学习了C语言的基本特性。C
11、是高级语言,它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。C是结构式语言,结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。C语言功能齐全,具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。老师还带领我们认识一下C和C+、java的联系与区别,C的指针有缺陷,而C+在这方面做了改进,在保留了指针
12、操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C+的教训,取消了指针操作,也取消了C+改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C+/C。一般而言,C、C+和java被视为同一系的语言,它们长期占据着程序使用榜的前三名。C的优点。简洁紧凑、灵活方便,C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。运
13、算符丰富,C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。数据类型丰富,C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。生成目标代码质量高,程序执行效率高。C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%20%。可移植性好,C语言在
14、不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。C的缺点。C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C+的一大区别。C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。在课程的最后一天,老师给我们布置了一个很难的作业,有两个字符串,求长的那个字符串里,包含着多少个段的那个字符串。这个题需要用到两层f
15、or循环,我们若干个人花了很多时间,一起讨论,最后还是没有完成,最终在网上百度到了这道题的答案,理解之后又自己敲了一遍,算是对第一周C语言学习的一个总结。3.2javaSE学习首先,老师带领我们了解java的发展历程,看一下java在全世界的应用范围。Java程序基于java虚拟机运行,Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现,具有想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java
16、虚拟机上运行的目标代码,就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。然后,我们开始学习如何使用Eclipse软件,因为在这里的学习是用这个软件的。在这些都学完后,我们就开始正式java的学习了。首先,我们学习java里的各种语句,if语句、if else语句、switch语句,然后我们开始学习一些基本概念,具体如下。Java里有抽象类 ,抽象类是规定一个或多个抽象方法的类别本身必须定义为abstract,抽象类只是用来派生子类,而不能用它来创建对象。final类,又称“最终类”,它只能用来创建对象,而不能被继承,与抽象类刚好相反,而且
17、抽象类与最终类不能同时修饰同一个类。包,Java中的包是相关类和接口的集合,创建包须使用关键字package。多态类,在java中,对象变量是多态的,而java中不支持多重继承。接口,Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为。Java中的每一个类都是从Object类扩展而来的,Object是所有类的祖先类,它的equal和toString方法被所有类继承,有的继承后需要复写。equal用于测试一个对象是否同另一个对象相等,toString返回一个代表该对象的字符串,每
18、一个类都会从Object类继承该方法,有些类重写了该方法,以便返回当前状态的正确表示。通用编程,任何类类型的所有值都可以同object类型的变量来代替。封装,就是把数据和行为结合起在一个包中,并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段。重载,当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选出调用哪个方法进行编译。重写,也可称为方法的“覆盖。”在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。值得注意的是,子类在重新定义父类已有的方法时,应保持与父类完
19、全相同的方法头声明。数组列表,ArrayList动态数组列表,是一个类库,定义在java.util包中,可自动调节数组的大小。Java语言还有50关键字,比如Abstract、assert、break、byte、case、catch、char。这些关键字不能用于常量、变量、和任何标识符的名称。抽象类和接口的区别,抽象类中既可以有抽象方法,也可以有非抽象方法。接口只能有常量和抽象方法。在制定严格规范时使用接口,接口的好处是可以实现多继承,而类只能实现单继承。异常,运行期间出现的错误,而不是编译时的语法错误。分为两大类,Error系统内部错误和Exception伪例。异常的最终父类是Throwab
20、le。常见异常有RuntimeException,IndexOutOfBoundException数组下标越界异常等。 IO流的分类,可以分为输入流,输出流,节点流,处理流,字节流和字符流。输入流只读不写,输出流只写不读;节点流直接连接到数据源,处理流不直接连接数据源;字符流的根父类是Reader和Writer,字节流的根父类是InputStream和OutputStream,图片用字节流,文本文件用字符流。访问权限问题,具体分为private、public、default、protected。private只在一个类中可以访问,default在一个包中可以访问,protected同一个包和不
21、同包的子类中可以访问,public所有类中都可以访问。我们还学习了一些设计模式,设计模式是一些很厉害的人提出后,被广泛应用的的一些设计方法,因为思想经典而流传开来。比如,工厂模式,当多个类实现同一个接口的时候,为了更好的去管理这些对象,应用工厂模式,将多个对象封装到一个map容器里,使用的时候用getMapping获取。大多情况下工厂模式都是结合单例来使用的。工厂模式的好处,提高效率,可重用性和维护性。单例模式,私有的构造器,静态方法,且该静态方法的返回值类型是当前这个类的一个对象,使用单例可以节省内存空间。学完javaSE之后,我们做了第一个项目,企业及时腾讯系统,大家都很兴奋,可以试一试这
22、么久学习的东西了,我们都做的很认真。项目用了一周的时间,大家都过的很辛苦,但大家都做的很认真。聊天记录模块话了我们很多时间,几个人一起讨论,最后成功的把这个模块做出来了。第一个项目让我们学到了很多东西。3.3javaEE学习大多数java程序员都是去做javaWeb的,所以这方面的知识才是我们学习的重点。我们学习了很多javaWeb的的知识,比如。Web容器包括jsp和servlet。servlet是服务器端的小应用程序,servlet类继承java.servlet.http.HttpServlet类,用于处理客户端请求。Servlet的生命周期,加载并实例化servlet调用init()方法
23、初始化,调用service()方法处理请求,用destroy()方法销毁实例。当jsp页面form表单中的method为get时,调用doGet()方法;当jsp页面form表单中的method为post时,调用doPost ()方法;超链接一般用get,form表单一般用post。请求转发(forward)和重定向(redirect)的区别,请求转发在页面之间实现数据的转发,可以实现数据的共享,转发后地址栏地址并没有改变,相当于只发送了一次请求,两个资源都用到了;重定向可以跳转到其他服务器的资源,不可实现数据的共享,地址栏变为目标资源的地址,相当于发送了两次请求。我们还学习了MVC模式,M是
24、model,即bean;V是view,即视图;C是controller,即控制器。客户端浏览器将请求交给servlet处理,servlet调用JavaBeans中的方法,或者调用jsp,用jsp调用JavaBeans,JavaBeans将处理结果返回给servlet,再由jsp将结果返回给客户端。学完这些之后,我们做了第二个项目,邮箱管理系统。然后,我们开始学习SSH三大框架部分。项目分为三层:表现层:常用的框架:struts2,struts1 ,SpringMVC,JSF,用框架之前用的是mvc模式;业务层:处理事务(用Spring框架,spring作用:处理业务层的事务,将表现层和持久层框
25、架);持久层:(数据访问层)常用框架:hibernate,没用hibernate时用的jdbc,hibernate好处:ORMAPPING对原有JDBC做了轻量级封装,简化了JDBC操作。Jdbc是面向关系模型操作,而hibernate是完全面向对象编程。struts最大的特点:以webroot为核心,采用拦截器机制来处理用户请求,用到ioc控制反转和aop面向切面编程。struts2访问web元素的方式:通过ActionContext来访问;通过实现RequestAware,SessionAware,ApplicationAware接口来访问map类型的request,session,app
26、lication在实现接口的set方法时用到了依赖注入。 创建action的三种方式,(1)普通类,不需实现任何接口和继承任何类(2)实现action接口(3)继承ActionSupport类(最常用,好处:可以直接使用struts2中定义好的方法)。拦截器:拦截器是aop(面向切面编程)的一种实现,用到了动态代理,动态代理是在执行方法前后加一些操作,必须实现invocationHandler接口,底层用到了反射机制。 3.4 Oracle数据库学习很多公司的系统都是用Oracle数据库的,所以培训公司给我们的课程里有Oracle数据库的学习。Oracle有三类核心文件,分别是:数据文件,控制
27、文件和重做日志文件,这三类文件缺一不可,除了这三类文件还有其他文件,比如参数文件等等。Null值在select语句中参与表达式运算的结果:Null值参与数值运算(四则运算),结果都是null,null值参与字符串拼接,结果还是源字符串。Group by分组函数有,sum表示查询数据总和,avg表示查询数据平均值,max表示查询最大值,min表示查询最小值,count表示查询总的记录条数。Select可以写分组函数,及group by中出现的列。分组函数条件不能写where里,可以在having中写分组函数作为条件。SQL语句的执行顺序,From 、 where、 group by、 havin
28、g、select 、order by。事务的四个特性,原子性,一致性,隔离性,持久性。commit和rollback,commit将数据从内存“真正”的存入到数据文件中;rollback将数据从内存中撤销。delete,drop和truncate之间的区别,Delete是DML语句,删除表中的数据,并不释放空间,每条数据都会记录日志,这个操作是可以恢复的;Drop是DDL语句,删除整张表,表结构都不存在了;Truncate是DDL语句,截断表,将表数据清空,并释放空间,但不删除表结构,该操作是不可恢复的。 4 实习收获与体会这次实习收获了很多,最初从同学那得到这个培训的消息的时候,我还在北京莱
29、博智有限公司做着win8商城的App审查工作。那个傍晚收到同学的短信,说有一个机会去东软培训,和他了解了具体情况后,我就决定去了。12月月底,我来到了位于沈阳的东软软件培训基地,参加为期4个月的java培训。我用了四个月的时间,才想清楚自己要去干什么,那就是去做IT,但做IT的话,能力还不够,这个时候就需要培训了,很庆幸能有这样一个机会去培训。4个月的培训,每天上7个小时的课,课程很多,前后一共做4个项目,可以确保我们对知识的掌握。回顾这次培训,也许这是最后的机会了,因为我已经大四了,所以我也珍惜这次机会,它让我有了软件开发的经验,增加了自己的就业机会。在这四个月里,我对了java有了很深的认
30、识,比如其中的垃圾自动回收机制。通过老师的讲解和课后自己的查资料,我了解到垃圾自动回收机制是一个低级别的线程,它在得到虚拟机执行权的时候,就会查询内存里没有被引用的内存,把它们回收。回收的内存在物理上不一定是连续的,它又会把内存整理一下,把一些变量、对象在内存里的物理地址挪一下位置,清理出大片的连续的内存,以便虚拟机能更好的来进行内存分配。这里又引出一个概念了,java虚拟机的内存是动态分配的。在培训的时候,还会有面试的训练,教你如何与面试官沟通,如何准备简历。在回答面试官问题的时候,尽量不要提到你不擅长的内容,还要学会把问题撑长,不要把一个问题的所有相关内容都一次性都说出来,而要只说核心的。其余的内容,如果面试官继续问的话,那你就成功的把面试时间撑长了。在培训的4个月里,我的最大经验是一定要坚持,我们班学的最好的几个人,都是晚上走的很晚、周末都来继续学习的人。每天都坚持敲一些代码,时间长了,自然就熟悉了。学到最后的时候,心态最重要,只要调整好心态,坚持下去,就可以学有所成。在这段时间的学习生活中,我也认识了很多同学,我们来自不同的学校,因为共同的理想而走在一起,在完成老师布置的作业时,我们相互帮助,在做项目的时候,我们一起探讨,在奔向同一个目标的过程中,我们一起努力。想要成为一名程序员,光靠这4个月的培训是不够的,我还需要继续努力,每天坚持充电,在不会在竞争中被淘汰。