洛 阳 理 工 学 院
毕 业 实 习 报 告
系 别 计算机与信息工程学院
专 业 计算机应用技术
指导教师
完成日期
实习单位名称:北京尚德智远科技有限公司
实习单位概况:北京尚德智远科技有限公司,是以软件研发,服务外包、教育培训、猎头业务为一体的集团公司。目前旗下公司为:尚承教育(www.scjy.net)、智远人才服务有限公司(wwwsandline.com.cn)、中斯顿(北京)教育咨询有限公司(www.saysap.com)、北京益众普天科技有限公司,博瑞融创投资顾问有限公司(http://brrc.com.cn/)。
尚德智远成立于2010年, 主要针对全国本科以上学历的大学生进行教育咨询、IT培训、人才输送等服务,致力于提高学员职场竞争力;公司旗下尚承教育品牌的课程包括:iOS、Android、互联网开发运营等。从课程的培训,到与职业相关的就业服务,在短短的几年时间,形成了标准化的课程体系和就业保障。
尚德智远已在全国20多个城市的院校建立了联系,培养了数千名优秀的学员,遍及中国各大城市—北京、天津、南京、济南、杭州、太原、郑州等,为谷歌、百度、用友、北大方正、奇虎360、中国手游娱乐集团等千余家知名企业提供人才输送、产品外包等服务。
尚德智远有教育部NIIT授权资质,与工信部人才交流中心合作。2012年在原有尚承教育的品牌基础上,再次推出“尚承实验室”项目。公司建有自己的实训基地,并与学校共同进行学生技能实训、就业培训等IT人才培养及就业服务的能力。
“尚承实验室”为学校和学生搭建最先进的实训平台,致力于使岗前实训更简单、更实用,能让学生学以致用,让学习更有效率,以提升学生的职业化能力。通过尚科实验室的职业素质训练,让效率发挥更大的价值,尚科实验室帮助学生更好实现自己的人生目标,成为IT高端人才。
实习单位地址:北京石景山区苹果园路与杨庄大街交叉口通景大厦1501室
2015年3月2日起我开始在北京尚德智远有限公司实习,在公司实习了一个半月。在公司实习期间,我主要做的是App项目的开发,所使用的技术是IOS编程。在学校的时候参加了一个ios培训班,所以就找了一个关于ios方面的工作。通过实习,我发现专业技术提高的非常快,因为在公司中是真正的实战,同时还有技术大牛指导。通过在公司的实习,我也学到了很多东西,比如,学习能力、与人沟通的能力等。以下是我实习的详细情况。
第一周(3.2-3.8):
3月5日
刚开始进入公司实习,首先了解一下公司以及公司的发展方向、公司主要经营的东西,然后熟悉公司的环境,认识工作的同事们。到公司报到的第一天,公司老板与我谈论了在公司实习时的薪资、公司的工作环境,随后与我签订了实习协议。然后公司的项目经理亲自给我配置好ios编程环境-mac系统,并指导我安装和绑定一些工作中用到的软件。第二天项目经理给我做了一个培训,先是学习公司的企业文化,对公司的运行进行一些了解,然后经理简单的给我介绍了关于即将要做的项目的情况,为了能快速的提高我的专业技术,项目经理指派一位技术大牛带着我做这个项目,学习公司的项目开发流程。由于我是实习生,项目经理为我安排了一些简单的工作任务,让我先了解自己这些任务要用到的技术以及编程的思路,让我有不懂得知识点或遇到一些问题多向技术大牛请教。
3月8日
由于我刚入职,而公司的项目已经做过一段时间,所以项目的框架已经写好,我对公司的这个项目的开发流程还不太熟悉,故此项目经理让我在第一周用几天时间来熟悉项目的框架引擎,熟悉项目的运行流程以及项目中运用的技术、项目中要实现的功能,仔细研究项目的工作流走向等。所以,在第一周中,我每天到公司就是看项目熟悉框架,不懂的地方就问同事,自己上网查一些相关技术资料。在熟悉了要运用的一个技术点后,我就运用此技术点敲一些小项目练习一下,直到能熟练运用为止,最后,将这些技术点运用到自己在公司项目的任务中,来完成自己的任务,通过自己的探索与向同事请教,在这一周的时间中,我不仅熟悉了公司项目的流程,也将项目经理布置给我的任务给完成了,虽然任务很简单,但在完成这些任务的过程中,我学到了很多东西,要想快速提高技术,光靠自己是万万不行的,一定要做到多问,多练,多查询。
第二周(3.9-3.15):
3月11日
从第二周开始,我正式的参与了项目的模块开发。公司正在进行的项目是一款关于天气预报的APP,项目经理给我分配的是网络数据的解析的开发。由于这个项目的框架已经构造好,所以对我这半路上手来说有些难度,但是这是我第一次参与到真正项目开发中去,我就下定了一定要做好的决心。但是还没开始就遇到了困难,在做项目时,每天都要提交自己在这一天写的代码,所以要会使用git,但由于以前没有接触过,我发现不会用那个git。于是自己在那里研究了好长时间,但是还是没有弄明白,最后还是项目小组的组长教我怎么使用git。git是用来同步管理代码的,所以每次使用的时候需要先去把前一天的代码Check out下来。这样做是为了适应软件开发过程中各个分工部门之间保持一致性的需要。大家都在一个模版下写代码,这样就能保证写来的代码能被每一个人都一样,而且有些基本的东西它可以自动帮你生成,不用你自己一个一个的敲了,达到了代码的复用,这样保证可读性的同时也提高了开发效率,从而降低了成本,提高开发效率。
经过几天的接触与使用,我已经熟练的掌握了git的使用与操作流程。
3月15日
在会熟练使用个git后,我开始尝试按照自己的思路写代码,由于才接触公司项目的流程,所以在写代码的过程中遇到很多困难,一个小时下来也没有写多少东西,在自己长时间不能解决的情况下,我主动向小组中技术好的成员以及项目组长请教,小组的成员都很关心我这个新手,当我向他们问问题时,他们会耐心的给我讲解,指导我应该怎么写代码来完成须实现的功能,在他们的热心帮助下,我每天都能完成自己的任务,并且对一些以前没接触到的知识点也有了一定的了解,我非常感谢小组的同事。
第三周(3.16-3.22):
3月18日
上一周,在同事们的帮助下,我将项目经理安排给我的任务完成了,虽然将前台页面完成,但要调用后台数据库的接口,我们这个项目运用的是本地存储-coredata,因为以前虽然了解过coredata,但是了解的不是很深,只会一些最基础的操作,同时以前也没有接触过后台接口,所以在刚开始接触时,我脑子中是一片空白,不知从何下手,,故此在此方面耽误了很多时间,项目经理发现我长时间没有动手操作,就问我遇到什么困难了,我告诉他我对coredata不是很了解,项目经理并没责怪我,并且找来一位熟悉coredata的同事给我培训一段时间,在同事仔细的为我讲解了一天半后,我对本地存储-coredata加深了认识与理解,虽然还不能熟练使用,但在项目中要使用的东西与知识,我已经能够快速的上手了,在这两三天的时间里,我不仅学会了本地存储的使用,而且也有能力完成自己的任务了。
3月22日
前三天中学会了本地存储coredata的知识,在这后两天,我运用学到的coredata知识建立一个本地数据库,使用数据库的增、删、改、查语句生成接口,然后在项目程序中使用代码调用接口读取相应的数据,虽然在调用接口的时候,经常会遇到一些小问题,比如有时读取数据库内的数据为空,有时读取数据会出现bug等等,但在我慢慢的摸索与向同事请教下,最后都被我一一解决,在本星期最后一天,我最终完成了自己所有的任务。
第四周(3.23-3.29):
3月25日
虽然上个星期我完美的完成了自己的任务,但由于做的时间有些长,项目经理为了使我的专业技术得到全面提高,所以就给我指派了一个个人任务,让我独自完成一个中等项目—关于介绍洛阳旅游景点的APP,在刚接到这个项目时,我心里有些担心,害怕自己不能很好的完成这个项目,项目经理对我说如果遇到困难就问我或同事,大家都会帮助你的,在项目经理的鼓励下,我开始动手做这个项目,在第一天,我用了一天时间来构思项目流程,要实现那些功能,怎样构制框架,在和项目经理讨论后,我决定使用storyBoard将项目的框架搭建出来,因为相比较写代码来说,写几套代码的十分简单易懂,但是代码量太大,所以我就选择了使用storyBoard运用那个autolayout来进行布局适配。我给项目组长反映了一下,他也鼓励我使用storyBoard,这样不仅学习到新的知识,如果做的好,后期维护起来代码内容也整洁一点,没有那么多的冗长的代码。这又让我学习到了一点新知识,原来在公司的项目中,进行屏幕适配的方法使用的这种方式。
3月29日
在接下来的几天中,我运用storyBoard将项目的大致框架搭建成功,然后对项目进行屏幕适配,选择使用storyBoard就需要我去学习怎么去用,怎么才能用的好,因为项目经理告诉我,一款成功的app不仅功能要实现的完美,界面布局也是一向重要的工作内容。虽让有美工提供的UI设计图,但是不同的屏幕适配做到和UI一模一样也是有难度的。所以一整的我都在对着我的那个页面做屏幕适配,但是使用storyBoard建立约束老是有问题,要么建立约束依赖的对象不对,要么建立的约束不完整。这些让我做了一遍又一遍。最后终于做了个还行的页面让项目经理看,项目经理就让我演示给他看,但是竟然有个小按钮的位置和大小都和UI的相差太大,于是项目经理就让我重新去做。结果加班到很晚才弄好。看来做事情一定要细心才行。不过这么多次的重做,让我对autolayout的屏幕适配使用的更加熟练了,也是个不小的收获吧。
第五周(3.30- 4.5):
4月1日
因为现在的苹果手机系统出现不同的版本,所以做好屏幕适配就尤为重要,要让做出的APP能够在任何版本的手机和Ipad上使用,因此这一周的工作是继续做没完成的版本适配,因为iOS有不同的版本,从5.0-8.0,但是主要做的是7.0以前的和7.0以后的适配。因为在iOS7以后都做了扁平化的处理,所以有些控件的效果图就大不一样,为了都做到和美工提供的UI设计一样就需要更做不同的版本适配。版本适配首先需要指导是哪个版本的iOS,然后对不同版本的控件处理、美化。版本适配也不是个容易的工作,因为iOS7以后改变了许多以前的方法,所以需要找的另一个方法来代替。如果做到完美无瑕,是需要很多经验积累的。我认为这也是一此学习的好机会,于是我就向同事请教,然后他给我建议,我在去处理。过程中一个简单的状态栏就让我束手无策。因为这个状态来的颜色怎么也做不到iOS6和iOS7一样。上网去搜索也没有搜到。最后只能去问组长,组长一如既往的细心给我解答,解答完后组长又给我上了一课,说我需要多需读点书来补充一下经验的欠缺,有些知识书上都是讲的很完整的。然后还发给我几本电子书,iOS疯狂讲义和代码编写规范。经过三天的对屏幕适配的操作,我基本掌握了屏幕适配的各种操作,并对屏幕适配有了深刻的了解与认知。
4月5日
在将框架与屏幕适配完成后,项目经理把我叫到他办公室去,和我谈了一下我这段时间实习情况的,他说了我在工作时一些问题,通过他的指导,我觉得受益非浅。他强调了我做事要抓住重点,不能只知道闷头苦干。告戒我年青人要有梦想,要勇于迎接挑战,战胜困难。有时间的时候,要多看看书,不止是专业方面的书籍,毕业后要淡化专业的思想,多多涉猎各方面的书籍,给自己充电才能保持持久的优势。
在和项目经理谈话后,我对以后的工作更有干劲了,经过前几天的研究,我决定先将登录、注册模块完成,此模块就是利用各种控件统计个资料,并把统计结果进行处理上传的服务器,当一个新用户进行登陆时要从服务器把个人的profile保存到本地,这样每当此用户登陆时,直接从本地缓存中取数据,为用户节省流量。其中还要实现调用系统相机实现获取头像功能,实现获得大小头像,作为用户数据的一部分。
使用uitextfield、uidatapicker、uibutton、uiimageview等来获取一些普通的信息:用户昵称,出生日期,性别,头像等。此部分功能的实现主要的难点就是调用系统功能,实现拍照,切图,转换图片大小,转换图片类型以达到上传到服务器的格式要求。
第六周(4.6- 4.12):
4月8日
在上一周中,我将注册,登陆和保存个人的profile基本功能都实现了,于是我将此模块拿给项目经理看,项目经理看后,对我说一个优秀的APP产品,做到基本是远远不够的,争取做到极致,这才能在众多科技公司中有一席之地。所以,项目经理让我完美自己负责的模块。在接下来的两天时间里,我主要完善注册与登录模块的功能。
首先,注册用户时,如果填写电话格式不正确,就不会发送验证码;当密码框输入密码达不到保密程度,不允许继续向下填写信息;不同意用户协议也不允许向下注册;最后检查用户注册信息是否完整,否则,不允许注册。
注册信息填写完后,调用方法进行信息验证,如果手机号和验证码注册不成功提示“验证码验证错误”;成功则使用手机号、验证码和密码去服务器进行注册验证;如果注册失败提示错误信息,返回注册页,重新注册。成功则跳转到profile输入页;输入内容可以为空,当为空时,上传服务器时传入参数也为空,所以当提取要进行判断,如果有值则输出,否则用默认值替代;输入完成后点击完成,执行登陆程序,实现登陆功能。
注册完成后就可以使用注册账号进行登陆,如果登陆信息错误,提示登陆信息错误、再次登陆;登陆成功后,去服务器端获取个人profile,缓存到本地,为用户节省流量,跳转到首页。在获取个人profile的时候,因为要提高用户体验,所以网络请求用的都是