聊一下计算机技术的自学课,希望对你有用。第一步我们需要选择一个入门语言,并把它学精,C语言依然是首选。主要原因有以下三点,第一,C语言是计算机最基础的语言,思维更接近机械的思想,这有助于更好的淡化语言,对我们思想更专注于学习计算机的本质。第二就是接口语言,大多数操作系统和网络之类底层的接口都只提供C语言的API。第三,C语言简单高效的特性,使其具备更长的生命周期。
至于学习教程吗?我觉得C语言太简单了。语法随便网上找一下就能学,但是真正能用好一个语言,必须了解它的工具链。对于C语言,需要学会使用文本编辑器、编译器、编译规则、调试工具。我列出这些工具不是标准答案。你当然可以选择其他替代品,但我必须说,每一个工具想学精通都不是一朝一夕,可以简单入门就开始使用,在学习C语言过程中逐步加强对他们的了解。算法、数据结构是最重要的基础,无论你做什么。
他都至关重要,学习他一本书就足够了,就是非常值得收藏的算法导论。
虽然我手上这本连红黑书的伪代码都有问题,但是还是十分推荐你买一本。非常重要的是不要死记硬背,非去记算法的实践代码,要重点了解算法是为了解决什么问题,做了什么精妙设计,优劣如何。第三步,我们可以学习操作系统,同样的也是学一个Linux就够了。
理由也是三点,完全开源,免费应用领域广,国产化主力。当前,Linux已经是世界上硬件装机最多的操作系统,在日益紧张的国际局势之下。中国国产化操作系统也投入Linux外包,我推荐两本书,第一本是讲解Linux内核的工作原理,第二本主要介绍Linux的系统调用、Linux内核设计与实现。
如果你无心致力于内核开发,简单了解一下原理即可,因为真正的内核编程还有一堆的工具链。unix高级环境编程是学习系统调用,如同圣经一般的存在,它简称APUE。
其作者Richard Stevens是计算机真正的传奇,在互联网的时代,不学习网络技术怎么行?首先要了解各种网络协议的设计,推荐tc pip详解卷一协议,这本书还有卷二和卷三,如果无心从事网络协议站开发,建议不要看。当年我在看这本书时,TCP协议让我吃尽了苦头,回头总结一下,还是需要结合场景,考虑一下为什么这样设计unix网络编程,简称unp,就是介绍网络编程了,需要重点学习这本书的。
卷二是讲解进程间通信的。如果时间紧张,建议暂时不看,顺便提一下,这两本书的作者也是Richard Stevens,果然神人,如果基础足够牢靠了,但是你还是觉得自己写的代码不够优雅。不要紧,去看看精致的开源软件学习一下。开源学习并不简单,我可以给你几条建议,第一条,很多开源软件很热门,在网上有大量的机器文章可以降低你的学习门槛,第二条,一定要先了解这个软件是做什么业务的尽量让他跑起来,不要妄图先读代码,去了解他是做什么的,这样难度比较大。第三条,一定要注意代码的层次,不要因为自己的好奇心随便往更深层次钻。
还记得一些领导喜欢开会吗?感兴趣的一个点往死里问,结果会总是不能按时开完,注意控制自己的层次感,这点很重要。第四条,要重点学习开源软件的代码风格,这对你帮助很大,例如他的命名规范,缩紧风格文件和函数的拆分,控制结构的小技巧。第五条就是要学习人家的架构思想,看看如何拆。
偶的第六条一定要自己多去动手修改代码,利于运行。实践出真知,生命在于折腾,感谢观赏,欢迎留言讨论,这里还是给大家放一个关于嵌入式的资料给大家的自学助一臂之力!
加微信领取资料
,