当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

学习C++:实践者的办法[VC/C++编程]

赞助商链接



  本文“学习C++:实践者的办法[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

前言

我的blog从前很长一段时间关注的都是C++中的技术&细节,乃至于读者和应者都寥寥.但是5月份的时刻写的一篇“你该当若何学习C++”,阅读量却到达了3万多,在blog上全部文章中倒是最高的(且远远超越了第二位);评论数目也有一百多.为什么独独这篇可以激起这么多的回应,想必是国内的C++社群被C++压制太久,大概,严峻来说,是被C++的教诲方法压制太久.实际上,不管是在各大国内论坛上,还是在comp.lang.c++.moderated这样的国际C++论坛上,乃至于在douban上的小组内,有心者城市发现,对C++语言的细节的关注一向都没有终止过,一样,对C++语言的细节的抱怨也历来都没有终止过.一个例子就是comp.lang.c++.moderated上的一个技术牛人James Kanze说的,他说接触C++十年了,到目前还需求不时去翻C++尺度.这就难怪Eric Raymond垂老在《The Art of Unix Programming》中说“C++是反紧凑”的了.C++中的细节太多,就算都看过了,也不大概都记着.更关键的是,就算都记着了,也不能让你成为一个真正的好程序员.

绝大大都人都把细节太多(大概用贬义词来说就是“暗淡角落太多”)归结为C++的本质问题,认为一切险恶由此而生.也正因此,大约9月份的时刻,Linus在邮件列表上说“C++是一门有思惟负担的语言;仅仅是为了让程序员远离C++,我也要用C”.这句短短的话在国内惹起了很大的反映,最初是刘江转了Linus的话,然后云风和孟岩都发表了自己的见解;我也写了一篇“Why C++”(后来发给Bjarne,Bjarne对这篇文章做了一个友情评注).

但是,这一通浑水搅过之后,我相信惹起的改变未必很大.大大都原先的反对者能从中找出反对的来由,于是越发反对;大大都原先的赞成者也能从中找到赞成的来由,于是越发赞成;而剩下来的原先没有明确看法的,看双方各有各的原理,大概还是没有眉目.

摆脱自我服务成见——理性考虑的前提

《抉择与判断》上提到过一个风趣的真实故事:1980年的某一天,美国空战司令部的计算机忽然发出警报——苏联的一枚核弹正在向美国本土飞来.司令部当即调兵遣将,疾速为一场核战做好了预备,但是3分钟之后,工程人员发现是计算机的一个小零部件弊端造成的.但是,这场虚惊之后,大众的反映才是真正有意思的:原先支持核武装的,认为目前感受越发安全了(因为“事实证明这类的弊端是完好可降服的”);而原先反对核武装的则认为更不安全了(因为“这类错误信号大概招致苏联过度反映,引发真正的核战”).近似的情形也发生在三里岛核泄露事件之后,一样的,反对者认为(“这表明管理部门没有办法安全管理核能”),支持者认为(“这正表明这样的危险没有想像得那么严重,是可降服的”).社会意理学把诸如此类的现象总结为“自我服务成见”.不幸的是,“真理越辩越明”其实只实用于理性考虑者.

为什么烦琐这么一大通呢?就是因为,一向以来泛滥于程序员社群的“语言之争”,背后真正的缘由其实并不在于语言实质上的优劣,而在于察看者的眼睛.在察看者的眼睛里面,语言并非一门工具,而是自己花了N多时间(此中尤数C++为最)来“修炼”的技术,关于这样的技术,被否定无疑平等于自己被否定.所以,从心理学上讲,语言并非工具(固然一向有这么一种号令),而是崇奉.这样的崇奉在越是花得时间久的语言上越是激烈.风趣的是,几近全部的“热烈”的社群都有这样的现象,Java、Python、Ruby…莫不如是;因为就算语言本身不复杂,程序员仍旧还是要投入大量的精神去学习各种各样的框架类库(想想Java的那些框架?).因此这些语言社区的崇奉未必不比C++社群的激烈.

但是,一旦弄清我们为什么会把语言当作崇奉,就非常有助于摆脱在对待语言时的“自我服务成见”,从客观的角度去对待问题.——“当你看到的是支持某个看法的证据时,试着去想一想有哪些证据是不支持它的”.

那么为什么要摆脱自我服务成见?说小了,是为了成为一个更优异的程序员(谁也不但愿因为成见而去利用一门低效的语言乃至不当当的语言).说大了是节俭生命(因为成见大概招致越陷越深,浪费时间).

所以,假如你可以理性的考虑我们将要谈论的问题,避免自我服务成见(就当你历来没有花时间在C++上一样).那么我们便可以开始谈论真正的问题了.

前言2

目前,几近每个学习C++的都知道C++的核心问题是其复杂性;乃至本身不在C++社群的,也知道这是事实.大众的眼睛是雪亮的,何况这还是个太显而易见的事实.

但看了无数篇阐述C++复杂性的文章,和争辩C++复杂性的吐沫星子(包含我前段时间写的两篇关于C++的总结).我始终都有一个感受——没解析透,就跟盲人摸象一样.正如“Why C++”的一位读者批判的,我在文章里面没有写明到底哪些是C++的“非本质复杂性”.当然,我自己凭感受就可以知道,而接触C++一段时间的人大致也能知道,但新手乃至非新手则对我所谓的“非本质复杂性”根本没有一个具体的熟习,这就使得那篇“Why C++”脱离了本来的企图——面向全部C++利用者和学习者.

一样的缘由,在写了“你该当若何学习C++”一文之后,当孟岩先生邀请我给《程序员》写一个系列的文章,介绍一下我在接触C++的历程中的态度和熟习改变时,我固然非常高兴的承诺了,但直到目前3个月过去了还是颗粒无收.为什么?因为我认为真正本质的问题没有被清楚的触摸到;所以直到目前我都没有动笔,免得废话说了一大堆,除了能被当作小说读读之外,对真正考虑能否要学习乃至利用C++的人未必有什么实际用处.

但是,这么个动机一向都放在潜意识里面.前一阵子和Bjarne通信,谈到了关于C++复杂性的一些设法,在邮件里面总结了一下C++的复杂性根源,感受思绪清楚了很多.而这篇文章要到达的目的,恰是传达对C++的复杂性的一个具体而明确的熟习,有了这个熟习作为支持,我们便可以推导出学习C++的最佳(实践者)的办法.


  以上是“学习C++:实践者的办法[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 快速学习CSS的6个办法
  • C语言本领学习c++经验50条7
  • C语言本领学习c++经验50条8
  • C语言本领学习c++经验50条9
  • C语言本领学习c++经验50条10结束
  • 别人学习C++语言
  • <b>初学者该若何学习C++以及编程</b>
  • 学习C++编程语言的最大难度
  • <b>kingofark关于学习C++和编程的50个概念</b>
  • 完好的学习C++的读书线路图(2)
  • <b>完好的学习C++的读书线路图(3)</b>
  • 完好的学习C++的读书线路图(4)
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .