一、断章取义
C语言出现50年了,有很多内容已过时,至少有百分之二十的内容没有实用价值。
C++更过份,至少有百分之七十的内容没有实用价值。
Linux也是,命令上千个,对程序员来说常用的不超过50个。
人的精力是有限的,对于不常用的知识,了解概念即可,不要去折腾。在我的教程中缺了链表、位操作、排序算法、二叉树、红黑树、C++的输入输出流、C++模板、C++异常等,这些知识没有实用价值,除了用来吹牛别无用处。
现有C/C++语言的教材,大部分是教授和讲师写出来的,在身经百战的程序员面前,没有经过实战的教授和讲师始终停留在小学生水平。
网上也有不少视频教程,大部分的教程只是把书本上的内容搬到视频中,没有新意。
二、培养程序员的感觉
我喜欢看动物世界,高级的哺乳动如狮子,低等的昆虫如密蜂,它们都有自己的语言。与人类的语言相比,动物的语言非常简单。但是如果您对动物的语言没有研究,完全看不懂。
与人类的语言相比,计算机的语言其实也很简单,初学者认为难是因为不适应,不习惯。
所以,对初学者来说,培养程序员的感觉是最重要的事情。
程序员是写出来的。
去过紫禁城的人都知道,不管您有多么聪明,绕多几个弯后,迷路是大概率的事情,但是,紫禁城清洁工人一定不会迷路,是您不如清结工人够聪明吗?肯定不是,是您不习惯,不熟悉。
各位在网上看过的美女图片和视频无数,任何网上的美女不太可能让您脸红心跳。但是,在现实生活中,如果有一个美女真的出现在您的面前,估计您会手足无措,言语结吧。
任何事情,不管看多少遍,都不如做一遍。写程序也是这样的,编程语言并不难,只是您不了解,不习惯,不熟悉。
看别人的程序,看别人写程序,和自己动手写程序的感觉是不一样的。
怎么做?行动起来,多写程序,就习惯了,熟悉了。开始的时候,写出的程序很垃圾也没有关系,没有天生的大佬,大佬刚开始的时候都是菜鸟。
三、学习策略
1、计算机基础知识的学习
如果您不是计算机相关专业或零基础,建议先学习计算机基础和计算机网络基础两方面的知识,这些基础知识包括了很多常识性的内容。
学习这两方面的知识的时候,不要深入理论,不要学习算法,看不懂就算了,不要纠缠。
计算机基础知识主要包括以下内容:
1)计算机历史。
2)计算机的应用领域。
3)二进制、十进制、十六进制的基本概念。
4)计算机总线、外部设备。
5)计算机软件、操作系统基本概念。
6)学习时间不超过20小时。
7)推荐视频 https://www.bilibili.com/video/av80537766
计算机网络基础知识主要包括以下内容:
1)计算机网络的基本概念。
2)局域网、广域网和互联网。
3)ISO参考模型。
4)TCP协议(粗略的了解一下UDP)。
5)IP地址、网关、子网掩码、DHCP协议。
6)万维网和HTTP和HTTPS协议。
7)电子邮件和SMTP 协议。
8)文件传输协议FTP。
9)远程登录协议(以ssh为主,了解telnet)。
10)学习的时间不必超过30小时。
11)推荐视频 https://www.bilibili.com/video/av70228743 或 https://www.bilibili.com/video/av9876107
2、Linux操作系统的学习
企业对C/C++程序员的需求中,70%以上是Linux系统中开发,Linux的开发环境可能会让初学者不适应,不习惯,但这是正确的方向。我们学习的目标是成为C/C++程序员,不是Linux系统管理员。作为一个程序员,只需要熟悉Linux操作系统环境,掌握常用命令就可以了,主要包括以下内容。
1)Linux系统简介。
2)Linux系统的安装。
3)远程登录命令(以ssh为主,了解telnet)。
4)Linux常用命令,注意,Linux的命令上千个,常用的约50个,能看懂多少就多少,看不懂的就算了,与程序员相关的Linux命令我会在教程中提到。
5)Linux用户和组的管理。
6)Linux文件系统。
7)Shell基础,注意,Shell可以很复杂,Shell脚本也是一种编程语言,但是,我们是C/C++程序员,一般不会采用Shell编写脚本程序,运维人员使用Shell脚本比较多。
8)Linux进程方面的基础知识。
9)Linux防火墙配置。
10)学习的时间不必超过50小时。
11)推荐视频 https://www.bilibili.com/video/av18156598
3、C/C++基础知识的学习
本阶段的重点是培养写程序的感觉和掌握C/C++语言的基础知识,写程序感觉比C/C++语言的知识点更重要。非计算机专业的大概需要两到三个月(全日制),计算机相关专业的需要一个月。
学习完基础知识之后,如果年龄在23岁以下,建议您先去找工作,工资低一些没关系,只要能养活自己就行了。先进入这个行业,有实战的环境,边工作边学习是最好的方案,生活没有压力,学习更有动力。(23岁以下的年龄,是大学生毕业的年龄,在这个年龄段,不管是哪个学校毕业的,大家都是菜鸟,不懂是正常的,如果面试的时候表现出积极上进态度,找个实习的岗位不会太难。)
如果您的年龄到了25岁,学习完基础知识之后就去找工作可能不好办,因为年龄与能力不符,公司未必会录用(年轻人技术不好很正常,年纪大了还只是掌握基础知识就不应该)。
4、职业技能的训练
在很多C/C++语言教程中,把贪吃蛇、俄罗斯方块、打地鼠、球球大作战等程序当成项目实战,太过儿戏;或者用黑客入侵、网络攻防、游戏外挂等内容来吸人眼球,这些程序的源代码网上到处都是,程序员玩这个不多,程序员是普通人,掌握的是谋生的技能,特工是电影题材,不是真实的生活。
本阶段的目标是通过项目实战,把学生训练成满足企业需求的职业程序员,时间大概需要四到六个月,因人而异。
本阶段的学习内容主要包括freecplus框架、Oracle数据库和网络通信,完成数据中心和手机APP服务端两个项目的开发,约两万行的代码量。
通过本阶段的学习,您将成为合格的程序员。
5、学习要买什么书
这是一个互联网的时代,书本上有的内容网上都有,如果有疑问,百度一下,比翻书更快,内容也更丰富。有些人可能会说书本的知识更全面,更系统化,这完全是胡扯,因为如果某书真的那么好,把书本上的内容搬到互联网上来实在太容易,扫描、拍照、打字都行。
这世界上没工葵花宝典,没有易筋经,更没有从入门到精通的捷径,您需要的是学习的决心和意志。
九、版权声明
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!