纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。
全世界60%的人都在使用Linux。几乎没有人没有受到Linux系统的“恩惠”,我们享受的大量服务(包括网页服务、聊天服务等)背后几乎都是由Linux系统支撑的服务器,超过20亿人每天都随身携带基于Linux内核开发的 Android手机出门,Linux也广泛应用在嵌入式系统上。因此学习Linux系统变得尤为重要,对于普通用户而言,平面式的学习Linux系统的基本使用已经足够,但对于开发者或者运维人员而言,深入学习Linux的多个层次尤为重要。
我接触Linux陆陆续续有接近6年,成功的从对其一无所知到应用自如,目前也还在持续地学习更深层次的核心知识。接下来将以一个学习者的身份将我的“学习计划”分享给大家。这篇文章不会从技术细节的角度大展篇幅,主要介绍学习路径和方法论。
阶段1:仅仅为了掌握Linux的使用
作为一名对Linux毫无认知的新手,首要的第一步就是选择一款适合上手的Linux发行版系统(个人建议可以选择使用习惯偏windows的Linux桌面操作系统,如Ubuntu、openSUSE、Fedora等)。Linux操作系统的安装是入门必备的技能(包括MBR、EFI两种引导方式的安装,故障排查和解决的能力等)。当Linux投入日常的使用后,我们会渐渐去学习一些便捷的操作习惯(基本的命令操作、快捷键配置、软件安装和卸载、系统管理等),当我们发现在Linux操作系统下无法驾驭某一个点时,我们会通过查阅工具书到查看博文和问答系统去解决,直到有一天,我们发现日常的使用已经无法满足我们的求学欲望了。
系统性的学习系列教程(书籍):挑选学习教程和书籍时,目录大纲非常重要。《Linux就该这么学》就是一本学习路径清晰,循序渐进的Linux学习书籍,覆盖面从Linux安装到日常使用、再到系统运维和高级应用,非常适合作为第一本系统学习的书籍。
阶段2:系统学习Linux系统
由于日常的Linux使用技巧已经能够非常熟练地使用了,由此对一部分系统盎然的同学会触发深入学习的欲望。这个学习阶段将不再是一个零散的知识点和技能学习了,Linux的开源精神带动了一代又一代的前辈,他们将学习经验总结和整理成各种知识档案,通过整合这些资源,我们能够进行合理系统的Linux学习。
说在前面:系统地进行一个操作系统的学习之前,扎实的计算机基础知识掌握(操作系统、计算机基础、计算机网络等)是极其必要的,否则在后续的学习过程中,将会遇到非常棘手的基础技术壁垒,如专业术语、基础概念不清晰。
简言之,这是学习过程是整合资源进行系统学习,解决问题和学会思考的阶段。敬上系统吸收Linux系统的技巧。
1. 提出解决问题的方案的技能:学会通过搜索引擎和社区(google、stackoverflow等)寻求问题的解决方案,通过符合(提问的智慧规范)的方式向前辈们提问。
2. 学会思考和总结:徘徊在学习和解决问题的过程中,定然会让你刨根问底的浸入思考,将这些思考的东西沉淀下来,做以总结,将学习的路径传承和延续下去,继续发扬Linux的开源精神。
3. 实验和应用:动手去玩弄你的Linux系统吧,尽可能给自己搭建一个可以肆意妄为的操作环境吧!
阶段3:应用和知识体系的形成
前言里面已经介绍了在实际生活环境下,Linux系统的一些应用场景,实际上Linux的应用也是非常的广泛,在熟练掌握得前提下,则足以开始大展身手应用于工作和生活中了。从网站的日常部署和维护、到网络环境管理、到各种应用服务的使用,几乎一切我们享受着的IT服务,都能通过Linux系统来完成,参考刘遄老师的培训内容http://www.linuxprobe.com/training
当你开始思考Linux的运行机制、系统架构、IO复用,甚至开始动手改造协议栈的时候,别忘记理清楚自己所掌握的技能图谱,别忘记分类和记录你踩过的每一个坑,关注的细节点。这些东西层层相关,这条学习路径将会组成属于你的Linux知识体系。
阶段4:深度学习和Linux职业化发展
说实话对于Linux的学习笔者也仅是暂时止步于阶段3,阶段4算是对前辈们的一些总结以及对未来学习路线的规划。
运维和(内核/应用)开发是Linux深度学习者的两条截然不同的发展路线,运维工程师更注重于Linux的应用和维护技巧,以及维护工具的使用和开发,而开发工程师们需要深入去学习内核源码解读、驱动开发、嵌入式系统开发、应用程序开发等。
学习阶段的划分对于学习固然有偌大的帮助,但其实更重要的找到适合自己的成长方式和节奏。合理的制定你的Linux成长计划吧,相信这会让你学得更轻快!