1x2s 发表于 2023-10-3 19:23:50

大部分程序员的白月光都是C++吗?

如果是的话,为什么?如果不是,请分享你心中的“白月光”语言

johnwar 发表于 2023-10-3 19:24:49

可以这么说,80%的程序员白月光 都是 C++ 。
但还是为什么还有那么多人选择C++。
可能是因为C++的设计哲学吧。
尽可能给开发人员自由度,但又存在着基本规则(这一句主要针对动态语言)。
如果类比游戏的话,c++就是一个自由度高的游戏世界。
但是即使这样网上还是有很多人劝退C++。
我的理解:
因为c++是人类最伟大的编程实践!(狗头保命)
"The world is built on C++ and so is Microsoft" --Herb Sutter,c++主席。
c++很强大。只要一个领域足够复杂、并对性能有要求,那么这个领域基本会被c++霸占。
这不是我想说的重点。
c++优秀的地方在于,它是有iso国际标准的!
制定c++标准,需要250多位编程专家,23个工作小组,9个平行赛道的群策群力,多年的打磨才能完成。整个制定的过程,依赖所有人的理性决策,需要人们客观看待问题,而不是主观臆断。
在有冲突的时候,需要大家各抒己见,仔细探讨,最后投票表决。
这当中没有政治、利益冲突吗?不可能没有。微软、谷歌、脸书等大公司,都希望自己能主导标准,使其向自己喜欢的方向发展。其中有博弈,也有合作,不走弯路是很难的。
c++标准的每句话,每个单词都要经过仔细斟酌,力求没有歧义,所有人都能看明白。
很多proposal会把详细的前因后果、编译器实现、编程实例展示出来。委员会委员要透彻理解这些proposal,并找出潜在的问题和漏洞,无论支持还是反对,都要实际例子的支撑。这真的很不容易。
这就是柏拉图的理想国啊,c++实现了!这种波澜壮阔的编程活动,不令人神往吗?
985CS专业的老学长谈下学习C++的一些感受吧。
学习C++的大抵都听过这句话:
一年精通,三年熟悉五,年了解,十年用过说说我的体验吧
本科开始就开始学C++,当然只是皮毛,研究生开始看大量C++书籍,什么c++primer effective系列 modern系列,深度探索C++对象模型等,C++书籍看了不下50本,自以为对C++算很了解了。

