追逐梦想——毕业4年小记

     在这难得的几天闲暇之际,不经意间,看了看之前的博客,才恍然发现,自己都已经毕业4年多了。看着毕业之际写的那篇 《我的2011》,再回顾下这几年自己的技术路程,感慨良多。所以,一时意起,又敲起了键盘,来回顾下这几年自己走过的路,给不断前行的自己,再留下一个脚印......
     11年,来到上海,做的第一份工作,就是android开发。之前说过,实习的时候,做了一年的web开发(行业软件管理类系统),觉得增删改查的日子,终究不适合自己,也不是自己的兴趣所在。同时,加上想给女友一个更好的未来,三线小城市的工资,已经难以满足一颗急于求成的心。所以,舍弃了那帮同事,一个人踏上了北漂之路。那个时候,android系统才出来不久,加上自己毕业论文用android做了一个管理类系统的移动版本,积累了点android开发的经验,所以,投了几份android开发的职位。后来,收到一个公司的面试,知道我身在外地,所以先在电话中简单沟通了下,确定了意向之后,我就只身前往了上海。
     来到第一家公司之后,才发现,这就是一个刚刚成立不久的创业公司,加上老板,总共也才6个人,4个销售,一个前台,也就是说,我是唯一的技术(后来知道,老板也是技术)。虽然,心里发怵,但是也没有办法,刚来这里,没有亲戚朋友可以依靠,只能工作先定下来,否则身上的两千块钱估计也撑不了多久。这家公司做的是移动点餐业务,也就是在android平板上做了一套点菜的系统,推销给一些高档的餐厅来使用。我去的时候,这套系统基本已经完成了,不晓得是老板自己做的,还是从之前的公司拿过来的。
     我进来之后,面临两个任务,一个是对Android桌面系统进行一些安全性的控制,另一个是将这套系统和打印机进行一个整合(客户点菜之后,厨房和收银台打印机直接打出客户的清单和总金额)。第一个工作,看似简单,但是了解之后,我发现我快崩溃了,因为那个时候,android系统才出来,app尚且少的可怜,更别说桌面系统了。但是,那个时候的自己,还是不服输的。所以,最终自己想到的方案就是,做一套简单的Android桌面系统(Launcher应用),替换系统默认的桌面系统。但是,那个时候,说真的,关于Android桌面系统的资料几乎没找到,所以,只能自己去研究系统默认Launcher的实现。经过一个多月的努力,最终这套桌面系统终于实现出来了。经过这个过程,虽然自己是锻炼了很多,但是资料实在匮乏,所以,决定将自己的分析和研究过程分享给那些和我一样,需要定制系统桌面的同学,也就是博客中早年那10篇Android Luancher研究分析的文章。第二个工作,就比较简单了,没有什么技术含量,直接根据打印机的说明文档,对打印指令进行一个封装,然后程序中进行调用这些指令,进行打印即可。
     在创业公司,虽然是技术开发人员,但是既当爹又当妈,除了写程序,还要写文档,后来还要写这套系统的搭建说明文档,当然,还包括很多其他的杂七杂八的活。那个时候,说实话,心里排斥过,也被BOSS骂过,但是,经过几年,再回过头来看看才发现,所有你做过的,都可能成为你未来道路上的某一处垫脚石,所以,认认真真做好每一件事,不是对公司负责,而是对自己负责。
     在这个公司工作了半年多,我对老板的意见越来越多,因为老板为人比较吝啬不说,还给人一种小人的感觉,让我很不舒服。终于,经过一次调薪的导火线,我毅然决定离开。那个时候,老板说,将5000元的工资,改为2000元的工资+3000元的期权。我彻底醉了,我这是遇到了什么老板,加上本来就对老板的人品有意见,所以,我选择了离开。看到我提出辞职,虽然老板说如果不同意还是维持原样,但是我还是坚持了离开,本来我不好意思撕破脸,现在既然撕破了,就没有必要再继续留下去。后来发生的一件事情,再次证实了我的判断,这个老板人品果然有问题(下一家公司的时候,会说到)。
     就这样,我来到了第二家公司。那个时候,不经意间看到,做程序行业,技术含量比较高同时比较有意思的当数游戏行业,那个时候,很想去做游戏开发(客户端方向)。但是,投了几个简历,因为没有游戏经验,都一一被拒绝了。 后来拿了两家公司的offer,其中一家做3D虚拟商城,虽然不是做游戏,但是用的是游戏的技术。另一家还是Android开发。想了下,虽然不能直接做游戏,但是曲线救国也是一种策略,所以就选择了3D虚拟商场这家公司。虽然进去还是用java做后端开发,但是只要能接触到一些游戏相关的技术,那么我相信,我离下一次转游戏行业就不远了。
     第二个公司,依然是一个创业型公司,在这里,我遇到一个无知自大的奇葩技术老大,也遇到一个让我心甘情愿为之肝脑涂地的老板。面试的时候,技术老大先面试我的,跟我交谈的过程中,我就明显感觉到他的自大自负。BOSS是第二个面试我的,相反,在和他交谈的过程中,我觉得这是一个没有一点架子的老板,同时,也是一个执念很深,坚持理想的人。
     这家公司,做了一个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开发已经一年多了,也完整跟了一个游戏项目,从立项到游戏上线。在客户端游戏开发的过程中,领悟到一点,做事要主动积极一点,要善于思考,有些事情,不是做完就做完了。可以自己去发现去总结一下,换一些角度去思考问题,或者站的更高一点来分析问题,这样会做出更大的贡献。比如,游戏中需要用到的某个东西,如果仅仅为了实现功能,可能很容易就实现了,采取一种藕合度比较高的方式。但是,如果这件东西,每个游戏都需要,可以思考下这个东西能否一次性搞定,不用每个游戏都去弄一遍。如果这样想了,那么接下来,思路就变成了,将这个东西做成一个中间件,不和具体的游戏逻辑进行耦合。
     回过头来想想,现在的自己和当初的自己,最大的差别不是技术上进步了,而是对于未知的东西,已经不再惧怕了......

你可能感兴趣的:(技术杂谈)