C/C++语言学习的策略

2021-02-10    分类: 网站建设

断章取义

C语言出现50年了,有很多内容已过时,至少有百分之二十的内容没有实用价值。

C++更过份,对程序员来说,至少有百分之七十的内容没有实用价值。

Linux系统也是,命令上千个,对程序员来说有用的不超过50个。

人的精力是有限的,没必要去折腾那些没有实用价值的知识点。各位当中有些人可能已经有基础,会发现在我的课程中会缺一些内容,如链表、排序算法、二叉树、红黑树、C++的输入输出和流、stl等,缺了是因为这些知识没有实用价值,学了之后除了用来吹牛别无用处。

现有的C/C++的教材中,大部分是教授写出来的,没有几本是程序员写出来的,毫不夸张的说:没有经过实战的教授在精英程序员面前,始终就停留在小学生水平。

我学习C语言是从谭浩强的《C程序设计》开始的,这本书过时很久了,谭浩强已经仙逝多年,他的书也应该随他一起进入天堂,不应该成为出版商赚钱的工具。

《C Primer Plus》和《C++ Primer Plus》这两本书写得不错,作者功力深厚,每本书有1500多页,拿在手上非常有份量。但是,在我看来,实在是太啰嗦,只介绍知识,没有重点。

网上也有不少视频教程,但是,大部分的教程只是把书本上的内容搬到视频中,没有新意。

培养程序员的感觉

在自然界,每种动物都有它们交流的方式,山中的野鸡、树上的小鸟,如果懂得它们的语言就容易抓住它们,只是普通人不知道而已。

与人类的语言相比,动物的语言非常简单。

与人类的语言相比,计算机的语言也很简单,初学者认为难是因为不适应,不习惯。

所以,对初学者来说,培养写程序的感觉是最重要的事情。

如何培养程序员的感觉

首先,程序员是写出来的,不是看出来的。

去过紫禁城的人都知道,不管你有多么聪明,绕多几个弯,迷路是大概率的事情,但是,那些在紫禁城中搞卫生的工人一定不会迷路,是你不如搞卫生的工人够聪明吗?肯定不是,是你不习惯,不熟悉。

各位在网上看过的美女图片或视频成千上万,不管看什么样的美女,你肯定是脸不红心不跳,但是,如果有一个美女真的出现在你的面前,估计你会手足无措,言语结吧。

一个知识点,看懂的难度如果是一,自己实现的难度就是三,熟练使用的难度是八,融汇贯通应用在项目中的难度是十。就像是练武学招数,看别人打很容易,自己练习就难了,各种招数融会贯通和对手实战,需要时间的积累。那些《从入门到精通》的教材都是屁话,屁话为什么也有人信,原因很简单,它利用了人性占便宜走捷径的弱点。如果真的能从《入门到精通》,程序员就不值钱了。

任何事情,不管看多少遍,都不如做一遍。写程序也是这样的,编程语言并不难,而是你不了解,不习惯,不熟悉。有些人还可能会害怕动手。

看别人的程序,看别人写程序,和自己动手写程序的感觉是不一样的,就像网上的美女和现实中的美女一样,那感觉是完全不同的。

怎么做?行动起来,多写程序,就习惯了,熟悉了。开始的时候,写出的程序很垃圾也没有关系,大家都是这么过来的,天赋异禀的人是极少的。就像画家,我从未听说某画家从小就是画家,他们小时候画的画和平常人画的也没什么区别,达芬奇不也是从画鸡蛋开始的吗。

其次就是应用的经验了,应用的经验要通过做项目积累。

在有些的C语言教程中,经常让学生用C语言去做一些与实际开发无关的题目,最讨厌的是数学题,这是大的败笔,因为要完成这些题,考的是数学方面的知识而不是程序员的知识。

我回忆起当年我是菜鸟的学习过程,详细了解初学者的困惑,把C/C++语言的基础知识做了总结,每个知识点写一篇文章,约50篇。

在我的教程里,安排了很多课后作业,课后作业有两个目标:一是培训学生写程序的感觉,熟悉写程序的方法;二是巩固所学的知识点。还有,我的课后作业是实际开发的需求为导向,作业内容是程序员常用知识和编程技巧。

学习步骤

企业对C/C++程序员的需求中,至少70%以上是Linux系统平台下的C/C++程序员,所以本教程的开发环境为Linux,Linux的开发环境会让初学者不适应,不习惯,但这是正确的方向,我不可能为了迎合学生的喜好选择windows平台。

1、基础知识的学习

基础知识包括C语言基础、C++语言基础和Linux编程基础。

本阶段重点在培养写程序的感觉和介绍C/C++程序员在日常工作中经常用到的知识。注意,培养写程序感觉比C/C++的知识点更重要。