于是,开始找工作,第一次参加了某歌在学校的笔试+面试,看了我的简历,精通C++?然后问了我一些C++相关知识,发现自己连听都没听过,随便说一个,std::string能否被继承,为什么?
这个问题看起来很简单,但是里面涉及大量的知识,比如对STL中string的实现是否了解,以及是否了解内存泄漏等等。
然后去了第一家公司做网络开发,涉及大量的TCP底层知识以及重构Linux下API
第二家公司开始做推荐系统
第三家公司负责广告引擎
也就是在这家公司,负责的项目,动不动就OOM,造成了千万损失,能体会到当时什么感觉吗?使用简单的排除法之后,发现问题跟glibc有关,所以在临时解决问题之后,用了一个月的时间,分析glibc内存管理源码.
说实话,C++我现在已经学不动了,新知识越来越多了,hold不住了,哈哈哈
最近网上看到很多人都自诩精通C++,斗胆一说,真不敢说精通,怀着一腔热血研究C++,掉进去搞了七年。C++ Primer,C++ 程序设计语言,翻来覆去看了n遍,其他的诸如Thinking in C++,Effective C++,C++ 程序设计与演进…市面上能买的到的基本都通读过。最大的一点感受,C++太博大精深了,有多少精力都能耗进去。实际项目开发中20%都用不到,模板乃至模版元编程,即使你敢写,也要掂量下你的同事能不能跟上节奏。
一度怀疑花了那么多精力学习C++是否值得,直到后面有机会专攻Webkit内核代码,里面有些对性能有变态要求的模块,诸如JavaScript解析引擎,内存池管理,C++的高级玩法都玩到了,C++的优势得得到了充分的展现。在Webkit里面浸淫了两年,在实际层面理解了C++的价值,她在复杂性管理和效率之间的有着完美平衡,但是前提是你能驾驭它。
再往后就不写代码了,回顾下C++的学习过程与我而言是一门修行,作为一个合格的程序员,深入理解一门语言是必须的,一通百通,后面Java,C#,OC基本上都是一周上手,轻轻松松。但是回顾学习本身,还是值得商阙,
1.语言光看是没用的,看了不实践,分分忘光,很多Effective C++提到的问题,只有实际犯错后才会真正记住,多看,多练。
2.语言只是知识体系里面很小的一部分,其他诸如算法,设计模式,计算机体系结构,编译系统的理解,同样重要,缺了就是短板,把读C++设计新思维,More Efftive C++的时间拿去读APUE,敏捷软件开发与实践,收获会更大。
3. 书先读厚,再读薄,看Webkit最大的感受是,里面的C++用得很克制,只是在必须使用时才会用到高阶技术,而这种场合无非是一些基础数据结构,一些对内存和性能有极致要求的地方,否则不光维护难,哪天出问题了,debug多层模版时想死的心都有…。建议看一篇Google写的C++编码规范,如果只是达到这个要求,精读三四本书就够了。
4.既然学深了就多去理解他背后的设计逻辑和哲学体系,为什么引入一些特性,抛弃一些特性,原因是什么。看看STL的一些源码,那是精髓中的精髓,最后试着自己写一套自己的基础数据结构和算法出来,比光看书有效多了。
作者:彭双全 链接:https://www.zhihu.com/question/27331184/answer/49986515你可能会问:C++难在哪?
C++之难不在于其语法的复杂性,也不在于二进制层面上语义的杂乱无章,更不在于玄妙得不食人间烟火的模板推导(模板元编程),这些都只是表象。本质上讲,C++跟任何语言比,它很独特很怪异(废话,任何一种语言那个不特异)。
很多时候,C++给人的感觉就是,好像任何一种语言的特性(这话有点夸张),都可以在C++王国中,通过令人发指的奇技淫巧,罄竹难书的花样作死,最后终于可以在一定程度上模拟出来,但是模拟后的结果,又总是存在这样那样的不足,要么因为内存管理,要么因为反射的原因,总之,就是好像可以做一切事情,但最后终于做得不好。
这个时候,猿猴要么就直接扑上原生带有这种特性的语言,要么干脆就完全舍弃,放弃治疗,啥技巧也不用,返璞归真,就老老实实一行代码一行代码、不厌其烦、不畏枯燥地一再写地重复类似的功能。而C++自身的优秀特性(析构函数、内存管理、模板、多继承等等),没有任何一种语言整的出来,当然,也可以说,这些玩意都是为了解决C++自身制造出来麻烦,other语言s完全不care这些杂碎。难道,这些好东西就没有一丁点价值了。
这里详细谈下C++ 的学习路线,按照这个路线去学习C++,每个阶段都帮你规划好了学习时间,只要你努力且认真的去学了, 保证帮你既高效又扎实的学好C++:

一、C++基础(3个月)

