专栏首页程序员互动联盟有一种编程语言永远不敢说精通

有一种编程语言永远不敢说精通

如果提到一种语言,可能说这辈子都不敢说精通,有相当数量的人辉选择c++,看看大家如何评述c++,

用了两年的c++,转学别的语言发现从未有过的轻松感。

c++这门语言比较特殊,是大家公认的人类不能精通的一门语言,如果精通了基本确定这人是非人类了。

从大一就开始学,毕业十几年了还是在学,还是有很多不会。

还没毕业写简历写着精通C++,工作了好多年之后,简历中写着熟悉C++

C++到底有多难惹得大家这么惧怕,为啥这么多人觉得学不会C++

记得有人说过这么一句话,要学会C++几乎相当于学会了好几种语言,C语言,OOP,STL等,每一个都够你学上几年。

C++语法细节繁多,特别是编译的过程

c++为了增加运行过程的安全性,严格控制编译的每个技术细节,这下可是苦了,入门的或者技术底子不厚的程序员,每一次重构模块或者大的模块升级,简直就是经历一次噩梦。重构了几百个函数,基本上能产生上万个编译错误,笔者曾经用chromium的javascript的引擎V8代码直接对接网页播放器,为了提高性能用c++层面对接,在一次升级中,发现V8中的基础接口都能大规模的变动,50多个函数需要重构,整整一天一动没动才编译过,晚上做地铁回家直接倒床就睡一觉到天亮。这就是c++经常带来折磨。

每次经历这种事情之后都会觉得C++还需要继续提升,就会拿出c++的泛型编程以及类库的实现重温一遍。还发现一个现象,在开源项目中只要是C++写的代码,重构的概率会特别高,同样是一个代码模块这次拿下代码研究的时候是这么实现的,没过几天梳理代码的时候发现实现方式又有写的变化,看明白了发现功能基本一致,实现的模式却不尽相同。google的工程师这种事情干的太多了,研究过chromiun源码的小伙伴估计会有这种印象。

C++中的编程思想框架组合极多

c++的版本还在不断的更新,每次更新都会带来大量的新鲜玩意,当你还没适应完上一个版本的规则的时候新的版本又会带给你新的冲击。c++中泛型编程变幻无穷,为了防止内存泄露用上的类模板,消耗的心思都快赶上自己去管理内存了。所以造成一种感觉在写代码的时候,永远觉得还会有更好的实现方式,所以在重构次数最多的编程语言中,c++频率是最高的,在这种痛苦的折磨中会产生难以割舍的感情。

做的时间越长,越是觉得这门语言的博大精深,越是觉得自己掌握的浅薄。笔者前几天查看了实际编程语言排行榜,发现c++稳居前三,不能只看到国内的排行榜,放眼全球c++在编码界还是不折不扣的强势语言,更多是在底层搭建框架,我们大家现在使用的安卓手机的框架层很大一部分是c++实现,很多软件的底层框架都是c++来担当。

为什么还是有那么多人喜欢用C++?

目前世面上恐怕没有一种语言,执行效率高同时又具备丰富的编程框架。正是这两种特性,所以大多数的底层框架设计c++是不二人选,其实c++语言本身暗合了优秀程序员自身很多特质,优秀的程序员都喜欢不断尝试更优的程序,会不断的重构自己的代码,而c++自带这么多的组合,不得不在写完代码之后回过头来看看还有没有更好的方法。优秀的程序员还会喜欢迎接挑战,c++提供了最优的平台,在这种相爱相恨中,变得更加紧密。

很多的架构师都对c++语言爱不释手,喜欢拿C++里面的思想来磨练自身的基本功,做的时间越长越觉得神圣。所以很多高手一般都不建议入门语言选择c++,可能直接把很多优秀的编程苗子挡在大门之外。

痛并爱着,可能是最高的编程境界了。

本文分享自微信公众号 - 程序员互动联盟(coder_online)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 为什么这么多人惧怕C++?

    C++在诞生之处,赢得了很多了口碑,但是随着编程大众化,以及编程语言的简单化趋势的发展,这门语言很多的弊端表现的越来越明显,特别让初学者选择c++作为初级入门语...

    程序员互动联盟
  • 如何成为一名顶级的C/C++程序员?

    从事c/c++开发已经差不多十几年了,C语言相对使用起来简单一些,做的项目多了经验积累多了,整体觉得更加可控一点,但是c++越做越觉得细节越多,也面试过几百人,...

    程序员互动联盟
  • 如何用6个月搞定C++

    提到c++做过项目的人,都会扔下一句,这玩意短期内很难学的很熟练,更不要说弄的精通,没有做过项目的人觉得C++和java差不多啊,就是面向对象一些基本应用,掌握...

    程序员互动联盟
  • c/c++程序员的技术栈

    在当今的互联网时代, java,  安卓, ios, 大行其道,而c/c++却显得越来越落寞。 其实这并不是c/c++程序员本身的问题,而是这是一个产品快速响应...

  • 简述 C语言 有和 C++ 的基本区别,你真的懂吗?(新手面试必学)

    c++:有命名空间:using namespace std(可以防止函数出现相同的情况)

    诸葛青云
  • C++ study

    3、数组析构方式为delete []arr;其中arr要指向初始地址,如中间有移动需析构前移动到出始地址。

    杉枫
  • 我的开发日记(十)

    最近开发基本都是在搬砖,补漏洞,今天正式部署到服务准备联调了,中间遇到了一些难点。

    FunTester
  • 提醒!比特币千万不要碰!?

    IT派 - {技术青年圈} 持续关注互联网、大数据、人工智能领域 2017年的12月,对币圈来说是一个疯狂的月份,对比特币,疯狂更甚。 ? 结束了11月8千美...

    IT派
  • EasyDSS云平台功能使用介绍:单兵设备直播、对讲

    对于许多的场景下,我们不仅仅需要网络摄像机的监控,还需要有有专业人员进入现场,并且现场人员可以 将现场的画面传输出来,可以 和监控端人员 进行实时对讲交流

    EasyNVR
  • Kaemika应用,集成了协议和化学模拟 (CS.CE)

    Kaemika是一个在四大应用商店都可以买到的应用。它提供确定性和随机模拟,支持自然化学符号增强递归和条件生成的化学反应网络。它有一个液体处理协议子语言编译到一...

    用户7236395

扫码关注云+社区

领取腾讯云代金券