我个人认为学习C/C++语言,如果是零基础,最艰难是基础阶段,这时期学生还不具备程序员的思维,也没有写程序的感觉,沟通比较费劲,用广东话说就是鸡同鸭讲。

学生有了写程序的感觉,上了道,就会慢慢顺起来。

基础知识的学习大概需要两到三个月(全日制)。

学习完基础知识之后,如果你的年龄在23岁以下,我建议你先去找工作,工资低一些没关系,只要能养活自己就行了。在我看来,先进入这个行业,有公司给你发工资,有实战的环境,边工作边学习是最好的方案,生活没有压力,学习更有动力。(23岁以下的年龄,是大学生毕业的年龄,在这个年龄段,不管是哪个学个毕业的,大家都是菜鸟,不懂是正常的,如果你在面试的时候表现出积极上进态度,找个实习的岗位不是太难的事情。)

如果你的年龄到了25岁,学习完基础知识之后就去找工作可能不好办,因为你的年龄与能力不符,公司未必会要你。(年轻人不懂很正常,年纪这么大了还不懂就不应该)

2、职业技能的训练

第二阶段的学习内容以实际项目的需求为导向,把学生培养成职业的程序员,以能找到工作为目标,时间大概需要两到三个月。

在我的课程中,不玩俄罗斯方块,也不玩打地鼠、贪吃蛇、球球大作战等无聊的东西。

企业对C/C++程序员的需求中,数据通信、数据处理和数据仓库的职位占了至少50%以上。

所以,我们要玩数据。

在我的基础课程中,有socket通信、多进程、多线程的课程,但这些都是基础中的基础,离实际开发还差得太远。

本阶段的学习以掌握工具的使用为主,包括我的开发框架和工具,提升socket通信、多进程、多线程和数据库的实战技术,数据库以Oracle为主(My SQL太业余),完成一个实战项目的开发(数据中心项目),还可以扩展到手机APP项目,丰富自己的项目经验。

通过本阶段的学习,大概可以达到我20-30%的功力,技术水平可以超过三年工作经验的程序员,项目经验约一至两年。

学习完成后,不管你是什么年龄,都去找工作,问题不大。

3、精英程序员

各位在工作之后再来进入第三阶段的学习,在本阶段,我将重点介绍我二十年来的实战技术和项目经验。主要包括以下方面:

1)提升程序员的工作效率;

2)提升服务程序的效率;

3)提升服务程序的稳定性;

4)丰富项目经验和实战技能;

5)突破程序员的瓶劲。

本阶段的目标是提升程序员的能力,培养以一当十的精英程序员。

有没有万人敌的技术? 有,还真有。有这么一句话:流氓不可怕,就怕流氓有文化。如果能理解这句话的含义努力的学习文化,你必定成为精英,否则就是程序猿,一世为奴。

初级阶段的学习方法

1、先把第一章到第十七章的视频全部看一遍,大概了解一下,因为有很多知识是交叉的,但是不要看课后作业。

2、再把第一章到第十七章的视频内容学习一遍,争取完成简单的课后作业。

3、再再学习《gdb调试》章节,在写程序的时候会用到它。

4、再再再把第一章到第十七章的视频内容详细的学习一遍,争取完成全部的课后作业。

5、之后的内容,最好是一步一个脚印走下去,如果有什么不懂的地方,或以向别人请教或在QQ群中提出问题。

6、我的课程内容是精心整理的,某些知识点可能没有提到应用场景,但绝对不会是没用的知识。课程中没有提到的知识可以了解一下,但不必深入学习,意义不大。

7、学习不要贪快,欲速则不达的道理大家应该明白,学习的重点是培养写程序的感觉。

8、不要记笔记,不要记关键字,不要记函数的参数,忘了就忘了,忘了是因为没有实战,所以,到了项目实战课程的时候,忘了内容很自然的会全部想起来。

9、不要用手机看视频,看着看着就想睡觉,学习的过程是边看边写,没有看出来的程序员。赵括,知道不?就是那个空读兵书的那个不成器的家伙,只看书看视频不写程序,和赵括没什么不同。

10、翘着二郎腿,嘴里叨着烟,挥舞二指禅,一副吊儿郎当的样子,是成不了程序员的。

11、可怜之人,必有可恨之处,已经过去的就算了,不要埋怨,也不用后悔。端正态度,现在开始学习还来得及。将比别付出更多,这很公平。

网站名称:C/C++语言学习的策略
分享网址:/news/100224.html

成都网站建设公司_创新互联,为您提供网站制作网页设计公司域名注册自适应网站网站设计公司小程序开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司