双二本计算机科班,C++学了几年却听说想进互联网就别选C++,这是真的吗?
今天给大家分享的是一位粉丝的提问,双二本计算机科班,C++学了几年却听说想进互联网就别选C++,这是真的吗?
接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。
同学提问:
想进互联网就别选C++?老师好,我是双二本硕计算机科班,从大一开始就一直在学习C++。现在马上就要准备实习了,但是看到网上很多的帖子说想进互联网行业就千万不要选C++,一些学C++没有拿到offer的学长这么说就算了,还有一些靠C++上岸的学长也是这么说的,劝我别没苦硬吃。我想问的是,现在的行情,C++真的已经不适合互联网公司了吗?如果是,那学C++的出路在哪里?如果不是,那他们又是如何得出这样的劝退结论的呢?
Yt回答:
首先来说这种互联网别选C++我认为这个东西它是有一定道理的,因为互联网的开发更多来说它会有很多的业务,比如说现在B站也好,抖音也好,你在B站上面比如看到这种聊天室,或者说你看到现在的这种刷视频的时候,包括看到评论点赞一些,乃至包括你在淘宝上面买东西的时候,这种互联网的,你发现大量的这种业务存在,而且版本迭代很快。那这种业务你发现C/C++在这个过程中间它能什么作用吗?它没有什么作用,它很难起到一个对业务上有帮助。当然C/C++它不适合做业务开发,这就导致了C/C++没办法走向互联网最核心的一个环节,业务开发,它走不了。那为什么C/C++它不能够去做业务呢?为什么这种Java go Python它适合呢?因为Java go的话,你会发现它们语言很优秀,它优秀的是什么?就是使用它的人不需要太懂,你比如你使用Java,你想把这个进程或者想把这个应用写崩溃,我认为几乎不可能。你比如说使用go,你能够把这个进程写崩溃,可能性也不大。但是C/C++不一样,你写的不好很容易崩溃,你写的好一样也会崩溃,那很多同学写的好为什么也会?因为你扛不住别人在后面用你的代码,他在迭代,别人在你的代码上面再迭代的时候,他可能开发他不会注意,他不管你写的好不好。所以C/C++这种它不适合做业务开发,如果你拿着它做业务,我认为真的是没苦硬吃,而且你发现整个公司它都会很痛苦,后面根本就没办法,别人都没办法维护这款代码,整个代码你会发现如果去针对业务的话,我认为这个它是不合适的。
那C/C++在互联网公司它适合做什么?你比如所用的CDN,包括网关,乃至包括这种DNS服务,这种它功能很简单,但是对性能要求很高。包括这种图片存储,分布式文件系统,乃至包括这种KV存储,数据库,这种单点的基础设施它会用到C/C++语言。为什么?因为这种对外的接口功能它很简单,但是它的性能要求很高,这种它会用到C/C++。
现在理解完它语言的使用场景以后,我们再来说接下来这个事情,说这个互联网别选C++,马上实习了,千万不要选C++,学C++是拿不到offer的。首先来说我认为C++,如果你站在一种学C++的角度,那你会发现你学完之后它确实是啥也干不了。大家有没有考虑过一个情况,你比如说现在像那种语言排行榜,TIOBE排行榜,你不管哪个月去看,C/C++一直排在前几,有没有考虑过,那大家说那这个C/C++为什么它一直能够排到前几?而且两者加到一起的那比例,它是可能超过Java,乃至遥遥领先于其他语言的,那为什么C/C++它还会有这么多?那大家来说这个学C++,难道它好像跟这个TIOBE排行榜好像有点冲突啊,既然一直排在前面,如果一直没有岗位,那不应该排在前面啊,那为什么它一直排在前面?其实大家各位你如果站在一种学C/C++,你用到这C/C++,你站在这个角度,你比如去把它语言学明白,那你发现你啥也干不了。而是在这里如果你接触底层C/C++,你会发现你的技术肯定来说它是一种面向底层的开发,而在这个过程中间你也会发现你单纯学了语言它是不够的,而且你需要配合点这种行业,你没见过哪个比如做C++的,比如这种主语言选择C/C++,他会说自己我做C++的,我搞C++的,但是你发现做Java的朋友会说我搞Java的,我搞Python的。但是C/C++不是,C/C++会说我做通信的,我做存储的,我做网络的,我做DNS的,或者我做CDN的,我做安全的,或者我做智驾的,我会这么去表述自己,我不会去更加强调语言。因为这个语言在这个过程中间来说它没有用,它是很基础的功能,更多强调的是行业的应用。我希望这一点大家能够理解,就是更多强调它是一种行业应用。
所以在这过程如果大家各位是作为应届生,你学C/C++怎么学呢?你就不要是看到某一家公司,你就不是奔着某一家公司去的,因为它中间技术太方面太杂。你就在Linux上面用C/C++做一两款产品,市面上所有的你都投,所有C/C++的岗位你都投,乃至这种不是C/C++你都可以投。你如果不知道怎么搜,你可以后面问一下我,我之前有整理过一份关于C/C++各个方向,包括音视频,存储的一个关键词汇,你该怎么搜对应的岗位,因为有些岗位根本就没有体现C/C++,但是你会发现依旧是用的C/C++。你包括很多做存储岗位,你包括这种视频处理的,你发现你压根就没有用C/C++,都没有C/C++,你发现你进去之后,它用的是C/C++语言。这就是讲到的,如果大家不知道怎么搜,后面可以问一下我,关于那个整理的一个非常完善的各个方向怎么搜的关键词,可以用一下它。
我认为学C/C++你就不用采用Java那种学习姿势,Java它是有着一个大一统的方案的,你从开始学完语法你就可以学框架,做完框架之后你就可以做点对应的项目,而且它学习路线会非常透明,但是C/C++它是不一样的。那再说回来一点,那这个C/C++它这么复杂,这么难,那为什么还会有这么多人用?我跟大家讲,即使有一天Java不存在了,C/C++依旧存在。你要知道这么多年C/C++在TIOBE排行榜里面,TIOBE排行榜它不一定准,它也不一定权威,但是市面上还是很多人把它当做一种权威,那确确实实它一直两者加到一起一直都很多,你要知道真的这个东西它贴近操作系统,也就是说整个计算机最核心的东西C/C++做的。虽说C/C++语言,C++语言很垃圾,但是你发现它依旧很强势,为什么?因为它占据了计算机最核心的这一层。
总结:
- C++确实不适合互联网业务开发,但别急着扔! 互联网公司的核心业务(比如抖音的评论区、淘宝的购物车)确实不用C++,因为这些业务需要快速迭代,Java/Go/Python更合适。但C++在底层基础设施(比如CDN加速、网关、数据库)是刚需,像腾讯的分布式存储、华为的5G协议栈都是C++写的,这些岗位薪资高且竞争小。
- C++岗位要会“搜关键词”,别只会投“C++工程师” 很多C++岗位根本不写“C++”三个字!得搜音视频开发、存储引擎、网络协议、嵌入式中间件这些关键词。比如字节跳动的视频编码岗,JD里可能只写“熟悉FFmpeg”,但实际考的全是C++内存管理和多线程。
- 别再死磕语法,行业应用才是王道 学C++得像装修工——先选好要装修的“房子”(行业)。比如:搞自动驾驶就怼穿Linux实时内核+ROS2;搞云计算就磕DPDK/SPDK网络优化;搞游戏引擎就魔改UE5源码,比如手写STL库、复刻Redis,比刷LeetCode有用多了。
- C++的鄙视链真相:菜鸟在底层,大神在顶层 劝退你的学长多半是卡在“C++业务开发”这个伪命题里。真正玩C++的大佬根本不写业务代码,而是在华为2012实验室调基站算法、在大疆写飞控内核、在商汤优化AI芯片指令集。这些地方薪资吊打互联网业务岗,35岁危机?不存在的。
计算机相关专业就业求职学习路线/offer选择/职业规划建议
工种浩:程序员yt (学习就业困惑?我们来为你答疑解惑!)免费投稿 投稿必回
#职业规划##计算机#解决计算机相关专业就业/面试/技术提升等问题解答(投稿必回)