1做最咸的那条咸鱼
每一棵树苗,都有长成参天大树的梦想;每一只飞蛾,都有冲破茧蛹飞向天空的梦想。但是,梦想终究是梦想的,不去努力实践,它永远只是个不可能实现的梦而已。
请记住,就是做一条咸鱼,也要做最咸的那一条!
在当今的人类社会中,计算机的重要性不言而喻,人类的生活,以及这个世界都离不开计算机。例如,我们每天都在使用的手机,就是一台小型计算机,它由硬件设备、操作系统以及APP应用程序组成。
所以,了解和学习计算机,进入计算机世界将会是一件非常有意义的事情。我们可以做一些产品,开发一些软件,解决人类生活的某些问题,从而实现自己的人生价值。
废话不多说,只要干不死,就往死里干!
只要你选择了Linux系统下的编程,你就选择了一条“比较难走”的路,正因为它难走,只要你走过之后,你的机会肯定会更多!
当你在做一件事情的时候,耳边肯定有各种不同的声音,有说编程难学的、有说学这个编程无用的、有说做编程工资高的...等等。
但是,希望你能够沉住气,一步一个脚印,踏踏实实地走下去。努力学了一年半载之后,回头看看,你将不会后悔。而且,你打开了一扇崭新的大门,你拥有新的机会,新的征程...。
2初识Linux世界
Linux操作系统是UNIX操作系统的一个衍生版本,它诞生于1991 年的10 月5 日。然后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX类操作系统。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。 它能运行主要的UNIX工具软件、应用程序和网络协议。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。如下图就是作者的Ubuntu系统登陆界面。
在第二章介绍开发环境的搭建,读者也可以创建自己的Ubuntu系统来使用。
苹果的Mac操作系统是从Unix操作系统演变而来,Google的Android操作系统就是基于Linux内核进行设计,特别是在服务器领域,Linux系统更是占据了大片江山。 所以,我们选择Linux这个优秀的操作系统,去了解和学习计算机,进入计算机世界。
Linux操作系统是由C语言开发而来,系统中使用的很多优秀工具软件都是开源,而且使用C语言开发, 所以,我们选择从C语言入门,通过案例来讲解,每一个案例讲解Linux操作系统中的一个知识点,最终通过所有案例的组合,全面了解Linux系统下的C语言编程,可以熟练地使用C语言在Linux操作系统中开发应用程序。如下图是在Ubuntu系统中创建的一个C语言程序代码。
在本系列教程中,我们选择Linux操作系统,学习基于Linux操作系统开发应用程序。最终,掌握在Linux系统中开发应用程序,开发出有意义的产品。让产品得到用户的认可,同时我们的价值也得到认可,最终实现自己更大的价值。
3编程语言是什么
提到“语言”,我们肯定会想到汉语、英语、日语这样的人类语言,人与人之间可以通过人类语言进行沟通交流。例如英语,就是由26个字母组成的字符。通过遵循一定的规则,这些字符表示特定的意思。
例如,看到AV 这个字符的时候,你们会想到什么?它是 Audio Video 的首字母缩写,表示音视频。
所以,所谓的语言,就是由一系列的符号组成,表示特定的信息,人们通过学习语言的语法规则,就可以理解语言符号所表达的信息。
那么,编程语言也是一种符号语言,它是人类与计算机进行沟通的语言。人类可以通过编程语言,告诉计算机做相应的工作。
编程语言有很多种,例如C语言,C++语言,JAVA语言,C#语言,PHP语言等等;如下图,各种不同的编程语言。
每一种编程语言有它擅长的领域;例如,PHP擅长做服务器程序,C语言擅长做嵌入式和操作系统级的程序。
4选择Linux C编程
C语言是由伟大的美国计算机科学家Dennis MacAlistair Ritchie发明,诞生于1972年。 C语言的发明,是计算机科学发展史上的一个伟大的创举,直接影响了后来的IT技术革命和互联网技术革命。在计算机发展的历史过程中,C语言占据着重要的地位。
在当今的计算机领域中,无论是主流的操作系统(如Windows、Linux、UNIX等),还是小型芯片使用的嵌入式系统(FreeRTOS)、协议栈软件, 都是用C语言进行开发。包括数据库软件(如MySQL,SQLITE),网络通信协议(LWIP),包括JAVA语言的编译系统,以及各种内核驱动等都是用C语言开发的。
如下图,是OpenWRT系统的telnet登陆界面,OpenWRT系统是由Linux内核构建而来,可见Linux系统的应用广泛和C语言的强大。
C语言作为编程语言之王,是当之无愧的。有了C语言编程的基础,再学习C++、JAVA、PHP 等编程语言,就更加容易掌握。很多人会说,C++、JAVA 是面向对象的编程语言,能够处理更复杂的业务逻辑,而C语言是结构化程序设计语言,语言晦涩难懂,不合适做大型软件。
此时,你们只需要甩出一句:Linux操作系统是由小部分汇编和大部分C语言编写实现,C++和JAVA连边都沾不上!
后续我们推出“设计模式”编程文章,就可以知道所谓的“面向对象”是一种设计思想,与编程语言没有任何关系,C语言也可以进行面向对象程序设计。在Linux内核的代码中,通过结构体和函数指针,就可以实现面向对象的程序设计。解决复杂的业务逻辑。
5从零开始学习Linux C编程
我们的课程宗旨是“零基础学习”,在Linux系统下从零开始学习C语言编程。
所以,本课程设计了一系列由浅入深的学习内容,通过“编程案例”进行讲解每一个知识点,提倡实际动手能力。读者可以参考案例提供的代码,编译、运行程序。然后,尝试修改验证每一个知识点,学习到实际应用的编程知识。
最重要的方法是:自己动手敲代码编程。遇到有疑惑的知识点时,就编写测试例子来验证,自己验证之后,自己总结出来的知识才能够理解深刻,在开发中才可以应用自如。
学习编程最忌讳的就是“浮躁”,多花时间把每一个知识点都搞懂,才可以融会贯通,解决实际遇到的问题。
专注一个领域、专心做一件事情! 一步一个脚印地学习编程,最终会有所收获! 我们学习的是 Linux 系统下的 C 编程,然后,学习 Openwrt 系统的开发,最终结合作者提供的“实践项目”,掌握 Linux 系统的开发,我们就可以做非常有意义的产品!
有任何疑问,可以参考作者的博客网站:http://www.mylinux.vip/studyz/index.php