更新时间:09-18 编辑老师:佚名
摘要:实习是个人综合能力的检验,除了有一定的课本知识外,还需有一定的实践动手能力,操作能力。为了将大学所学的专业理论知识运用与实践,在实践中结合理论加深对其认识和总结.将专业与实际接轨,逐步认识,体会,从而更好地将所学的运用到工作中去.接触社会,认识社会,学会做事,学会与人相处,学会团结协作。使一个计算机专业的学生应在毕业实习与设计中用所学知识解决现实中的一些问题,对所学专业理论和实践知识进行巩固,同时提高自学、独立开发和协作能力,为走向工作岗位奠定良好的基础。
关键词:实习:巩固知识
1 引言
按照学校实习要求,我于2014年9月1日至2014年10月26日在宁波小迪软件科技有限公司进行了为期八周的毕业实习工作。
1.1 实习公司简介
宁波小迪软件科技有限公司致力于发展网络技术和服务。包括移动终端的软件制作及开发。针对团队前期的研发成果,主要集中在制造协作型集团在上线IBM、Microsoft、HP、racle、SAP、用友、金蝶软件等后的本地服务和适应性开发,让中国企业快速的启用管理软件,同时发力移动互联网端,为企业定制连接外部的更多的智能终端设备,和基于4G的移动终端管理平台。
1.2 实习计划与内容
1)实习是个人综合能力的检验,除了有一定的课本知识外,还需有一定的实践动手能力,操作能力。练习自己的能力。
2)为了将大学所学的专业理论知识运用与实践,在实践中结合理论加深对其认识和总结.将专业与实际接轨,逐步认识,体会,从而更好地将所学的运用到工作中去。
3)接触社会,认识社会,学会做事,学会与人相处,学会团结协作。使一个计算机专业的学生应在毕业实习与设计中用所学知识解决现实中的一些问题,对所学专业理论和实践知识进行巩固,同时提高自学、独立开发和协作能力,为走向工作岗位奠定良好的基础。
2 实习过程和收获
2.1 第一周
这周是我到公司实习的第一周。经过之前的两次面试,我对公司的地理位置和周边环境情况有了大致的了解。经理汪老师简单介绍了本公司,说明了公司的相关制度,并把我介绍给公司的其他员工,相互了解了下。我这一周的工作,首先是对公司工作及业务方向加以了解,开始熟悉公司的环境,慢慢融入到这个大家庭中。对公司的工作及业务方向、相关规定做了一定的了解。
汪老师说他最近有点忙,不过他会尽快给我分配到开发小组去。这周的工作主要是浏览公司的各种资料文件,了解一些公司的背景、产品、发展方向等,另外还安装了需要的XP系统和安装了公司内部的软件,如icop,ipmsg,bs等。都是些内网控制和内网聊天软件,这些都是防止信息泄密的。这一周就熟悉了公司的文档和简单的操作了需要用到的软件等。
2.2 第二周
这周从汪老师那里接到新任务了,需要做的是UnitTest也就是单元测试,但是不太了熟悉怎么做。有一个比我早来一个月的同事来指导我怎么做。整个流程还是比较简单的,但是也不是那么顺利就可以真的做好一个测试的。上面给我安排55个函数。在测试过程中,每个单元测试都会遇到不同的问题,但是也会有不同的收获,对下一个单元测试有借鉴之处。自己的测试速度有时快,有时慢的,而且其实在测试代码的同时也是在学习业务逻辑。
因为开发小组已经在做项目了,我来到公司的时候他们已经在做项目的收尾工作了,所以我尽可能的向项目小组的前辈们请教一些不懂的地方,顺便做一些测试的小工作。在测试过程中发现C 很重要,以前在学校的时候,C学得并不扎实,在一个有一个的测试中才感觉到自己确实基础不行,于是在测试期间又认真的把C基础强化了一遍。
2.3 第三周
这周前2天做的事情比较简单,就是把项目中的改动过的函数给找出来。一个前辈发了一个表格和代码给我。然后安装了winmerge比较工具,总觉的还是eclipse的功能强大点,通过对比后,有改动的地方就能明显的看出来了,总的来说相对还是比较容易的东西。
周三的时候前辈说又要做UnitTest,做的UT的函数就是前两天找出的改动的那些。总共加起来快有110个左右。需要做的依旧是选填好电子表格,然后再建测试环境,然后运行程序,最后把测试结果填入表格。同时前辈也有说可以先了解了解Linux系统下的一些简单的操作,在测试的空闲的时候不仅复习着C,另外还开始学习Linux系统。
2.4 第四周
这周的工作首先是将上周的UnitTest做完,之后就是自己学习Linux系统,了解了一些Linux的常用命令:
cd【目录】: 切换到指定的目录,可以是相对路径或者是绝对路径。绝对路径是以“ / ”开头,从目录的最顶层开始列出目录路径。相对路径不用“ / ”开头,只列出当前工作目录以下的目录路径。
ls【选项】【文件目录列表】:显示指定工作目录中所包含的内容的指令是ls,要说明的是ls命令列出文件的名字,而不是文件的内容。
mkdir【选项】 路径: “路径”可以是一系列,此时若路径中的目录不存在,则系统自动创建那些不存在的目录。
Pwd:显示的是当前工作目录的绝对路径。
cp【选项】源文件 目标文件或目标目录 mv【选项】 文件列表 目录
rm【选项】 文件列表:可从文件系统中删除文件及整个目录。
cat【选项】文件列表:用来将几个文件的内容相连接,并显示到终端上。 Clear:清除屏幕上的信息。 kill进程号:删除执行中的进程。
tar [选项] 文件或者目录:文件打包解包。
ipconfig网络接口【选项】【地址】:配置网络接口的地址、网络掩码等。 gcc[选项]要编译的文件 [选项] [目标文件]:编译可执行文件。
2.5 第五周
由于国庆的关系本周只工作两天,这周项目已经“纳品”了,也就是交付了。所以这周并没有安排具体工作,询问了前辈,前辈就让我继续熟悉Linux系统。所以我就尝试在VMware中安装Linux,具体步骤:New—>Virtual Machine->选择“custom”下一步->下一步,出现的界面中选择安装路径,必须注意待安装盘有足够的空间。因为后面安装的RedHat系统是桌面版本,它对内存还是有一定的要求,在机器内存较大的情况下,尽可能给RedHat多分配一些内存,此处分配的内存是256MB。下面可以选择默认选择,最后单击“Close”,此时虚拟机已经建立起来了。 接下来光盘配置使用我们下载的RedHat是iso文件,单击OK按钮。下面就可以启动安装RedHat系统了。首先进行语言的选择,选择中文,并单击前进按钮。接下来选择时区,此处选择上海时区,单击前进按钮。在进行用户帐户和主机命名设置时,我用“zsd”作为登录名且同时作为这台计算机的名称。安装向导的最后一步将用户安装过程中所做过的配置信息再次反馈给用户,确认信息,最后点击“安装”。安装好之后,做了一些简单的练习。
2.6 第六周
放完长假回来,我在前辈的指导下学习了Linux的基本命令和基础编程知识,包括Linux的文件操作和目录操作命令,VI编辑器,GCC编译器,GDB调试器和Make项目管理工具等知识。 同时我自己也在加强嵌入式C语言编程基础的学习,重点复习包括函数与程序结构,指针、数组和链表,库函数的使用等知识,希望提高在嵌入式开发编程中C语言的编程技巧,能够更好的提高自己。做了一些C语言编程的训练主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践。
这周时间不多但是不仅自己接着深入学习了C语言的编程技巧而且还跟着开发组前辈学习了Linux的文件操作和目录操作命令。
2.7 第七周 www.Eeelw.com
这周跟随着前辈学习了Linux环境高级编程及项目开发编程实践,其中主要包括系统编程(信号/系统调用/管道/FIFO/消息队列/共享内存等),文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等,多任务和多线程编程(进程标识/ 用户标识/fork与vfork/多线程概念/线程同步等),网络编程(网络基本概念/套接口编程/网络字节次序/Client/Server结构/UDP编程);还熟悉掌握了Linux下Socket编程的开发流程,学习了网络编程的调用接口函数和相关数据结构。
另外开发组的前辈还让我了解了嵌入式处理器体系结构,有ARM体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及C\C++和汇编语言的混合编程等知识。
2.8 第八周
这周跟随着前辈学习,他向我讲解了嵌入式Linux开发基础和驱动理论,他认为这些知识在以后的嵌入式学习工作中还是相当重要的。向我主要介绍了嵌入式Linux开发应用程序的基本流程和知识,包括嵌入式Linux基本概念和开发流程、Bootloader工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程以及图形界面和数据库开发等知识。还有嵌入式Linux上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。
从前辈那里了解到设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式Linux编程技术。需要建立起团队开发和协同工作开发的概念,所以不仅要提高自己的能力,还要学会在团队中发挥自己的作用。
3 总结
经过在小迪科技软件公司两个月的实习,我对自己的能力有了一个很好的认识,把在学校老师所传授的知识第一次尝试着学以致用。虽然过程中遇到了很多难题,但是在询问他人和自己查资料的帮助下都有效的得到了解决,学到了很多知识,也提高了自己的能力。认识到了工作中交流的重要性,团队协作的必要性等,总的来说,收获颇丰。