热门教程推荐
  • 【一】数据结构与算法
    【一】数据结构与算法
    数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素集合。它包含三方面的内容,逻辑关系、存储关系及操作。
  • 【三】Java流程控制语句
    【三】Java流程控制语句
    从结构化程序设计角度出发,程序有3种结构:顺序结构、选择结构和循环结构。若是在程序中没有给出特别的执行目标,系统则默认自上而下一行一行地执行该程序,这类程序的结构就称为顺序结构。
  • 【一】算法是什么
    【一】算法是什么
    提到“算法”,很多人都觉得它高深莫测、晦涩难懂。事实上的确存在一些算法,学员必须具备优秀的数学基础和编程能力才能驾驭。
  • 【二十一】创建之单例设计模式
    【二十一】创建之单例设计模式
    单例模式是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
  • 【九】部分背包问题
    【九】部分背包问题
    背包问题是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。
  • 【二】Unity3D视图界面
    【二】Unity3D视图界面
    Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面
  • 【九】Unity3D游戏发布
    【九】Unity3D游戏发布
    Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布
  • 【十】表查找解
    【十】表查找解
    查找表又可分为静态查找表和动态查找表。借助静态查找表可引申出顺序查找算法、折半查找算法、分块查找算法等;而记住动态查找表,也可以通过构建二叉排序树、平衡二叉树等实现查找操作。

30岁游戏行业八年努力却无一款成功上线游戏,心力交瘁是否该转行?

2369

这个问题是一个共性的问题,如何在繁忙的工作中持续提升继续能力。

我个人从10年硕士毕业以后到现在已经工作了10年多了,绝大部分时间都在腾讯、搜狗等厂发展,,现在是搜狗的专家开发工程师。 我来说说我的看法~当你工作了以后,你会发现抽出时间来学习貌似是一件很困难的事情。现在很多公司都是996,早9晚9,12小时的高强度工作导致下班后根本不想再动脑子。

30岁游戏行业八年努力却无一款成功上线游戏,心力交瘁是否该转行?_求职汇总-游民部落(gamecolg.com)

当你工作了以后,你会发现事情不像你想象的那么美好,并不是时时刻刻都是在做高技术含量的事情。你的大部分时间将被工作上的各种琐碎的会议、业务需求、线上维护、bug处理所占据。当你工作了以后,可能感觉每天做的都是各种杂事。不单单技术感觉难以成长,就连年底的绩效考评成绩可能也是平平淡淡,没有亮点可言。你的自信也在一点一点的被磨没。这种情况下,怎么破局,来保证自己的技术能力能够持续进步,工作绩效能够突出? 


我觉得办法总比困难多,我来分享下我在工作中的技术成长方法,供大家参考。我分享的方法可以分成四步:

1.保持好奇,勤于在项目中发现问题我觉得第一点应该要保持一颗好奇心,多多去项目中发现问题。

我举两个我个人刚工作前两年时间里的两件事情。


第一件事情是在,2010年的时候,我在第一家公司还是一个新人,我发现我们所开发的客户端启动一次特别的慢。于是我开始思考Windows进程启动的过程中都干了啥,有哪些地方可以优化一下。后来进过系统的研究后我用了两个手段进行改进,将启动速度提升了15%左右。并总结成文反馈给了我的领导。

鉴于此类的工作输出比较多,刚工作一年多的时候,我的leader就准备提升我为副组长了。不过我还是更热爱互联网,于是婉拒了领导的挽留,我再2011年跳槽到了腾讯。


第二件事情是在腾讯内部我同样在工作中进行了深度的知识整理。当时老大给我分配到了一个模块,所有合作方数据源的图片下载模块。这个模块的需求描述起来也很简单,就是把合作方数据中的图片url摘出来,然后下载并存储到腾讯的服务器上。在这个过程中,引发了我很多的思考。比如新建一个空文件的话消耗磁盘空间吗?

一个文件夹下最多能存多少个文件?文件名太长了的话会影响系统性能吗?基于这些深度的思考我进行研究和学习,后来的技术方案就是为了提高性能,我们将文件通过hash的方式散列到三级目录结构下。保证每一次获取文件都很快完成。而且我还整理除了一篇热文,该文章在腾讯内部KM年度热文榜上登顶,而且在外网也是广为流传。现在这篇文章的地址是发表在了我的个人公众号里了,参见《Linux文件系统十文》。


也欢迎大家前来关注我的这个公众号:开发内功修炼,在这里我把我对网络、CPU、内存、硬盘等方向的深度思考都总结好放在了这里。



