C++方向的困惑

你已经描述了很多你的学习经历,我想和你分享一些东西。

首先,关于你的问题,我最大的建议是,你要开阔眼界。如果你还对编程感兴趣,那就花时间多学点东西吧。

先打个比喻,把编程技术比作练武。

从你的编程经历中,我知道你一直在走微软的技术路线,学的东西包括windows编程和MFC,现在好像在学C#,说明你对这个门派的武功有了更深的了解,可以说有所成就。

但是每个武术高手,一般来说都会有几套功夫。如果把一门语言比作一套功夫,C++算一套,C#算一套。我建议你可以选择学习其他编程语言,比如perl、python、ruby等。这些脚本语言会让你对编程有新的认识,在编程中找到更多乐趣。

所有编程语言中最强大的叫做LISP,相当于九阴真镜九阳沈工之类的武林秘籍。我没听说过。这种编程语言是50年前发明的,在中国只有几个世俗的专家掌握。

学武术,编程语言是拳头和拳头,那么用的武器就是开发工具。你现在用的开发工具主要是visual studio。如果你想像18一样精通武功,那就不要只盯着微软的那一套,要多选择武器来练。比如一个叫Eclips是IBM开发的,一个叫NetBeans是SUN做的。哦,最流行的武器是GNU开发的,叫GCC,有工具支持。但是听说江湖中有很多传说中的宝物,比如一个lcc,一个叫LLVM的神器,还有yacc,GHC这样的外星武器。

学功夫的时候也要注意和别人交流,看师傅的功夫,也就是看师傅的码。哪里可以读到大师的代码?很简单,现在很多系统都是开源的。你为什么不买一些书呢?比如一个叫侯杰的台湾省人写了一个STL源码分析。

/subject/1110934/

还有一个叫毛的浙江大学的人,他粗制滥造了两大操作系统的内核。

/subject/1231584/

/subject/3715700/

还有很多优秀的开源框架,都是神仙武功秘籍。以上几本书我都看懂了,相当于打通了任督二脉,功力在提升。

学习武术,最重要的是基本功扎实。编程最重要的基本功是数学和英语。虽然你现在不需要这两样东西,但那是因为你现在遇到的问题太低级了。有人曾将编程分为三个领域:

-业务职能

-业务绩效

-商业智能

比如你的目标是设计一个小游戏,让大家都能玩好,没有bug,也就是达到了商业功能的境界。比如连连看,泡泡龙等游戏。

如果你的目标是设计一个日点击量15-18亿的搜索引擎,那么你就需要考虑业务性能。达到这一水平的程序包括百度和谷歌搜索引擎、脸书和亚马逊存储框架。

如果你的目标是设计一个能和你互动的程序,能完成快乐词典之类的问答程序,那么你已经达到了商业智能的境界。达到这一境界的程序包括美国国家航空航天局的火星探测器、IBM的沃森系统和苹果的siri系统。

反正如果停留在第一层次,学数学还是英语都无所谓。如果你雄心勃勃,想要达到第二个层次,你必须学习数学和英语,否则你无法与这个层次的人交流。

如果你想成为一代宗师,用它来爬第三关,那么我可以告诉你,没有什么现成的,所有的信息和知识都在非常专业的论文里,需要付出很大的努力才能有所成就。

最后,武林高手都是内力深厚的人。编程的内力在哪里?计算机的灵魂是一个叫算法的东西,你需要研究很多年。很多人问算法应该看什么书,我整理了一个清单。请看这里:

/question/403238015.html?oldq=1