1、面向对象的三大特性:封装、继承、多态
2、类的访问权限:private、protected、public
3、类的构造函数、析构函数、赋值函数、拷贝函数
4、移动构造函数与拷贝构造函数对比
5、深拷贝与浅拷贝的区别
6、空类有哪些函数?空类的大小?
7、内存分区:全局区、堆区、栈区、常量区、代码区
8、C++与C的区别
9、struct与class的区别
10、struct内存对齐
11、new/delete与malloc/free的区别
12、内存泄露的情况
13、sizeof与strlen对比
14、指针与引用的区别
15、野指针产生与避免
16、多态:动态多态、静态多态
17、虚函数实现动态多态的原理、虚函数与纯虚函数的区别
18、继承时,父类的析构函数是否为虚函数?构造函数能不能为虚函数?为什么?
19、静态多态:重写、重载、模板
20、static关键字:修饰局部变量、全局变量、类中成员变量、类中成员函数
21、const关键字:修饰变量、指针、类对象、类中成员函数
22、extern关键字:修饰全局变量
23、volatile关键字:避免编译器指令优化
24、四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
25、右值引用
26、std::move函数
27、四种智能指针及底层实现:auto_ptr、unique_ptr、shared_ptr、weak_ptr
28、shared_ptr中的循环引用怎么解决?(weak_ptr)
29、vector与list比较
30、vector迭代器失效的情况
31、map与unordered_map对比
32、set与unordered_set对比
33、STL容器空间配置器
参考书籍:《C++ Primer》(第5版)、《STL源码剖析》、《深度探索C++对象模型》
下载地址:

[*]链接:https://pan.baidu.com/s/1qqAR6iqjur1sfmzeZjcrwg
[*]提取码:m6gx
[*]戳下面获取面试真题:
大厂15万字C++开发面试手册出炉(C++和计算机基础全有)​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd二、计算机网络(1个月)

1、OSI7层网络模型:应用层、表示层、会话层、运输层、网络层、链路层、物理层
2、TCP/IP四层网络模型:应用层、运输层、网际层、接口层
综合OSI与TCP/IP模型,学习五层网络模型:
从上向下架构:应用层、运输层、网络层、链路层、物理层
链路层:
3、MTU
4、MAC地址
网络层:
5、地址解析协议
6、为啥有IP地址还需要MAC地址?同理,为啥有了MAC地址还需要IP地址?
7、网络层转发数据报的流程
8、子网划分、子网掩码
9、网络控制报文协议ICMP
10、ICMP应用举例:PING、traceroute
运输层:
11、TCP与UDP的区别及应用场景
12、TCP首部报文格式(SYN、ACK、FIN、RST必须知道)
13、TCP滑动窗口原理
14、TCP超时重传时间选择
15、TCP流程控制
16、TCP拥塞控制(一定要弄清楚与流量控制的区别)
17、TCP三次握手及状态变化。为啥不是两次握手?
18、TCP四次挥手及状态变化。为啥不是三次挥手?
19、TCP连接释放中TIME_WAIT状态的作用
20、SYN泛洪攻击。如何解决?
21、TCP粘包
22、TCP心跳包
23、路由器与交换机的区别
24、UDP如何实现可靠传输
应用层:
25、DNS域名系统。采用TCP还是UDP协议?为什么?
26、FTP协议(了解)
27、HTTP请求报文与响应报文首部结构
28、HTTP1.0、HTTP1.1、HTTP2.0对比
29、HTTP与HTTPS对比
30、HTTPS加密流程
31、方法:GET、HEAD、POST、PUT、DELETE
32、状态码:1、2、3、4、5**
33、cookie与session区别
34、输入一个URL到显示页面的流程(越详细越好,搞明白这个,网络这块就差不多了)
参考书籍:《计算机网络》(第5版)、《TCP/IP详解卷1:协议》、《图解HTTP》
下载地址:

[*]链接:https://pan.baidu.com/s/1fRYNn3E0yEOLiQUSyBlxKg
[*]提取码:69dc
三、操作系统(1个月)

