30岁游戏行业八年努力却无一款成功上线游戏,心力交瘁是否该转行?
2486
这个问题是一个共性的问题,如何在繁忙的工作中持续提升继续能力。
我个人从10年硕士毕业以后到现在已经工作了10年多了,绝大部分时间都在腾讯、搜狗等厂发展,,现在是搜狗的专家开发工程师。 我来说说我的看法~当你工作了以后,你会发现抽出时间来学习貌似是一件很困难的事情。现在很多公司都是996,早9晚9,12小时的高强度工作导致下班后根本不想再动脑子。
当你工作了以后,你会发现事情不像你想象的那么美好,并不是时时刻刻都是在做高技术含量的事情。你的大部分时间将被工作上的各种琐碎的会议、业务需求、线上维护、bug处理所占据。当你工作了以后,可能感觉每天做的都是各种杂事。不单单技术感觉难以成长,就连年底的绩效考评成绩可能也是平平淡淡,没有亮点可言。你的自信也在一点一点的被磨没。这种情况下,怎么破局,来保证自己的技术能力能够持续进步,工作绩效能够突出?
我觉得办法总比困难多,我来分享下我在工作中的技术成长方法,供大家参考。我分享的方法可以分成四步:
1.保持好奇,勤于在项目中发现问题我觉得第一点应该要保持一颗好奇心,多多去项目中发现问题。
我举两个我个人刚工作前两年时间里的两件事情。
第一件事情是在,2010年的时候,我在第一家公司还是一个新人,我发现我们所开发的客户端启动一次特别的慢。于是我开始思考Windows进程启动的过程中都干了啥,有哪些地方可以优化一下。后来进过系统的研究后我用了两个手段进行改进,将启动速度提升了15%左右。并总结成文反馈给了我的领导。
鉴于此类的工作输出比较多,刚工作一年多的时候,我的leader就准备提升我为副组长了。不过我还是更热爱互联网,于是婉拒了领导的挽留,我再2011年跳槽到了腾讯。
第二件事情是在腾讯内部我同样在工作中进行了深度的知识整理。当时老大给我分配到了一个模块,所有合作方数据源的图片下载模块。这个模块的需求描述起来也很简单,就是把合作方数据中的图片url摘出来,然后下载并存储到腾讯的服务器上。在这个过程中,引发了我很多的思考。比如新建一个空文件的话消耗磁盘空间吗?
一个文件夹下最多能存多少个文件?文件名太长了的话会影响系统性能吗?基于这些深度的思考我进行研究和学习,后来的技术方案就是为了提高性能,我们将文件通过hash的方式散列到三级目录结构下。保证每一次获取文件都很快完成。而且我还整理除了一篇热文,该文章在腾讯内部KM年度热文榜上登顶,而且在外网也是广为流传。现在这篇文章的地址是发表在了我的个人公众号里了,参见《Linux文件系统十文》。
也欢迎大家前来关注我的这个公众号:开发内功修炼,在这里我把我对网络、CPU、内存、硬盘等方向的深度思考都总结好放在了这里。
2.带着问题去深度思考、查各种资料在我思考的过程中,我需要回头去翻各种经典书籍、看Linux的内核源代码,以及其它各种网上的资料。
曾经有一次为了把一个内存的工作原理的问题弄明白,我嫌家里的书少,网上的资料不够,直接跑到国家图书馆待了半天。
3. 别偷懒,加上动手验证实测
但其实这个时候你的理解深度还远远不够。而且还有可能是你查到的资料是片面的,甚至有可能都是错的。这时候的动手实际测试显得尤为重要,用各种性能测试工具也可以,自己直接亲手写一段代码也ok。反正就要用实践检验理论是否正确。不正确的时候,再去别的地方搜其它的解释。
如此往复迭代,直到把疑惑彻底消灭掉为止~我曾经为了搞懂一条TCP连接消耗多大的内存,一台机器到底能不能突破65535条连接而进行了大量的实验,理解了TCP连接的实现以后,客户端的并发也爆发了!百看不如一练,动手测试单机百万连接的保姆级教程!
4. 将你的成果用起来,提升项目效果最后这一步是点睛之笔。
只有对实际工作提升的技术才是有价值的技术。把你的深度思考的结论应用到项目中,将项目的效果进行提升。举个我几年前的小栗子,当时接手了前任开发留下来的一个推送模块,推送一次要跑将近12个小时。经过我剖析业务逻辑后发现主要耗时都花在了用几百万的imei到一个几千万条记录的数据库里查询了,大量的网络IO加随机磁盘IO。我把业务逻辑进行了改造,而是一次性将表中数据全查下来。然后在本地机器上在执行顺序读取遍历查询。这样大量的网络IO、大量的远程mysql server的随机磁盘IO全被我干掉了。在mysql上和本地服务器上全部都是磁盘顺序IO。整体耗时直接从12小时下降到了20分钟左右。
5.时间管理最后再聊聊时间管理吧。
住的尽可能离公司近一点,如果实在受成本限制,那就想办法把路上的时间利用起来,听一下技术音频课程,或者是包里随身带两本书。我个人的做法是我在公司的工作时间之内完成公司的开发需求。等到下班或者早上,反正每天固定要抽1-2个小时围绕工作中的技术点进行深度的思考,然后都写成技术文章并分享出来,
开发内功修炼当你每次都能用你深厚的技术能力把工作效果提升好几倍的时候,你其实就达成了一种技术和工作互相促进的良性循环。
最后,如果公司确实全年都把你的时间打到每天连1-2个小时都抽不出来,一个月只休息两三天。那可能还是趁早换一家吧。