回顾工作5年
大学毕业至今快5年了,工作也快5年了,如果算上实习已经有5年多了。由于太懒,从来没写过什么年度总结,今年过完年之后突然感觉有一种强烈的危机感,感觉自己心态老了,过去5年的工作生活却成长很少,也越来越怀疑自己的人生方向是否正确。把现在的状态记下,也好以后回顾。
做游戏的两年
大学毕业进入的金山做网络游戏,说来也是无奈,虽然小时候很喜欢玩游戏,上大学学计算机也是为了以后做游戏,但是真正学计算机之后发现对游戏兴趣已然没有那么强烈了,以至于现在几乎不玩游戏。不过为了把工作做好,我还是很认真的了解各种网络游戏术语,学习各种网络游戏开发技术,工作可以完全胜任。只是后来发觉做的游戏连自己都没兴趣去玩,就下定决心不在做网络游戏。
我是个理想主义完美主义者,写代码都力求最好,有代码洁癖。做游戏那两年看到游戏中的百万行代码充斥各种恶心代码,感觉离心中那种理想的环境差距巨大,自己又无能为力,只能坚持把自己代码写好,也算是给自己的一个交代,另外心中也想着能去到一个跟理想工作环境差距不大的地方,再加上一些其他原因,就下定决定离开了。
回顾那两年,我还是要感谢做游戏让我学会了Lua,这是我在学习C/C++之外的第一门语言。大学时期我把大量的时间花在学习C++上面,一度以为C++是完美的语言,现在想来觉得挺幼稚可笑。Lua扩展了我的眼界,打开了我的函数式语言的大门,那两年写的代码中,回想起来,也只有用Lua实现的一个游戏副本的Combinator让我感觉还不错,虽然由于各种原因,是个半成品,但是也能够轻松应对各种副本需求。
那两年的业余时间,除了学习各种自己感兴趣的技术外,也用C++写过一个BT客户端,用Lua写过Lua的调试器(这个2-3天写完的,虽然我几乎不用调试器,不过当时感觉挺有意思的),其它似乎没有了。
做后台的三年
11年7月,刚好毕业两年时间,来到深圳,在腾讯做后台开发,慢慢的把游戏相关的技术遗忘了,开始学习后台开发技术,不过腾讯后台开发方式跟业界相差巨大,业界经常讨论的各种技术,对于我来说,也只能业余学习了解,工作上也没法使用业界的各种技术,一直按照原有的那种保守方式开发维护后台程序。11年10月在开发第二个业务时,我在C++里实现了一个Lua的协程库,并一直使用这个库开发后续的各种业务,不过当我刚刚把这个库开发出来时,得到的却是一片打压,心中也是无奈。
做后台开发跟做游戏的最大区别是,代码量小,一个业务几千行几万行差不多就是极限了。另外后台开发经常被打断(至少腾讯如此),经常处理3-4个客户端的查问题或联调请求,处理8-10个也是有过的,写代码时间是零碎的十分钟二十分钟,这种状态持续久了容易心焦力瘁,业务需求做不完,也不知什么时候是个头。
上班时间各种业务开发,只有业余学习各种东西。我这人兴趣面太广,除了了解后台相关技术,还在11年底捡起大学一度很感兴趣的编译原理来,想做自己的编译器,后来也确实实现过两次Lua语言子集的解释器。我对函数式语言也很感兴趣,也学过Scheme(Racket)、Haskell,并用这两种语言写过点代码(这个博客就是用Racket做的),还了解过Go、Rust等其他语言,3年前还一度想学图形学,兴趣面太广,精力不够用,最近感觉越发明显。
今年过完年,发觉自己工作快5年了,工作上似乎没有起色,3年前是个后台螺丝钉,3年后依然如此,对自己前途依然迷茫,工作不被认可是雪上加霜,我一度怀疑自己的坚持是否正确,一度怀疑自己是否是错了,去年一年是我认真调整自己的一年,今年的结果还是如此。
之前开发过的3个业务都交给新进的同事,看着那3个带有我代码洁癖的代码慢慢的被摧毁被替代。感叹代码的留存度如此之低,半年一年即可灰飞烟灭;感叹互联网业务进化如此之快,自己的心血是否留存过;感叹工作如此匆匆,却不知人生为了什么。
未来在哪
有时候,很想停下思考未来在哪,却又不知从哪开始。
有时候在想,当时读个硕士,后面出国读个博士也许不错吧,只不过人生道路没法倒退,我只能依然往前走,坚持那么一点点写好代码做好技术的愿望,只是不知这愿望是否会被击破,我也放弃坚持,按老罗说的那样:“可耻的成熟了”。
(本来以为自己5年能写很多,写下却发现,没什么可写,待以后想起再补吧。)