分享

C 学习指导和发展方向分析 (《C++ Primer Plus》这本书是关于初学者的解说很详细很全部一步一步的解说程序实例并不做单调的数学运算而是生活的小比方然后添加爱好和下降难度)

 山峰云绕 2017-06-11

(《C++ Primer Plus》这本书是关于初学者的解说很详细很全部一步一步的解说程序实例并不做单调的数学运算而是生活的小比方然后添加爱好和下降难度)

  假如你看到,期望对你有学习参阅的价值。

  首先,有正常思想逻辑就能学好编程;主张学c++,过度滑润,上手简略,大学就能触摸到,这是其一;c++既面向进程,又面向对象,这是其二。

  先学习言语,每一有些都要去学习,包含模板和泛型编程。

  关于言语,把C++的每个有些学好,就不要在言语等级上羁绊,那即是要开展到体系等级了。也不管是曾经学过的,仍是没学过的,或许曾经学过C的,请都细心学习一遍《C++ Primer Plus》这本书,这本书是关于初学者的,解说很详细很全部,一步一步的解说,程序实例并不做单调的数学运算,而是生活的小比方,然后添加爱好和下降难度。

  这本书学完后,假如要进阶,可以学习《高效C++》。然后你就知道言语有些你还需求学啥了。如今不要问,学完后你天然知道还需求学啥。

  当然,学的时候,着手编程是必不行少的,要常常写代码,把这些思想用熟,让它变成自个的思想,这么就成功了。今后就不会没有思路了,由于思想现已转化为自个的了。

  到这儿,言语方面的学习疑问都解说理解了。下一有些的开展方向即是操作体系。关于操作体系,先不是编程的疑问了,而是操作体系的原理疑问。这是优异的程序员有必要把握的常识。不要觉得这些原理单调,也不要觉得那些思想过期了,书中的思想是没有过期的,尽管简略,可是如今的体系都是依据这些根本思想的。假如这些根本思想都不了解,更甭说去学习如今的体系了,那几乎即是噩梦。了解了书中的理论还不行,有必要一起改变自个的思想,以操作体系的运转逻辑来看操作体系,而不是依你的思想来看,由于它是现已存在的东西,即便不合理,它也存在,你有必要承受,而不是你觉得应当怎么,除非你自个去写一个操作体系,来制定它的规矩。至于学习的书,可以参阅汤子灜的《计算机操作体系》。


  然后你可以去学习《Windows程序设计》和《Windows中心编程》深化学习Windows编程常识,或许学习Linux体系等,当然,假如真心想深化研究,主张学习Linux体系,由于它是开源的,你能看到体系一切内核的代码,深化学习,而Windows是关闭的,你看不到。不过,假如你要在Windows渠道上开展和找作业,那主张学习好,学好后还可以比照学习Linux体系,非常好的了解它,然后更能提高操作体系的常识水平,而不限于哪一种操作体系。然后即是各种运用等级的,比方图形方面的,网络通信方面的,等等。可是体系是它们的根底,所以有必要先学好,才干非常好的学习它们,当然这是主张,可以依据自个的状况做调整。

  然后即是最实习的疑问。学完了首先是要找作业。当然,咱们学习的意图不是找作业,千万也不要是找作业,假如仅仅为了找作业而学C++,那我请你三思。不是找不到作业的疑问,也不是薪酬的疑问,而是,C++是一门对比难的言语,不是一会儿就能学好的,急于求成只会欲速则不达。可是,情愿花时刻学好,当然也是可以找到薪酬不错的作业的。C++方面的作业不是没有,是公司找不到水平高的C++的人才。半桶水是搞欠好C++的,所以要学好,作业是没疑问的,不学好,也不要说C++没前途,只能说自个学的还不行。至于薪酬的凹凸,是跟技能水平成正比的,技能含量高的,薪酬天然高,需求投入的时刻和精力就天然多,这个毋庸置疑。所以,不要置疑C++找不到作业的疑问,只需置疑自个学好了没有的疑问。同样也不要置疑薪酬凹凸的疑问,只需置疑自个水平凹凸的疑问。

  当然,C++根底学好了,仍是不行的。它仅仅一门言语罢了,仅此罢了,不要把它想得太崇高了。真实可以表现最佳的作用的,仍是要与渠道联系,还有学会别的的开发东西,比方结构,类库啥的。初学者通常都是从事Windows开发,当然也有预备从事Linux开发,关于服务器方面的开发,根本上是用Linux了。所以依据自个的开展方向,进行挑选吧。不管是哪个体系渠道,操作体系的根底理论有必要学好,由于它是一切现在操作体系的通用理论。然后再别离深化学习。Linux方面的我水平不行,尽管学过了Linux体系,也在自个的电脑装过Windows/Linux双体系,可是也仅仅限于Linux体系的运用层面,开发层面不理解。学习Linux体系的运用,可以参看《鸟哥的私房菜》,编程方面自个网上查阅。我主要说说Windows方面的,由于多数人仍是从事Windows渠道的开发。

  言语不是疑问了,可是在开发项目时,却是远远不行的。开发项目是要高功率处理实习疑问的。由于公司是盈余的,而且还要最大化盈余,是不允许啥都从头做起,当然是有东西可以学习时是不允许这么的,可是没有时则仍是要从头做起。鉴于Windows是微软的操作体系商品,因而,东西最佳仍是运用微软的。由于这么的话,可以和体系做到最高效的对接,提高程序的功率和兼容疑问。在往常开发中,运用的开发东西则引荐运用Visual Studio 2010旗舰版(在咱们网站可以下载),开发时运用MFC(微软根底类库)。MFC覆盖了编程中一切的方面。当然,在这之前,需求学习Windows编程,也即是API编程,由于MFC有些功用是API的简略封装,简略的意思即是把一个API函数放在MFC函数中,将API函数需求的句柄作为MFC类中的一个成员变量,然后减少了函数的一个参数。仅此罢了。还有的功用,根本就没有MFC类或许类成员函数对应,因而就有必要运用API函数来处理。一起MFC是一个类库,仍是一个程序结构。

  所谓的程序结构,即是将Windows程序的流程进行了封装,然后在MFC中可以轻松的编程而不必关注内部许多细节。有人会说MFC开发的程序功率很低,我之前也听信了他们的看法。本来,我如今倒不这么觉得。说它功率低是由于MFC是一个结构等级的,因而考虑疑问都是很高很远的,天然,有些方面就要考虑到很全部,天然也就对程序添加了许多通常用不上的东西,致使程序功率变低。之前我也是这么认为了的,然后产生了对MFC的轻视,信任从底层开发更能表现技能。可是这种主意是过错的。功率低不低,本来不关东西的疑问,表面上看,的确如此,假如以默许导游装备生成了一个程序,天然会参加许多不必要的东西,程序功率天然变得低了,可是,假如是一个高手,很通晓MFC,天然,每个有些是干啥的摸得一览无余,试想,编出来的程序能低吗?我想,由于是跟操作体系同源,所以履行功率更高,由于许多东西可以直接是体系的内核的东西,而别的类库,由于Windows是关闭的,不可以做到深化内核的一些东西,因而就运用用户态的东西模仿内核的,因而功率也就变低了写。就像Java的虚拟机运转程序,假如能在Windows中的程序直接运转,免掉了中心的转换,天然功率就高了。这儿的谈论是很含糊的,仅仅通知咱们,真实通晓了,就不存在功率低的疑问,假如是菜鸟,再好的宝剑也表现不出成效。所以,从如今起,期望咱们纠正一个思想,东西没好坏,只要开发者水平凹凸的疑问,就想玩游戏的,没有欠好的游戏人物,只要猪相同的玩家,道理是相同的。所以也请有必要准确的看待这些开发东西。再实习的开发中,咱们还有必要学好用好一个或许多个东西,一起还要深化,要通晓。


  而在学习MFC之前,当然C++必然是要学好的,一起Windows API编程也有必要学好。MFC只要C++才干运用的类库,有些初学者还不知道,我最初开端触摸也不理解。当然这都是主张,可以依据实习状况调整。当然,假如这两个不先学好,MFC想要学好就真难了,MFC就像C++相同,也是博学多才的。由于涵盖了C++、Windows,还有MFC自身的文档视图结构和一些别的的机制,直接学MFC,不行幻想。Windows的学习,可以看《Windows程序设计》,MFC初学可以学《MFC Windows程序设计》。这些都是适合初学者的。MFC的深化可以学习侯捷的《深化浅出MFC》。这些都学好了,根本的开发都不成疑问了。

  要想进一步学习,就要学习更多详细范畴的开发,就要学更多的东西了。再此先引荐学一下STL(C++的规范模板库)和Boost库,这些库在实习开发中常常运用。MFC中有容器库,比方CArray,它是先于STL呈现的,有很久的前史了,也很好用,想Java的容器运用相同,很便利。可是真要学好容器,仍是学习STL。STL是后来添加到C++的,是一个规范的模板库,当然容器也是规范的,不一样的容器有不一样的分类,而不是想MFC的容器库相同,一个容器类完成了各种容器,运用起来便利,可是了解起来就不是那么简略了。STL中vector和map是不一样的容器,用法也不相同,所以,学会STL,你就可以很理解容器的内部原理,运用起来就称心如意。容器的内部结构即是数据组织中的东西,比方树,链表等,正是这些结构,才使得容器可以很简略完成了动态增加,和各种特性。然后STL中的各种算法,当然是与容器分隔的,通过适配器将容器和算法连接起来,使算法可以操作容器,这也即是泛型编程的思想的成果。算法中则是数据结构中的算法作为根底,STL强调功率榜首,而这些算法都是世界顶级大师的创作,功率上绝对是杠杠的。由于注重功率,因而在过错操控上就很少,所以运用时有必要注意,不然呈现的过错你都看不懂。而STL是依据模板的,因而,想要学好STL,C++的模板需求有深化的学习,还有数据结构的常识。当然,C++的别的根底常识也是必要的。数据结构学习的引荐书目是严蔚敏的《数据结构》。这本书对比可贵了解,可是书中解说的很精练,初学者要预备学不止一遍的心理预备,两遍三遍都是很有必要的。即便有人辅导,即便有教师解说,真实的学会和领悟到精华,还需求自个深化的了解和着手实习,而不是知道了链表怎么添加一个节点那么简略。各种算法不是仅仅理解了就完事了,需求将其间的精华吸收,简化到最简略,自个可以容易的完成。或许自个最算法再加以改造,进一步提高功率。要知道,书中的算法都是人想出来的,千万不要信任威望,要应战威望,说不定,下一版印刷,那个算法即是你的了。当然,STL仅仅初学者加深的一个挑选,主张学好。即便暂时不学,把MFC中的容器类学会了,运用上是没有疑问的,想要做到出神入化,称心如意,那就有必要学习这些东西了。STL就说这么多,然后即是详细的范畴的学习,数据库开发的学习,计算机图形(GDI)开发、网络开发(Socket编程)等等,这些就依据公司需求做啥就学啥。可是最佳之前就有些根本的,而不是啥也不知道,这么关于自个在公司的开展是很不利的,至于为啥,咱们今后天然会理解。

  至于C++程序员更远点开展方向,则不是初学者需求考虑的疑问了。先把这些该学的东西学到了,今后天然也会理解自个想往哪方面走的。假如我有幸可以考虑理解这些疑问,我会再给咱们共享我的经历,那时不是辅导,仅仅共享心得了,由于咱们那时也都是高手了,咱们彼此彼此。我会一向陪着咱们,坚持走到最终,我期望,咱们都有一个好的开展方向和成果。这些的学习,首先要学习根本的理论,比方,网络开发,TCP/IP协议都不知道,必定不能开发一个好的程序的,知道了根底理论后,再学习相应的编程开发常识,用到啥学啥。此有些说的各个范畴的可以先了解根底,然后再用到再学,可是,前面说的根底,有必要是作业之前就要把握,不然,作业中就有得你受了。不要简略的听信他人说啥不要等啥都学好的再去作业,可是我要通知你,不要一点根底都没有就去作业,这是我的崎岖的阅历通知我的真理。请信任我这一句忠告吧。


  欢迎大家多多阅读我的c语言文章,多多学习交流,欢迎转发,欢迎关注!我想你也会有所收成,我信任你也会成功。假如还有疑问,请直接谈论中提出,有不准确的请纠正,谦虚求教

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多