别去研究C++

作者: 挂瓜 | 来源:发表于2014-07-19 10:27 被阅读2205次

YH,今天早晨起来。回想昨天,虽然吐槽了C++的各种问题,但给别人打工,还是要靠C++干活吃饭。我对待C++的态度和云风不同,虽然他所说的C++技术的事情我都懂都理解,而我感受到的不是技术问题,而是人生的问题以及人的精力问题,所以我感到还是需要写一篇文章,和你探讨下程序猿的编程人生。


请先容我在这里倚老卖老下。我用C++也用了好久,2000年开始真正开始学C++。之前是为了找工作需要,学了几年的Delphi以及Foxpro。2001年下半年毕业开始,感受到C++的强大,我开始买大量的C++的书去学习。

朋友周爱民对我的评价就是:你是个学院派的。你最适合去大学里搞研究。

呵呵,可能我是从我父亲那里遗传并继承了他的研究能力。我很喜欢找到一个东西,并深究研究到我认为透了,我才去用。这个在其他地方也同样体现。

在学C++之前,我也学了2~3年的Delphi,而且毕业设计都是Delphi做的。我去面试的是Delphi的工作,但业余时间,看C++的书,写一些C++的代码练手,后面时机成熟了,就很轻松的上手写代码。

但我那堪比猫的好奇心。让我总是在不停的被C++的“特性”所干扰。因为C++提供的特色太多了。模板,模板库。虚拟、虚拟、再虚拟的东西。各种抽象、抽象、再抽象的方式。这里就不逐一叙述各种C++概念了。

而这些有趣的东西。会让我的精力一次又一次的转到研究这些C++的有趣的设计上。但多年以后回过头来看,这些东西尽管设计的确实很不错,但占你人生的代码量而言,大概有1%到10%左右不等,具体看人的工作性质。而这种代码,也会被其他方式替换,只不过C++提供的是比较易懂的机制。而不管编写底层库,还是编写顶层实现代码。最多的还是业务代码,而这种业务代码,就是基础逻辑代码。任何计算机语言都提供的那类基础功能。


在十来年前,流行过一套小书,其中有一本书叫《编程之道》。里面充满了道家的思想,很多地方甚至就是把老子、庄子的话稍微改一下就成了一种很神秘的话, 呈现在你面前。多年来,我一直时不时的看看这本书,感悟下书里面所说的道理。

一个初学者被要求编写一个财务软件。

他疯狂地工作了很多天,但他的主管检视他的程序时发现,它写了一个编辑嚣,一个图形程序集,和人工智能的界面,但是看不到任何跟财务有关的东西。

主管要求解释时,程序员被激怒了:“你太没耐心了,我会在最后写财务的部分。”

起初看这个小故事,并没有感受到作者到底是在写什么。工作以后才明白,这个程序猿一开始就没有考虑核心的财务功能代码,而是写了周边的代码。要说周边代码没用吗?其实也是有用的,但那不是核心功能。当业务真正投放使用之后,这些代码的使用过程中,会被反复推敲修改的,如果最初就没有思路去思考,那结果必定是一团糟。而程序猿就这么轻易被那些“花哨”,看上去很好很强大的东西给吸引了,而忽略了最核心的需求。

而C++正是让你看到,这个不错,可以用哦。那个也不错,试试看?结果呢?短期来说,有可能真正的工作可能耽误了。长期来说,积累的C++“使用经验”,对编程水平的提高帮助几乎微乎其微。


现在信息量如此之巨大,书籍如此多,网上的新兴概念,新的资料还在不停的生产。你或许一辈子可能都看不完的东西。

《C++标准程序库》和《代码大全》是差不多一样厚的。两本书摆在你面前你是选择哪本呢?《深入理解计算机系统》和《C++ Primer》也是差不多一样厚的,你是选择哪一本呢?

当你可能懂得如何谨慎的对待C++标准库的时候,boost库又在你的面前了,loki之类的库都逐一出现在你面前。都是海量的信息轰炸着你的头脑。还有巨额的各类引擎代码。

C++可以用,用了这么长时间。我深知它仅仅是一门语言而已。但要阻止被各种所谓的“设计”给迷惑。使用他提供的一些基本功能。

去研究C++的周边的时间。你可以研究下计算机结构基础,基本的虚拟机原理,完善你的编辑器,研究下工具链,研究下各种有趣的算法,看下Lua或者Python的源码,值得研究的东西太多了。而这辈子精力太有限了。

因为这些不仅仅是属于C++的东西,而是属于“编程”这个大范畴的东西,而很多在现代计算机出现之前就存在,这种不变的东西,才会提高你的编程能力。把精力视角扩大,多专注与编程,多专注于你所在行业的业务需求。这才能提高你的工作能力。甚至可以和两三好友去玩也会提高你的社交能力。

可以用C++,但不要去研究C++

最后,我再用一段《编程之道》的小故事做个总结。

有一天编程大师碰见了一个正玩掌上游戏机的编程新手,他说:“给我看一下?”

新手把游戏机递给大师,“我看到上面说明了三种难度的玩法:容易,中等,高难”,大师说,“但是每个这样的游戏机都有另外一种玩法,此时游戏机即不是想着怎么赢你,也不是怎么被你赢。”

“那么请问大师”,初学者说,“这种玩法到底是怎样玩的呢?”

大师把游戏机摔到地下然后用脚踩碎它,突然初学者明白了。

相关文章

  • 别去研究C++

    YH,今天早晨起来。回想昨天,虽然吐槽了C++的各种问题,但给别人打工,还是要靠C++干活吃饭。我对待C++的态度...

  • Xcode 添加 自定义 C++ 模版文件

    最近在研究 C++ , 发现xcode 自带的默认 C++ 文件模版不是忒好用,新建的 C++ 类文件 .hpp文...

  • typeid(T).name() 方法在 linux 下通过 g

    说实话,我不是 c++ 程序员,之前虽然出于个人兴趣研究过 c++,也跟风看过《c++ primer》。 但是要说...

  • 学科教学论文写作建议

    做→说→写 做好本学科的研究。(种好自己的田,别去挖别人的地。)

  • mac下vscode调试c++

    前言 近期在研究c++,在mac下开发c++有很多ide,我选择了vscode来处理。这里记录下过程。 过程 选择...

  • CLIPS专家系统与C++的交互

    CLIPS专家系统与C++的交互 更多文章参见个人网站 最近研究了一下在windows下使用C++嵌入CLIPS专...

  • C++语言的15个晦涩特性

    这个列表收集了C++ 语言的一些晦涩(Obscure)特性,是我经年累月研究这门语言的各个方面收集起来的。C++非...

  • 属性、方法获取的深入理解

    属性的深入理解 要研究成员变量与属性关系,最简单方法就是利用clang生成C++文件,看C++代码如何实现的。 执...

  • SWIG与JAVA 交互最全开发指南一

    项目背景 最近开始研究做移动端项目,但是本人基本是做了五六年的c++的底层研发,对C++的研发可以说是驾轻就熟了,...

  • Node.js主流Web框架对比

    Node.js主流Web框架对比。由于C++所具有的优势,该项目组的研究人员首先考虑采用C++来编写程序。但对于硬...

网友评论

本文标题:别去研究C++

本文链接:https://www.haomeiwen.com/subject/cdjstttx.html