找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

Linux 学习的三大方向

admin 2019-4-11 05:56 135人围观 Linux相关


来自:良许Linux(微信号:liangxuxiansheng)


经常有人在我的交流群问我:良许,请问 Linux 要怎么学习啊?Linux 要怎么入门啊?这个问题,其实就像是:良许,请问开发一个网站要多少钱?

但是,我很能理解,因为我曾经也是这样的小白,对于 Linux 一无所知。Linux 只是一个操作系统,大家可以在上面工作、学习、开发,对于 Linux 的学习,其实你要先确定好方向,再具体说怎么学习怎么入门。

因为有太多人问了,所以我就写篇文章来统一答复一下。不过,关注我的很太多大佬了,而我毕竟是个转行的,经验方面肯定比不上正规军,所以如果我说的有不对的地方,欢迎多多批评指正!

对于 Linux 从业都而言,主要有三个方向:运维、开发、底层。下面我就对这三个方向进行展开。

方向一:运维


这应该是很多 Linux 从业者给大家的形象吧,很多人也把我当作运维工程师,问我一堆运维方向的问题,可是我不是这个方向的,我真不会啊!



那运维方向主要做一些什么工作?

首先,是服务器维护

保证服务器正常运行不宕机,这是最最基本的要求。服务器一旦宕机,公司找的第一个一般是运维工程师,所以,很多运维工程师都自嘲是「背锅侠」。

然后,需要给开发人员提供一个可靠的服务器运作环境和技术支持

我所知道的很多公司的开发环境是由开发人员自己搭建好的,但是,也有些公司将这部分工作内容交给运维工程师,而开发人员就专注于写代码。

当然,还包括对各种服务的配置,如FTP,DNS,APACHE,IPTABLE,ORACLE,MYSQL等。

除此之外,还要对服务器状态进行监控,如CPU内存占用,进程僵死崩溃,磁盘空间,异常登陆等。当然,还要负责系统进行升级,备份等等工作。

那些之前问我问题的小伙伴,你们看看,是不是包含在这里?没关系,其实我的内心还是很(xiang)淡(ma)定(ren)的。

那么,运维工程师需要学一些什么?

运维工程师需要懂很多的命令,然后就是上面提到的开发环境的搭建,各种服务的配置,以及日常的维护之类,都需要会。很多的操作其实通过脚本就能很方便完成,所以运维工程师很多还需要懂 Shell 及 Python。推荐的入门书籍:鸟哥 Linux 私房菜。

方向二:应用开发


这就是我的老本行啦~啊,不对,我的老本行是机械……

应用开发及底层开发方向就要写比较多的代码了,相对而言运维工程师就不需要写很多代码。

Linux 应用开发工程师主要做一些什么工作?

简单而言,Linux 应用开发工程师主要在Linux 环境下开发各种应用程序,就如同你们在 Windows 下开发的应用程序一样(比如QQ,PC微信等)。这些应用程序有些带有界面,也有很多是不带界面的。带界面的很多是由 QT 开发,当然也有其他的开发工具。

Linux 应用开发工程师需求量相对比较多,行业分布也比较广。方向主要有两个,一个是服务器方向,另一个是嵌入式方向。

几乎所有的科技公司都有服务器,所以在很多行业都有 Linux 应用工程师的身影。而嵌入式方向,也就是我现在的方向,就是在嵌入式平台上开发应用程序,其实道理都是一样的。

那么 Linux 应用开发工程师需要掌握什么技能?

首先肯定要熟悉 Linux 平台的 API ,包括 IO 操作,进程间通讯, Linux 环境,网络通讯,等等,推荐看 APUE 这本神书。当然还需要懂脚本语言,包括 Shell, Python ,都需要懂。还有数据库的操作,比如 MySQL,Sqlite,至少要懂一个。

对于编程语言的话,大多数情况下是使用 C/C++ 。如果你需要做界面开发,可能还需要懂 QT 。

除此之外,你还需要懂一些行业规范,这个是应用工程师的必备技能。

方向三:底层开发


底层开发工程师相对而言需求就会少一些,一个公司通常会养一堆的应用开发工程师,但底层开发工程师可能就配备了一两个。为什么?因为现在很多底层移植、适配的工作都由芯片厂商都帮你做好了,你们很多情况下只需做维护就好了。

所以,底层开发工程师的一个很好去处就是芯片厂商,如果对这块有兴趣的朋友,芯片厂商是一个很好的去处。

当然底层开发工程师不仅仅做维护了,也是会根据公司的业务需求做一些定制。除此之外,还会做驱动开发的工作。

那底层开发工程师需要掌握什么技能?

虽然说移植之类的工作现在很多都由芯片厂商完成,但uboot,文件系统,内核这类的移植技能肯定要掌握。然后,驱动开发也肯定要会,因为这部分工作的份量还是不少的。

而在做底层开发工作时,还有一个重要的技能,就是芯片手册的查看。如果你不会查看芯片手册,那后面的移植啊,驱动开发之类的工作都无从谈起。

有些公司可能还会对内核进行裁剪定制,那么,就需要对内核源码比较了解了,这部分要求就相对比较高了。

小结


所以,Linux 从业都三个主要方向的工作内容都不一样,所需的技能也不同。一般我们是选择其中一个方向,进行深入研究,有精力时再去学习其它方向,拓宽技术广度。



●编号721,输入编号直达本文

●输入m获取文章目录
推荐↓↓↓



运维

更多推荐《25个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:Linux学习,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......


关于进行手机实名认证的紧急通知!
按照有关部门要求,论坛类网站必须完成手机实名认证才可以进行发帖等操作。希望大家积极配合,为创建一个和谐文明的社区而贡献自己的力量。我们会对会员的隐私进行严格保密,对大家造成的不便深表歉意! 我知道了