1、进程与线程区别
2、线程同步的方式:互斥锁、自旋锁、读写锁、条件变量
3、互斥锁与自旋锁的底层区别
4、孤儿进程与僵尸进程
5、死锁及避免
6、多线程与多进程比较
7、进程间通信:PIPE、FIFO、消息队列、信号量、共享内存、socket
8、管道与消息队列对比
9、fork进程的底层:读时共享,写时复制
10、线程上下文切换的流程
11、进程上下文切换的流程
12、进程的调度算法
13、阻塞IO与非阻塞IO
14、同步与异步的概念
15、静态链接与动态链接的过程
16、虚拟内存概念(非常重要)
17、MMU地址翻译的具体流程
18、缺页处理过程
19、缺页置换算法:最久未使用算法、先进先出算法、最佳置换算法
ps:操作系统的内容看起来不是很多,实际上每个问题答案的底层原理要弄懂还是很考验基本功的。比如:互斥锁与自旋锁的区别,实际上涉及到阻塞时线程的状态是不一样的。互斥锁阻塞的线程是挂起的,此时系统会优先执行其它可执行的线程,就会将阻塞的线程切换到可执行线程,而当临界区执行的时间非常短时,此时线程切换频繁、开销较大,此时就会采用自旋锁的方式,让阻塞的线程处于忙等状态。

参考书籍:《深入理解计算机系统》
下载地址:

[*]链接:https://pan.baidu.com/s/1RoDN317X-C6izxY6CwuxTA
[*]提取码:iy8u

四、网络编程(1个月)

1、IO多路复用:select、poll、epoll的区别(非常重要,几乎必问,回答得越底层越好,要会使用)
2、手撕一个最简单的server端服务器(socket、bind、listen、accept这四个API一定要非常熟练)
3、线程池
4、基于事件驱动的reactor模式
5、边沿触发与水平触发的区别
6、非阻塞IO与阻塞IO区别
参考书籍:《Unix网络编程》
ps:网络编程掌握以上几点就够了,要搞明白还是要花很久时间的。
下载地址:

[*]链接:https://pan.baidu.com/s/1MD9WAAmSOCz5fhlUMU0bsg
[*]密码:bwyt

五、数据结构与算法及刷题(2个月)

1、数组
2、链表
3、栈
4、队列
5、堆
6、二叉树:二叉搜索树、平衡树、红黑树
7、B树、B+树
8、哈希表及哈希冲突
9、排序算法:冒泡排序、简单选择排序、插入排序、希尔排序、归并排序、堆排序、快速排序
(要求能够面试时手写出堆排序和快速排序)
10、二分法:旋转数组找target
11、回溯法:全排列、复原IP地址
12、动态规划(掌握基本的动态规划的几个题其实就够了,如:斐波那契数列、接雨水、股票的最佳买入时机)
参考书籍:《图解算法》《剑指offer》
ps:建议刷题与数据结构算法同时进行,这样理解得更深入。刷题网站leetcode,刷完《剑指offer》其实就能解决大部分面试手撕了。
书籍下载:

[*]链接:https://pan.baidu.com/s/1GZEp8KI1Fm0U4Uek7BOWAw
[*]提取码:am4o
六、mySQL数据库(7天~15天)

1、数据存储引擎:InnoDB、myISAM、Memory
2、数据库索引类型及原理:B+树索引、哈希表索引
3、锁:悲观锁、乐观锁
4、事务:事务的四大特性(ACID)、事务并发的三大问题、事务隔离级别及实现原理
5、多版本并发控制实现机制(MCVV)原理
参考书籍:《高性能MySQL》
ps:这里也可以参考本人写的博客:mysql知识点总结。
下载地址:

[*]链接:https://pan.baidu.com/s/1-_9Cwq1qCxAr041nDWe0sg
[*]提取码:fy0y
七、项目(2个月)

