千万不要在简历里写精通C++,没人能真正精通C++

这篇具有很好参考价值的文章主要介绍了千万不要在简历里写精通C++,没人能真正精通C++。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

任何说自己很懂C++的人可能都是在夸大其词。

我想你可能已经注意到了,是的,今天的大多数程序员都在使用Python、Rust、Go或是其他新的编程语言。大部分人已经不再需要掌握C、C++等古老的编程语言了,甚至很多程序员已经从手动编码开始向AI编码转型。

但即便如此,还是有很多人认为自己足够了解并熟练掌握C++这门古老的编程语言,但他们之中绝大部分人其实都在夸大其词。这个说法来自 Louis Brandy此前发布的一篇博客——《永远不要相信自称懂C++的程序员》。

1、C++的“双峰”特性

在博客中,Brandy提到,自己在长期面试C++程序员的过程中开始意识到C++非常重要的一个特性,C++是一种“双峰”语言。也就是说刚刚接触C++的开发者会觉得它很简单,但随着了解深入,他们的自信会被这种语言庞大的复杂性慢慢摧毁,直到他们犯下了足够的错误,就像下面这张图所展示的一样。

千万不要在简历里写精通C++,没人能真正精通C++

​程序员,尤其是那些曾经学习过C语言的程序员,通常能够非常快速地掌握C++并感觉对这门语言非常熟练。这些程序员会高速你他们精通C++,然而其实这并不是真实的。

随着他们继续学习C++,他们会经历这个沮丧的低谷,在这里他们会完全了解到这门语言的全部复杂性。但好消息是,程序员很容易意识到自己处于谷前和谷后的区别。只要你和他们提起C++的复杂性,处于谷后位置的人会为你描述上百种他们写C++的挫败经历。而处于谷前的人则会说,C++不过是有类的C而已。

2、没人能真正精通C++

当然,很多程序员把这种说法当做一个玩笑,但也有很多人在争论这种理论的正确性。在Reddit上,程序员们分享了对该说法的观点,一位技术管理者提到,面试时他会让程序员以1—10分为标准描述自己的C++水平,如果答案高于6,那就需要详细谈谈关于这门语言的细节了。

此外,这位面试官还提到,建议程序员在面试时,尽量不要直接说自己对哪门语言的掌握程度很好,而是要与面试官交流你具体擅长处理哪类业务或哪类问题,否则当你遇到一位技术狂热者时,你将很容易在面试过程中暴露自己的无知。

在当前以AI为主导的世界中,C++这门古老的语言好像更多变成了帮助人们建立知识体系和卖书的工具,而不是实际被用于生产的语言。一些Reddit用户分享了他们将精通C++写在简历上,但当被问到智能指针和右值引用等问题时却回答不出来的窘迫经历。

千万不要在简历里写精通C++,没人能真正精通C++

​事实上,很多开发者在使用C++进行工作时,其实并不了解它的细节,使用C++几十年的人大多也不敢说非常熟悉这种语言。甚至连C++之父Bjarne Stroustrup也曾表示自己并非100%精通C++,他提到:“C++存在一些错综复杂的陷阱,大多数人甚至没法写出一个简单的没有漏洞或错误的类。”

3、世界仍然需要C++

当前编程世界中的真相是,你可以选择任何适合你得编程语言。如果有人反驳这个观点,那便会被贴上“语言霸凌”的标签,编程语言只是一个程序员需要学习和使用的工具。如果Python能够帮助你很好的完成工作,为什么还要使用C++呢?

目前很多开发者已经认为C++是一种濒临死亡的语言,但事实上并不是这样。如果开发人员需要从头开始构建一些东西,例如操作系统、游戏或其他基础软件,C++目前仍被认为是实现这些目标的首选语言,当然在面对很多现代应用开发时使用复杂性过高的C++会变得很痛苦。

千万不要在简历里写精通C++,没人能真正精通C++

C++为了不限制程序员的想法,包含了太多的范式,包括面向对象(灵活应用virtual继承+shared_ptr)、模块化(type rich programming和meta programming)、函数式编程(lambda,配合文件),以及面向过程编程。然而当前世界上的大多数需求,只需要用到面向对象或函数式编程。

