我是自学C++的,应该是有资格回答这个问题的。
如果把学成C++的过程用100分来计算
1、开始,+10分,Hello World
工具:
没错,就是这么任性,C++很难吗?也不过是一门编程语言而已,大概率是没有高数难的。问题的关键是你总能给自己找到理由不走出这至关重要的第一步。
2、看书,+50分
C++是一门超过30岁的古老编程语言了,关于这门语言的一切精华,前人之述备矣,该写的基本上都写完了,你能想到的问题基本上都可以在下面这些经典书籍中找到:
问题是这么多的书怎么看得过来?核心的思路是必须形成输入+输出+反馈的闭环:
这么多的书需要全看完吗?那大概率是你十年内都不能去面试。最最关键的书籍是那本?我首推《Effective C++》,“世界上只有两种C++程序员,一种是读过《Effective C++》的,另一种是没有读过《Effective C++》”。这话虽然夸张,但确实有一些道理。
倘若你已经将《Effective C++》精读过,也把其它的书略略的泛读过了,那么你现在大概是60分了。可哪怕你现在只有这60分,你也同样有资格在简历上写精通C++了。对,你没看错,现在的C++应聘者十有八九都没到这个水平,写精通,不是因为你的绝对水平有多高,只是因为你的相对水平已经够高了。大概率,面试官会对你写的精通两字嗤之以鼻,但只要你能真的把你从这些书中理解到的东西用你自己的话讲明白,面试官一般也会高抬贵手的。
3、专题,+20
不要再指望着神功大成再出山行走江湖了,真的,这可亏大了。尽快投入到C++工作实战中去才是最好的学习捷径。无论是搞服务器、游戏、UI、算法等等,专题的东西就在专题中学习就够了。
但是为了避免浪费双方的时间,我还是诚恳的建议你,面试前,至少,你应该把下面这几个小例子搞得清清楚楚:
4、关于github,+10
原则上,我并不推荐新手直接去github上找成熟的项目代码看,原因有两个:
所以,功力不够的时候与其去东施效颦,还不如不看。最简单的衡量标准可能是:先写够20000行C++代码(当然不能是那种高度雷同的复制黏贴体),然后你才有些底气去看别人的成熟项目代码。
5、没有100
C++语言属于那种不管你多么小心谨慎地呵护它,它总能时不时地带给你一些小惊喜,小意外的另类语言。所以,注定没有100分。