楼主: checai1217
跳转到指定楼层
上一主题 下一主题
收起左侧

C++值得花时间学吗

   
🔗
somerror 2020-7-28 08:27:19 | 只看该作者
全局:
做底层的C++路过。楼上们说的差不多,我这边工作嵌入式,图像等一直在用。
坑少跳槽难,毕竟做应用的公司比做底层的公司多。给块芯片,要想让它可编程,都是llvm配一套编译器,然后用c/c++开发后编译成微指令。
本硕CS,私心觉得CS的课程安排做嵌入式挺合适的,不知道为什么这方向人越来越少了
回复

使用道具 举报

全局:
mark一下
回复

使用道具 举报

🔗
Akaenki14 2020-7-28 09:14:48 | 只看该作者
全局:
天啊,仿佛看到了自己。

秉承着多学知识的心态,几乎没有cpp经验的我去了一个基本只写cpp的组。现在进组刚好3个月了,基本上都在照着别人的方式写,感觉也没学到啥。上周被分配了一个很大的refactor的任务,不知所措无从下手。很难受
回复

使用道具 举报

🔗
Hero007 2020-7-28 11:08:42 | 只看该作者
全局:
本帖最后由 Hero007 于 2020-7-28 11:16 编辑

工作5年多,目前是gg的C++ readability reviewer,回答下感想:

Infra应该是最技术最工程的方向之一。而大部分核心的infra出于性能考虑,基本都是C++写的。我之前在搜索后端,所在infra组负责网页搜索实时处理query并返回结果的过程 (THE backend)。

pros: 会让你觉得学了那么多cs没白学,algorithms, operating systems, threading, concurrency, distributed systems, 还有LC hard的题目在真实场景中的实现。天花板很高,谷歌的IC可以做到11。我就亲眼看到一个ic纯技术升到了9
cons: 起步阶段升职可能会慢,pace也比产品组慢。还有就是做多了容易上瘾,觉得自己组的东西很厉害看不上产品组,然后做产品的同学已经嗖嗖嗖升上去了。还有就是当infra的manager对技术要求高很多

至于目前流行的rust,可能在小公司会很流行,但是大公司已经背了一身的C++的债了根本不可能迁移到rust。所以个人愚见学C++一点都不会亏的,



> 现在到了一个infra组待了一年,c++还是十分的摸不着头脑,有时候会因为一个很小的问题折腾好几个小时,比如segfault很难debug. code review的时候也会因为各种例如pass by reference/pass by value, 使用unique pointer 还是reference被提。改了之后也不是完全理解为什么,下次还是会再犯同样的问题。
有很多print seg fault 的stacktrace的library,看到stacktrace应该会好很多?
C++确实水很深,不是一门容易上手的语言,建议仔细研读google style guide,每一条code review的preference应该都有style guide的依据,如果没有,可以询问reviewer为什么另一种方法不好。

> 我们都知道c++的一大优势是运行速度快,不知道这个优势在除了要求极低latency的情况之外还有什么应用?
主要就是高性能高并发的infra。对于海量计算,每1毫秒的提高乘以非常高的multiplier,最后省下来的computing power是非常可观的。跳出infra的圈子,任何时候你有高性能的需求,比如高频套利的engine,c++都是最佳选择。

> 为什么c++这么多年还一直popular, 未来20年还会是这个样子吗?
Rust可能可以替代C++,但是C++在大公司已经形成了完整的生态。20年后,忽略技术爆炸,应该C++还是主流。

> 上周被分配了一个很大的refactor的任务,不知所措无从下手。很难受
楼上说的refactoring的头痛,在下感同身受。一般这种事情属于一定得有人做,但是吃力不讨好。我的建议是咬牙做下去,earn some trust, 然后开始探索自己的世界。refactor code的愉悦感如果是1的话,那么自己从0到1写C++的核心模块的愉悦感大概是100。不过想要获得这样的机会,尤其在比较core的组,需要不少的历练

评分

参与人数 10大米 +15 收起 理由
WKelvinson + 2 很有用的信息!
jyg118 + 1 给你点个赞!
victormaggie + 1 很有用的信息!
barkonstone + 2 欢迎分享你知道的情况,会给更多积分奖励!
Coeusw + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
lscgal 2020-7-28 11:17:30 | 只看该作者
全局:
学C++的背后含义不仅仅是这门语言而已。学c++也不是意味着上来就啃整本c++ primer。我之前就在各种经典c++书里面suffer了很久。

我真正从思维模式上入门c++是上了操作系统以及编译器等等基础课程。耐心学学linux内核流程,编译器原理之后回头会发现很多c++的设计是有历史原因,自洽的。然后就容易学进去。

举个例子像你提到的segfault,我在写java的时候,脑子里是stack和object。但是写c++的时候脑子里其实在想着memory。反而我不会经常用gdb去debug,我会正向在脑子里过一遍代码的流程,过到别扭的地方,可能就是问题所在了。

最后是smart pointer等等“新”feature,“新”是对于没有写过更原始的代码的同学,可以用用c99的模式去大胆写,写多了就发现c11之后的新设计很make sense了。

评分

参与人数 1大米 +1 收起 理由
jyg118 + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
crusader728 2020-7-28 11:22:48 | 只看该作者
全局:
mark一下。在知乎上看到别人用modern c++ 写的某些答案都都已经不认识了,我最近也打算重新过一遍
回复

使用道具 举报

🔗
nacyivy 2020-7-28 12:18:16 | 只看该作者
全局:
感觉c++将来也会继续受欢迎的
回复

使用道具 举报

🔗
 楼主| checai1217 2020-7-28 12:26:12 | 只看该作者
全局:
谢谢大家目前的回复,可能是我说的不是很清楚,相对于how, 我更感兴趣why c++. 主要也不是为了突破自己的舒适区(可以突破的地方太多了), why c++ helps software engineer career in the long run?
回复

使用道具 举报

🔗
shm007 2020-7-28 12:36:13 | 只看该作者
全局:
"来现在这个infra组的原因之一就是因为想把c++认认真真学一下"。然后lz你在这里问要不要学。我表示很懵逼,逻辑不自恰。

infra永远需要c++人才,而且这个方向非常硬核,做的人不多,内卷相对较少,而且还有很多方向。如果再给我选一次,我绝对选c++
回复

使用道具 举报

🔗
shm007 2020-7-28 12:39:19 | 只看该作者
全局:
“性能过剩”,不晓得为啥会有这样的“臆想”。
你看看我们的电脑主频停留在G这个层级多久了,amd搞的5nm主频比我的i3-8100 3.6G能多1.4G么?再往下你要挖到纳米以下的工艺么?这根本就是人类现在的硬件架构的计算能力极限了。我觉得只会不够用,不会过剩。除非找到了完全的新的架构,并且效率超群,并且能应用起来(这个少说换代需要5年吧)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表