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

[自我提升] 求问有哪些写C++的公司

   
全局:
embedded system就行,谷歌的chrome os
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-KGZMH  | 添加认证 | 2023-1-25 00:28:48 来自APP
Cadence, Datadog and Snowflake.
回复

使用道具 举报

🔗
mvtec 2023-1-25 01:22:21 | 只看该作者
全局:
我做C++15年了
这个语言对初学者并不友好
而且有很多知识点你可能只有用到的时候才知道

最近面试,有家公司专门考template meta programming
比如给你个tuple,如何reverse tuple in compile time.
还有一堆其他的深坑,比如std::any 的实现
type erasure. Waral dи,
总之,C++不好搞。

评分

参与人数 3大米 +3 收起 理由
vivflynn + 1 赞一个
NiCEtmtm + 1 给你点个赞!
Zackhardtoname + 1 赞一个

查看全部评分

回复

使用道具 举报

地里匿名用户
🔗
匿名用户-RLFAB  | 添加认证 | 2023-1-25 01:44:31
看了一圈,感觉最近2年各大公司又用回Java了.....
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-SJXTW  | 添加认证 | 2023-1-25 01:49:38
我司engine team就是c++
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-BJ3EK  | 添加认证 | 2023-1-25 02:04:13 来自APP
各位大佬,小弟想学以致用C++,有什么好的推荐项目可以上手写写看吗?小弟有多年C#/java工作经验,上过c++网课,对那些指针和memory management也不陌生,但是每次感觉就是停留在学过的层次上,每次上手想写点什么,发现java或者python写的更快,虽说performance可能没c++这么好,求大佬们推荐可以怎么上手用C++。
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-5CDYW  | 添加认证 | 2023-1-25 02:10:52
匿名用户 发表于 2023-1-24 01:58. Χ
主要觉得C++干久了跳槽可以直接聊项目和C++,不用硬拼刷题,毕竟C++ domain knowledge挺稀缺的,私心还有 ...

好吧,你开心就好。
路过的其它NG:C++是血泪坑,为了自己的身体和职业前途,请早早换Python或者Java
回复

使用道具 举报

🔗
mvtec 2023-1-25 02:13:52 | 只看该作者
全局:
匿名用户 发表于 2023-1-24 12:04. Waral dи,
各位大佬,小弟想学以致用C++,有什么好的推荐项目可以上手写写看吗?小弟有多年C#/java工作经验,上过c++ ...

1. 自己写个smart pointer class
2. 把vector/list实现以下
3. 写个memory pool,熟悉一下std::allocator
4. 自己写个类似std::function,熟悉一下type erasure
5. 实现以下type list,熟悉template metaprogramming
先做这么多吧

评分

参与人数 2大米 +2 收起 理由
Helloitsme123 + 1 赞一个
geminass02 + 1 赞一个

查看全部评分

回复

使用道具 举报

地里匿名用户
🔗
匿名用户-BJ3EK  | 添加认证 | 2023-1-25 02:51:55 来自APP
mvtec 发表于 2023-01-24 10:13:52
1. 自己写个smart pointer class
2. 把vector/list实现以下
3. 写个memory pool,熟悉一下std::allocator
谢谢大佬,收藏了!
回复

使用道具 举报

🔗
iunknown 2023-1-25 02:51:57 | 只看该作者
全局:
本帖最后由 iunknown 于 2023-1-24 10:57 编辑

我工作用C++7,8年了,当然也大量用Java。我感觉是这样。如果我面试一个primary language是C++的senior+ candidate,我期待这个candidate有以下技能(时间有限,只是写几个例子):
1. concurrency/async/co-routine/fiber
2. knowledge in perf/latency: numa affinitization, how to saturate cpu, perf/latency profiling etc
3. deep knowledge about memory management: how to avoid unnecessary memcpy, raii pattern etc
4. knowledge about OS kernel
5. Knowledge about network stack: analyze tcpdump etc
以上这些都是单机上的skill,分布式的skill基本和语言无关。
说上面这些的意思是如果你的日常工作语言是C++,但却不能获得以上技能,其实用C++的意义不大。简单来说,用C++的目的是为了take most out of a single machine's resource/maximize per servcie throughput/rps/minimize latency,或者说build high performance *data path* application-baidu 1point3acres

补充内容 (2023-01-28 09:12 +8:00):
很惊讶收到这么多赞,我以为这是个小众的话题,当时也没有太认真回复。看到有朋友问哪里去学这类东西。我补充几句,防止误导大家,尤其工作不久的朋友。disclaimer: 我是做分布式系统的,完全不了解C++的其他应用场景。.google  и

首先,我之前说的那些知识未必是值得学习的,并没有太多公司/产品需要high performance data path service。如果想一直做distributed system infra的朋友,可以投入精力。即使做infra,对于工作年数不多的朋友,在花费大量时间研究这些topic之前,一定要保证自己先成为distributed system generalist,再去become high performance data path service specialist。. Χ
. 1point3acres.com
如果要学习这些我之前提到的topic,最好的方法是你所在公司有已知的这种application。尤其是那种P99 latency在sub millisecond,单机RPS过500k的。这种service大概率都会优化我之前说到的那几个方面。你去看它的code就可以。top performance killer一般就这么几个:
1. memory copy: e.g. if you are doing AES-XTS, are you doing that in-place?
2. system call: minimize the number of syscalls. 例如如果一个service有大量文件/磁盘操作,大概率会使用AIO/io_uring来减少syscall的数量。这也是为什么很多service用user space network/storage stack的原因e.g. DPDK, SPDK..
3. context switch: 之前concurrency/async我已经说过了
4. numa issue: 例如通常要reserve cpu来handle NIC interrupt (尤其NIC没有TCP offloading),而且这个cpu要和process network requests的thread在同一个numa。
5. cache: cache miss, cache false sharing etc.
如果自己公司没有这种service,可以看开源的这类产品,但一定要是prod ready的开源产品。

评分

参与人数 25大米 +27 收起 理由
xiao12345 + 1 赞一个
laoshucike + 1 赞一个
clubfantasy + 1 赞一个
pcc_1517 + 1 赞一个
lululucas2013 + 1 赞一个

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
职场达人
  • ↑ 本版用于讨论职场各种干货话题,闲聊请去🔗聊聊或者🔗匿名版
  • ❌ 本版严禁水贴,引战,发布广告,拉群,贴个人联系方式,扣分无警告
  • ☑ 求职、面经等去 🔗北美求职和 🔗回国求职大区,刷题和学习请去 🔗终身学习大区
  • ☑ 请去专版发布 🔗内推, 🔗招聘信息,和讨论 🔗创业内容
  • ☑ PIP / DevList/ Need Support 等话题也已开设 🔗专版

本版积分规则

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