V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
twi3325831
V2EX  ›  职场话题

求指点 Linux C++ 后台开发 5 年左右的应有能力

  •  
  •   twi3325831 · 2020-05-15 19:50:51 +08:00 via iPhone · 4369 次点击
    这是一个创建于 1654 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先说说自己的情况:我毕业于某二本计算机专业,从毕业后就就职于某游戏厂,做服务器端的开发,到现在已经有四年多了。做过两个项目,一个 SLG,一个 MMO,最近在技术和职业发展上感到有点儿迷茫。四年多了,感觉自己在技术上的成长不大,离大厂的要求不知道还有多远。项目又疯狂加班,晚上回家都 11 点了,想看书学习,只能熬夜抽出点儿时间看到两三点再睡。最近耳朵血管一跳一跳的,很明显,不知道是不是熬夜太多了。。。

    技术上,目前就是 C++ 用的勉强算比较熟一点儿,《 Effective C++》《 Inside C++ Object Model 》等一些书都看过,会玩玩模板和元编程(当然远远比不上知乎的黑魔法大佬们),写过一套玩具级的元编程库(为了在 C++11 里实现 C++14 、17 里的一些 tuple 相关的功能),为了刷 Leetcode 还写过一个简单的测试库,写几组 TestCase(method_name).input(…).expect(…) 就能自动判断输出与预期的正确与否并统计结果,不用自己单独处理测试数据的输入输出。

    Lua 方面,还算了解一点儿,正在研究源码,GC 、表、字符串、函数等部分都看过了,在写相关的源码学习笔记,和 C++ 的交互也还算了解,自己写了一套 C++/Lua 的绑定库,也给项目在用的绑定库添加过几个小功能。 项目方面,对项目整体架构还算比较熟悉,但是基础框架部分都没有参与到开发中。

    自己负责做 AI,但是项目里框架是用的腾讯的 behaviac,后面自己学习了相关的 C++实现反射一类的机制后,自己在写一套行为树框架,也是玩具级的吧,并没有用到项目中。寻路是直接用的第三方的寻路库,各种算法也没有深入去了解过。其它业务玩法逻辑都没啥好说的。

    项目不用 Redis,而是自己搞了一套缓存层; sql 部分项目用一套自己的 ORM 框架封装了起来,Mysql 也没深入了解过,项目用不到那么多特性。。。

    网络库是一个仿写的 asio 框架,网络协议不是 protobuf,而是一个精简版的、项目自己实现的类 protobuf 协议。

    上面提到的数据库、网络、协议相关的模块,也都去研究过这一部分的实现,但几乎只看不写(只改过),感觉还差点儿什么。我只是看过一些讲事务、MMVC 、B+ 树的文章,《 TCP/IP 卷一》仔细看过 TCP 相关的章节,在考虑要不要花时间研究一下卷二里 TCP 的实现。

    调优方面,AI 部分的优化是我做的,主要思路就是:减少 AI 执行的频率和数量,不必要执行的时候不执行,以及减少浪费的空轮询等措施。编译相关的优化深度参与过,将项目编译时间从 1 个多小时优化到了 10 分钟,但是其实做法也是很简单的,比如优化头文件依赖、隐藏头文件里的实现、精简自动生成的代码等。其它优化不是自己做的,有专人负责,比如角色缓存预加载、多线程初始化、共享内存存放重要数据、宕机防护、内存泄漏排查、协议序列化优化 什么的,但是也跟着了解过,看过相关的实现和修改。

    还会写点儿 Python,写过一些工具来根据配置自动生成代码,不过这都很简单,没啥好说的。

    项目加班这么厉害,却没有奖金,工资也一般,但是又总想干完这个项目,有始有终。所以一直间歇性地陷入抑郁、焦虑的状态,上海房价又这么高,总感觉永无翻身之日。看着组里更资深一些的同事每天积极地加着班、活跃地排查项目问题、提出各种调优方案、进行压力测试,总觉得心里悬着不上不下的,他们怎么那么肝、那么强呢。。。明明工资都不高啊。。。

    其实主管还是挺看重我的,虽然工资不高,但是每年的调薪机会都优先给我了。不过尽管这样,也就让我现在的 base 达到了互联网大厂应届生的水准吧。。。觉得挺对不住他的,今年想走,还又涨薪来挽留。。。

    但是因为项目环境等一些因素,还是想走。一个想法是去更大的平台,如果都要加班,不如去个收入更多的地方。或者不知道有没有加班不那么多的地方。。。也在考虑要不干脆转互联网,去做互联网后台开发,听说互联网一般也就加班到 9 点。。。但是互联网后台开发一般都要求分布式、存储、容器相关的经验,这几块比较欠缺。

    目前的打算:准备继续把 Lua 源码研究完(可能除了 parser 部分),然后研究 Redis 或者 leveldb 的源码。如果继续在游戏行业发展,就再研究一下 kbengine 。同时继续刷题,现在已经刷了几十题了吧,Medium 的还好,Hard 几乎是遇见就跪。

    毕竟待了好几年没挪过,不知道外面的行情和要求,求知乎大佬们帮忙解惑一下,也可以供其他有相同困惑的小伙伴们参考。

    Linux C++ 5 年后端需要掌握哪些技术和业务知识?需要多深?如果从游戏后端转互联网开发,需要具备什么样的能力才有机会?接受转语言。

    万分感谢!

    41 条回复    2022-10-31 11:33:26 +08:00
    oxogenesis
        1
    oxogenesis  
       2020-05-15 19:58:03 +08:00
    c++11 protobuf leveldb
    楼主能看懂 rippled 的源码吗
    lights
        2
    lights  
       2020-05-15 21:01:30 +08:00
    比我强太多(虽然我之前不是 C++ 方向),但我就是一个 CRUD boy
    jmc891205
        3
    jmc891205  
       2020-05-15 21:07:35 +08:00   ❤️ 1
    没什么互联网公司后端在用 C++吧
    YouXia
        4
    YouXia  
       2020-05-15 21:15:10 +08:00
    重要的是领域知识。
    catch
        5
    catch  
       2020-05-15 21:15:58 +08:00 via iPhone
    11 点还学习?大厂需要你
    twi3325831
        6
    twi3325831  
    OP
       2020-05-15 21:22:00 +08:00 via iPhone
    @catch 因为感觉自己技术上还差好多😂
    twi3325831
        7
    twi3325831  
    OP
       2020-05-15 21:23:00 +08:00 via iPhone
    @oxogenesis 区 /块 /连没有了解过。。。
    twi3325831
        8
    twi3325831  
    OP
       2020-05-15 21:23:54 +08:00 via iPhone
    @jmc891205 感觉只有基础部门才招,但是这些部门好像要求又很高。。。
    twi3325831
        9
    twi3325831  
    OP
       2020-05-15 21:26:07 +08:00 via iPhone
    @YouXia 是啊,我看一些互联网 C++的 JD,光从语言数据结构网络的要求上根本看不出来要哪些领域知识,唯一的其它要求就是提到分布式,容器什么的。。。
    cabing
        10
    cabing  
       2020-05-15 21:28:45 +08:00
    五年来说,确实有这种感觉。

    看看大厂 jd 吧。加油。
    twi3325831
        11
    twi3325831  
    OP
       2020-05-15 21:34:03 +08:00 via iPhone   ❤️ 1
    @lights 你也是转行的吗😂 加油,我公司没 UE 的项目。不然倒是可以帮你内推一下
    twi3325831
        12
    twi3325831  
    OP
       2020-05-15 21:35:02 +08:00 via iPhone
    @cabing 谢谢,不过 JD 太笼统了,光看 JD 看的云里雾里的,看了好多个了😂所以来这里问一下大家
    cabing
        13
    cabing  
       2020-05-15 21:38:52 +08:00
    @twi3325831

    算法第一关。

    基础语法考察,进程通信,网络,多线程,模板。

    会问下架构设计能力吧。
    peachpeach
        14
    peachpeach  
       2020-05-15 21:50:21 +08:00 via iPhone
    工资高不高,跟技术难度不直接挂钩。
    跟需求直接挂钩,也很资本挂钩。

    IT,目前貌似就互联网工资最高吧。
    所以都往里面挤。
    peachpeach
        15
    peachpeach  
       2020-05-15 21:59:12 +08:00 via iPhone   ❤️ 1
    再说几句废话。

    像码农这种,钻在技术里,很少去了解社会游戏规则的。最是容易被资本家压榨,尤其到了中年,工程师却没有到财富自由的时候,最惨。

    楼主这真是玩命,别还没起飞,就先坠机了。身体才是最重要的。
    csl1995
        16
    csl1995  
       2020-05-15 22:06:13 +08:00 via iPhone
    老哥,你这也太狠了吧。毕业 5 年,加班到晚上 11 点,才应届水平(脉脉应届吗? 50 个?)。你在这儿写这么多没什么意义,建议出去面试试试,也没什么损失。能知道哪些地方有欠缺,针对性提升,容易拿到 offer 。
    twi3325831
        17
    twi3325831  
    OP
       2020-05-15 22:10:41 +08:00 via iPhone
    @csl1995 现在 20k,没有奖金,年终 1w😂 谢谢建议,我准备补一下存储和分布式计算的一些知识就投几家试试水,看面试官会问什么
    twi3325831
        18
    twi3325831  
    OP
       2020-05-15 22:11:44 +08:00 via iPhone
    @peachpeach 谢谢 😂 这几天熬夜少一些了,我也怕猝死
    cabing
        19
    cabing  
       2020-05-15 22:51:32 +08:00   ❤️ 1
    c++我也是简单维护项目的水平,看别的组是这么面的,仅供参考
    heiheidewo
        20
    heiheidewo  
       2020-05-15 22:57:20 +08:00
    感觉楼主跟我一样,不过我是移动客户端,工作在 c++/oc 间切换,毕业后就没看过书了,大学刷过 500 到 poj 题目
    twi3325831
        21
    twi3325831  
    OP
       2020-05-15 23:04:26 +08:00 via iPhone
    @@cabing 好的,谢谢~我先继续刷题好了,多刷点儿题应该准没错。语言、操作系统、多线程、网络这些还好,一直在看。架构设计这个,我看很多 JD 上都写“大规模高并发系统设计”、“分布式系统设计理论”,这个我得琢磨琢磨 😂
    twi3325831
        22
    twi3325831  
    OP
       2020-05-15 23:08:48 +08:00 via iPhone
    @heiheidewo 我本科拿过 ACM 省赛的奖,但是更高的比赛就没参加过了。工作几年也忘的差不多了,重新刷起来 😂 移动端还好吧,机会比我们多多了,还能自己做点儿独立 APP,我还挺羡慕的,一直想抽时间学学 swift
    Meltdown
        23
    Meltdown  
       2020-05-15 23:21:58 +08:00 via Android
    感觉你和我挺像的,我觉得会的杂是要不了高价的,会的杂总能找到差强人意的工作,但是容易被人替代,没有高价值,要选一个方向成为自己的看家本领才行。
    yizhimamong
        24
    yizhimamong  
       2020-05-15 23:29:40 +08:00 via iPhone
    楼主今年多大
    q8164305
        25
    q8164305  
       2020-05-15 23:44:44 +08:00 via Android
    我觉得你挺厉害的,但是赚不赚钱不是你技术牛逼就赚钱,要项目赚钱你自然就赚钱了,很多赚钱的项目不一定需要多厉害的技术
    allencloud
        26
    allencloud  
       2020-05-15 23:52:57 +08:00
    我感觉你的技术栈适合腾讯呀。目前的包天天 11 点太不值了。听你描述感觉也是平时比较会自学的童鞋,看好你去大厂
    twi3325831
        27
    twi3325831  
    OP
       2020-05-16 00:07:59 +08:00 via iPhone
    @yizhimamong 28 了。。。要而立之年了
    twi3325831
        28
    twi3325831  
    OP
       2020-05-16 00:10:43 +08:00 via iPhone
    @q8164305 😂 这就要看选择和运气了
    twi3325831
        29
    twi3325831  
    OP
       2020-05-16 00:19:55 +08:00 via iPhone
    @allencloud 谢谢😂 准备刷刷题,后半年投一下
    oxogenesis
        30
    oxogenesis  
       2020-05-16 07:07:12 +08:00
    @twi3325831
    我的意思是搞区块链比去什么互联网有前途
    peter1988
        31
    peter1988  
       2020-05-16 09:29:32 +08:00
    20 也不算太低吧
    latyas
        32
    latyas  
       2020-05-16 10:40:19 +08:00
    你都工作五年了, 我觉得应该不是还在"学习使我快乐"的状态了吧?
    p2pCoder
        33
    p2pCoder  
       2020-05-16 10:53:37 +08:00
    推荐引擎 广告引擎 深度学习的基础组件及分布式框架还是 c++的天下
    楼主可以在这个方向多尝试下
    我是敢鸭子上架 写了快一年的 c++推荐引擎,c++服务器开发还没怎么入门,主要写策略
    部门周围的腾讯 百度出来的 c++开发,路子也挺宽,天花板也不低
    fujiwaretakumi
        34
    fujiwaretakumi  
       2020-05-16 11:30:36 +08:00 via iPhone
    @jmc891205 百度,腾讯
    chejy
        35
    chejy  
       2020-05-16 14:21:48 +08:00
    楼主水平还可以拉,不用妄自菲薄,如果考虑网易游戏的话可以跟我沟通下
    twi3325831
        36
    twi3325831  
    OP
       2020-05-16 18:54:45 +08:00 via iPhone
    @chejy 谢谢😂 主要就是特别焦虑。。。因为一些原因,今年内都不能跳去游戏公司,而且这两个项目下来,综合各种因素,发现自己做游戏其实并不是很开心。想了想,现在打算深入学习一下分布式的课程,准备转行。。。
    twi3325831
        37
    twi3325831  
    OP
       2020-05-16 18:55:38 +08:00 via iPhone
    @p2pCoder 我在看 MIT 6.824 了,希望转行顺利
    leon0903
        38
    leon0903  
       2020-05-16 21:34:52 +08:00
    我以前也是做 C++的,做了三年多就没做了,但是明显的感觉 lz 水平要比我高很多。lz 加油,希望能够找到自己合适的方向
    qiuyesuifeng
        39
    qiuyesuifeng  
       2020-05-21 12:08:52 +08:00
    @twi3325831 如果你对于 infra 方向比较感兴趣的话,其实你可以考虑下这个 https://www.v2ex.com/t/667863,最近很多小伙伴们在一起学习交流,氛围也很重要
    byaiu
        40
    byaiu  
       2022-06-05 08:41:51 +08:00 via iPhone
    楼主现在去哪里发展了?
    xjp9832
        41
    xjp9832  
       2022-10-31 11:33:26 +08:00
    楼主现在情况怎么样了,我现在是 2 年半 C++游戏服务器开发,也打算转行了,可以和前辈交流交流吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2309 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:03 · PVG 08:03 · LAX 16:03 · JFK 19:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.