如果时间够的话就可以写一个项目,当然大部分人写的项目都是一个烂大街的项目,也就是“web高性能服务器”。其实就是根据陈硕大神写的《Linux高性能服务器编程:使用muduo C++网络库》进行改编,当然啦,读懂这本书还是很耗时的,学习其中的思想也会受益匪浅的。
总结
按照上面推荐的内容来学习的话,要学习得深入一点的话1年的时间肯定需要的,甚至2年也不足为其。当然对于非科班的学生来说,大部分都没有充足的时间的,这时候建议尽量把C++基础、计算机网络、操作系统、网络编程、数据结构与算法这五个部分的内容学得很扎实,大概6个月的时间。
戳下面获取面试真题:
大厂15万字C++开发面试手册出炉(C++和计算机基础全有)​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247487041&idx=1&sn=1c49fe6e12b1e52f66462b8b942e1644&chksm=fdb3f09fcac47989e399f52a975a6d2b18bd15e8cdfe720e3d878866f2d05c758318e2f6241f#rd八、推荐阅读书单
正如侯捷老师所说C++ 相关的书籍也非常多,如天上繁星。 广博如四库全书者有 《The C++Programming Language》 《C++ Primer》,深奥如山重水复者有《The Annotated C++ Reference Manual》、《Inside The C++ Object Model》,细说历史者有《The Design And Evolution Of C++》、《Rumiations on C++》,独沽一味者有《Polymorphism in C++》、《Genericity in C++》,独树一帜者有《Design Patterns》、《C++ FAQs》,程序库大全有之《The C++ Standard Library》.....
至于书单的话,可以看下这个C++ 最全书单,包含几十本经典的PDF和下载方式:
华为最牛逼的c++ 基础与提高PDF​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486995&idx=1&sn=382ef6a0c1d20bdcc4531463024a8060&chksm=fdb3f0cdcac479dbf38c2db05f3d57ef6cb2acbd2edf977244523026a58258520a784933810b#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486995&idx=1&sn=382ef6a0c1d20bdcc4531463024a8060&chksm=fdb3f0cdcac479dbf38c2db05f3d57ef6cb2acbd2edf977244523026a58258520a784933810b#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486995&idx=1&sn=382ef6a0c1d20bdcc4531463024a8060&chksm=fdb3f0cdcac479dbf38c2db05f3d57ef6cb2acbd2edf977244523026a58258520a784933810b#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486995&idx=1&sn=382ef6a0c1d20bdcc4531463024a8060&chksm=fdb3f0cdcac479dbf38c2db05f3d57ef6cb2acbd2edf977244523026a58258520a784933810b#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486995&idx=1&sn=382ef6a0c1d20bdcc4531463024a8060&chksm=fdb3f0cdcac479dbf38c2db05f3d57ef6cb2acbd2edf977244523026a58258520a784933810b#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486995&idx=1&sn=382ef6a0c1d20bdcc4531463024a8060&chksm=fdb3f0cdcac479dbf38c2db05f3d57ef6cb2acbd2edf977244523026a58258520a784933810b#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486995&idx=1&sn=382ef6a0c1d20bdcc4531463024a8060&chksm=fdb3f0cdcac479dbf38c2db05f3d57ef6cb2acbd2edf977244523026a58258520a784933810b#rd(PS:侯捷 C++ 视频课程一直都被看过的同学广为推荐,最近发现 B 站关于侯捷老师的 C++ 视频课程几乎全部被下架了,于是自己搜集了一套非常全的视频,大家赶紧去下载保存备用:
侯捷C++全套视频|含下载方式​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486987&idx=1&sn=6002f1b0c275f97a33ee2e3e8f53ab4f&chksm=fdb3f0d5cac479c3368acf8cecbf5b0669ff76db88b3f32d3543fcd8f0f5c820845102493c16#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486987&idx=1&sn=6002f1b0c275f97a33ee2e3e8f53ab4f&chksm=fdb3f0d5cac479c3368acf8cecbf5b0669ff76db88b3f32d3543fcd8f0f5c820845102493c16#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486987&idx=1&sn=6002f1b0c275f97a33ee2e3e8f53ab4f&chksm=fdb3f0d5cac479c3368acf8cecbf5b0669ff76db88b3f32d3543fcd8f0f5c820845102493c16#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486987&idx=1&sn=6002f1b0c275f97a33ee2e3e8f53ab4f&chksm=fdb3f0d5cac479c3368acf8cecbf5b0669ff76db88b3f32d3543fcd8f0f5c820845102493c16#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486987&idx=1&sn=6002f1b0c275f97a33ee2e3e8f53ab4f&chksm=fdb3f0d5cac479c3368acf8cecbf5b0669ff76db88b3f32d3543fcd8f0f5c820845102493c16#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486987&idx=1&sn=6002f1b0c275f97a33ee2e3e8f53ab4f&chksm=fdb3f0d5cac479c3368acf8cecbf5b0669ff76db88b3f32d3543fcd8f0f5c820845102493c16#rd​mp.weixin.qq.com/s?__biz=MzU4MjgwNjQ0OQ==&mid=2247486987&idx=1&sn=6002f1b0c275f97a33ee2e3e8f53ab4f&chksm=fdb3f0d5cac479c3368acf8cecbf5b0669ff76db88b3f32d3543fcd8f0f5c820845102493c16#rd他们让知识的传播变得更加的便捷,降低了后来者的学习门槛,当然啦也变相加重了内卷化.
这里给大家介绍一份计算机经典书籍,送大家一份硬核书籍资源:读大学跟工作期间,我买了很多书,大部分是一些技术书籍,也收集了这些书籍的电子版,都在这里,现在免费share给大家,包括了计算机类常用电子书,包括C,C++,Java,Python,Java,Linux,Go等,希望大家能认真阅读。点击下方链接直达获取:
计算机经典必读书单(含下载方式)
http://pic1.zhimg.com/v2-ac6842c630666a35f2370a66ca4daffe_r.jpg?source=1940ef5c
码字不易,硬核码字更难,希望大家不要吝啬自己的鼓励,给我 :
@码农出击
一个点赞,鼓励下!

