从业5年,教你学习Linux开发

1.  为什么要学习Linux编程?

其实这个问题很容易回答,因为你要写的程序是跑在 Linux下的啊。至于跨平台的程序,你熟哪个就在哪个下开发,效率第一,纠缠平台和工具,纯属吃饱了没事干闲的。其实 编程就是说开发 Linux软件,所以说,在Linux系统下开发才会更加顺手,并且效率更高。因为直接就可以在主机环境下运行,而无需再安装虚拟机,模拟器等来测试程序。

 

2.  关于 Linux开发

Linux下开发, 其实主要涉及 两种基本语言,C和C++ C语言是学习Linux编程必不可少的语言,因为Linux系统内核很多就是C语言编写的,而且粗语言也是目前对硬件支持最好的语言。Linux提供的很多api也是C语言写的,所以只有当我们理解了C语言之后,才能更好的进行Linux开发。而c ++ C语言的超集,在保留了C语言的一些语法特性之外,支持的比C语言也更多。除了C语言和c++之外,还可以根据Linux去学习一下怎么写驱动程序等等。Linux编程除了Linux的api外,Linux内部还有一种语言,为shell。这门语言是是Linux的脚本语言。类似于windows上的vb脚本编程。虽然shell提供了十分简单的语法,但是当和Linux的命令结合起来的时候,就非常强大了。基本上shell可以很好的处理各种Linux上命令行就能解决的问题,而且更加自动化和便捷。 然后学学Qt,悉一下图形界面,可以把你 做的命令行下的小程序 完全改成图形界面下的。

3.  如何学习?

首先, 要想学会 Linux编程,你 必须要 会用Linux, 也就是必须学会如何在命令行环境下操作。当你能够在命令行下使用各种命令,操作各种文件和在 Windows上使用鼠标一样的时候,就说明你已经入门了Linux系统。这个时候,你就不会再有之前对命令行的方反感,反而喜欢上了命令行。因为这个给时候,你会发现鼠标还要点好多下的操作,在命令行下几个字母就可以轻松解决。在学习的时候一定要多多练习。可以自己安装一个虚拟机,也可以在网上买一个云服务器,买最便宜的就行。在系统上多做练习。首先在Linux系统上尝试着做各种和Windows一样的操作,这样就可以了解到Linux和windows之间的差异了。

这个 我个人认为 看一本书就行了,《 Linux就该这么学 》,记得安装Linux系统 自己 按照这本书的章节安排,自己手把手 操作一遍 。这本书从最基础的命令开始,一直到搭建 lnmp环境为止,一步一步由浅入深的教你学习Linux。 做完这一步,你 基本上已经 可以 学习 开发了。 因为我当时初学 Linux操作系统的时候,就是使用这本书入的门,这本书配套的还有一个网站,非常方便,我们可以直接在网站上看书,所以说我们有时候没有带书,公交车上地铁上,随时想看就可以看。这个网站上还有很多的技术新闻资讯以及技术干货,我相信通过这本书你可以学到更多东西,不止Linux的,还包括其他的编程语言和操作系统等知识。

4.  如何深入

接下来就是继续深入了, 这个时候 你得去稍微的看看内核源码啊,内核的进线程调度啊 这个时候,数据结构 算法 啥的 这些就是你必备的基础知识了 ,计算机网络 ,操作系统 啥的也 全部得 看看,操作系统原理啥的也得看看, 这些东西虽然看着和编程无关,但是全部都是真正涉及到最底层架构的东西了。学会这些东西对于你理解系统的底层架构有很大的帮助。如果不会这些知识,你根本看不懂源码。  

在学习的过程中,要不断积累和了解最新的东西, 首先了解这个概念,然后知道这个概念是干嘛的,提出这个概念是解决为了解决什么问题的。  

5.  书籍推荐

最后推荐几本书(前面的包含在内):


《鸟哥的Linux私房菜 基础篇》

C程序设计语言》 丹尼斯写的
Linux C编程一站式学习》 宋劲杉写的
Eensstial C++》
C++ Primer》
Effective C++》

Linux网络编程》 宋劲彬写的
Unix环境高级编程》
Unix网络编程》 两部
Linux高级程序设计》 华清远见

《大话数据结构》
《算法导论》

Linux内核情景分析》
《深入理解Linux内核》

《深入理解计算机系统》
《现代操作系统》
《深入理解计算机网络》
TCP/IP》的三卷经典书

最后,我个人认为,我们要广泛的接收新知识,所以要多去网上看一些别人的文章。比如 各大论坛, GitHub, stackoverflow, 博客园,CSDN等等 社区和论坛 ,多逛逛,当然还有知乎也要多逛逛 ,毕竟知乎的大神还是很多的。

 

 


请使用浏览器的分享功能分享到微信等