这文章呢~ 要用来交滴,所以呢~ 可能有点官方的味道~ 不是很符合我平时写文章的风格~ 特纠结的是,想写什么的时候,忽然想到,这是要交滴,好吧,不写了,结果呢,好像越写越没动力,受到约束特多,算了,直接写做过什么就交了。
mark一下我的第一次短期实习~
2012年之暑假实习
又到了暑假这段让每个学生都期盼的日子啦,这暑假,我到了广州盈可视电子科技有限公司实习,在这里,我学到了很多。
实习期间,曾做过的,概括为4+1次的任务,第1次:录播的监控平台软件任务,第2次:录播服务器的测试任务,第3次:机顶盒任务,第4次:基于Ubuntu平台的播放机,第+1次:专利底稿编写任务。“认真是一种习惯,认真是一种态度”,交给我的任务,我会很用心地尽最大的努力认真负责地将它做好。
第1次——录播的监控平台软件任务。这任务是当初冲哥给我的第一任务,这是我整个实习期间都在做的一项终极任务。初接到任务的那刻,对监控平台只有很模糊的概念,并不知道一丁点的具体的东西,只知道它是用来监控的,但并不知道如何能做到监控,监控需要掌握哪些技术,监控与这公司产品的哪些地方相关联,或者我那时甚至只粗浅地以为公司就是做录播的,录播就是将视频录下来和播放的。一大堆问号的出现,更使我对这监控平台的好奇感倍增,更加让我感到意外的是,正好在大一一直在自学的C++ 知识正好用上了,大二寒假自学的Qt的知识也正好用上了,在做学校SRP任务时所自学的网络编程的知识也用上了,我也说不上这是属于什么样的巧合,就好像是一直学的东西就是在为今天的实习而准备一样,但事实并非如此,因此,这样的巧合总是能让我觉得很神奇,于是,就充满热情地去开始做这监控平台。这监控平台被冲哥划分成一个个的小功能,后知后觉,做了一个星期才知道原来冲哥是在一步步地引导着我,先叫我简单地使用Qt做一个调用VLC库的能播放的Widget,然后是实现多窗口播放,之后是使用Socket对摄像头的方向进行控制,再之后是学会读取XML中自定义的录播系统的数据,再然后是实现窗口翻页和改变窗口播放视频数量的功能,学会使用XMLRPC接口完成数据的接收与设置……最后,就是这些全部的功能综合起来,合成了一个可通过XMLRPC通讯,播放指定多个URL地址,可任意改变窗口数目,通过UDP控制摄像头方向的一系列简单功能的监控平台。在做这每一个小功能的时候,冲哥常常跟我说的一句话是:“你想得太复杂啦!”哈哈,工作的前期,那时候常常想着如何去将一个程序做好,去想各种需求,尽量在程序中体现出来,因此,常常将本来分派给我的任务做得自己想像中的完美,只是,这是一种缺乏沟通的体现,现在所做的每一个小功能只是在为最后的程序的完成在打基本功,在未知道最后需求而去一味地做太多的功能会使我做多了很多的无用功,浪费很多不必要浪费的时间。是的,在意识到这一点以后,做接下来的小功能的时候,就顺利多了,要求什么的话,直接做什么,争取最短时间内将其完成,当且只有做到最后一步,真正需要出成品的时候,才认真地想想,究竟还需要些什么功能,怎样才能满足服务对象,是的,这其实汲及到软件开发中的很重要的一环——需求分析。第一项任务我所获,最短时间内完成需求,不做无用功,该思考时候才思考。此外,也印证了以前常在论坛、Q群中所讲的“工作中需要用上什么,就要去学什么”的话,在工作中,并非每样知识都本已牢固掌握,就像VLC,XML这些对于我来说完全是陌生的概念,在工作中需要用上这些知识时,就不得不去学,也想不到任何去推托而不去学的理由,因为我知道,这些理由,好些时候都是在跟别人表明自己能力的不行,向自己找到不去更新自己知识的借口,而且,学习一个新知识,是一件可以让人非常兴奋的一件事情。因此,通过工作中任务的开展,我知道了自学能力的确是非常重要的,对行业的兴趣也是非常重要的,源源不断的知识将向脑子里面灌注,如果缺乏对行业的热情,那需要灌注的知识很容易变为负担,当然,同理,兴趣足够时,那负担将会变为工作源动力的一种。
第2次――录播服务器的测试任务。这任务,是我做第一个任务时候中途插入来的,在未完成监控平台,又新进一项任务,会让我在时间上感觉很有压力,在叶总给我任务时,冲哥出差了,那时候叶总将一台服务器148搬到我工作位置的侧边,后来叫我进办公室聊的一句话还记得“听张冲说你手头上的任务已完成得差不多,现在给你……做做测试……”,然后,事实上,那时我自我感觉这监控平台离完成还需要很长一段时间(PS: 后来还是完成了),不过我想冲哥心里也有底,而叶总好像已经都安排好了,于是,就果断接受吧,也想不到什么拒绝的理由了,这次做的工作我是充满了热情,这次,是我第一次直接接触公司的产品,这相对我之前一直在做的工作有一个好处就是可以通过测试而去了解产品,说起来是有点失败,近来公司这么久,也只是对公司产品有粗浅的认识,现在,我在这里所做的测试,都只是很简单的工作,并没有很系统地去说怎么做怎么做,现在才知道,原来服务器是长这个样子的,如果不连网的话,接上鼠键显示器,可以当作是一台PC,然后,通过http网页去访问这服务器,边对这网页上的每一个功能进行验证,连用word做记录,记录下每一个验证的过程,是在哪里出现问题,在哪里没有问题,做过怎样的验证,一一记录下来,这过程,上网查阅一些软件测试的方法,原来这可算是将我自己当作是用户,在做的是黑盒测试,这过程,没有用上太多的技术上的东西,不过在做的过程得提醒的是耐心与细心,耐心地将每一个功能都测一下,确保不遗漏,在正式用户使用之前不出任何问题,细心地记录下自己的每一个操作,记录下在操作时所出现的每一个状况。其实,个人认为,这个一个很好的方式让自己加深对产品的直观的了解,这让自己在继续写监控平台的软件时有了清晰的思路,因为知道了要写出什么样的应用给用户。
第3次――机顶盒任务。这次任务,说起来曲折,其实也并不称得上是任务,因为,并没有去着手去做。刚开始,公司购得一机顶盒样品,我需要尝试做一客户端来实现机顶盒的被控制。在开始阶段,我先自学了一天的javaScript,对机顶盒操作需要的编程语言进行了解,然尝试使用机顶盒的通讯函数connect(...)的时候,出现了函数表现结果不正常的现像,由于这函数是整个功能实现的很重要的部分,叶总就带着我去跟商家沟通,商家也答应了去完善这个函数,后来,我直接与商家沟通,商家那边的技术人员表示这函数要完成的话需要比较大的劲,需要比较多的时候,建议我们采用另一种方案,而这方案正好也是之前冲哥所说过的一种,不过这方案,已经与原想法不一样了,因此,这任务,也就由其它人去做了,我在这时也继续我的监控平台的编写了。这次我知道了,必要时候要与沟通,有什么问题的话及时跟商家反馈,尝试寻找解决的方案。
第4次――基于Ubuntu平台的播放机。这次任务,来得有点意外,在8月16日,在监控平台差不多完工,正打算跟冲哥提出将监控平台做完(距离开学剩一个星期)就离开时,冲哥今天问我要不要去做一个播放器,以Ubuntu为平台的功能比较简单的不用怎么做界面的一个播放器,不过还是调好Ubuntu系统的环境为主,我再问了一下,确定了是不是不用做界面,只是跟之前的功能差不多,心里一想,如果只是这样的话,就够时间了,于是,在离开前,再接下一个新任务了。不过呢,事情并没有想像中那么的顺利,这次播放器需要能播放多流,VLC的多流的库不知道为什么会有播放时候才能绑定窗口的这个缺点,这使编写程序变得有点麻烦,而这次我也问了冲哥很多这方面的东西,虽然是明白冲哥跟我说的思路了,不过只是一直想不明白非得用这个思路,后来,在开工的时候,还是先写个简单的,知道一下怎么去多个窗口绑定不同的流,然后是分析冲哥的源码,最后是代码编写,我不明白为什么非得用这个思路,或者说我不相信会真的有这么奇怪的约束,于是,我尝试用不同的方法去将不同的流绑定到不同的窗口上,还是失败了很多次,也在失败的过程中理解了原理,这下可知道为什么了,后来,我还是不得不用上了冲哥原来的思路了,发觉有时候自己是有点倔,不试过的东西不罢休,将原先设定的方案做过尝试才知道原来还真的不行,这或许有时候会是一个缺点,让我在原本可以两小时搞定的东西搞上两天,就这样,不断地尝试方案,不断地查阅资料,分析源码,已经过了一周了,简单的播放器算是做了出来,不过没有做其它的功能扩展,音量调整,vlc中窗口比例改变这些功能没有实现,已经到了最后一个星期了,我是越做越急,我很怕做不完,我很想在离开公司之前将这个产品做出来,不过,很多时候都会是事与愿违的,在剩下这个星期,开始对Ubuntu的环境设置,问题出现的是,对Ubuntu非常陌生,陌生到连安装软件的方法都不会,虽然在上操作系统课的时候有接触过,不过那时候都只是随便在上面用一下vim而己,这改变了我在windows下的习惯,刚刚开始是从搜如何打开终端,如何安装软件,如何使用root权限,这些简单操作起步,不过也好,从这些简单操作开始,我慢慢地对Ubuntu熟悉起来了,只是,看着日子一天一天地过去了,还有启动界面,开机的特殊启动情况等的这些设置要调,它并没有像windows上面那样随便切换一下源路径的图片这么简单,而是用shell来实现,而特殊启动情况的这些,有些比较麻烦的问题,上网搜了数个小时都不能找到直接的答案,上一些论坛帖子提问没有人回答,后来只是逐步来,先了解开机流程,然后了解汲及这大概会汲及到哪一块的知识点,随着这逐步深入的了解,终于锁定了可能会出现这问题的文件的路径,还需要分析源文件,究竟是哪个代码会导致这样的问题,当然,如果文析路径找不对,分析不对对应的文件,也会导致做了无用功,这又需要再改变思路,尝试重新分析来解决问题,是的,一个小小的问题就可以用上整整两天的时间,不过当一个功能成功的那一刻还真是挺振奋人心的,只是,这些天,一直想快点将它完成,连续加班了几天,还是未能完成,还真是有点遗憾。这两周,整个人的精神比较差,上班时候去做Ubuntu的这个,晚上回到宿舍需要去做SRP的东西,连续接近一点钟睡对于习惯早睡的我来说是非常的累。这两周给自己的工作压力非常大,最后项目还是没完成,可以说是完成了一半,然后做好交接工作给冲哥接手了。这时期,我学会的是,无论再怎么急,搞技术这活儿也不是能急的东西,想要解决问题在没有直接答案时,还是得去耐心会问题源一步步分析过来,给自己过大的压力可能反而使自己工作热情下降,那会变成一种负担,学会调整自我,欲速则不达。
+1次:专利底稿编写任务。这是一个活动,在到公司的第二天冲哥就跟我们说的一个活动,它是需要我们的idea,在解决技术问题时遇上哪些问题,有些创新性的解决方案的一个解决方法。本开始还打算参加的,在尝试参与的过程中,我逐渐发现原来这稿子不是说一时半刻想就能写出来的,它需要一个基础的积累的过程,平常在编程语言方面的小问题在这时候用不上,需要用上的是在尝试提出有技术交叉点或者说从产品中发现技术问题,曾试过用整个双休日的时间想写出一点东西来,两天过后纸上还是空白。我发现了,想要从产品中提出问题,需要先深入了解产品,也可能需要了解多种类似的产品,也可能需要时刻想着产品,各方面获得创新的灵感,基础的积累,不是瞬间的事情。
这就是我暑期实践工作。通过这次的工作,我更加明确了自己的方向,我知道了现在要做的是继续增强自己的实力,努力学好专业知识,增强自己的学习沟通交往能力。为自己的目标做好铺垫。
OK, OK, 学历代表过去,能力代表现在,学习代表未来~ 大三,加油~ 明天要上学罗~