显然,无论是对于C++还是其他语言,几乎没有人能够做到对它们百分百了解,尤其是当语言复杂性和特性随着版本更新而不断变化的情况下。C++只是在这种情况下会变得更甚,并且由于这种经典语言的名气效应,人们会给C++程序员设定更高的标准。

大多数C++程序员都存在着这样一种心态——“如果我能遵守这些规则,避免炫技、避免犯错,我就可以避免把枪口对准自己的脚。”一个很明显的道理是,当你被问及是否了解C++时,最好的答案是:我对C++的了解足够多,所以我认为我并不足够了解这种语言。

4、最后,分享一个完整的c/c++后端知识体系

这个知识体系总结基于零声教育的c/c++Linux服务器开发架构教程,经过数万名学员学习的反馈,不断迭代技术知识图谱,贴合市场实际岗位就业需求,以项目为核心,通过30+的大小项目学习理解c/c++后端开发技术。目前已更新至第13版,需要的朋友,可以点击领取

部分往期视频

高并发场景3种锁方案:自旋锁、互斥锁、原子操作的优缺点

后端开发必学4种层式结构:B+/B-树、时间轮、跳表、LSM-Tree

5种内存泄漏检测方式,让你重新理解C++内存管理

手把手实现线程池(120行),实现异步操作,解决项目性能问题

需要获取更多c/c++后端服务器开发相关视频技术:点击领取

1.精进基石

①数据结构与算法

  • 红黑树(应用场景、进程调度cfs、内存管理、左旋与右旋等)

  • B树和B+树(定义证明、插入、删除、遍历、查找、指针等)

  • Hash与BloomFilter,bitmap(函数实现、应用场景、布隆过滤器等)

②设计模式

  • 创建型设计模式(单例、策略、观察者、原型等设计模式)

  • 结构型设计模式(适配器、代理、责任链、状态桥接、组合模式)

③c++新特性

  • stl容器,智能指针,正则表达式

  • 新特性的线程、进程、原子操作、lamda表达式

④Linux工程管理

  • Makefile/cmake/configure(工作ipcs原理、文件编译、cmake的写法等)

  • 分布式版本控制git(工作流程、分支管理、服务器搭建等)

  • Linux系统运行时参数命令(ipcs、uptime、iostat、sar、mpstat等)

2.高性能网络设计

①异步网络库zvnet

  • 网络io与io多路复用epoll,kqueue(项目)

  • 事件驱动reactor的原理与实现(项目)

  • http服务器的实现(项目)

②网络原理

  • 服务器百万并发实现(实操)

  • redis,memcached,nginx网络组件(理论)

  • posix API与网络协议栈(理论)

  • UDP的可靠传输协议QUIC(项目)

③协程框架NtyCo的实现

  • 协程设计原理与汇编实现(项目)

  • 协程调度器实现与性能测试(项目)

④基于dpdk的用户态协议栈的实现

  • 用户态协议栈设计实现(项目)

  • 应用层posix api的具体实现(项目)

  • 手把手设计实现epoll(项目)

⑤高性能异步io机制 io_uring

  • 与epoll媲美的io_uring(项目)

  • io_uring的使用场景(理论)

3.基础组件设计

①池式组件

  • 手写线程池与性能分析(项目)

  • 内存池的实现与场景分析(项目)

  • MySQL连接池的实现(项目)

②高性能组件

  • 原子操作CAS与锁实现(项目)

  • 无锁消息队列实现RingBuffer(项目)

  • 定时器方案红黑树,时间轮,最小堆(项目)

  • 手写死锁检测组件(项目)

  • 手写内存泄漏检测组件(项目)

  • 手把手实现分布式锁(项目)

③开源组件

  • 异步日志方案log4cpp(项目)

  • 应用层协议设计ProtoBuf/Thrift(项目)

4.中间件开发

①redis

  • redis相关命令详解及其原理

  • redis协议与异步方式

  • 存储原理与数据模型

  • 主从同步与对象模型

②MySQL

  • SQL语句,索引,视图,存储过程,触发器

  • MySQL索引原理以及SQL优化

  • MySQL事务原理分析

  • MySQL缓存策略

