时间过的很快,转眼间已经实习将近5个月,其中有2个月是属于完全被流放的。
最先在内部系统组参与内部管理系统开发(struts+mysql+spring+hibernate),之后是去做网络交换机软件的脚本测试。现在又回归内部系统,虽然在脚本组期间,编码能力被别人甩在后头,但至少具有了一些测试经验。
至少自己做的东西,是真正交付到了客户手上,到也稍微有些成就感。
一、浅谈测试
一直以来,我都认为测试是脱离了软件工程范围的工作,不以为屑。但在实际情况中,测试是既重要且难以精湛的、其真正的压力,在于找不到bug,责任在你,而不在于编码人员。一般的测试人员不懂编码,他们靠的是日以累计的经验总结和想象力。而要做到高级测试工程师,则一定要懂编码,因为这是你完全掌握整个系统的方方面面具体运作的前提。但占主导地位的,还是大型系统的集成测试经验。实际项目中,编码时间一般只占30%左右,真正耗费时间的是IT阶段的找bug与对应bug,此阶段基本评定了coder的编码质量。
二、程序员的困惑
有些人,以为教学视频和代码看多,自己就懂的多,实际做起来,却不知从何下手,问题在那?如何定位?如何解决?通通跟一样能力有关,debug追踪能力,也称调试。在项目组工作不愁源码资源,但问题是蛋糕摆在面前,你如何去消化?
有位同事告诉我:代码看几遍都没用,要去抄,例如一个查询模块,在此基础上去做具体记录的历史记录查询模块,你可能会觉得很简单,但实际情况却往往报一堆异常,配置问题涉及到方方面面,以及数据库字段,传值问题等等,一大堆对于新人来说很郁闷的问题。但不用怕,只要学会调试,一个个问题去追踪,一个个去解决,自然而然,那段“源码”才真正属于你。
三、如何调试追踪?
如果你能在短短的时间内就看到问题点在那,放下断点去追踪,出去找工作,绝对没问题。出现问题的时候,不要光看代码,要用实际行动去追踪运行期间的具体值,那是最好途径。eclipse是个很爽的ide,这点做的很好。例如页面内容显示不是自己想要的数据,我们要先从数据库查询语句去下手,设置断点,一步一步step over,让sql字段(存取最终sql语句的字符串)运行到有值,inspect进去看,如果还看不出来,就点击它,copy后在sql客户端去实际运行,看看实际查询出来的表是什么,如果是对的,有可能就是页面调用的错误或者action逻辑的传值问题。
页面错误的调试,基本方法是用右键点击实际网页查看源代码,copy到editplus,就能看到具体错误发生在那几行。通常有几种常见的错误,例如:缺少对象这种很多时候是有些被你调用的字段有可能为空的情况出现的,可以加if(xxx=null)语句加保护。追踪的方法基本就是用alert语句,放在有可能出错的地方。
四、一些习惯
遇到问题先自己思考,无从下手再找高手帮忙看看,注意他帮你看的思路,别在一旁闲着,看多了自己也会了,不然你一辈子都停留在那种水平,从人身上学到的东西远远比书多的多。
解决了一个问题后,要去究根问底去找到问题产生的起因,以防你下次遇到类似的问题再浪费同样的时间。
把代码写的漂亮,注释、空行、规范一样不能少,可读性是放在第一位。曾经看过一个高手写的代码,真的一看就是不同水平的人写的,几乎很完美,读起来很流畅,方便自己也方便别人。
任务完后不要呆着,去要求经理给你更有挑战性的任务,只要你肯去尝试,他们就会对你另言相看,把三天的任务一天加班搞定,效率和忠诚都有了,路也比较好走了。
五、题尾话
如果你有一份思想,我有一份思想,拿出来交换,我们大家拥有就是2分份思想,可惜这种观念,并不能深入每一个团队的每一个人,少一点自私,未必不是好事。职场到处都存在被排挤的隐患,要为自己找片草地实在不容易。但有一点要相信,只要自己不放弃自己,这世上就没有绝望的路,你可以被打趴下,可以被身边的人暗算,可以被深爱的人流放,只要你用自己决心站起来,受过的伤痊愈后就能增强你的抵抗力,一路前进!
时间过的真快,一眨眼时间我在xx科技实习三个多月了。回顾这三个多月在公司的工作生活,我感到很庆幸和满意。庆幸的是我比其它一部分同学多了三个月在软件公司工作的经历,这使我毕业后能够更好更快地适应软件公司的工作生活和节奏。满意的是公司为我提供了良好的工作学习环境,我刚到公司不久公司就为我提供了电脑和相应的座位,当我在学习C#过程中遇到不懂问题的时候,同事都会毫不吝啬的为我讲解,让我感受到公司团结向上的氛围,软件公司最重要的也就是这种团队合作的精神。
在这三个多月的时间中,我进一步学习了编程语言C#,面向对象编程以前在学校的学习没有真正自己实践,是在老师带领下完成的项目。现在我对C#有了基本的认识,也具备了开发Windows应用程序和Web应用程序的能力。现在我再去理解,我发现它们真的是很强大,它的强大也体现在方便的集成开发环境。NET是个强大的新平台,而C#则是该平台下最佳的开发语言。在思想认知上面也得到了很大提高,上班了,不能像在学校那样随心所欲,天大的事有父母顶着,自己不用操心。现在走上社会,就是大人了,应该有责任心,对自己的言行负责。工作中,我也严格要求自己,每天早早到公司,为同事开机,打扫卫生。和同事和睦相处,不迟到,不早退。对自己编码能力还不是太满意,有待进一步提高。现在通过学习,总觉得自己学得不够好,要用到的知识时感觉头脑一片空白,很后悔当初在学校为什么不多学一点,多练一点。后悔也没用,只能自己努力。灰心时给自己打气,哭过之后擦干眼泪,继续工作。整个的实习过程是紧张而愉快的,我的工作态度和成效也得到了总经理和同事们的一致称赞。作为我在踏出社会之前的为数不多的几次实践中,这次的实践的确给予了我很多。
今后,我将继续保持认真负责的工作态度,高尚的思想觉悟,进一步完善和充实自己,争取在以后的学习中更好的完善自己,在以后的实践中更好的运用去自己的知识,做一个合格的'大学生,将来做一名对社会有用的人。 零距离的与社会接触,更能使我将书中的所学与社会需求紧密的联系起来,进一步的锻炼我的意志,提高我的专业水平以及个人素质。同时又进一步的让我懂得交流。所以与其是一次生产实习不如说是一次检阅,一次考验--是社会对我们多年在学校所学的检阅,是对我们个人综合素质和能力的考验。面对明日的挑战,也许很坎坷很困难,但是满怀信心的我绝不退缩。因为这是一片广阔无垠的天宇。
实习,是开端也是结束。在书本上学过很多理论,但从未付诸实践过,也许等到真正运用时,才会体会到难度有多大。
在今后的工作和生活中,自己需要更加努力的奋斗下去。 实习的同时也让我了解到了自己的不足,我会继续努力,完善自我。对于指导老师的用心辅导和精心安排我表示由衷的感谢。
不知不觉,在大庆实习的日子快过去半个月了,记得刚来大庆的头几天,感觉十分不适应。首先是环境:那里吃的东西很贵,而且那里的物价很高。其次是大庆人:大庆人办事的效率很高,这就是铁人的精神吧。
对于以上种种,待了3,4天基本就适应了,难怪一些长辈老是说:习惯了,就好了。
来的第一天,咱们听了付丽萍老师讲了一节课,能够说完全不知所云,但还是能够听到一些东西的,譬如:工作环境的适应,人与人之间的交际,处理各种事情的潜力,其中最重要的就是养成良好的工作习惯。有良好的工作习惯,才会被上司,老板和同事认可,将来也会比同辈有着更快更多的升职机会,而且一个良好的工作习惯,无论你从事哪个行业,都是受用终生的。然后,就是认识咱们的董亮老师了,一个可亲可爱的老师,传说中他们一个月会赚十几万呢!天文数字,望尘莫及啊。
在随后的一段时光里,咱们被分为了八组,每组六七个人,有一个组长带领。咱们组织作一个项目——论坛,在第二,第三个礼拜感觉没有刚来时那么拘谨了,我更明显感觉到自我计划,制定目标的重要性了。在咱们犯错误的时候,老师会惩罚咱们,陈发的方式很另类——唱歌或者讲笑话,不算是体罚大事能够到达对咱们的约束。然而,歇息期间有组织咱们做游戏,看似很简单的游戏其实是想培养咱们合作意识。
在实习的过程中,我深刻的体会到了三点:
第一,项目是以迎合客户和使用者为目的的,不可能像教师那样为咱们制定一套教学计划。想要明白些什么,渴望懂得些什么,全要靠你自我想学,你自我不问,没人会主动来告诉你。
第二,“纸上得来终觉浅,绝知此事要躬行!”在短暂的实习过程中,让我深深的感觉到自我在实际运用中的专业知识的匮乏,在行业中的经验真的很重要。
第三,能更早的接触你所在行业的真实状况。不出来自我转一圈,根本不明白自我学的一些专业知识,哪些是十分重要,十分实用的。就比如说英语。以前听老师说过,听朋友也说过,将来工作了,英语相当有用,外企就更不用说了。当时没什么感觉,但当我频繁的看到一打打英文资料手册、帮忙文档时,我已经切身地,的的确确地感受到英语的重要性。
这次实训让我学到的东西太多,使我受益非浅,它让我明白了工作上的辛苦,让我明白工作并不像在学校里学习一样简单。但是,虽然辛苦了点,但能让我学到不一样的东西、很充实,我心里还是高兴的。人非生而知之,要学得知识,一靠学习,二靠实践。没有实践,学习就是无源之水,无本之木。以上就是我在成都的进行实训的心得和感受。不到半年的时光就将步入社会的咱们,面临是继续深造,还是就业的压力,我想咱们更就应把握住最后的一段时光,充实、完善自我,争取做一名出色的大学生!对于这次实习,我很珍惜也很怀念。
本周是实习的第一周,很幸运碰到了产品部很有耐心的leaderX老师。 实习第二天他让我做一个H5的游戏类应用, 主要用于微信中分享。之前对于自己的水平是否能完成完全没底,但感觉第一次实操确实也有点让人兴奋,之前关于产品开发的印象只停留在书本上。
X老师让我模仿“过家家gogaga”所开发的“打电话认师姐”微信小游戏写一个类似的应用。 我把原始应用找出来便开始抠代码, 第一步是将套在微信接口中的原始应用抠出来(套在微信接口的原始应用只能在微信浏览器中运行,无法在电脑上测试),周二开始做, 一开始我的效率非常低, 因为我很多测试方法并不熟悉, 在参阅了微信JS-SDK后总算把原始代码抠出来, 厘清该应用的基本逻辑后开始重写, 在x老师的耐心地指导和对基础知识的讲解下,我们将原始代码中120行的CSS代码优化到60行,将五百多行的JS代码优化到只有60行,这事实上是在原有的逻辑上完全重写了,这让我开始有点成就感了。
也第一次感受到产品开发中的大局观,这种大局观更多的是体现在细节上,比如代码变量名的设置需要与文件存放联合考虑,以便日后修改和维护。 x老师在讲代码逻辑的时候亲自写了一个例子让我体会, 虽然消化这些用了快一天,但感觉真的收获很大, 有拔云见日之感。
实习一周后所遇到的种种困难也让我意识到自己很多问题,归纳如下:
1.尽管之前对于书本的学习有一定积累,但还是暴露出代码的不熟练,细节方面处理能力差,在细节上耗费时间太多。
2.缺乏基本的软件开发测试思路, 比如之前不知道chrome具有相当强大的错误测试功能,它对于没有触发的函数也有错误提示。
3. 缺乏专注的习惯,比如x老师让我先完成功能方面,但我却习惯于去找找界面的素材, 这就导致两边都没有做好。虽然认识上知道不该这么做,但是习惯上却很难改。
4.自己很多时候虽然有问题但是不能完全阐述清楚,所以跟leader沟通的时候往往支支吾吾,以后有问题自己首先得想清楚,将问题讲明白也是很关键的能力。
另外也记录一些自己的浅薄感受:
1.工科出身的x老师对于代码的运行效率有很多的考虑,但对于用户体验和交互效果似乎稍微少点,当然也可能是我新来并不了解的原因。
2. 公司在做小应用的时候并不会在用户测试和产品结构功能上讨论太多,公司要的是迭代效率, 就是要快速出应用,然后再快速上线下一个。
本周接到新的任务,为制作H5的招聘页面, 之前的“给师姐打电话”的H5应用还没有优化好,能做的改进的地方还有很多,leaderx老师让我先把招聘网站做好, H5应用先放放, 他给了我大街网做的“中国好Offer”作为参考, 拿到之后确实感觉这些页面都做得很好, x老师搜集的资源确实十分丰富,从实习到现在他发给我的参考很实用,在看完了五六十个H5的招聘页面之后开始构思, 在将产品架构基本做好后,测试又发现很多问题, 有技术层面的,但更多的设计本身的问题。技术的细节的问题:基于jquery mobile的开发框架国内的资料十分有限,不得不查阅原始的英文API,很多问题也只能去JQM的论坛查找,这些都十分考验英文阅读能力。CSS的布局问题繁杂,在各个浏览器,各个应用的渲染都不一样, 也是很折磨人的过程,我现在就碰到了css中font-weight属性在Safari没有渲染的问题,至今没有解决。
逐渐体会到前端工作的繁琐与细节, 需要学的东西很多, 有时候可以凭自己一些小聪明在当前解决,但并没有摸到问题的根源,扬汤止沸不是长久之计,但又好像没有足够的时间来系统的摸索,我只能先将这些问题一一记下来。这些技术的体会是一方面,另一方面便是产品的设计层面, 现在就是因为产品快做好后发现有很多地方犯了低级错误, 以往的纸上谈兵头头是道,等到自己亲身实践却感到把握不住很多设计原则, 比如界面设计给用户造成的不必要的干扰, 功能可见性的不足,逻辑上的不严谨, 以下我归纳了下岗做好的H5界面存在的交互问题:
1.页面的设计初衷是左右滑动来切换页面,但给几个朋友测试后都不能进入页面后就自然而然的知道是左右滑动。
2.join us的图标给用户是按钮的错觉,在测试中很多用户以为是按钮,都会下意识的点击。
3.交互效果的乏善可陈,与滑动的逻辑似乎也没有太大关联,只是单纯的加入了一些css3的动画。
4.用于提示左右滑动的动态箭头会让用户以为是点击作用
改进:
1.放弃join us 图标
2.改为上下滑动,箭头提示更改
3.重新设计图标摆放结构
总结: 这次的H5页面主要在于设计问题, 事先并没有完全构思好原型就急切投入到代码的编写中,这种开发方式本身是十分幼稚的!