2个月的暑期实习结束了,不能算非常圆满但是也有许多感受。毕竟,挤了两个月的地铁,每天3个小时,无论是上班还是回家身体都是湿的,也算是体验过了社会人的生活。
在公司做的是后端工程师,其实就是协助团队实现一些小的模块,修改页面等一些外围的工作。这些都在预料之中。我找实习的初衷还是想体验一下互联网公司的工作环境、工作模式和方法,同时了解一下他们是如何了解并学习新知识的,从这一点上来说算是如愿以偿。
在学校,无论是作项目还是产品,往往是一个人大包干。从产品(网站)设计,前台html,javascript编写,数据库架构,后端coding,都是一个人完成的。而在正规的公司里,这一套流程是有着严格分工的,大致如下:1 首先由产品经理与客户交流,讨论、沟通并产生需求,作出产品原型图,(在软件领域应该算是工业设计原型图?) 。将原型图交付设计师,让设计师通过构想的原型图设计出相关图片。前端工程师通过设计师的图片切图并作出静态页。同时,产品经理通过沟通和文档的方式将需求告知后端开发人员。研发人员根据需求设计数据库并进行相应coding,其中还要与前端工程师沟通并完成一些接口交互(比如json等),产品完成后最后进行测试等步骤。
首先说说产品经理。我认为,对于产品经理来说,需求和体验是灵魂,沟通和设计是方法,而制作原型图与撰写相关文档是必备技能。体验就不用说了,产品经理就是为优质的用户体验而生的,‘用户体验’往往被他们挂在嘴边。而需求分两方面,一方面是与外界进行沟通,从而了解到的一些需求。这里面的沟通是有一些技巧和方法需要注意的。另外一方面则是自己通过对产品的理解,对生活的感悟自己创造出来的,这里也是见真功夫的地方。这两方面,前一种主要靠沟通,后一种主要靠自己的设计(create)。
然后是原型图,什么是原型图呢?比方说你想设计一个网站,那么,在大刀阔斧开工之前,你总要在在纸上写写画画,作出网站的一个view草图,这个草图就是原型图。只不过把你原来要在纸上完成的工作放到电脑里进行,加快工作效率和将草图交付他人进行交流的效率罢了。这里推荐两款软件,一个是balsamiq,一个轻量级的原型图制作工具,我实习公司的产品经理一直在用。另一个的功能就相对较多同时软件本身也相对臃肿许多,axure。百度的产品经理在用它。
产品经理由于是站在全局去把握产品的设计方向,所以需要有相当强的思想和眼光,更多的时候的确是需要从管理的眼光去看问题。产品经理需要见多识广,思维活跃才能不断为产品注入新的能量。同时又要脚踏实地去把握用户而不能脱离用户,“用户至上”这一点微信的产品经理张小龙是一个榜样。
个人认为走互联网也就是电子商务方向的信管人比较适合做产品经理,基于技术而又高于技术(就是不用掌握太多的技术),同时需要一些创造性思维和较强的沟通能力。
接下来说说设计师,这个我了解的的确比较少了。诸如PS AI等相关工具的熟练掌握肯定是必不可少的。我主要是想强调设计师的不可或缺。诚然,即便没有设计师,你仍然可以让前端工程师直接作出一个符合大致标准的静态页出来。不过,像一些复杂的边角光影效果你肯定不能指望能达到一个比较好的效果吧。一些细节方面的地方可不是你抠抠其他网站配色和插图就能搞定的。
下面讲一下前端工程师。前端,多么绚烂的一个字眼啊。所有复杂又牛逼哄哄的动态特效全部经自我手,想想都是激动人心的一件事。其实,前端工程师大部分工作还是蛮辛苦的,需要将设计师的图稿转化为html页,要适应chrome 要适应火狐,要适应IE, 要适应IE6(这个囧),要适应iphone,要适应ipad,要适应ipod.。.。适应你妹啊适应! 各种js效果不好调试有没有?需要不断大刷(清空缓存)浏览器有没有?css要各种hack有没有? 要考虑SEO优化,要sitemap有没有?
上面全是前端苦逼而且做起来又略无聊的地方,有没有除了js特效还让前端大显伸手的地方呢? 看看阿尔法城的前端设计吧。前端MVC架构。恩你没看错,就是前端mvc。事实上,做网页经常遇到这样的情况,就是网站的页面很少但是单个页面的前端设计及其复杂。这个时候普通的单一js文件就不适用了,你需要自己架构或者使用现有的javascript的MVC框架解决问题。这时如何优化js,css代码,如何建立起一个低耦合,复用性高的框架,如何灵活地运用一些设计模式,这都是前端工程师面对大型需要而考虑的。
除此之外,现在html5的流行与移动互联网的兴起也让前端有了更多的用武之地。最后推荐一些干货吧。bootstrap是twitter推出的一个能够使前端工程师快速开发出兼容性强,组件功能丰富的javascript开源库;一个名为Alice-css的base.css文件也能解决一些兼容性方面的问题;backbone是一个javascriptMVC框架,这个我也有待学习。
接下来就是后端啦,geek们 哦不,hacker们一起high起来吧!这才是我们程序员的天下啊。各种算法数据结构、设计模式、各类语言各类框架各类大规模架构方案软件让你学个够!
现在的编程语言百花其放,各自适合的工作均不同。使用哪种语言还真是萝卜青菜各有所爱。注意一定要发挥各个语言之所长:python就要做胶水语言,java在业务处理方面非常出色,php最适合网页展现;。NET在MIS方面独领风骚。
选择什么语言不重要,关键是要看清语言背后的东西。绝不是你学过一门语言,然后再使用过那门语言的相关框架开发过项目你就能出师了。那只是一种你掌握的技术,而单纯的技术并不能转化为自己的理解,不能转化为自己的能力。先说面向对象。要搞清楚的。是基于对象和面向对象是两码事,java是一门基于对象的语言,而不是你使用java编程你就面向对象了。在实践中不断地领悟GoF提出的设计模式原理,慢慢地学会对象的用法。能根据需要,灵活地运用接口与继承是关键。
有人认为算法和数据结构在互联网方面作用很小?抱有这种观点的人一定没涉及过web智能推荐算法以及大规模分布式算法等领域。其实这也是互联网方向的另外一片天地,当网站规模不断扩大,服务器数量不断增多,如何灵活地去设计服务器架构,拆分数据库表结构,并提出相应的分布式方案,也是一个非常有挑战性的难题。这其中也涉及很多算法需要自己实现,因为数据库默认内核封装的算法并不能满足你网站架构的具体需要。还有一些是根据用户需要而产生的算法,涉及到了一些交叉学科领域(比如MachineLearning),刚才举的web推荐算法就是一个例子。
一个合格的程序员很大程度上也是半个运维工程师。平时数据库、服务器的维护往往也需要自己亲历亲为。这就要求你熟练掌握linux,unix各项指令的使用,一些常用的服务软件比如memcache,sphinx等的使用方法。
对了,还漏了移动开发。想做手机开发的人,我想说的是,做IOS吧,Android的各种不兼容实在是太难受了,而且安卓市场有一些不合理的地方,相对来说不太容易赚钱。另外,wp7,wp8应用也可以尝试一下。
说到做应用,微软最新的office13提出了支持社交的理念,同时也支持针对office进行第三方应用的开发,感兴趣的同学可以尝试一下。
最后是测试。无论是做网站还是做系统都需要测试。公司曾经在的周末分享会上请来了IBM的测试MM专门讲了测试的过程与方法。主要讲的是黑盒测试。大公司的测试步骤简单说来分为这么几步:1 开发团队派遣一名负责人向测试团队发出Test申请。Test团队然后根据需要对其进行评估,主要考察是否值得动用团队精力去做测试以及动用多少人力资源。确立之后,Test团队再进行测试项目启动会,制订计划,并向开发团队索要需求文档。之后就是很关键的一步:根据文档设置测试用例,就是case。case会根据项目需要和测试团队自己发掘出的一些问题不断增加和细化。
细化到什么程度呢?IBM有一个进行了一年的项目,而根据需要产生的case就已经有上千多个了,每一个case的填写字段超过20个。从这里首先可以看出测试和开发时并行的而不是先开发后测试,然后,根据项目的不同,测试用例可能会增长到非常恐怖的程度。所以其他人的经验不能照搬照抄,要根据自己团队的规模合理地决定测试用例的粒度。
测试除了黑盒测试还有白盒测试。这就需要测试人员自己去写自动化测试脚本,还有可能借助现成的诸如loadrunner等测试工具辅助工作完成。说明测试人员自身也要懂一些技术的。
扯的越来越远了,简单说说我实习做后端的收获。首先是学会了个MVC框架,又再次颠覆了我对MVC的认知(又颠覆了……),了解了开源领域的猿们是如何快速接受新东西的。在选择开发工具方面,我想对IDE说再见了,不轻量的东西就不灵活,不简洁。公司里的人大部分都使用sublime 一个轻量级的文本编辑器,其优点在于能灵活地自定义快捷键、高效的查找替换、更便捷地代码书写方法以及优美的UI(说到UI最近新出的vs2012也是我的菜)。如果你够牛比,你可以尝试emacs ,一个操作系统级的文本编辑器,为什么是操作系统级呢,因为它的设计初衷就是你能在里面干任何事情,比如敲代码,比如发邮件,比如看电影,比如玩游戏,比如……不过相应的,学习门槛也很高。最后是一款大家公认的杀手级工具,vim 谁用谁知道吧。我是用不习惯。
实习中除了技术上提升之外更多是不断体会沟通的技巧。比方说,客户说:“我想要实现一个XXX功能”,然后你说好,然后去做了。最后给客户看,客户说,“你怎么作成了这样的东西呀,我想实现的是XX效果”,你很委屈地说“你上次跟我说需求时并没有提到这一点啊”。就此僵持。
谁的错?客户的错吗?其实是不完全的。首先,你要知道,往往在客户的脑海里,他所想的需求就是不清晰的,是模糊的,也很有可能是整个客户团队经过各种讨论最后折中的一个结果。其次,不同的人语言表达的方式和能力是不一样的,他以为你能理解,你也以为你理解了,中间的差别也可能有十万八千里。
如何解决呢?记得SYN的三握手吗? 为什么要三次握手而不是一次就行呢? 就是要反复确认。沟通时要学会去向客户提问题去验证客户的需求,这也是让客户明确自己需求的一个过程。我用信息的传输打个比方。客户头脑中的需求是信息。从客户嘴里说出来是编码,然后通过耳朵传输到你的脑子里,这个过程是信道传输,最后你通过自己的理解(就是信息的解码)转化为自己的信息。信息在传输的过程中是肯定会有丢失和错误(误码)的。原因可能出自多个方面:也许信息在源头就是不确定的(客户头脑不清晰),也许信息在编码时就发生了错误(客户不懂得表达的技巧),在信道传输时发生丢失(客户的话你左耳朵进右耳朵出),信息解码发生错误(你自己理解能力有问题)。怎么办呢? 我们说提高信息传递效果有多种方式,比如信息要有冗余,多次传输去验证是否接受信息正确(要求客户反复说明),信息传递后你要有校验码验证(自己向用户再次确认)。总之,要“正确领会客户的意图和弦外之音”。
还有一大感悟就是:在工作时是否要追求完美?追求到什么地步?这个时候我们可以尝试遵循80/20原则,即先集中精力解决80%的问题,再慢慢解决剩下20%的问题。“许多失败并不是因为人不够优秀,而是做事情的方法不对,一开始最求大而全的方案,之后长时间不能完成,最后不了了之。”
实习的遗憾也是有的,本来打算好实习3个月的,结果开学有很多事情出乎我的意料。很多学校的事情是推不掉的,权衡再三,只好决定提前结束实习,不然两方面的事情都做不好。感谢实习期间团队的各位伙伴对自己的提携和教导,使自己进步很多。临行前公司赠书一本,望我继续努力。
感觉自己还没掌握的知识还有很多,至今我还没学如何用git;在面向对象方面仍有许多困惑;前端代码实现起来依旧有很多问题;很多框架和软件都只是了解而没有实践操作过。在实习业余时间在网上还报了个MachineLearning公开课,望能坚持下去。
新的一周要开始了,公司里的伙伴们依旧要开会、工作,为geekpark,itvalue的成熟壮大而奋斗。我也要开始忙碌一些自己的事情,前面依旧是一片天空。
(1)、首先确定网站的目标是关键,明确谁是网站将来的访问者。确保目标和主题明确、数据充分并保持目标的简洁性。其次是确定网站的主题风格和创意点。主题选材要小而精,最好是选择自己擅长或感兴趣的内容。选题不要太滥,目标定位不要太高。最后是网站结构的确定,规划一个网站结构,可以用树状结构先把每个页面的内容大纲列出来,尤其是要制作一个有很多页面的大网站时,特别需要把这个架构规划好,同时要考虑到以后可能的扩充性,免得做好以后又要经常该整个网站的架构,费时又费力。规划好结构后,进行网站目录设置。根据网站的主题和内容来分类规划目录,不同的栏目要对应不同的目录,在各个栏目下也要根据网站的内容的不同将其分化成不同的子目录。
(2)、要设计一个网站,制作环境是不可少的例如:配置良好的计算机及相关设备;配置完善的系统环境,出了安装操作系统外,还要注意升级浏览器的版本,如果要进行服务器端程序开发还要有相应得软件系统;备齐网页开发工具软件,包括网页制作工具、服务器端程序开发工具及一些实用的辅助工具;备齐素材制作和加工软件,包括对图形、动画、流媒体和声音进行处理的素材制作和加工软件;备齐常用的网站发布工具等。
(3)、设计好的网页要有创意要新颖而其还要有自己的特色,要有充实的内容和浏览价值,网页的布局有一定的艺术性。网页的设计与网页内容的配合最为关键,确定网页的主题和定位方向以后,就以目标去搜集相应的材料充实和丰富主题。在设计网页时,千万不要让信息和图片填满网页,网页看起来必须是干净的、有组织有条理的,使用很容易阅读的字体。
(4)、文字与图片是任何一个网站最基本的要素,假如说网页上只有静止的文字与图片,也就未免显得过于沉闷这样就需要一些动画等交互性的是网页处于动静结合中。设计一些复杂的大型的用途更多的网页时就要使用到网页程序或网页脚步。动态网页是网页获得用户的指令,然后网页拿着指令到数据库中找和指令对应的数据,然后传递给服务器,通过服务器的编译把动态页面编译成标准的HTML代码,传递给用户浏览器。所以动态网页都是要用到数据库和服务器而其还有它自己特定的语言和脚本其中还涉及到数据库操作。
(5)、两周的实习实训转眼及过去了,虽然说实习实训很烦躁乏味,但是从中也充满了成功的欢喜。此次实习实训我不仅是自身的技能知识和技能素质得到了很大程度提高;同时,老师的关心和同学的帮助更是让我感到无比的幸福。最后我真诚的感谢我的老师和帮助我的同学们:谢谢您我尊敬的老师,谢谢您我亲爱的同学们。
一、实训项目
简易记事本
二、实训目的和要求
本次实训是对前面学过的所有面向对象的编程思想以及JAVAWEB编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。
通过编写采用JSP+Servlet+JavaBean技术框架的应用系统综合实例,以掌握JavaWEB开发技术。
具体要求有以下几点:
1、问题的描述与程序将要实现的具体功能。
2、程序功能实现的具体设计思路或框架,并检查流程设计。
3、代码实现。
4、设计小结。
三、实训项目的开发环境和所使用的技术
基于J2SE基础,利用MyEclipse8.5以上版本的集成开发环境完成实训项目,界面友好,代码的可维护性好,有必要的注释和相应的文档。
四、实训地点、日程、分组情况:
实训地点:4栋303机房日程:
第一阶段:
1、班级分组,选定课题,查阅相关资料半天。
2、划分模块、小组成员分工半天。
3、利用CASE工具进行系统设计和分析,并编制源程序5天。
第二阶段:上机调试,修改、调试、完善系统2天。
第三阶段:撰写、上交课程设计报告,上交课程设计作品源程序(每人1份)2天。
在XX工作了5个月,自己从刚开始的一名新人到最后和大家融为一体,为组内贡献自己的一份力量,我经历了很多,成长了很多。
惶恐
刚进到公司,我内心是很惶恐的。我对自己没有一个正确的定位,对公司的环境也是那么的陌生。我不知道自己能不能胜任公司的工作。我所能做的就是努力再努力,用自己的勤奋来掩饰自己内心的慌张。
欣慰
很欣慰的是我们组内有一个女生。她性格很柔和。每次,和他请教问题他都会耐心的帮助你。我和他成为了闺蜜,我经常的去问他问题,一些环境的配置,系统的某部分业务或者其他的问题等等。很感谢她,他帮助我尽快的去熟悉了系统的环境及业务。除了组长,组内还有李大牛和许小牛。后来许小牛走了,又来了两名同事,工作期间,他们都对我有很大的帮助,无论是工作上还是生活上,很欣慰能够遇到他们并共事一场。
烦恼
工作中不是那么的顺利。别人是因为任务重,工作压力大。而我则是因为任务太轻而烦恼。我的任务总是比较简单,我很快就能做完,我体现不了自己的价值,我不开心。我去向组长争取机会,赢得了自己的第一份比较有挑战性的工作。
压力
我要做一个webservice接口。这个任务的需求很不明确,需要我去和接口使用方进行沟通。我对系统的数据库了解甚少,对自己的库就不太了解,将他们的库对应到我们的库就更困难了。加上交流也不是很有经验,我最后搬出我们组长去跟他们沟通确定需求才开始进行开发。需求的确定用了好长时间,之后的验证也用了好久。当时开发时,接口由于没有数据,只用一条数据进行了验证,但到部署到现场时出现了好多的问题。客户天天催,自己的压力好大。好几天都加班到好晚。这件事情比较曲折,后面的博文会详细讲述这件事情。
疯狂
最后一个月,我们组要进行封闭开发。这是我在XX的最后一个月了。刚开始我以为不会给我分配什么有含量的活了。这里非常感谢组长,他并没有让我的这一个月荒废。我有我的任务,而且也很重要。因为这些,我可以和大家共同奋斗。全组成员一起加班到晚上两点那次,虽然很累,但是我很开心。这是一件很值得回忆的事情。曾经,我们也疯狂过。
在XX工作的这几个月,我有很多的感触。
交流很重要: 刚到公司,你是新人,你要想融入团队,就要主动去跟别人打招呼,不要等着别人来搭理你。主动去跟大家沟通,不要觉得不好意思。刚进公司,对公司的好多东西都不太明白。好多时候会经常的去麻烦别人。脸皮薄的人会觉得很不好意思,因为不是一次两次,是比较频繁的。其实,换个心态,在向别人索取帮助的过程也是与大家建立感情的过程。在与别人的多次交流中去互相了解对方,从而为建立友谊奠定基础。而且,每个新员工进入公司都有一段这样的经历,公司的老员工当年也是这么过来的,记得我们组的大牛还跟我们开玩笑说过当年他是如何”烦”带她的那个人,如今回想起来也是一件很温馨的事情。
不要总是等待机会,要学会自己去争取机会:时间过的总是很快,这样1个月就差不多过去了。我分配到的任务还是比较简单。而且工作有了今天就没有明天了,组长要是有事不在的话,我就不知道要干嘛了。曾经马总的一段话让我挺有感触的。他说当初他来XX面试的时候,并没有面试成功。但是,他并没有立马放弃,而是找了相关的责任人去为自己争取了一下,最后他成功的进入了XX。我觉得,我也应该为自己争取一下。于是,我给组长写了封邮件,说明了我当时的工作状况,请求组长给我次机会让我开发一些有难度的工作。当然我成功了。
遇到问题不要逃避,要学着去解决问题。开发的任务由于各种原因搁置了,我的任务又改回了改bug。而且改的bug也没有挑战性。当时,我很苦恼。想到过要去逃避,堕落。但是想想逃避并不能解决问题,遇到了这种情况,自己所能做的就是如何在这种情况下也让自己的每天有所收获。于是我每天在自己不太忙的时候,就去研究一下自己所维护的系统,或者去帮同事解决一下问题。这样,我自己有所收获也增进了和同事间的友谊。
要对自己接手的任务有个大概的评估。不能完成的要及时让头头们知道,好早做安排。一般头头们安排任务,都会问一下大概多久能完成。时间紧急的话,也会问一下某时间之前能否完成。自己最好做个保守估计,过于夸大的话不仅是后来自己受苦的事情,任务不能按时完工,对本组,对公司都会造成损失。
要学会调节自己的压力。当你在公司待的时间长之后,分配到你头上的任务自然也就重了。这时候,压力也随之而来。小张,这个东西在什么什么时候要做出来啊;小刘,那个东西好了没啊,客户很着急啊……任务来了的时候,可能就是连着n天的加班。如果此时,你的情绪再受到一些生活上的干扰,各种压力的打击下,还要保证高效的工作,就需要我们对压力有一个很好的调节。
要有一个严谨的工作态度:工作中并不是所有的工作都是那么具有挑战性的。有些工作是比较繁琐的,但他又是马虎不得的。做工作要尽可能的考虑全面,不要怀着侥幸心理,那样只会为自己以后的工作埋下隐患。
XX的工作经历给予我了很多。他让我见识了校园外的世界。使我对自己有了进一步的认识,也为我以后成为一名真正的职场人士奠定了基础。路漫漫其修远兮,吾将上下而求索……
一、实习目的
通过对java语言、JavaWeb、Oracle数据库应用设计及SQL语言的复习和锻炼,并且通过使用MyEclipse 开发平台设计库存管理系统项目,以达到充分熟悉开发平台及其应用设计。
同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写、系统测试及软件手册编写,以便提前适应软件公司开发流程、环境和工作要求进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。
学习SQL的基础知识及正确的`运用方法,和有用的相关技术,提高自己的工作效率。
通过实习,培养我们综合运用已学知识Java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。
为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
二、实习主要流程
1、公司管理规则,程序员素质,程序员编码规范;
2、需求开发与管理;
3、面向对象分析与设计,[大学生java实习报告]面向对象编程的特性;
4、javaSE、javaWeb、页面设计—JSP页面;
5、数据库设计、SQL应用;
6、软件需求分析与设计;
7、项目实战
三、实习内容
Oracle数据库
数据库是数据的结构化集合。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。
Oracle服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了Oracle服务器和其他数据库管理器的比较结果。
Oracle服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。尽管Oracle始终在不断发展,但目前Oracle服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性,这使的Oracle十分适合于访问Internet上的数据库。
java与SQL的应用
Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。
JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。
JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、SQL Server 2000、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。
一、实习目的
通过对java语言、JavaWeb、Oracle数据库应用设计及SQL语言的复习和锻炼,并且通过使用MyEclipse开发平台设计库存管理系统项目,以达到充分熟悉开发平台及其应用设计。同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写、系统测试及软件手册编写,以便提前适应软件公司开发流程、环境和工作要求进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,培养我们综合运用已学知识Java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
二、实习主要流程
1、公司管理规则,程序员素质,程序员编码规范;
2、需求开发与管理;
3、面向对象分析与设计,[大学生java实习报告]面向对象编程的特性;
4、javaSE、javaWeb、页面设计-JSP页面;
5、数据库设计、SQL应用;
6、软件需求分析与设计;
7、项目实战
三、实习内容
Oracle数据库
数据库是数据的结构化集合。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。
Oracle服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了Oracle服务器和其他数据库管理器的比较结果。
Oracle服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。尽管Oracle始终在不断发展,但目前Oracle服务器已能提供丰富和有用的功能。它具有良好的连通性、速度和安全性,这使的Oracle十分适合于访问Internet上的数据库。
java与SQL的应用
Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。JDBC(JavaDatabaseConnectivity,Java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一的访问接口。JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、SQLServer2000、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。
控制技术-Servlet技术
1)什么是Servlet?
一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。JavaServlet技术为这些应用程序定义了一个特定于HTTP的servlet类。
javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。
2)Servlet的生命周期
一个servlet的生命周期由部署servlet的容器来控制。当一个请求映射到一个servlet时,该容器执行下列步骤。
页面设计-JSP页面quo;模型-视图-控制器”Model-view-controller模式。规范的SERVLET或者分离的JSP文件用于处理请求。当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。有几种平台都基于服务于网络层的模-视图-控件模式(比如Struts和Springframework)。
2)JSP技术的强势
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
3)JSP技术的弱势
(1)与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2)Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的。java文件和。class文件,以及对应的版本文件。
四、实习总结
通过这一期的实训,虽然实训的时间不长,但是总体上收获挺大的,学习中我不但有了学习成果的喜悦,而且自己也日渐成熟,有种说不出的喜悦。
当我们正式准备学习实训java编程技术时,[大学生java实习报告]让我倍感兴奋,毕竟java是自己以后想主攻技术,所以自然也就非常的亢奋。刚开始实训的第一天,同学们就推荐我为组长,我感觉肩上责任之重大,那一刻起,我就决心带领我们小组,奋战我们的实训路。当然开始学习后也并非是想象中那样顺利,开始的学习让我异常感到学习任务的艰巨,因为学习中我们遇到了很多以前未曾遇到的难点,有时难免冥思苦想也无济于事,通过我们小组的积极努力协作,同时请教老师和其他同学,我们顺利的化解了一道道的障碍。
这让我不断的对学习技术又有了新的认识:学习中我们必须边总结边学习,开始阶段对老师交代的任何方法和类都不要放过,不管是否简单与否都要乐于地接受,因为老师肯定有他的道理,相信老师走过的路比我们长,那么其经验也就肯定比我们丰富。上课时一定要专心听讲,一个关键的知识点听漏了,可能会使一个人在课下花很多时间去消化,这样也就会花掉做其他事情的大量时间,同时也使得学习不能和老师的讲的课程同步,以至出现以后就跟不上老师讲课的进度而掉队。所以学习中我们宁可先劳其筋骨,苦其心志,恶其体肤,也不能掉队跟不上学习进度。
在这里,我非常感谢实训的指导老师,在老师的帮助和指导下,我克服了Java学习上的一道道难关,课上认真听讲,摘好必要的笔记,并通过自己课后的不断消化学习,现在自己已经基本掌握了java的基础知识,并且能独立的开发出系统。
实训即将结束了,我非常怀念厦门万策在南昌大学的校内实训,在实训的这短短两周的时间里,我每一天过的都市踏实的,充实的;我相信,只要我秉持艰苦奋斗,为理想拼搏的精神,尽管在未来的java路上荆棘丛丛,我一定可以披荆斩刺,度过重重难关,实现自己未来的理想!
实习是为将来打基础的重要阶段,珍惜自己每一个工作的机会,不论什么人,什么学历,从事什么工作,好好的表现、展示自己的能力,不要错过好的机遇。没有一件事情是轻轻松松的,但每一件事都是让人成长的,经历一段过程,喜悦或是艰辛
1)MVC模式,尽管经历的方式不尽相同,但它的结果是相同的,我们都会因涉事而成长。
通过实习,我自身发生了重大的转变。首先,进入公司,你就是一名职业人,不再是一名学生,你要具备一名职业人应具备的素养,不迟到不早退是必然的,而且还要时刻严格要求自己,公司的规定要严格遵守。然后,在技术上也有了很大的提高,学习了很多公司自己的框架和工具,这都是一些前辈的宝贵经验。而且所作的软件应用性更强。所以,[大学生java实习报告]我要坚定自己的信念,在公司好好实习,争取提早转正,我相信我会在JAVA开发这条路上走的更长更远。
有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓”_者迷,旁观者清”,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。俗话说:“要想为事业多添一把火,自己就得多添一捆材”。此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决。两个礼拜的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨。社会是不会要一个一无是处的人的,所以我们要更多更快地从一个学生向工作者转变,总的来说我对这次实习还是比较满意的,它使我学到了很多东西,为我以后的学习做了引导,点明了方向,我相信在不远的未来定会有属于我们自己的一片美好天空!
在学习网页制作的这几天里,我利用了学习之余的一切可利用的剩余时间,全心全意投入到网页世界,去不断的学习,去不断的探索;同时去不断的充实,去不断的完善自我,在网络的天空下逐渐的美化自己的人生!
做好主页,并不是一件容易的事,它包括个人主页的选题、内容采集整理、图片的处理、页面的排版设置、背景及其整套网页的色调等很多东西。
①标题
在个人主页中标题起着很重要的作用,它在很大程度上决定了你整套个人主页的定位。一个好的标题必须有概括性、简短,有特色、容易记,还要符合自己主页的主题和风格。
②内容的采集
选好标题后,开始采集内容,内容必须与标题相符,在采集内容的过程中,应注重特色,所谓特色应该是有一些自己的东西。个人主页中的特色,应该突出自己的个性,把自己的兴趣、爱好尽情地发挥出来,因为在网络上不受限制。主页就是在网络上的一个小小家园,在那里,可以放上自己喜欢的任何东西,包括你自己平时喜欢一些文章,一些好听的歌,一些好的动画作品。
③图片
做个人主页不能只用文字,必须在主页上适当地加一些图片,增加可看性,俗话说一图胜千言,我想不无道理,一张处理得好的图片不需要多做任何解释,就能让人一目了然,让人去思考,去了解它。
④网页排版
网页页面整体的排版设计也是不可忽略的,很重要的一个原则是合理地运用空间,让自己的网页井井有条,留下必要的空白,人觉得很轻松。
⑤特色
让自己的网页更有特色一些,可适当地加一些声音、动态网页、Java、Applet。
⑥感悟
昨天,网页与我无缘,那是因为上天不给我们一个见面的机会!
今天,网页与我相识,与我相知,成为我的一个最真诚的朋友!
明天,网页与我一生相伴,终身相随,因为我已领悟了一个网络,整个世界。
一、实训项目
简易记事本
二、实训目的和要求
本次实训是对前面学过的所有面向对象的编程思想以及JAVAWEB编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写采用JSP+Servlet+JavaBean技术框架的应用系统综合实例,以掌握JavaWEB开发技术。
具体要求有以下几点:
1、问题的描述与程序将要实现的具体功能。
2、程序功能实现的具体设计思路或框架,并检查流程设计。3.代码实现。4.设计小结。
三、实训项目的开发环境和所使用的技术
基于J2SE基础,利用MyEclipse8.5以上版本的集成开发环境完成实训项目,界面友好,代码的可维护性好,有必要的注释和相应的文档。
四、实训地点、日程、分组情况:
实训地点:4栋303机房日程:
第一阶段:1.班级分组,选定课题,查阅相关资料半天2.划分模块、小组成员分工半天3.利用CASE工具进行系统设计和分析,并编制源程序5天
第二阶段:上机调试,修改、调试、完善系统2天
第三阶段:撰写、上交课程设计报告,上交课程设计作品源程序(每人1份)2天
五、程序分析
功能模块说明弹出菜单
for(intf=0;f
创建保存文件对话框
publicvoidsaveFile(){
创建打开文件对话框
privatevoidopenFile(){
JFileChooserfilechoose=newJFileChooser();intresult=filechoose.showOpenDialog(null);if(result==JFileChooser.APPROVE_OPTION)}
{try{Filefile=();FileReaderfr=newFileReader(file);intlen=(int)file.length();char[]context=newchar[len];(context,0,len);fr.close();
jta.setText(newString(context));
JFileChooserfilechoose=newJFileChooser();intresult=filechoose.showSaveDialog(null);if(result==JFileChooser.APPROVE_OPTION)}
{try{Filefile=();FileWriterfw=newFileWriter(file);fw.write());fw.close();}catch(Exceptione){System.out.println("保存文件失败!");}}elsereturn;}catch(Exceptione){System.out.println("打开文件失败!");}}elsereturn;
六、程序设计及实现
1、实现弹出菜单(JpopupMenu)2、设置字型,字体大小,字体颜色3、实现自动换行
七、实训总结
通过3天的实训,虽然实训的时间不长,但是总体上收获是很大的,我们的java课程学到的只是java和皮毛,[javaweb实习报告]一开始我还没有信心完成。我仔细看了书上的代码之后。对计事本有了一个大体的了解,在初训的实候知道自己应该做一个什么样的计事本了,在实训的过程中也遇到了不少困难,通过查API文档和看书,解决了问题,在写到字符的查找的替换时后,用到了上课时学到的知识,对字体的风格的保存里面的颜色分离和还原方法,是通过查API文档获得的,现在我所写的计事本只实现在一些基本功能。简单的复制粘贴,字体风格的设置,还有就是查找和替换功能以及一些字体风格的保存。对文件的操作基本都用到了。
在实现记事本的功能过程中,也不是很顺利,基本的文件读写和保存文档的复制、粘贴、删除等功能还比较容易实现,但如何改变字体、字体颜色和背景颜色,就比较麻烦了,要实现字体颜色和背景颜色,首先要调用系统的调色板,再进行设置。但如何调用系统调色板?我是通过查阅帮助文档来找到其调用方法的。像自动换行、设置字体等都是通过方法来调用,给相关事件加上监听,在进行响应事件。整个程序中方法才是最关键的,也是最困难的。所以像查找、替换、转到几个功能我都不知道用什么方法,也由于时间有限,没有完成其功能。总体的感觉是对java有了一个全新的认识,现在感觉用java做小的图形用户程序有些缺陷,但是在其的应用方面。尤其是有网络方面的应用,在整个实训我也尝试过做一个小的画图软件。但是由于时间关系还有一个是自身的知识的欠缺,最终这个事情被搁浅下来了。最后还是进行计事本的编写。由于在做画图软件时花了不了时间,所以现在的计事本的功能不是很全,如果有更多的时间,我会把这个记事体再完善一下,再把画图软件也做出来。实训的时间不长,但是我会在课外把它们的功能完善。然后再学习一下java和网络的编程,体验java的前沿技术。
在学习的过程中也体会到,遇到问题也要请教。不然的话自己一个人去做的话会花很多的时间,我在做这个记事本的时间,其中也问到过许多问题,通过同学的帮助下解决了,提高了程序的开发进程。其他的同学有问题的话我也是给他们尽量解决。我认为学习知识的过程当中就应该是相互学习相互进步的。
Java是面在的主流技术我会努力将它学好,现在我缺乏的是坚持不懈的精神,我会向他学习。
虽然学习java的路还很找,但我会继续走下去。
一、实习目的
通过对java语言、JavaWeb、Oracle数据库应用设计及SQL语言的复习和锻炼,并且通过使用MyEclipse开发平台设计库存管理系统项目,以达到充分熟悉开发平台及其应用设计。
同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写、系统测试及软件手册编写,以便提前适应软件公司开发流程、环境和工作要求进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。
学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。
通过实习,培养我们综合运用已学知识Java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。
为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。
二、实习主要流程
1、公司管理规则,程序员素质,程序员编码规范;
2、需求开发与管理;
3、面向对象分析与设计,[大学生java实习报告]面向对象编程的特性;
4、javaSE、javaWeb、页面设计—JSP页面;
5、数据库设计、SQL应用;
6、软件需求分析与设计;
7、项目实战;
三、实习内容
Oracle数据库
数据库是数据的结构化集合。
计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。
Oracle服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。
在我们的基准测试主页上,给出了Oracle服务器和其他数据库管理器的比较结果。
Oracle服务器最初是为处理大型数据库而开发的,与已有的解决方案相比,它的速度更快,多年以来,它已成功用于众多要求很高的生产环境。
尽管Oracle始终在不断发展,但目前Oracle服务器已能提供丰富和有用的功能。
它具有良好的连通性、速度和安全性,这使的Oracle十分适合于访问Internet上的数据库。
java与SQL的应用。
Java语言是编写数据库应用程序的杰出语言之一,它提供了方便访问数据的技术。
利用Java语言中的JDBC技术,用户能方便地开发出基于Web网页的数据库访问程序,从而扩充网络应用功能。
JDBC(Java Database Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一的访问接口。
JDBC由一组用Java语言编写的类与接口组成,通过调用这些类和接口所提供的方法,用户能够以一致的方式连接多种不同的数据库系统(如Access、SQL Server 20xx、Oracle、Sybase等),进而可使用标准的SQL语言来存取数据库中的数据,而不必再为每一种数据库系统编写不同的Java程序代码。
大三下学期开始自学的前端,断断续续半年多,开始找前端相关的工作;到现在,走过了毕业期的十字路口,已经工作一年了;好吧,严重掉底子了,我是个比较懒的人。既然起步较晚,那么就只有马不停蹄的追赶了,奔跑吧,小前端!写这个20xX的年终总结,没什么经验之谈,只是继往开来,反省反省;继续追逐大神们的脚步,偶尔站在巨人的肩膀上眺望下未来!
一、原谅我,Jquery:
工作之前,那时什么基础都没有,只是逼于即将毕业后的压力,百度到了前端开发,就直接从原生JS开始学了;学不动了,问了下认识的计算机系的学长,知道了Jquery,OK,学吧。然而我并没有太大兴趣。因为我买了本‘高三’,jquery只是对‘高三’进行了整体的封装,他把我要做的事都做了,那好吧,继续原生JS喽;不得不说那时做的最多的就是原生JS仿写各种特效;还想了个主题,弄了一堆静态页面,拼了个网站的样子作为找工作的‘作品’,后来,我知道我错了,写那些只是属于前端基础的一小部分,工作毕竟是工作,Demo终难上台面,团队的配合以及开发的效率才是最重要的;现在工作以jquery为主,至于曾经写的各种效果,现在也都有对应的现成组件,拿来用就是;之前无知时忽视了的jquery,工作后开始马不停蹄的搜索各种资源补缺了,还好原生JS没有丢,作为前端的根基,在jquery以外帮了我不少;现在,基础组件一般都是以jquery插件的形式做的,但是业余有时间我都会用原生JS实现一些,因为我不想因为jquery而逐渐忽视原生JS。
二、必须追求的模块化:
前端的模块化是非常必要的,之前对模块化一直是停留在概念阶段,没有太多实践,只是感觉特别好,毕竟在追逐大神们的脚步嘛!忍不住选择了玉老师的Seajs,试着把原来写的jquery和几个组件,划分成模块,用Seajs组织到一起;由于工作中的前端结构已趋于稳定,一下子不可能整体改,所以我只是在本地新建了个目录,一有时间就考虑下,怎么以模块化的搞法从新组织下;私下里,为了证实我在工作的本地前端结构可用,还专门弄了个简单的博客,按照自己对模块化的想法,首先以自己的博客作为实验场,来验证可行性;不管结果怎么样,不管这样做好不好,就当是一种锻炼吧;愚论拙见,只当逗大神们一笑吧!
三、弱小者的强大力量——CSS:
HTML、CSS作为前端开发最基础的一部分,可能在后端眼中不值一提吧,确实我也这么认为;但是,我更认为,前提是你能够把这些基础乱熟于心,并且对各种浏览器的兼容性了然于胸,闭着眼睛也能写出简洁明了的HTML、CSS;好吧,其实这只是我对自己的一个长期的要求;因为模块化,不只是JS,对应的少不了HTML、CSS;为了与JS的模块化遥相呼应,那么CSS的模块化是不可忽略的,只是就CSS来说,要想做到极致精简、模块化、可复用,不是想想就可以的;
是的,你必须还是得要把一些逻辑性的东西引入CSS才行;
恩,SASS是首选的CSS预编译器之一;风行于前后端的Bootstrap之前是基于Less的,后来全部开始转向Sass了;所以,无论现在对于Bootstrap熟练度有多少,我想其对于前端样式的构建思想是非常值得学习的;以Sass作为前端样式的构建工具,来实现精简、模块化、可复用的样式,我想那不是梦,当然,一切都是需要历练和积累的;
四、革命性的转折点:Nodejs
不管Nodejs属于前端还是后端,我想其对于前端工作的变革性影响都是不言而喻的;在我心里,Nodejs将前端的模块化思想做到了极致,包的数量多达十几万的NPM社区足以证明其伟大之处;Nodejs内部实现了Commonjs规范,以require模块的'方式调用内部模块和外部模块;所以NPM社区如此强大是必然的;由此各大类库和框架都实现了基于Nodejs的模块化实现;并且远不止这些,基于Nodejs还带来了前端的工程化;各种前端自动化工具推陈出新,不断向前端工作注入新的活力;比如:Grunt、Gulp、Browserify、Webpack等等;
不好意思,Nodejs学的还不多,若有夸大其词的地方,大神还是忽视我吧;花满楼的博客只是对Nodejs小小的探索,诸多不足,有待改进,望大神路过指导;
五、话说,我想多了:
每次信誓旦旦做的规划,都会随着时间的脚步渐渐风化;每次回顾过去,只留一声叹:时间都去哪了?呵呵,还是走好脚下的路吧,毕竟做该做的事总归是好的;愿和我一样的小前端们,梦想都不是白日梦!
六、遇见最好的你:Angularjs
目前工作的情况并没有太大的变动,有些事还是得以团队工作为重;只是业余会多些躁动,20xX年,想学好Angularjs;一方面作为工作内的技术储备,另一方面,我的实验场还是需要多些内含的,打算首先用Angularjs改造博客的后端程序;权当锻炼吧!风靡前端的框架还有很多,大神们也是有各种论调,我想选Angularjs因为我胃口小,一口吃不下一个包子,还是细嚼慢咽的好;主要是:Angularjs的思想很吸引我,依赖注入、指令系统等;对我来说既陌生又无限的吊胃口;无论学的怎么样,我想理解这些思想对现在的我来说恐怕才是最重要的。