③Kafka

  • Kafka使用场景与设计原理

  • Kafka存储机制

④微服务之间通信基石gRPC

  • gRPC的内部组件关联

  • 基础http2的gRPC通信协议

⑤nginx

  • nginx反向代理与系统参数配置conf原理(实操)

  • nginx过滤器模块实现(项目)

  • nginx handler模块实现(项目)

5.开源框架

①游戏服务器开发skynet

  • sky net设计原理

  • sky net网络层封装以及lua/c接口编程

  • sky net重要组件以及手撕游戏项目

②分布式API网关

  • 高性能web网关 Openresty

  • Kong动态负载均衡与服务发现

③高性能存储spdk的文件系统实现(项目)

  • spdk的工作原理与文件系统架构分析

  • 文件系统的posix api实现

  • 文件系统的性能测试

④高性能计算CUDA

  • gpu并行计算cuda的开发流程

  • 音视频编解码中的并行计算

⑤并行计算与异步网络引擎workflow

  • workflow的应用场景

  • workflow的组件实现

⑥物联网通信协议mqtt的实现框架mosquitto

  • mqtt的高效使用场景

  • mqtt的broker

6.云原生

①docker

  • docker风光下的内核功能

  • docker容器管理与镜像操作

  • docker网络管理(项目)

  • docker云与容器编排(项目)

②kubernetes

  • k8s环境搭建

  • pod与service的用法

  • k8s集群管理(项目)

  • k8s二次开发与k8s API(项目)

7.性能分析

①性能与测试工具

  • 测试框架gtest以及内存泄漏检测

  • 性能工具与性能分析

  • 火焰图的生成原理与构建方式

②观测技术bpf与ebpf

  • 内核bpf的实现原理

  • bpf对内核功能的观测

③内核源码机制

  • 进程调度机制

  • 内核内存管理运行机制

  • 文件系统组件

8.分布式架构

①分布式数据库

  • kv存储rocksDB的使用场景

  • TIDB存储引擎的原理

  • TIDB集群方案与replication原理

②分布式文件系统

  • 内核级支持的分布式存储Ceph

  • 分布式ceph存储集群部署

③分布式协同

  • 注册服务中心Etcd

  • 协同时间 用户态文件系统 fuse(项目)

  • 快播核心技术揭秘 P2P框架的实现

四、项目实操

1.dkvstore实现

  • KV存储的架构设计

  • 网络同步与事务序列化

  • KV存储的性能测试

2.图床共享云存储

  • fastdfs架构分析和配置

  • 文件传输和接口设计

  • 产品上云公网发布/测试用例

3.微服务即时通讯

  • IM即时通讯项目框架分析和部署

  • IM消息服务器/文件传输服务器

  • 消息服务器/路由服务器

  • 数据库代理服务器设计

  • 文件服务器和docker部署

  • 产品上云公网发布/公网测试上线

项目这一个板块是由零声的讲师所总结的,自己在学习的课程中可以结合上述的详细技术细节点与自己过往工作的项目经验相结合学习提升。文章来源地址https://www.toymoban.com/news/detail-493007.html

