今天早上同事提到要写公司的2015年展望,才意识到该是对过去的一年做个总结的时候了。
1. 项目总结。
2014年的所有项目可以用三个数字221来概括,2个公司项目,2个游戏项目,1个创业项目。
(1)公司项目1-邮件相关
在项目中主要负责邮件android版邮件客户端的设计与实现,因此我研究了K9的相关实现将K9-mail以及有关pgp加密的APG融合到一起作为我们的邮件客户端。K9-mail是一个非常经典的邮件开源项目,很多邮件客户端甚至是很多流行的邮件客户端都能够看到它的影子。期间搜罗了大量关于K9分析的文章,重点研究了K9账户的配置,发送,接收邮件的部分,以及APG加密和解密的部分。在组织结构上K9比较规范,APG略差。从研究这些开源项目,学到了很多android设计的思想,受益匪浅。
(2)公司项目2-蓝牙相关
该项目包括硬件部分和软件部分。我主要负责文档及软件(Android)部分。这个项目耗时较长,但是收获较少。一是文档,设计文档不够规范,严谨(从与同事的对比);二是,软件设计实现中拿来主义严重,变通较少,不想主动思考,在研究一个问题时缺乏耐心(一涉及到android的framework层就自己打退堂鼓),在开发过程中做了许多无用功。
(3)游戏项目1-手游1
在移动互联网的驱动下,在一个研究生同学的怂恿下,我也加入了手游开发的大军。该手游是一个2.5d的手游,采用前端采用开源跨平台游戏引擎cocos2d-x。此次项目从3月份开始,到8月份结束,我负责前端的开发,最后因为项目成员的流失宣布该手游项目废弃。期间从零开始学习cocos2d-x,并掌握了基本的开发流程,对手游开发有了一个基本的认识。
(4)游戏项目2-手游2
上一款游戏的废止,没有打击到我对手游开发的信心。于是在同学建议下加入了另外一个游戏开发项目组。该项目组从年初开始立项,我8月份加入,经历了人员的加入,引擎从cocos2d-x到unity3d的切换过程。目前还在如火如荼的进行当中,大家都对这款游戏非常有信心。因为引擎的转变,我跟另外一个负责前端的成员从cocos2d-x端转换到unity3d,又是一个从零开始。
(5)创业项目
在8月份,不安分的我在同事的诱惑下,开始准备加入他们的一个创业项目,在与创始人加合伙人的交流后,我决定正式加入。该创始人有着多次的创业经历,经验丰富。而且在公司运转前期有一个机构为我们提供资金支持,我们需要做的就是找3d方向市场的痛点和相应的解决方案。加入之后的第一件事情就是做一个3d的小游戏demo。很遗憾由于种种个人原因,我最终还是退出了该创业团体,给该创业项目造成了极大的损失,深表抱歉。但是我最后坚持帮助他们完成了游戏demo的开发,也算是我的一个补偿。个人认为3d方面的创业项目还是有很广阔的发展前景的。
2. 学习总结
(1)android
接触android方面的开发已经有两年半的时间了,精力主要放在了android客户端界面的开发,但是因为没有美工的介入,这一个个界面真是惨不忍睹呀。由于只是自己在单打独斗,对android的开发没有形成一定的体系,自从研究完k9之后,我发现可以从大量的开源软件中获得一定的灵感。另外,没有接触过ndk的开发,这方面始终还是android开发方面的一个痛。
(2)cocos2d-x
从3月份到7月份,一直断断续续的自己捣鼓这个开源游戏引擎,初步有了自己的一些开发想法,但是没有参与具体的开发项目,思维不条理。这方面也是需要研究下相关的教程和一些列的开源项目。
(3)unity 3d
这是一个很强大的3d游戏开发引擎,修改过一个马里奥的项目,但是还是一头雾水。需要继续研究相关的教程和已有项目。
(4)其他1
一直想要搞安全,但是我们日常做的东西跟安全完全搭不上边儿,于是自己私下里开始研究开源的av代码,搜罗了一大堆有关安全软件的代码,如snort,clam av,卡巴斯基的泄露代码,诺顿的泄露代码等,但是只看了部分的clam av代码,没有坚持下去。另外在老板的建议下,找各种漏洞,于是我开始着重研究android方面的安全,目前还在进行当中。
(5)其他2
为了增进我们的找工作能力,我跟一个同事组织了一个study group,首先是分享了公司内部的各个项目,对公司的项目有一个大致的了解。其次,我们报名了一个九章算法的班,该培训班主要针对欧美的招聘,着重讲解各个算法。我们会各自研究每堂课的算法,并在一起讨论各个算法,该group进行到一半,由于同事的跳槽,最终搁浅。
(6)其他3
在项目开发过程中,我们也会写一部分专利。由于是第一次写,改版了n多次,最终也没有被公司采纳,令老板们很失望。
3. 感悟
这一年总的来说有收获,有遗憾,有教训,有感悟。
遗憾:
(1)在实际开发过程中,没有真正的沉下心去完成一个任务,总是很敷衍,没有深究,没有精益求精。如android开发过程中有些地方总是出问题,必须深入到framework层去查找问题,总是层次一深就自己感觉烦躁,看不下去。再比如,研究一个功能如android拍照功能,找到这个功能的实现,就直接搬过来,没有考虑功能的更好表现。
(2)思考的少,抱怨的多。在写文档的时候,抱怨boss让我写文档,没有让我去研究新技术,于是在文档上出现了很多敷衍的东西,同时也没有与同事好好交流,于是写出来的文档只是浮于表面,实质性的东西少。在研究新项目时,总是抱怨该项目没有意义,而不是自己多考虑该项目的框架,或者说出自己的一些想法。
(3)没有恒心。无论是参与游戏,还是自己私下里研究安全问题,总是半途而废,好多书都是看到100多页就束之高阁,好多代码看了几天就存在冰冷的硬盘里,不再过问。
感悟:
(1)开源项目的强大。要多向开源的项目学习项目开发经验。
(2)互联网热。2014年涌现出了一批批优秀的创业项目,大家都是憋足了劲儿的找点子,引投资。我们要多思考,多看看周围的世界的变化,酝酿新的方向。
(3)未来的发展方向。在it领域要么你要成为某一个方面的专家,要么你要涉猎广泛,但是在各个方面也要有一定的深度。
(4)无论工作,做事要有毅力,恒心,耐心。先完成手头的工作任务再去涉足其他的领域,不要只做蜻蜓点水的事情,不要打着全栈工程师的名义,对各个知识敷衍了事。
(5)做事要有主动性,不要老把希望寄托在别人身上。
4. 2015展望
(1)创意
这是一个充满创意的世界,谁先能挖掘出市场的薄弱点,想到相应的创意,谁就能在这场互联网战争中立于不败之地。
在每一个月都要有一个不错的创意为同事或其他人认可。内容可来自日常生活,我们的互联网。
(2)学习
这里的学习主要涉及工作及自己的兴趣爱好。
* android开发
涉足android开发的ndk开发领域,研究相关的开源项目。
深入android界面的开发。
* 语言与设计模式
不时重温下C++和java的相关基础知识;
研究下设计模式的相关知识及应用。
* 安全
有关tcp,ip的相关网络知识;
android方面的安全与破解(包括ida等工具的使用);
windows方面的安全
(3)游戏
* unity3d 这个是今年学习的主要任务,掌握使用unity3d开发游戏的流程,使用unity3d开发出一款3d网游。
* cocos2d-x 这个也不要放下,通过日常的观察,2d或2.5d的游戏还有很大的市场,研究2款开源的游戏(cocos官方开发的一款游戏和9miao开发的一个暗黑游戏)。
(4)算法
有人曾经说过,学好数理化,走遍天下都不怕。也有人说过,学号算法,走遍天下都不怕。很高深的算法,我很难去学习,但是有关数据结构的基本算法,要烂熟于心。另外要经常到各个编程网站去参加各个活动竞赛。
5. 总结
有想法就要去实现,不要让它成为一纸空谈。