快速学习计算机系统编程

全部内容基本就在这里了:

C语言的语法,函数,指针,编译,调试

数据结构和算法:

数组,链表,树,图,排序,查找,插入,删除;

Linux系统资源编程:

文件IO,进程,线程,信号,网络通信;

对于系统编程的入手,选来选去,还是要先从了解和学习C语言的语法,函数,指针,编译,调试开始,更底层向下一些,可略微了解一些CPU寄存器,栈和汇编知识,或者在学习Linux系统资源编程时候再附带了解这些汇编相关内容可能更容易理解一些。汇编部分不要求学习者能自己动手实现,只需要认真理解这些底层部分就能帮助我们提高和加深对计算机系统程序运行原理的理解。

学习C语言基础部分的同时,可以穿插Linux系统资源编程的内容和数据结构与算法的内容,比单纯的学习语法要有效的多,语法是为编程而存在的,在实际的运用中更能理解语法和形成自己的代码习惯。比如:我们不能听信大学老师上来就照本宣科地讲goto语句怎么怎么不要用,毫无根据地说它会破坏结构化编程的结构。在实际地编程中,善用goto语句是非常有意义的,它不但不会破坏结构,还往往会使得结构更加清晰易懂,有实际项目经验的同好们都会深有感触。

此概念还可以类推到C语言的其它基础知识部分,我们在学习函数和指针的时候如果能结合系统编程中的应用,会让整个基础知识的学习过程更加有趣和有效,同时也能帮助学习者更快的找到编程的感觉,而将C语言的基础部分切分成各个单调的部分是不利于学习者上手一门编程工具的。我们对学习和了解工具的最终目的是上手使用,如何能让学习者更快上手,是衡量学习路线和规划是否正确有效的唯一标准。不要让学习路线和规划看起来很规整,却只是看起来好而已。不利于实际学习的规划都是不科学的规划,这里再次强调学习规划要实事求是的对效果负责。而不是对学习规划本身是否看起来漂亮负责。

在学习C语言的上手过程中,我们会根据实际工作中的项目需求,不断的加强自己的薄弱部分,比如在数据结构和算法上比较欠缺,可以多加强一些这方面内容的学习,比如系统资源编程部分比较生疏,后面可以多参看一些这方面的示例,但这些都是具体的术,是很容易忘记的,这个阶段我们可以把这些“术”的内容归纳总结一下,让这些“术”在自己的脑海中形成一些索引和印象。具体到项目应用,我们需要进行项目分析,在项目分析过程中,找出哪个功能需求可以使用哪些合适的“术”来处理,就可以解构项目需求了,项目解构之后,就是对应的一个又一个“术”的实现和关联,编程人员最需要具备的能力不是掌握了多少“术”,而是找到“术”和项目需求之间的关系,选择最合适的“术”的能力。到此为止,学习哪一种编程工具已经不是什么关键问题了,不管哪种编程工具总是一个“术”的集合,而很多编程工具之间都存在很多交集,每种编程工具非常独特的部分往往无关编程思想和解构思路。

熟练一门编程工具的使用,并且具备了项目的解构能力,就到了一种新的境界,即便是使用一门新的编程语言,大都可以很快的上手使用。给人一种分分钟学会了一门编程语言的神奇感觉。而原因就在于其已跳出了原有工具的局限,上手一门新的编程语言是很快的。

计算机,程序,都是解决人类问题的工具,试想如果这个世界没有人,还会有这么多的计算机程序存在吗,甚至连计算机都不会存在了。提出问题的是人类,解决问题的也是人类,计算机只是人们制造出来的工具,这个工具可以帮助人们解决人类的问题。学习编程大有裨益,但千万不要认为编程是解决问题的关键,相反,编程只是代码实现,真正解决问题的方法是人们自己通过思考和分析得来的,从某种意义上,计算机的地位和我们手里的相机,钢笔等工具不分伯仲,难道我们使用了钢笔就把解决问题的功劳记在钢笔身上吗。之所以有人会有计算机能解决问题的错觉,是因为计算机里运行的程序是他们所不了解的,他们以为计算机很聪明,甚至可以像人一样具有思考能力。而事实并非如此。但愿这样的愚人越来越少,而聪明的你越来越快乐!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值