双二本计算机科班,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++语言很垃圾,但是你发现它依旧很强势,为什么?因为它占据了计算机最核心的这一层。

总结:

  1. C++确实不适合互联网业务开发,但别急着扔! 互联网公司的核心业务(比如抖音的评论区、淘宝的购物车)确实不用C++,因为这些业务需要快速迭代,Java/Go/Python更合适。但C++在底层基础设施(比如CDN加速、网关、数据库)是刚需,像腾讯的分布式存储、华为的5G协议栈都是C++写的,这些岗位薪资高且竞争小。
  2. C++岗位要会“搜关键词”,别只会投“C++工程师” 很多C++岗位根本不写“C++”三个字!得搜音视频开发、存储引擎、网络协议、嵌入式中间件这些关键词。比如字节跳动的视频编码岗,JD里可能只写“熟悉FFmpeg”,但实际考的全是C++内存管理和多线程。
  3. 别再死磕语法,行业应用才是王道 学C++得像装修工——先选好要装修的“房子”(行业)。比如:搞自动驾驶就怼穿Linux实时内核+ROS2;搞云计算就磕DPDK/SPDK网络优化;搞游戏引擎就魔改UE5源码,比如手写STL库、复刻Redis,比刷LeetCode有用多了。
  4. C++的鄙视链真相:菜鸟在底层,大神在顶层 劝退你的学长多半是卡在“C++业务开发”这个伪命题里。真正玩C++的大佬根本不写业务代码,而是在华为2012实验室调基站算法、在大疆写飞控内核、在商汤优化AI芯片指令集。这些地方薪资吊打互联网业务岗,35岁危机?不存在的。

计算机相关专业就业求职学习路线/offer选择/职业规划建议

工种浩:程序员yt (学习就业困惑?我们来为你答疑解惑!)免费投稿 投稿必回

#职业规划##计算机#
计算机就业职业规划辅导 文章被收录于专栏

解决计算机相关专业就业/面试/技术提升等问题解答(投稿必回)

全部评论

相关推荐

头像
05-26 22:25
门头沟学院 Java
to_Sunway:这家公司前几天我也沟通过,初创的日用品公司想做个大型的AI项目好像是
点赞 评论 收藏
分享
昨天 16:32
门头沟学院 C++
2. 是对视频进行识别,还是分割成图片?素材来源是什么?  3. 是否属于无监督或自监督学习?是否需要标注数据?  4. 如何验证检测精度的提升?反馈机制是什么?  5. 解释无监督学习、自监督学习、强化学习的本质区别  6. 举例说明无监督学习的应用场景  7. 强化学习的例子有哪些?  8. 大语言模型的训练方式是什么?是否需要监督?  9. 大语言模型突然火爆的驱动因素是什么?  10. C++与C语言的核心区别是什么?  11. 面向对象三大特性(封装/继承/多态)的具体含义  12. C++多继承可能引发什么问题?如何解决菱形继承问题?  13. 抽象类与接口的区别是什么?  14. C++多线程的实现方式及如何保证线程安全  15. 单例模式的实现方式(如懒汉式如何保证线程安全)  16. 死锁的触发条件及场景  17. C++内存分区(堆/栈/全局区等)及区别  18. STL中vector和map的底层实现原理  19. 哈希冲突的解决方法  20. 设计模式的分类及创建型模式的具体类型  21. 工厂模式与抽象工厂模式的区别  22. 进程和线程的核心区别  23. 线程的生命周期及是否可以多次start  24. 网络七层/五层协议的分层结构  25. TCP协议的特点及三次握手/四次挥手的原因  26. UDP协议的特点及适用场景  27. HTTP协议版本差异(如1.0/2.0)  28. HTTPS握手过程与HTTP的区别  29. 浏览器输入URL到渲染的完整流程  30. Git分支管理协作流程(如合并冲突处理)  31. 算法题:单链表删除倒数第N个节点32.生产者消费者模型
点赞 评论 收藏
分享
少糖去冰的小师弟很沉稳:一群cs公司lz摇奶茶都不止这点钱,md3k***
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客企业服务