首先,要学Linux编程,你得会用Linux,也就是得在命令行环境下生存出来。哪些叫生存出来呢?就是我如今给你一台主机,鼠标,显示器啥的,之后给你一个服务器版的Linux系统的光碟或则其他哪些安装盘,你去把这台主机用上去。哪些叫用上去呢?你平时用Windows笔记本干啥,你如今还用这台电脑部啥。新建文件啊,查看文件,编辑文件,保存文件,复制,联通,删掉,打包,解压,联网,下载个哪些东西啊等等基本操作你得会。还有软件如何安装,除了要熟悉apt-get和yum,还有给你源码的软件如何安装你得会,另外要熟悉Linux下的文件系统,每位目录是干啥的,目录下的文件是干嘛的,插入一个U盘,怎么挂载这个U盘,操作U盘下的文件你得会啊。这个看一本书就行了嵌入式linux怎么学,《鸟哥的Linux私房菜-基础篇》,记得是基础篇,记得安装Linux系统自己操作一遍,还有一本是服务器篇,你既然是要学Linux编程开发,那就不用看服务器架设篇了。做完这一步,你可以开发了。
Linux下开发,两种基本语言,C和C++咯,至于其他人要说Python,Java,Ruby啥的不讨论,由于就讨论Linux下的开发,哪些是Linux开发呢?就是借助Linux的API进行开发咯,首先你得会C语言或则C++语言啊,这个去看丹尼斯的《C程序设计语言》,注意是丹尼斯的,C++的就去看《EssentialC++》或者《C++Primer》,之后在Linux下的程序开发,Linux的API是遵守POSIX标准的,自行微软哪些叫POSIX。Linux下程序开发几大块,文件操作,这个很重要,你要晓得Linux下的一个思想叫一切皆文件,可见文件读写多重要了。I/O模型,五大I/O模型,阻塞,非阻塞,复用,讯号驱动和异步I/O,环环相扣丝丝相连,概念和操作都要仔细寻思,最重要的当属复用,就是select,poll和epoll,笔试面试就问这个东西,要晓得她们的适用范围和优劣点。进程和线程,包括进程和线程的概念和区别,进程和线程的完善,同步,通讯,互斥等等。网路编程,就是socket编程,Linux编程,这个学不好等于啥都没学linux设置默认网关,这个恐怕还得了解一下TCP/IP合同,编程方面主要是那几步,申请socket,bind,listen,accept几步,要熟悉种常见的服务器模型,进程池线程池形式的,多进程形式的,复用方法的,最重要的是复用方法的,这部份可以先只写服务器,测试直接用Telnet就好了,推进速率么。其余的就是数据库,这个东西不属于Linux,而且还得会,要不然啥都做不了,看那本《MySQL必知必会》,其实深入的话还得找本专业的书细细看。这个时侯就可以真刀真枪的去干点有意思的事了,例如写个终端下的类似于QQ的软件啊,包括服务器和顾客端啊,渐渐的降低并发数,例如可以同时支持五万人在线啊,文件传输啊等等。然后学学Qt,熟悉一下图形界面,可以把你的终端下的QQ完全改成图形界面下的。恐怕到这个时侯,你差不多在Linux下进行像样的开发了吧。在这个过程的学习中,相信你早已学会Makefile的编撰啊,编译啊,链接啊等等一些细枝末节的东西了,还得反省一下把零散的东西串一串,要系统化。
接出来就是继续深入了,Linux为何那么多人用,用处在那里,你得去稍稍的瞧瞧内核源码啊,内核的进线程调度啊,我告诉你,Linux内核的一个数组都够你研究好几节课的。哦,这个时侯,数据结构啥的又得翻下来强化一下了不是,计算机网路啥的也得瞧瞧,操作系统原理啥的也得瞧瞧呢不是,把那些东西置于这儿是合适的,上面让你知其然,晓得如何编程如何做,如今要知其所以然了不是。
在学习的过程中,要不断积累和了解最新的东西,最至少要晓得个概念,例如分布式,大数据,云估算,机器学习,计算机视觉,JIT等等,产生知识链,这样不会造成你最后不知儒学啥。有个建议,一定要学一下Python,一定要学一下Python,一定要学一下Python,重要的事情说三遍。它能极大的提升你的工作效率,也能和C/C++结合在一起用,很nice的语言。
最后推荐几本书(后面的包含在内):
《鸟哥的Linux私房菜基础篇》
《C程序设计语言》丹尼斯写的
《LinuxC编程一站式学习》宋劲杉写的
《EensstialC++》
《C++Primer》
《EffectiveC++》
《Linux网路编程》宋劲彬写的
《Unix环境中级编程》
《Unix网路编程》两部
《Linux中级程序设计》华清远见的
《MySQL必知必会》
《数据库系统概念》
《大话数据结构》
《算法简史》
《Linux内核情境剖析》
《深入理解Linux内核》
《深入理解计算机系统》
《现代操作系统》
《深入理解计算机网路》
《TCP/IP》的三卷精典书
1.基本功要扎实
学习任何一种语言,必备的基本功是必需要有的,一方面可以提升效率,另一方面可以扩宽思路。
对于Linux基本知识的学习,对一些初学者来说是乏味无趣的,可以通过理解再背诵的方法先进行代码及句型的学习,之后进行实践操作,必须自动输入命令行,不要利用工具,这样可以更快速有效的把握Linux。
2.学因而用
Linux学习的目的是应用,Linux基本知识是一些零散的技术,当没有应用在项目上时,我们难以理解他的真实价值,所以打好基本功以后,最急迫的是多做几个完整的项目,刚开始可以是功能简单的项目,然后可以选择稍稍复杂的项目,潜心动手,勇于实践,一定能学好Linux。
3.学会使用Linux联机帮助
任何一种教材都不会完全述说Linux知识,通常讲的都是比较常用的或则是比较有代表性的知识,并且,我们在项目应用中常常有些功能的实现是须要一些冷僻知识和技能的,这么,怎么查找我们所需的知识呢,推荐查阅Linux帮助文档,主流的Linux都自带详尽的帮助文档,很便捷解决问题!
4.在网上找资源
在Linux的学习和应用中,难免会碰到一些没有思路、不晓得怎么解决的问题,这时就要利用网路力量,可以通过搜索引擎搜索查找,也可以咨询资深技术人员,最终实现问题的解决,这是Linux知识积累的一个重要的途径!小猿圈这里面免费课程还挺多。
5.查阅中文技术文档
假如想深入学习Linux,查阅中文技术文档是非常必要的,常常最新的技术都是采用中文文档的形式发布的,但是更全面嵌入式linux怎么学wps for linux,为此,对于Linux人员来说,多看一些Linux技术文档,对于把握前沿技术和加深知识是非常有必要的!
Linux学习是一个须要常年坚持不懈的过程,新的技术不断的形成,要想成为Linux大牛,必需要时刻关注Linux发展动态,把握最新技术,能够走在行业前列!