Benf 发表于 2023-10-3 19:25:15

白月光是C#。
C++就好像是黑长直高冷学姐,天生一副生人勿近的气场,开局好感0攻略难度max,但攻略后可以解锁108种姿势360张CG,只有你想不到的玩法没有她摆不出的姿势;
而C#就好像是住在你家隔壁从小和你一起长大的天然系青梅竹马,开局好感max点击就送,可惜只能解锁72种姿势198张CG,不一定能满足你的小众xp。
不过你要让我选,那我表示全都要。

kkokk 发表于 2023-10-3 19:26:09

这个玩意的牛逼的地方在于, 你永远都不知道C++到底有多少种我还不知道的功能...
比如说前几天我震惊于C++的逗号运算符居然是可以你吗的重载的.
震撼猫猫一整年.

追评一下: 你看, 就这还有人说我见识少(没有阴阳怪气的意思, 我确实见识少)

http://picx.zhimg.com/v2-5d4fe9d4a02b208c862efcf7be5245e0_r.jpg?source=1940ef5c
然后我们都知道, C++拥有几乎最牛逼的泛型机制.
所以说, 理论上用C++的泛型+宏, 可以做到现阶段所有语言想干的事情, 即使实现起来丑的一笔而且报错完全不能看(乐)

netfly 发表于 2023-10-3 19:26:34

我也是写C++的,从一开始C with class,到后来改变编程思维,懂了什么叫C++,越往后越觉得,我这辈子都不可能正真熟悉C++
总的来说,一句话,写C++很爽,很有成就感,也会经常冒出写个框架、写轮子的的念头
但是现在,我写web用go,写小工具用python,不知道咋写就用java,客户端用C++(Qt),其他的基本都用go
大多数时候,都是在code review的时候,指导别人写C++,或是写一些项目上基础库给别人用

rockhdd 发表于 2023-10-3 19:27:15

我写c++ 十几年了,不能说自己写的好吧,现在也不敢说熟练,自己的亲身感受,写到三年的时候,系统编程,网络编程搞了一遍,觉得自己很厉害,写到6年的时候自己用自己写的网络框架,感觉自己更厉害了,写到8年的时候,发现自己是个菜鸡,再写几年,发现已经不会写c++了。这里面有我写的几个项目。只能感叹,银河浩渺,到底是月光还是星光
页: [1]
查看完整版本: 大部分程序员的白月光都是C++吗?