求指点 Linux C++ 后台开发 5 年左右的应有能力 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
twi3325831
V2EX    职场话题

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

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

    首先说说自己的情况:我毕业于某二本计算机专业,从毕业后就就职于某游戏厂,做服务器端的开发,到现在已经有四年多了。做过两个项目,一个 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 0: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 方向比较感兴趣的话,其实你可以考虑下这个 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     Solana     1065 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 23:19 PVG 07:19 LAX 15:19 JFK 18:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86