毕业之年的总结与彷徨


     回顾下这几年本身的技术路程,感慨良多。因此,一时意起,又敲起了键盘,来回顾下这几年本身走过的路,给不断前行的本身,再留下一个脚印......前端

     11年,来到上海,作的第一份工做,就是android开发。以前说过,实习的时候,作了一年的web开发(行业软件管理类系统),以为增删改查的日子,终究不适合本身,也不是本身的兴趣所在。同时,加上想给女朋友一个更好的将来,三线小城市的工资,已经难以知足一颗急于求成的心。因此,舍弃了那帮同事,一我的踏上了北漂之路。那个时候,android系统才出来不久,加上本身毕业论文用android作了一个管理类系统的移动版本,积累了点android开发的经验,因此,投了几份android开发的职位。后来,收到一个公司的面试,知道我身在外地,因此先在电话中简单沟通了下,肯定了意向以后,我就只身前往了上海。

     来到第一家公司以后,才发现,这就是一个刚刚成立不久的创业公司,加上老板,总共也才6我的,4个销售,一个前台,也就是说,我是惟一的技术(后来知道,老板也是技术)。虽然,内心发怵,可是也没有办法,刚来这里,没有亲戚朋友能够依靠,只能工做先定下来,不然身上的两千块钱估计也撑不了多久。这家公司作的是移动点餐业务,也就是在android平板上作了一套点菜的系统,推销给一些高档的餐厅来使用。我去的时候,这套系统基本已经完成了,不晓得是老板本身作的,仍是从以前的公司拿过来的。java


     我进来以后,面临两个任务,一个是对Android桌面系统进行一些安全性的控制,另外一个是将这套系统和打印机进行一个整合(客户点菜以后,厨房和收银台打印机直接打出客户的清单和总金额)。第一个工做,看似简单,可是了解以后,我发现我快崩溃了,由于那个时候,android系统才出来,app尚且少的可怜,更别说桌面系统了。可是,那个时候的本身,仍是不服输的。因此,最终本身想到的方案就是,作一套简单的Android桌面系统(Launcher应用),替换系统默认的桌面系统。可是,那个时候,说真的,关于Android桌面系统的资料几乎没找到,因此,只能本身去研究系统默认Launcher的实现。通过一个多月的努力,最终这套桌面系统终于实现出来了。通过这个过程,虽然本身是锻炼了不少,可是资料实在匮乏,因此,决定将本身的分析和研究过程分享给那些和我同样,须要定制系统桌面的同窗,也就是博客中早年那10篇Android Luancher研究分析的文章。第二个工做,就比较简单了,没有什么技术含量,直接根据打印机的说明文档,对打印指令进行一个封装,而后程序中进行调用这些指令,进行打印便可。android

 

    在创业公司,虽然是技术开发人员,可是既当爹又当妈,除了写程序,还要写文档,后来还要写这套系统的搭建说明文档,固然,还包括不少其余的杂七杂八的活。那个时候,说实话,内心排斥过,也被BOSS骂过,可是,通过几年,再回过头来看看才发现,全部你作过的,均可能成为你将来道路上的某一处垫脚石,因此,认认真真作好每一件事,不是对公司负责,而是对本身负责。web

     在这个公司工做了半年多,我对老板的意见愈来愈多,由于老板为人比较吝啬不说,还给人一种小人的感受,让我很不舒服。终于,通过一次调薪的导火线,我毅然决定离开。那个时候,老板说,将5000元的工资,改成2000元的工资+3000元的期权。我完全醉了,我这是遇到了什么老板,加上原本就对老板的人品有意见,因此,我选择了离开。看到我提出辞职,虽然老板说若是不一样意仍是维持原样,可是我仍是坚持了离开,原本我很差意思撕破脸,如今既然撕破了,就没有必要再继续留下去。后来发生的一件事情,再次证明了个人判断,这个老板人品果真有问题(下一家公司的时候,会说到)。面试

     就这样,我来到了第二家公司。那个时候,不经意间看到,作程序行业,技术含量比较高同时比较有意思的当数游戏行业,那个时候,很想去作游戏开发(客户端方向)。可是,投了几个简历,由于没有游戏经验,都一一被拒绝了。 后来拿了两家公司的offer,其中一家作3D虚拟商城,虽然不是作游戏,可是用的是游戏的技术。另外一家仍是Android开发。想了下,虽然不能直接作游戏,可是曲线救国也是一种策略,因此就选择了3D虚拟商场这家公司。虽然进去仍是用java作后端开发,可是只要能接触到一些游戏相关的技术,那么我相信,我离下一次转游戏行业就不远了。后端

     第二个公司,依然是一个创业型公司,在这里,我遇到一个无知自大的奇葩技术老大,也遇到一个让我心甘情愿为之肝脑涂地的老板。面试的时候,技术老大先面试个人,跟我交谈的过程当中,我就明显感受到他的自大自负。BOSS是第二个面试个人,相反,在和他交谈的过程当中,我以为这是一个没有一点架子的老板,同时,也是一个执念很深,坚持理想的人。api


     这家公司,作了一个3D商城,想打造一个3D版的淘宝,每一个人进入商场以后,就是一个阿凡达(也就是一个虚拟世界中的一我的物模型),而后,控制人物在商城中逛街,有一种身临其境的感受。同时,每一个商品,告别了图片模式,在3D商城中,全部商品都是一个个和实物对应的模型,360度全方位查看。后来,又想作一个3D版的QQ空间,让每一个人均可以拥有一个属于本身的3D空间,能够像QQ空间同样,在里面进行装饰。我来主要负责服务器端的开发,客户端开发有3我的,服务器端就我一个,用的是java,因此也没有什么压力。安全

     进入这家公司第三天,老板把我叫到他的电脑前(老板没有办公室,和咱们坐在一块儿),指着他收到的一封邮件,我看了下,是一封群发邮件,附带了一份简历,虽然简历上没有写姓名,可是那简历真是太熟悉了,由于那就是个人简历。大概意思说,这里有一个技术还不错的人,能够外包给别的公司,有须要的能够联系。通过简单的分析思考,我就锁定了以前那位人品低劣的老板。和老板解释了下,老板表示理解,让我安心工做,不要被骗了(感动)。可是,我仍是很生气,虽然,我不明白这么作别人能获得什么好处,可是我对这种盗用别人简历的行为依然嗤之以鼻。服务器

     晚上提早半个小时下班,去了以前的公司,直接进了那位我不太想见的老板的办公室。我扳着脸,直接问他为何要将个人简历群发给别的公司,看得出他有一些诧异,好像没有想到我会发现。紧接着找了一堆的理由,说什么以为我技术还不错,本身没有能力留住你,想帮我找一份好点的工做。对于这个理由,若是是如今这个老板作的,那么我相信。可是出自这位人品一直就不太好的老板,我不信。因此,我告诉他我已经有归宿了,不劳他费心,就离开了他的办公室。网络

     由于习惯了早起,虽然天天上班是9点,可是我通常都是7点左右就到公司了,主要是早上那段时间,通常公司很安静,没人打扰,工做和学习效率是最高的,因此我很珍惜早上的时间。可是来了这家公司以后,我这段上班以前的自由时间,完全被老板给占用了。由于老板和我同样,也是早起的鸟,我7点到公司,他通常是7:30也到公司了。接下来的日子,基本就是老板到公司以后,处理完邮件,就把椅子搬到个人旁边,开始咱们长达个把小时的漫谈。在漫谈的过程当中,我才知道,老板是海归,微软出来的,爸妈是退休干部,老婆是朝鲜族人。固然大部分时间,咱们都是在谈论工做相关的内容,谈论这个市场的愿景,谈论他对如今所作这个事业的执着和热情。长此以往,我从心里深处,开始敬畏他,倒不是由于他的背景,而是由于他的热情和追求。那个时候,我真的愿意跟着他一直干下去,同时也作好了干下去的准备,而后现实终究是残酷的,半年以后的某一天,老板把你们召集到一块儿,很无奈地宣布了一件事情,公司撑不下去了,让咱们各自作打算,工资会照发,找工做的时间,依然能够来公司,算上班时间,直到找到下家。(再次能够看出,这个老板为人真的很不错)


     后来,我离开以后,老板不死心,通过努力好像又忽悠到投资了,打电话叫我回去,可是那个时候,我离梦想又更近了一步,我真的进了一家游戏公司。我犹豫了很长时间,一边是梦想,一边是本身钦佩的人。可是最终仍是屈服了理想,和老板解释了下,老板表示理解,但愿我好好干,他这家公司,始终为我敞开大门,何时想回去,直接跟他说。以后,他从新招人的时候,让我帮他面试了下,虽然我已经不在那里干了,可是这个忙我必须帮。后来我招的两我的,通过实际检验,发现都不合格,我挺惭愧的。可是他没有丝毫的埋怨,反而宽慰我说,有的人临时抱佛脚,理论说的天花乱坠,可是动手能力不行,这个他本身面试估计也会被忽悠的。

     我进入的第三家公司,真的是一家作游戏的公司了。以前作3D虚拟现实的时候,服务器端采用的是一个名为SmartFoxServer的框架,因此,简历上面就写了,这家游戏公司的服务器端,正好也是采用这个框架,可是会这个框架的人很少,因此,猎头联系个人时候,说我必定要过去,待遇啥的都好说。后来过去,虽然待遇比以前直接翻了一倍,可是真正让我开心的是,我真的在作游戏了,虽然仍是后端,可是每天和游戏打交道,长此以往,对前端也会有所触及的。并且,在游戏公司中,若是有机会,说不定能够转到前端去。

     我去的时候,技术部门有一个经理小张,为人还不错,技术也不错。旁边的女生(也是作服务器端的),我看了她写的代码,代码很“文艺”,刚刚毕业,也不怪。这位技术老大,没事的时候,还给她说说哪里哪里应该怎么写,哪里哪里这样写很差。可是,有些逻辑功能,他都让那个女生作,不知道是不信任我,仍是想让那位女生锻炼一下,后来他说,那些简单的功能不让我作,给那个女生锻炼下。我虽然嘴上没说什么,可是内心仍是有点不舒服,无论简单仍是难,总不至于让我在那闲着吧。你知道,刚去公司的新人,通常最怕被忽略,总想最快速地找到本身的存在感和参与感。可是没办法,人家是老大,因此,我忍了。后来,也证明了他说的,的确让我作了最难的部分——游戏战斗系统。做为一个才作游戏的人,我内心仍是很紧张的,不是怕背锅,而是怕本身没法完成。不事后来通过小张的提点,也七七八八地实现了。在这里对游戏服务器端的技术,从底层的Socket通讯,Reactor/Proactor模式等到网络游戏的通讯协议,服务器端架构等,都花了不少时间在学习。

     不久以后,小张招进了一我的,小西,这是一个对我影响很深的一我的,不只由于他牛逼的技术,更是由于他超强的执行力和骂人的能力。小西,是做为前端开发人员招进来的,后来成为了技术部门的副经理。小西这我的,能力很强,性格直来直往,执行力很高,对代码结构和框架有着独特的看法。他来以后不到两个月,就将客户端的代码给从新重构了一遍,将客户端一个技术给骂走了。他来以前,客户端进度缓慢,代码结构混乱,已经很难跟上服务器端的节奏。

     后来客户端重构完成,走上正轨以后,他又来服务器端开始重构代码。那位可怜的小女生,被他骂哭了很多于3次,精神压力很大,在小张的努力挽留下,仍是选择了离开。我也和他发生过冲突,我通常不喜欢吵架,可是那一次,我发飙了。我写的一个框架,很通用,以前被小张夸过,可是他说不实用,被他否认了,那个时候,也有想走的冲动,可是我忍了,想看看他写的咋样,后来我发现,本身写的虽然通用,可是比较复杂,可是他写的更加简单实用,因此,我内心那点不服淡了不少,再看他重构的其余的代码,结构把控都比我好,就没有走的冲动了,以为在这里,能够学到更多。

     因为把服务器端那位小女生给弄走了,致使他和小张的关系开始紧张起来,小张开始后悔让他去弄服务器端,和老板反应了下,仍是让小西回到客户端,不要管服务器端了。老板问小张,那么服务器端谁能够负责搞定,小张指了我。老板打了个人座机,让我去办公室。我进去发现,小张和小西都在那里,显然这件事情,让老板出面调解了。老板问我,可否搞定服务器端,我当时不明就理,可是随即明白了一些事情,说:“功能实现出来确定没有问题,可是结构把控仍是小西弄的比较好”。虽然和小西有过不愉快,和小张关系比较好,可是我不想成为他们竞争的任何一方势力,因此我选择实话实说。


     以后,状况依然这样,跟着小西一块儿重构服务器端的代码。中间也被他骂过,记得有一次,他看了我写的代码,中间有一段代码的逻辑,估计是后来改的时候大意了,是一段死代码,他直接对着我说:“你这不是自欺欺人嘛”。说实话,我当时内心挺很差受的,可是想着,当面指出你缺点的比那些背后说你或者压根不说你的人,更能让你进步,也就释然了。我很庆辛遇到小西,虽然常常被骂,可是学到的东西真的不少,不只仅是技术上学到的,还有执行力和一些作事的态度。后来,小西买了cherry机械键盘,到货的时候,发现他买了两个,当时就好奇了下。可是,当他说一个键盘送我时,我仍是很诧异的,固然一样诧异的,还有别人。由于平时,咱们的关系也仅仅是同事,并且在别人眼里,我是那个时不时被他骂的人。


     这个游戏作了一年,上线两个月就挂了,公司也宣布解散,咱们这批人天然也就被无情地遣散了。后来,在下一家单位的时候,小西打过两次电话给我,问我愿不肯意到他那里去工做,我拒绝了,由于去那里,我仍是作游戏服务器端,而如今,我已经转游戏客户端了,也就是我最初就一直想作的事情。以前作游戏服务器端开发的时候,也抽时间学习了点unity3d相关的知识,也本身作了几个单机游戏,放在本身的android手机上,也为后来转游戏客户端打下了基础。


     如今所在的公司,是一家不大不小的游戏公司,刚进来的时候,是做为服务器端开发人员招进来的,做为一个已经上线游戏的服务器端维护人员,主要负责活动一些什么的,比较闲,就在准备离职的时候,公司招了一位制做人,准备从头作一款新游戏。那个时候,公司的技术还主要是cocos2dx,懂unity3d的人很少,而这款游戏他们准备用unity3d来作。因此,基本上你们都要来学习unity3d,而我也伺机和老大说,我想去作前端,同时将本身作的几个unity3d的小游戏给他看了下,证实本身会那么一点unity的知识。就这样,我终于顺利转为游戏客户端开发了,也最终实现了我最初的那个梦想。

     如今,作unity3d开发已经一年多了,也完整跟了一个游戏项目,从立项到游戏上线。在客户端游戏开发的过程当中,领悟到一点,作事要主动积极一点,要善于思考,有些事情,不是作完就作完了。能够本身去发现去总结一下,换一些角度去思考问题,或者站的更高一点来分析问题,这样会作出更大的贡献。好比,游戏中须要用到的某个东西,若是仅仅为了实现功能,可能很容易就实现了,采起一种藕合度比较高的方式。可是,若是这件东西,每一个游戏都须要,能够思考下这个东西可否一次性搞定,不用每一个游戏都去弄一遍。若是这样想了,那么接下来,思路就变成了,将这个东西作成一个中间件,不和具体的游戏逻辑进行耦合。

     回过头来想一想,如今的本身和当初的本身,最大的差异不是技术上进步了,而是对于未知的东西,已经再也不害怕了......


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------