2.带着问题去深度思考、查各种资料在我思考的过程中,我需要回头去翻各种经典书籍、看Linux的内核源代码,以及其它各种网上的资料。

曾经有一次为了把一个内存的工作原理的问题弄明白,我嫌家里的书少,网上的资料不够,直接跑到国家图书馆待了半天。

30岁游戏行业八年努力却无一款成功上线游戏,心力交瘁是否该转行?_求职汇总-游民部落(gamecolg.com)


3. 别偷懒,加上动手验证实测

但其实这个时候你的理解深度还远远不够。而且还有可能是你查到的资料是片面的,甚至有可能都是错的。这时候的动手实际测试显得尤为重要,用各种性能测试工具也可以,自己直接亲手写一段代码也ok。反正就要用实践检验理论是否正确。不正确的时候,再去别的地方搜其它的解释。


如此往复迭代,直到把疑惑彻底消灭掉为止~我曾经为了搞懂一条TCP连接消耗多大的内存,一台机器到底能不能突破65535条连接而进行了大量的实验,理解了TCP连接的实现以后,客户端的并发也爆发了!百看不如一练,动手测试单机百万连接的保姆级教程!


4. 将你的成果用起来,提升项目效果最后这一步是点睛之笔。 

只有对实际工作提升的技术才是有价值的技术。把你的深度思考的结论应用到项目中,将项目的效果进行提升。举个我几年前的小栗子,当时接手了前任开发留下来的一个推送模块,推送一次要跑将近12个小时。经过我剖析业务逻辑后发现主要耗时都花在了用几百万的imei到一个几千万条记录的数据库里查询了,大量的网络IO加随机磁盘IO。我把业务逻辑进行了改造,而是一次性将表中数据全查下来。然后在本地机器上在执行顺序读取遍历查询。这样大量的网络IO、大量的远程mysql server的随机磁盘IO全被我干掉了。在mysql上和本地服务器上全部都是磁盘顺序IO。整体耗时直接从12小时下降到了20分钟左右。

30岁游戏行业八年努力却无一款成功上线游戏,心力交瘁是否该转行?_求职汇总-游民部落(gamecolg.com)

5.时间管理最后再聊聊时间管理吧。

住的尽可能离公司近一点,如果实在受成本限制,那就想办法把路上的时间利用起来,听一下技术音频课程,或者是包里随身带两本书。我个人的做法是我在公司的工作时间之内完成公司的开发需求。等到下班或者早上,反正每天固定要抽1-2个小时围绕工作中的技术点进行深度的思考,然后都写成技术文章并分享出来,


开发内功修炼当你每次都能用你深厚的技术能力把工作效果提升好几倍的时候,你其实就达成了一种技术和工作互相促进的良性循环。


最后,如果公司确实全年都把你的时间打到每天连1-2个小时都抽不出来,一个月只休息两三天。那可能还是趁早换一家吧。


特别声明:本文仅供交流学习 , 版权归属原作者,并不代表游民部落赞同其观点和对其真实性负责。若文章无意侵犯到您的知识产权,损害了您的利益,烦请与我们联系vmaya_gz@126.com,我们将在24小时内进行修改或删除。

相关推荐:

同类推荐
  • 【一】数据结构与算法
    【一】数据结构与算法
    数据结构是一种具有一定逻辑关系,在计算机中应用某种存储结构,并且封装了相应操作的数据元素集合。它包含三方面的内容,逻辑关系、存储关系及操作。
  • 【三】Java流程控制语句
    【三】Java流程控制语句
    从结构化程序设计角度出发,程序有3种结构:顺序结构、选择结构和循环结构。若是在程序中没有给出特别的执行目标,系统则默认自上而下一行一行地执行该程序,这类程序的结构就称为顺序结构。
  • 【一】算法是什么
    【一】算法是什么
    提到“算法”,很多人都觉得它高深莫测、晦涩难懂。事实上的确存在一些算法,学员必须具备优秀的数学基础和编程能力才能驾驭。
  • 【二十一】创建之单例设计模式
    【二十一】创建之单例设计模式
    单例模式是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
  • 【九】部分背包问题
    【九】部分背包问题
    背包问题是一种组合优化的NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。
  • 【二】Unity3D视图界面
    【二】Unity3D视图界面
    Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面Unity3D视图界面
  • 【九】Unity3D游戏发布
    【九】Unity3D游戏发布
    Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布Unity3D游戏发布
  • 【十】表查找解
    【十】表查找解
    查找表又可分为静态查找表和动态查找表。借助静态查找表可引申出顺序查找算法、折半查找算法、分块查找算法等;而记住动态查找表,也可以通过构建二叉排序树、平衡二叉树等实现查找操作。