到了这里,关于千万不要在简历里写精通C++,没人能真正精通C++的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 正确配置Access-Control-Allow-Origin,千万不要设置成*

    正确配置Access-Control-Allow-Origin,千万不要设置成*

    随着前后台架构的兴起,以及各种小程序、客户端等异地前端的部署架构,相信大家都经常会遇到CORS问题,CORS问题会阻止后台数据的正常返回,如果你搜索相关错误,你会遇到很多教程,教你修改Access-Control-Allow-Origin,解决CORS问题。 那这里我要多说一句, 如果搜到的方案

    2023年04月15日
    浏览(11)
  • 答应我,不会这些概念,简历不要写 “熟悉” zookeeper

    答应我,不会这些概念,简历不要写 “熟悉” zookeeper

    整理了一些Java方面的架构、面试资料(微服务、集群、分布式、中间件等),有需要的小伙伴可以关注公众号【程序员内点事】,无套路自行领取 一口气说出 9种 分布式ID生成方式,面试官有点懵了 面试总被问分库分表怎么办?你可以这样怼他 一口气说出 6种 @Transactional 注解

    2024年03月20日
    浏览(15)
  • 【quartus工具】Quartus板本不同,能支持的器件也不同,千万不要下载错了版本

    【quartus工具】Quartus板本不同,能支持的器件也不同,千万不要下载错了版本

    Quartus®软件是一款由英特尔公司开发的可编程逻辑器件设计软件。其不同版本包括: Quartus® Prime Pro Edition:这是英特尔公司最新发布的版本,提供了完整的FPGA、SoC和ASIC设计流程支持。 Quartus® Prime Standard Edition:这是一个全面的FPGA和SoC设计解决方案,包括设计和验证工具链。

    2024年02月03日
    浏览(23)
  • 千万不要告诉别人自己的绩效!某面试官觉得求职者表现不错,找熟人打听他离职原因,听说因为绩效低被劝退,决定不要他了!...

    千万不要告诉别人自己的绩效!某面试官觉得求职者表现不错,找熟人打听他离职原因,听说因为绩效低被劝退,决定不要他了!...

    自己的绩效可以告诉别人吗? 一位网友提示: 告诉别人自己的绩效很恐怖!在电梯里听到面试官说某求职者表现还不错,找熟人问了一下他上家公司的离职原因,听说是因为绩效低被劝退,所以不准备要他了。 网友说,还真有人信绩效啊? 有人说,绩效不好的人向上管理能

    2024年02月05日
    浏览(7)
  • 普通家庭,千万不要投入大量时间和金钱,让孩子去苦学和培养AI机器人编程了...

    普通家庭,千万不要投入大量时间和金钱,让孩子去苦学和培养一些看似高端,实际却用处不大的兴趣爱好课程了,比如学钢琴、学音乐、学AI机器人编程这些兴趣爱好课程。 这些对孩子的成长其实意义并不大,尤其是AI机器人编程。真正能让孩子脱颖而出的是,三观正、自

    2024年02月11日
    浏览(10)
  • 如何在简历上写上“精通Java”(笔记一)

    如何在简历上写上“精通Java”(笔记一)

    Java三大特征:封装,继承和多态 成员变量:静态成员变量(static)和实例成员变 访问方法:类名.静态成员变量;对象.实例成员变量;对象.静态成员变量;(第三个不推荐) 套话:静态的都可以访问,实例的只能实例的访问 继承中子类不能继承父类的构造方法,eg:父类:publ

    2024年02月16日
    浏览(8)
  • webpack--》webpack底层深入讲解,从初识到精通,真正实现从0到1的过程

    webpack--》webpack底层深入讲解,从初识到精通,真正实现从0到1的过程

    目录 webpack webpack的基本使用 安装 配置 修改自定义打包的入口与出口

    2024年02月01日
    浏览(11)
  • 【Vue】笔记六:webpack底层深入讲解,从初识到精通,真正实现从0到1的过程

    Webpack 是一个非常强大的打包工具,广泛用于前端项目的构建。Webpack 的功能十分强大,但也十分复杂,光是配置就有一堆参数。本篇文章将从基础部分到深入层次逐步讲解 webpack 的应用,帮助您了解 webpack 配置文件和各个组成部分的作用,以及如何优化 webpack 性能。 Webpack

    2024年02月08日
    浏览(8)
  • 程序员过了35岁没人要?“这行越老越香”

    程序员过了35岁没人要?“这行越老越香”

    程序员35岁失业?参加完OceanBase开发者大会,我又悟了! 周六参加了OceanBase2024 开发者大会的现场,来之前我其实挺忐忑的,我觉得一个数据库产品的发布会,能有什么新鲜的东西? 踏入酒店的那一刻,发现自己错了..... 现场会很多招聘机会、免费的自助餐、免费的活动奖品

    2024年04月24日
    浏览(6)
  • 小红书没人点赞是为什么?如何提升笔记点赞

    随着小红书规模的逐渐扩大,活跃用户的数量逐渐增多,也会让很多人产生一种疑问:为什么月活用户那么多,但是自己的小红书没人点赞。今天就来和大家一起谈谈这个问题,小红书没人点赞是为什么,有哪些情况会造成这种现象? 一、哪些情况造成小红书没人点赞这样一

    2023年04月15日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包