‘壹’ 《代码整洁之道》epub下载在线阅读,求百度网盘云资源
《代码整洁之道》([美] Robert C. Martin)电子书网盘下载免费在线阅读
资源链接:
链接:https://pan..com/s/1jGwYjazmD65UY7cvRqyCfQ
书名:代码整洁之道
作者:[美] Robert C. Martin
译者:韩磊
豆瓣评分:8.7
出版社:人民邮电出版社
出版年份:2020-2
页数:387
内容简介:
软件质量,不但依赖架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。本书提出一种观点:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。
本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。
作者简介:
作者 | Robert C. Martin
世界级软件开发大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report前主编,被后辈程序员尊称为“Bob大叔”。20世纪70年代初成为职业程序员,后创办Object Mentor公司并任总裁。Martin还是一名多产的作家,至今已发表数百篇文章、论文和博客文章。除本书外,还着有《代码整洁之道:程序员的职业素养》《敏捷软件开发:原则、模式和实践》《UML:java程序员指南》等。
译者 | 韩磊
互联网产品与社区运营专家,技术书籍着译者。曾任CSDN及《程序员》杂志副总经理、总编辑,广东二十一世纪传媒新媒体事业部总经理等职。现任AR初创企业亮风台广州公司总经理。除本书外,还译有《梦断代码》《C#编程风格》等书。与刘韧合着《网络媒体教程》,与戴飞合译《Beginning C# Objects中文版:概念到代码》。
‘贰’ 一个好的程序员至少应该具备哪些条件
楼上的几位显然误会我的意思了,我并不是说不应当写文档加注释注重团队精神,看看下面的一篇文章,那位三天就写出UNIX的他需要写文档注释和团队精神吗,他用不着。哪个高手没有一点傲气和自信,他之所以敢对用户说:拿到你想要的,然后滚蛋,你已经很幸运了!是因为他有这个资本。天才本就不循规蹈矩,那样他就不叫天才了。
MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder,
and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。
Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还
是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据
说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前
身。当然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在
Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN
TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封
喉,很快就写出了高性能的伯克利版TCP/IP。当时 BBN和DARPA签了巨额合同开发TCP/IP
Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿
个T-shirt出现在会议室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你
怎么写出来的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯
伯硕士毕业后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把
Sparc设计出来乐。。。象这种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同
事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯
发言,直切要害,提出漂亮的构想,让同事们彻底崩溃。对了,他还是Java Spec和JINI
的主要作者之一。
John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄
聊天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实
战的多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。90年代初只要能在PC
上搞个小动画都能让人惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein,
然后再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。J哥哥的简历上说
自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说。做J哥哥这样的人
是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡"
,不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听
取他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以
上,也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过
呢,谁要用这个例子来为自己学习不好辩护,就大错特错了。那 Leonardo Da Vinci还
是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们
叫“达分奇”是相当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意
思。换句话说,Leonardo Da Vinci就是“从Vinci来的Leonardo”的意思。叫别
人“Da Vinci”就不知所谓乐。嗯,扯远了,打住。
David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发
员。当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然
后说:“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷
爷到NT3.5时,管理1500名开发员,自己还兼做设计和编程,不改coder本色啊。
D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。 日常交谈fuck不离口。
他面试秘书时必问:"what do you think of the word 'fuck'?" ,让无数美女刹羽而
归。终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's my favorite
word"。于是她被录取乐,为D爷爷工作到NT3.5发布。
Don Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,
学数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到 Anders Hejlsberg,
或者学Linux不知道Linus Torvalds一样,不可原谅啊。为了让文章完整,就再罗唆几句
吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别
人时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高
爷爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写编译器写多了,顺带就搞
出了个 Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比
赛(有Alan Kay得众多高高手参加)总是第一,写的Tex到86年就code freeze,还附带2^n
美分奖励等等都是耳熟能详的,偶就不饶舌乐。
顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可
谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没
有学究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让
老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那
完全是高爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我
们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带
谦和的微笑,颇有仙风道骨,正好和他的仙文相配的说。
高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他
捐献了好多作品,都可以在网上看到,比如着名的Mathematical Writing,MMIXWare,
The Tex Book等,更不用说足以让他流芳百世的Tex乐。
Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche
老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主
要作者(另一个是大牛人Rob Pike,
前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。1969年还是
计算机史前时代,普通人都认为只有大型机才能运行通用的操作系统,小型机只有高山
仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是
他和DMR怒了,在1969年到1970间用汇编在PDP-7上写出了UNIX的第一个版本。他们并不
知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又把Unix用C重写,
于是C在随后20年成就了不知多少豪杰的梦想和光荣。
Ken爷爷还有段佳话: 装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。很
快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell
Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX
代码,找到后门,修改代码,然后重新编译了整个UNIX。就在大家都以为“这个世界清
净了”的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只
好继续郁闷。谁知道这一郁闷,就郁闷了14年,直到Ken爷爷道出个中缘由。原来,代码
里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器
编译UNIX的代码,就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译
器。
(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系
统 。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开
发 Unix的猛人,UTF-8的设计人。他还在美国名嘴David
Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的
是,罗伯伯还是1980年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设
计的珈玛射线望远镜差点被NASA用在航天飞机上。他还是两本经典,The Unix
Programming Environment 和 The Practice of Programming 的作者之一。如果初学者
想在编程方面精益求精,实在该好好读读这两本书。它们都有中文版的说。罗伯伯还写
出了Unix下第一个基于位图的窗口系统,并且是着名的blit终端的作者。当然了,罗伯
伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的是,Plan9并没有引起多
少人的注意。罗伯伯一怒之下,写出了振聋发聩的雄文 Systems Software Research is
Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯
含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周期越来越长,代价越
来越大,用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的
革新越来越少。
就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不
遗余力地把系统开发推向极致的话,也就是google乐。随便看看google的成果就知道
了。具有超强容错和负载平衡能力的分布式文件系统GFS
(现在能够用100,000台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统
也不多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻。。。哪个都很牛的
说),更不用说处理海量并行计算的各式google服务了。Rob在System Software
Research is Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到
他错了,应为google关心。google网络了大批功成总是试图吸取系统研究的最新成果。
想必Rob Pike在google很幸福。愿他做出更棒的系统。
Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新闻组上人称DMR的Dennis M.
Ritchie自然也是,毕竟两人共同缔造了UNIX,而Dennis几乎独力把C搞大(当然,C的前
身是B,而B是Ken Thompson一手做出来的)。两人1983年分享图灵奖,是有史以来少数几
个因工程项目得奖的工程师(本来是唯一的一对儿,但Alan Kay才因为SmallTalk得奖,
所以就成了唯二的乐) 一个人一生能做出一个卓越的系统已经不易,DMR的C和UNIX长盛
不衰近30年,至今生机勃勃,DMR此生可以无憾的说。
D爷爷也算有家学渊源:他老爸在AT&T贝尔实验室工作了一辈子,并在电路设计方面卓有
成就,还出了本颇有影响的书The Design of Switching Circuits,据说在交换理论和
逻辑设计方面有独到的论述。当然,D爷爷和他老爸是不同时代的人:他老爸的研究成
形于晶体管发明之前,而D爷爷的工作离了晶体管就玩儿不转乐。:-D
不要看D爷爷搞出了C,其实他最爱的编程语言是Alef,在Plan9上运行,支持并行编程。
Alef的语法和C相似,但数据类型和执行方式都和C大大不同。说到语言,D爷爷对后来
人有非常中肯的建议:抱着学习的目的来开发你自己的语言,不要冀望于它被众人接
受。这个建议不光对语言开发有用,也适用于其它大型系统的开发。别的不说,DMR后来
领导自己的团队在1995年和1996分别推出了Plan9和Inferno操作系统,又用多少人知道
呢?其实,D爷爷当初也没想过C会风行世界。他开发C的初衷和Eric S. Raymond
在Cathedral and Bazaar里阐述的一样,就是要消除自己对现有工具的不爽之处。谁
知D爷爷无心插柳,C竟然受到众多程序员的狂热拥戴,连D爷爷自己都大惑不解。在一次
采访中D爷爷说大概那是因为C的抽象程度碰巧既满足了程序员的要求, 又容易实现。当
然C一度是Unix上的通用语言也是原因。但不管怎么说,D爷爷对编程语言出色的审美意
识奠定了C广为流传的基础。
最后八卦一下。D爷爷的业余爱好和NBA大牛Karl Malone一样:开卡车。不过D爷爷更喜
欢开NASCAR,而KM独爱巨无霸。J D爷爷自称心中不供偶像,如果一定要说一个,那就
是Ken Thompson了。现在Ken爷爷退休当飞机教练去了,而D爷爷当了贝尔实验室系统开
发部的头,整日忙于开支票。他俩合作20年,屡屡创造历史。这段令人神往的佳话,也
就长留你我心中乐。
P.S., 很多人都以为Brian W. Kernighan是C的作者。其实BWK只是写了那本经典K&R C。
据D爷爷说,他,Ken, 和Kernighan三人中,Kernighan最能写文章,他次之,而Ken写
得最少;但说到编程,Ken爷爷才是当之无愧的老大。
Edsger Wybe Dijkstra, 对,就是E.W. Dijkstra. 一提到EWD,很多人就会想起找最短
路径的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一样。
其实这些个算法不过是两个牛人在他们职业生涯中最琐碎的贡献。比如Dijkstra算法,
无非是戴爷爷在1956年为了展示新计算机
ARMAC的计算能力,初试身手的成果,属于他的算法处女作。据戴爷爷自述,他搞出最
短路径算法的时候连纸笔都没用。当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒
太阳喝咖啡,突然就把这个算法想出来乐。而且当时的算法研究还比较原始,牛人们忙
着用计算机搞数值计算,对离散算法不屑一顾。那时连一个象样的专注于离散算法的专
业期刊都没有。戴爷爷于是推迟发表这个算法。直到1959年,他才把这个算法发表
在Numerische Mathematik的创刊号上,权为捧场。:-)
EWD在多个领域牛气冲天,端的是理论和编程两手硬的高手。只不过他的很多工作比较
深刻,学校的老先生们觉得本科生接受不了,不给本科生讲而已。
戴爷爷大概因为最短路径算法一战成名,于是有人请他参加另一台计算机X1的设计工
作,并且把设计实时中断系统的任务派给了他。现在看来实时中断也许不算什么,但要
知到,X1前根本就没有实时中断的概念。实现它简直就是一场豪赌。戴爷爷起初还不情
愿,但经不住项目负责人Bram和Carel的轮番 “吹捧”:我们知道实时中断让您工作变
得非常困难,但象您这样的牛人肯定能做出来的说。结果戴爷爷被糖衣炮弹彻底击穿,
接下了这个烫手山芋。两三年后,他不仅搞出了实时中断,还围绕这个写出了自己的博
士论文,顺利戴上博士帽。
让戴爷爷真正成名立万的还是在X1上开发的Algo60,最早的高级语言之一。戴爷爷没日
没夜地工作了8个月,就搞出了Algo60,也因此获得了 1972年的图灵奖。因为Algo60,
戴爷爷发表了一篇石破天惊的文章:Recursive
Programming,于是人们才知道,原来高级语言也可以高效地实现递归,原来从此以后,
所有程序员都不可避免地和戴爷爷发明的一个词(应该说是概念)打交道:堆栈。
而且Algo60还让戴爷爷深入地思考多道程序设计的问题,最终发明了每个系统程序员
都绕不开的概念:semaphore。当然,戴爷爷总是把他发明的概念严格形式化,极具科
学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。
说来好笑,当时的大学(忘了哪所了)还是觉得戴爷爷没有受过正统的数学训练,也不是
专门搞数值分析的,所以最后不太情愿地给了他一个教职。这种小挫折并不能妨碍象戴
爷爷这样的牛人创造历史。他一边教数值分析(:-D) ,一边开始开发一个新的操作系
统,并培养计算机科学家。几年后,THE Multiprogramming
System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统
没有死锁变得容易的操作系统。可惜戴爷爷任职的系不识货,还强行解散了他的研究小
组(1972年戴爷爷给他的系主任说他得了图灵奖,系主任的第一反应是你们搞计算机就
喜欢乱发奖)。这让戴爷爷相当郁闷,得了抑郁症。在极度郁闷之中,戴爷爷决定用写作
来治疗自己的抑郁症。于是经典就诞生乐:Notes on Structured Programming。戴爷爷
从此被尊为结构化编程的奠基人,而且他的抑郁症也被治好乐。
EWD太牛,结果他的故事也太多。先到这里吧。1973起,他的故事就在美国发生了。
Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手
做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。这些作
品的名字足以为他立传。作为一个程序员,我在这样的大师面前实在无语。生子当
如Anders的说。李维的<>里已详细讲述了Anders的传奇故事,我就不用费舌了:
http: //java.mblogger.cn/iexploiter/posts/1505.aspx
Artima上有Anders谈C#的系列访谈。MSDN上有一段Anders导游的录像 。有兴趣可以去看
看牛人的丰采。
‘叁’ 王者荣耀打野怎么建立优势
王者荣耀这款游戏想必很多小伙伴都玩过,毕竟这是目前最火爆的团队竞技类游戏。在这款游戏里,有着五个不同的位置,分别是对抗路、中路、打野、射手和辅助这五个位置。这五个位置都非常的重要,可以说是缺一不可。其中,打野位置非常的受玩家欢迎,这个位置也是很多大神玩家最喜欢玩的位置。但是这个位置的任务非常重,如果玩儿不好,很容易受到其他位置的谩骂,所以说这个位置对游戏意识要求特别高。在我看来,想要玩好打野位置,必须提升打野速度、学会反野技巧、掌握抓人套路。下面就让我说一下具体原因吧。
一、提升打野速度作为一个打野,提升打野速度是最基础的。因为只有打野快了,你才能更好的控制野区资源。而且刷野速度,也影响着你的支援速度。而且很多时候,你刷野慢,敌方打野刷野快,他可能就比你等级高,会对你在野区造成压力。所以想玩儿好打野,就必须提升你的打野速度。
各位看官,对于王者荣耀中打野如何建立优势这一问题,有想法的小伙伴儿可以在下方评论哦。
‘肆’ lol怎么升级最快
你好,英雄联盟里获得经验的方法有3
1.从死亡的敌方小兵处获得,当敌方小兵死亡时你在其附近就能获得经验,而且杀死小兵还能得到更多的经验
2.击杀英雄获得,杀死敌方英雄会获得大量经验值
3.击杀野怪,不要小看野怪的经验,打野的英雄升级速度和中路几乎一样
英雄联盟里,附近友方英雄越少你就会获得越多的经验。所以中单的英雄总比其他路的英雄早到6级。
SO!
要升级快的话。。。
1,多杀小兵,杀小兵是游戏里最最重要的经验来源
2,杀英雄。。。。。(我在想这句要不要打的说。。)
英雄联盟游戏中的经验获取方式是分为几种的,分别为:补兵、击杀敌人、获得助攻、击杀野怪这几种方法都是可以获得经验的,而对于玩家来说,补兵所带来的经验是自己比较重要的一部分。
毕竟在线上的时候玩家都是需要进行补刀的,就算是辅助英雄不补刀,那么也是可以吃掉死亡的小兵吃到的经验的,而击杀英雄相对于补刀来说就没有那么的普遍了,虽然击杀英雄也是可以获得经验的,但是最为重要的经验还是来自于补刀的。
所以想要让自己快速的升级,良好的发育是分不开的,自己稳定的补刀,然后不瞎跑不乱跑,适当的志愿队友,拿几个人头,这样自己的等级提升就会比较的迅速了
可以考虑买时间+场数双倍经验卡,如果你是小号,可以考虑去淘宝买cdk礼包,大部分都是一个450的英雄+1天+4胜经验卡,价格从3块到10块不等,视英雄而定,还有些比如几个英雄+符文+经验卡的也不过十几块,是很划算的,可以去淘宝搜一下,不过所谓88英雄礼包全是骗人的,不要上当,没有抽奖cdk,要买就买固定说明里面有什么的个人买了不少,电信的小号基本上就是靠人机刷上来的,一场能有400到500的样子,具体记不太清了,很久没玩新号了,qt语音挂两天也会能兑换一张4胜经验卡,每月一次,还有就是一些活动,游戏人生有送,关注下就可以了。
‘伍’ 程序员入门:如何自学编程
1、选定方向
编程的世界是多元纷繁的,大的方向就分前端开发、后端开发、移动开发、云计算、数据处理、智能硬件、物联网、虚拟现实等等,光编程语言都几十种。如果没有做过功课,贸然进入只会分分钟懵逼。所以最好是根据自己的兴趣爱好再结合市场前景,先选定一个方向,再选择一门语言,然后头也不回的深深扎进去。
2、优化学习方式
做好笔记,记录经验,我们大多数人并没有过目不忘的神技,很多时候我们学了也不一定马上掌握,需要过后花时间慢慢领悟,而且还有忘掉的风险,所以对于重要的知识点都要做好笔记。
3、多看官方文档,外文资料
互联网是一个更新迭代很快的行业,所有编程语言都会不断的更新新功能和修复旧Bug,网上查的资料很有可能是旧的解决方案,现在已经不适用了。所以最好最快的方法就是查看官方文档。
4、动手做项目
我们学习编程的最终目的就是用所学的做出具有一定功能的项目,而做项目又是最好的学习和巩固知识的方式。如果前期能力不足就先做一些简单的功能模块,一步一步慢慢来,不要一开始就要实现各种酷炫炸天功能,遇到不会的就在网上查, 现在互联网这么发达,获取资源也及其方便。
‘陆’ 程序员的十个阶梯是什么
一阶段:《数据结构》《软件工程》《C语言》《C++》《C#》《PHP》《Java》《Swift》《设计模式》《框架》
第二阶段:《莫生气》《佛教》《道》《来自》《思想与政治》《论持久战》
第三阶段:《脊椎匡扶指南》《腰间盘突出康复指南》《心脏病的预防与防止》《高血压降压宝典》《强迫症的自我恢复》
第四阶段:《迷恋》《谢谢你折磨我》《自私与贪婪》《走向奴役之路》
第五阶段:《活着》
第六阶段:《棺材的质量与选材》《墓地的风水与选择》《死后的思想》
第七阶段:《中国传统丧葬礼仪概述》
第八阶段:《论投胎的方法与技巧》
第十阶段:《论出生后如何不成为程序员》
‘柒’ 如何从初级程序员过渡到中高级程序员
在程序员圈,一直流传着这样一个传说,用发量来判断程序员的级别,这明显是种调侃。那么,中级程序员,相对于初级程序员,有哪些不一样的特质呢?
总得来说,比较于初级而言,中级程序员在执行层面属于攻坚力量,他们不仅能独立完成高档难度的开发使命,并且在用户体验(质量提高)和功能优化(优化效率)都能作更全面的考量。
以下,是小编总结的关于中级程序员七大特点,各位可以对号入座。
(一)善于沟通
程序员内向的居多,喜欢交流的很少,但中级程序员往往能够克服自己的内新的恐惧心理,多和同事交流。
甚至有管理者认为,程序员应该80%的时间,花在同事的交流上。不仅是部门内的同事,也还包括跨部门沟通,敲代码的需要经常与产品经理、运营的同事沟通需求。
日本不少跨国公司,甚至有让程序员去体验几个月销售员的传统。公司要求,程序员在敲代码的同时,也要能够理解一线用户的需求。
交流对于初级程序员了解技术的发展,也相当有好处:读读博客、学学新语言和框架、讨论讨论话题、看看同行在做什么。自扫门前雪,很难成为一个优秀的程序员。闭门造车型的程序员终将被时代的潮流所淘汰。
(二)对编程有激情
有些程序员干这一行只是为了挣钱,如果有更好的职业,他们会毫不犹豫的辞掉程序员的工作。
能够顺利晋升为中级程序员的人,往往热爱编程,喜欢钻研代码中的问题,他们感到能指挥电脑来帮助人们和自己解决现实生活中的问题是一种神奇的能力。当遇到问题无法解决时,他们会茶不思、饭不想,无法入睡。
每个人都有心理上的舒适区,但是中级程序员,会不断地突破自己心理上的舒适区。
他们很乐于经常去研究没有接触过的代码,也正因为这样,成长速度快的中级程序员会越来越熟悉不同的代码结构和设计模式。
(三)精通代码调试
几乎所有的程序员写代码都不是一遍就能写好的。精通代码调试 ( debug )很多人在写代码的过程中,经常会有的一个问题就是:为什么我写出来的代码不能运行?为什么运行的结果不是我想要的?
中级程序员非常快的就明白自己代码的问题可能是什么。代码调试是一个很重要的能力,但是偏偏学校里不教,面试的时候考官也不经常提及。那么怎么去调试代码呢?
代码调试是有一套方法论的。最简单的就是在代码里输出日志来判断,复杂一点则需要去接触一些高级的工具,或者直接带有 Debug 功能的编辑器。
(四)主人翁精神
部分初级程序员刚入行,可能还没有进入状态,往往认为自己是打工者,以打工者的身份和心态工作。
中级程序员却会把自己当成企业的主人,他们知道企业的利益和自己休戚相关。
成熟的程序员明白一点,作为一名优秀的企业员工,自己是生产者而非消费者。他们心中一直想得是自己能够为公司,为顾客创造什么价值,而不仅仅只想着待遇。
(五)工具型思维
中级程序员知道如何能更高效的完成任务,如何更能有效的解决问题。其原因是工具型思维,如同荀子所言,“君子生非异也,善假于物也。”
Facebook 前技术总监 Bobby Johnson 说,高效率的程序员都把时间花在制作工具上。很多人也认为工具是很重要的,但是他们并没有花时间去制作、整合自己的工具。但是,Jonson 团队最出色的员工耗费了他们 1/3 的时间在工具制作上,这些工具可以用来发布代码,监控系统,以及能让他们花更少的时间去做更多事情。
中级程序员遇到问题时,不钻牛角尖,善于利用外部工具解决自己的问题,特别是能熟练应用搜索引擎。
(六)刻意练习迭代速度
魔鬼在细节上,如果一个程序员想要提高自己的工作效率,就需要他能够不断地在细节方面,进行微创新,提高效率。
举一个例子,假设一个初级程序员,每次要花 12 秒钟去搜索某个函数是在哪里定义的。如果,他每天做这个动作 60 次,就要花 12 分钟去搜索函数定义。
中级程序员会选择用一个好一点的编辑器,每次找到函数定义只要 2 秒钟,那么他每天将节约 10 分钟,每年节约 40 个小时。如果能够找到 3 个这样的场景去优化一下,那么对于中级程序员来说,每年可以节约一个月的时间。
(七)系统学习
学习是要有方法的,尤其是在职场中,程序员的自我学习要符合两点要求:一是有结果;二是高效。因此,系统性学习,非常重要。
高级程序员系统学习指南如下:
第一步,源码分析。看看大牛是如何写代码的,提升技术审美,提升核心竞争力。
第二步,工程化。工欲善其事必先利其器,不管是小白,还是资深开发,都需要先选择好的工具,提升开发效率和团队协作效率,让自己有更多的时间来思考。
第三步,分布式。从深度到广度的完善自己的知识体系,准备迎接高并发大数据的挑战
第四步,微服务。绕微服务的通用模式,学习spring Cloud的常见用法及原理,让微服务的开发更加方便 快捷,让微服务应用更加稳定 可用。
第五步,性能优化。从JVM底层原理到内存优化 再到各个中间件的性能调优,做最科学和最严谨的性能调优。
第六步,并发编程。深入了解底层原理,不只是做一个开发者。
第七步,积极参加大牛的分享。
(八)总结
可以理解,对于初入职场的程序员来说,他们在内心也知道学习的重要性,但因为没有时间,被老板的需求给填满,没有精力去提升自我。
然而,根据人类的学习曲线来说,任何一门新的技艺,都是一条对数曲线。其分为两个阶段:缓慢期和高速发展期,即初期很慢,后期进展迅速。
如果,能够让程序员在刚进入职场的时候,便摆脱初级程序员的桎梏,直接拥有中级程序员的实力,是不是就能跨越学习曲线的缓慢期呢。
知名IT教育机构传智播客已开通了中级程序员课程,发布了全新的项目,想学习的小伙伴抓紧
‘捌’ 求《奔跑吧程序员》全文免费下载百度网盘资源,谢谢~
《奔跑吧程序员》网络网盘pdf最新全集下载:
链接:https://pan..com/s/1PS4DgpqdNgyyBE93xCH3wA
‘玖’ 谁能指导下我
如何学习 C++
如何学习一门较复杂的编程语言
前言
呵呵,大家好,我又来了,其实我天天在,大多数时候总是回答一些套话,比如"同意上传。文件名:......文件夹:......",或者"确认完毕,加1分,谢谢支持"之类,大概传过书的朋友都见过吧。
前几天,心血来潮,写了一篇如何选书的帖子,写完以后,手痒难忍,不知哪条虫又醒了过来,趁热再来一篇,谈谈如何学习 C++,总题为"斑竹观点",不知道以后还会写什么,也许就这两篇打住,也许会洋洋洒洒写成系列(吹牛不上税吧?税务局别来找我呀),那就要看我有没有心情和那么多闲工夫了,至于别人想不想看,爱不爱看,我可管不了,自己痛快就行啦。你自己愿意恶心自己,就往下看,哈哈......
闲话少叙,书归正传。话说在很久很久以前,C++ 红红火火,风头正劲,天下多少英雄豪杰为其马首是瞻......
(呸,废话连篇,看西红柿......)哇,不好,我躲,我躲,我躲躲躲......
惨,掌声没有,烂西红柿来了一筐,等我去换身衣服先......
......西服换成马褂,咱接着来。睡觉的醒一醒啦,快看呀,窗户外面下刀子了!
自从 Java 问世以来,C++ 阵营人气日下,唉,人的本性就是喜新厌旧,最近又新出一小妞,叫什么 C# 的,搅得人心惶惶,明明是 Java 的克隆加变异,她干妈(那个叫什么 M$ 的)非要和人家 C++ 攀亲戚,说是 C++ 亲生,和 Java 对着干。唉,这世道,乱套了,不知道这人心都是怎么长的。
我不怕你们的西红柿了,我准备了纸糊盾牌,嘿嘿,除非本·拉登亲自出马......
但是,C++ 周围总还是有一群誓死效忠的追随者长伴左右,任你风吹雨打,我自岿然不动。C++ 把纯粹与高效,精美与诡异完美地,近乎奇迹般地集于一身,吸引着那些喜欢寻幽揽胜的探险家们。当然 C++ 并非不实用,但我今天不想谈 C++ 的工业应用(那是我的工作,俗),超脱起来,来看看纯粹的 C++。如果你想为了找工作而学习 C++,我劝你就此打住,别往下看了,我帮不了你,瞎耽误工夫,我也劝你别学 C++,改行 Java 吧,或者 VB 也成。如果你是一个专职程序员,下一个项目是关于 C++ 的,而你还不会,想临时抱抱佛脚,你也别看了,我想你的公司会组织你们集体去抱的,你们可以针对你们的项目学习一个够用的子集大概就可以了。我这篇帖子不是佛脚,不讲如何速成,我只是想针对现在众多想学习 C++ 却又无从下手的学生提出我自己的建议。你可以不同意我的观点,那么请准备好西红柿,等我讲完了,我给你们时间扔(事先声明,我要好的,烂的不要啊)。
好了,如果你的耐心已经让你忍耐至此,而且还想忍耐下去的话,我希望你能忍到最后,再也没一句废话了,你没有理由看完上面的废话不往下看。
一、什么是 C++?
一看我的标题,大概又有人举西红柿了,您慢着点儿,别闪了腰或岔了气!很多人不知道这个问题的正确答案。如果你还认为"C++ 是 C 的超集",那你可是大大落伍了,这是二十年前的答案了。如果你说"C++ 是一种面向对象的程序设计语言",哈哈,沾边,但也不对,在98年 C++ 国际标准公布以后尤其不对!
C++ 之父 Bjarne Stroustrup 曾有一篇论文 Learning Standard C++ as a New Language,《程序员》杂志2001年4月号有陈崴的译文《将标准 C++ 视为一个新语言》,把 C++ 和它那个好像还不是右派的爹彻底划清了界限。文章对 C 和 C++ 在 Complexity(复杂度)和 Efficiency(效率)两方面做了比较,指出 C++ 已经完全不同于 C 的观念,并对如何学习标准 C++ 提出建议。有兴趣的朋友可以看看,很有启发性。
C++ 发展至今,其历史已足够写一本书了,Bjarne 的经典名着 The Design and Evolution of C++,详细记述了 C++ 设计和发展过程中(1979-1994)的种种考虑与妥协,它不讲 C++ 是什么样的,它只讲 C++ 为什么会成为这样。不建议初学者去看这本书,实在是咬不动,我当初已经看得头破血流了,而且这本书只讲到1994年为止,多少有些过时了,如果你已比较好地掌握 C++,并想了解其历史,看看倒是有些参考价值。
C++ 虽然起源于 C,语法也比较相似,其迅速成功并成为主流很大程度上也归功于 C 的成功。但经过多年的发展,其最精妙,最有吸引力的部分正是不同于 C 的那一部分。Koenig & Moo 夫妇在为想成为更好的 C++ 程序员的人提出的3条建议中第1条就是"避免使用指针",你相信吗?指针正是 C 的核心呀。C 的宏、位运算、结构、联合、数组、强制类型转换、指针,在 C++ 程序中都应该尽量避免(在少量涉及底层的程序设计中例外),C++ 语法上强调的是类、对象、模板、标准库、引用、异常和 const 关键字,思想上强调的是面向对象和泛型。
在 Proceral Programming, Object-Based Programming, Object-Oriented Programming, Generic Programming 中,C 仅仅支持第一种,而就是在 Proceral Programming 的程序中,如果使用了标准库,一个 C++ 程序也可以和实现同样功能的 C 程序完全不同。
Bjarne 曾不止一次强调 C++ 不仅仅是一种 Object-Oriented Programming Language,那是 Java,C++ 是一种集各种编程风格于一身的程序设计语言,Object-Oriented Programming 只是其中一种,并不比其它几种风格重要。我目前很怀疑 C++ 对面向对象的支持程度,虽然它一度在这方面风光无限,但多年发展,它并没有形成一个类似于 Java 或 Python 或其它语言那样的类库,也很少取得成功的像样的类库(不能说一个没有,但毕竟很少),反而,在难产到1998年的 C++ 的第一个标准化文本中的库却是基于 Template 和 Generic 的。哈,这多少有些讽刺意味,在别的语言还唧唧喳喳讨好面向对象的时候,C++ 抛下一个媚眼,却转身投入泛型的怀抱。见风使舵的 Java 和 C# 好像上错了贼船,又都赶着往自己身上贴泛型的金,弄得人不人鬼不鬼,当初,Java 可是批判 C++ 过于复杂最起劲的一个,在可以预见的将来,它的复杂程度将不低于 C++。拜托,有点创意好不好,别总让人神经衰弱了!
Java fans 们不要扁我,下次我写"如何学习 Java"时,咱哥们友情后补。
废话太多,第一个问题就此打住。
二、选用什么样的编译器?
这个问题也是初学者经常问的问题,其实一句话,对于初学者来说,现有的较新的编译器,除了易用性外,没有任何区别。
有人总是在用 VC 还是 BCB 还是 GCC 上争论不休,我想如果你能把这三种编译器的区别用出来,你现在就不会看我这篇破玩意儿了。但有人现在还在用 Turbo C++ 3.0/3.1,如果你真想学好 C++,我劝你还是换换的好,那东东确实是个好东东,但已经被 Borland fans 们当作古董收藏起来了(我也留着一套呢,还有 TC 2.0),你也收起来吧,没准什么时候能卖个好价钱。
我要讲的一个重要问题是不要把 VC 与 C++ 混为一谈,也不要把 VC 当作另一种语言。首先,VC 的全称是 Microsoft Visual C++,注意,前面带有公司的名字,即使是 Java,也没有叫过 Sun Java,这就意味着 VC 是一个产品,它是 C++ 众多编译环境中的一种,它不仅仅带有一个 C++ 语言的编译器,它还带有一个用于开发 Windows 应用程序的 Application Framework - Microsoft Foundation Classes Library (MFC),又一个带公司名的家伙,它只是用 C++ 语言在 Windows API 外面加了一层包装而已,省得赤裸裸的,让程序员们在工作的时候总走神去看那些不该看的地方, 这个东西多少让开发 Windows 程序变得更容易一些。呵呵,不要再把 VC 当作语言了。
在易用性层面上,我还是推荐初学者使用 VC,用这个东东的比较多,遇到问题也好找人问。至于版本,6.0 应该够用,但这个版本已经是5年前的东东了,毕竟早了些,与标准的兼容性也多有诟病,如果有条件的话,可以用 VC .NET,这个东东的最新版本是刚刚发布的2003版,我还没见过,我只用过它的上一个版本。经过 C++ 大腕 Lippman 亲手调教过的2003版,据说对标准的兼容性已经有了根本性的转变,管他呢,又是一个宣传用语,只要你不是特意去实验标准中的那些犄角旮旯,现在流行的编译器都已经绝对够用了。
三、选书很重要
这是一个最让人挠头的问题,选什么书总是见仁见智,什么书最好是一个永远找不到标准答案的难题,来我们这个论坛的朋友多半是冲着书来的。我不想评论哪本书好哪本不好,我只是大致列一个书单,简单讲两句。
我的书单并不定位于一个没有任何语言编程基础的初学者,我觉得这样的初学者不适合直接学习 C++ 语言。我的书单定位于那些有其它语言的一定的编程基础的 C++ 初学者,他至少应该知道什么是变量,什么是运算符,什么是表达式,关键字,语句,程序,至少应该知道赋值语句是干什么的,分支判断语句干什么,循环语句干什么,当然他不必知道 C/C++ 的词法和语法,也就是说他有以上的概念,但不知道这些东西在 C/C++ 中是如何实现的。在这个基础上,我把书单分为入门类、进阶类、应用技巧类。
入门类:
C++ Primer, 3rd Edition
Thinking in C++, 2nd Edition
C++ 大学教程(这本书我没看过,但不少初学者说不错,留此存目)
The C++ Standard Library: A Tutorial and Reference
进阶类:
The C++ Programming Language, Special Edition
The Design and Evolution of C++
Inside C++ Object Model
C++ Templates: The Complete Guide
STL 源码剖析
Generic Programming and the STL
Modern C++ Design: Generic Programming and Design Patterns Applied
应用技巧类:
Effective C++, 2nd Editon
More Effective C++
Exceptional C++
More Exceptional C++
Effective STL
Ruminations on C++
对这个书单我有几点说明:
1、除我注明的那本以外,其它书我基本看过,或浏览过,了解其大致内容。也因此这些书就局限在我的眼光之内,既然不愿给大家推荐我没看过的书,也就难免有遗珠之憾。
2、很多人认为 The C++ Programming Language 是入门书,我认为不妥,这本书号称"专家自学指南",并非浪得虚名,读者水平越高越能从这本书里学到更多的东西。如果身边没有一个很好的老师随时指导的话,我不建议初学者选用这本书,一上来就看这本书容易产生挫折感,影响学习的信心。这本书也可以作为语言参考手册常备身边,随用随查。
3、入门类前三本选一本即可,第一本我详细读过,第二本我大致浏览过,第三本没看过。第四本我极力推荐,每个初学者都应该好好看看,很多人认为应该归入进阶类,我放在入门类自有我的道理。有网友反应 Thinking in C++ 对于初学者太难,我感觉如果符合了我上面对初学者的初步要求的话,读这本书应该没什么问题。
4、我不建议用国内的书入门,我见过大部分国内书的内容只是讲了一个更好的 C,不是 C++。我认为初学者应选择一本对语言介绍比较全面、详细的书,以便对 C++ 有一个全面而系统的认识,一知半解是学习的大忌。如果一本自称全面的 C++ 书中缺少 String, Containers, Generic Algorithms, Namespaces, Templates, Exception Handling, RTTI 中的一个,你有理由不看它,如果一本自称全面的 C++ 书没有讲到标准库或 STL,你有理由不看它,如果一本自称全面的 C++ 书中的头文件还带有 ".h" 后缀,你有理由不看它。
5、应用技巧类并非最后再看,我单独把这些书列出,是因为这些书要和前两类书一起看,没有先后顺序。
6、选书的原则以及与每一阶段学习的关系,到下一部分我还要继续展开。
7、上述大部分书都有中文版,翻译质量大部分还不错,建议英文较好的最好直接读英文版,英文不好的也可看中文版。
下面我谈谈对纸版书和电子版书的看法。初学时最好去买一本纸版书,这样无论你躺着,坐着还是站着,也无论你身在何处——教室、图书馆、实验室、湖边长廊,你都可以很方便地拿出来看。很多同学的实验室和寝室中都配有电脑,似乎看电子版很方便,但是当寝室中老大在大呼小叫地打 CS,老二抱着电话和准老婆谈情说爱,老三抱着枕头说着梦话,老四抱着吉他唱着调跑到北冰洋去的自创情歌时,无论你是老几,我不相信你能对着电脑屏幕,心平气和地看着 C++ Primer 电子版,寝室根本不是学习的地方,最好还是拿上一本纸版书,到自习室、图书馆去吧。
课间短剧
讲到此处,digerati 同学举手发言:"老师,我有笔记本电脑啦,我可以带到自习室去,还是看电子版。"
涅盘老师当场被噎出四个跟头,晕了过去。五分钟后悠悠醒转,感觉口干舌燥。"水......水......"
涅盘老师喝了两口水,清清嗓子,继续讲课:
刚才,digerati 同学说得......说得......很好......是吧......哈哈......这个......那个......是呀......啊......
你可以把笔记本电脑带到自习室去,但你在马路边等 MM 或者 GG 的时候,或者坐公共汽车的时候,笔记本电脑总是不如纸书方便嘛?是吧?
zhazha 同学举手发言:"老师,我有掌上电脑啦,比你那本两块砖头重的书方便多了,我可以在等 MM 的时候看电子版。"
涅盘老师当场被噎了八个跟头,一天都没有醒。
转天,涅盘老师才醒过来,有气无力地抬起胳膊,伸出手:"眼镜......给我眼镜......"
zhazha:"老师,您戴着呢。"
涅盘老师:"那我怎么什么都看不见啊?"
zhazha:"您还没睁眼呢!"
涅盘老师艰难地睁开眼睛:"怎么还看不见呢?"
zhazha:"老师,您睡了一整天了,揉揉眼睛。"
涅盘老师用力揉揉眼:"还是不清楚。"
zhazha:"您再揉揉......"
涅盘老师:"还是不行......"
zhazha:"您再揉揉......"
涅盘老师:"还是不行......"
如此反复50次。
涅盘老师双眼红肿,极为愤怒,不耐烦地嚷着:"不能再揉了!!!我为什么还是看不清???"
digerati:"老师,很抱歉,我们忘了告诉您,昨天您眼镜的两个镜片都摔碎了,现在您只戴着眼镜框......"
涅盘老师:"@#&*@$%$#&"又晕了过去......
......
几天以后,继续上课,涅盘老师原来只有两名同学,现在他面对空空的教室......
同学们,啊......上次课,啊......digerati 同学 和 zhazha 同学,啊......上课捣乱,啊......被停课请家长,啊......家长至今未到,啊......他们现在还在办公室罚站,啊......如果其他同学,啊......再上课捣乱,啊......就和他们一样的下场,啊......
就在涅盘老师对着空教室慷慨激昂的时候,digerati 和 zhazha 正舒舒服服地坐在办公室的沙发上,翘着二郎腿,喝着涅盘老师的龙井茶......哈哈!
四、学习过程很辛苦
不要问我学习 C++ 有什么捷径,因为我也不知道。
如果你的学校里开设 C++ 课程,那你很幸运,送你八个字:"课前预习,课后复习",按时完成作业之类是作为学生的基本要求,我就不在这里重复了。下面的内容是针对学校里不开设 C++ 课程的学习者的。
我不可能一步一步教你如何学习 C++,不同的人经历不同,环境不同,学习能力不同,适用于一个人的方法不一定适用于另一个人,我只讲几条经验,供大家参考:
1、不要死抠语法:初学者最容易犯的错误就是抱着一本大书死抠语法,结果语法倒是很熟,程序还是一行都不会写,学习的积极性也受到很大打击。学习编程,语法是最不重要的,最重要的是思路。语法可以从任何一本书上查出来,比如说,用到循环语句的时候,你忘了语法,你可以翻书去查,但如果该用循环的时候你不知道用循环,该赋值的时候不知道用赋值,语法再熟有什么用呢?
2、建立面向对象的概念:在这一点上,我很欣赏 Thinking in C++,第一章是 Introction to Objects,第二章是 Making & Using Objects,先让读者建立起对象的概念。面向对象概念开始建立的时候确实比较难,但这一关早晚得过,不过这一关就永远写不出真正的 C++ 程序,因此从开始就要培养这一思维方式,不必一蹴而就,要慢慢来,一点一点把思想方法转变过去。只要面向对象的概念建立起来,以后无论学习 Java 还是 C#,都不过是小菜一碟,新东西很少了。
3、尽早接触标准库:这也就是我把 The C++ Standard Library: A Tutorial and Reference 归入入门类的出发点,标准库的概念接触越早越好,要把使用标准库作为天经地义的事情,作为自己的编程习惯,能用的地方一定要用。几乎所有的 C++ 大师都强调过这一点,The C++ Programming Language 第三章就是 A Tour of the Standart Library,已经提前得不能再提前了,可见其重视程度。而国内的 C++ 教材要么不讲,要么简简单单一带而过,晕!
4、认真分析例题:从别人的源代码中学习是最简单的学习方法。书上的例题大部分都是作者精心挑选的,最能体现某种语法特点或思想观念的程序,认真体会这些例题,理解程序的逻辑和结构,多问自己几个问题:作者为什么要设计这个类?这个类有什么作用?作者是如何设计这个类的?如何使用这个类的?这个类是否还可以用在别处?等等。把上述问题中的"类"换成"函数"、"模板"等同样适用。遇到不好理解的例题我有一个笨办法,就是把源程序输入一遍,这个办法确实很有效,看了半天也看不懂的程序,只要输入一遍基本就能理解了,而且还加深了印象。不要不动脑子一个字母一个字母敲,敲完都不记得敲的什么了,要看一行或一段再自己输入。
5、培养良好的编程风格,积累编程技巧:只要你对 C++ 有了一个初步的概念,就可以开始看我在上一部分列出的应用技巧类书籍了。并不是每一个条款都那么高难,你也不是一定要按顺序读,一边学一边就可以挑选自己能看懂的条款研究一番。当然初学者不可能理解很深,好在这些书也不是看一遍就够的,有些条款随着你学习的深入,反复阅读会有更深的体会。如果一本全面的书是正餐的话,这些书就是佐餐的小菜,提供人体必须的维生素、矿物质和微量元素,全面吸收才能茁壮成长。
6、擅于利用身边的工具与环境:大多数编程环境都提供丰富的工具供用户使用,比如调试器等,参照用户手册,利用这些工具对自己写的程序进行分析、监视和跟踪,可以在很大程度上提搞学习和工作效率。互联网更是一个丰富的资源,特别是 google 和 MSDN,利用这些可以解决你的大多数问题,即使没有找到答案,还可以上论坛去问。我不提倡动不动一点小问题就到论坛上发一些诸如"救火""救命"之类的帖子,很无聊,这样的帖子我基本不看,大多数人都不会看,在论坛上要有提问的技巧,将你的问题,你所使用的环境,问题出现的条件等描述清楚,包括你自己的思考,你自己的想法,虽然你的帖子是在提问,但如果写得好还可以给别人一些启发。
7、学无止境:C++ 语言还在不断发展,C++ 语言的国际标准也正在修订,早一天了解就能早一天受益。推开这扇门吧,有一片奇异的风景在等着你。