每个程序员都可以「懂」一点 Linux
作者:网友投稿 时间:2019-08-10 09:57
大家好。我先简单介绍一下自己,我是李鸿,目前负责马蜂窝内容中心的技术研发和团队管理。

接到今天这个任务的时候,我就在思考要分享什么内容。在座的同学应该有一些工作的时间比较久,也有一些刚从学校毕业。所以今天所讲的东西,如果能让不同阶段和技术背景的同学产生共鸣,让大家改变了一些对技术的看法,甚至是产生了一点对职业规划上的影响,我认为这次分享才有意思。
出于这些考虑,我选择了今天的主题——每个程序员都可以「懂」一点 Linux。



主讲人:李鸿
马蜂窝旅游网内容中心研发高级总监
李鸿,现为马蜂窝内容中心技术团队负责人。拥有十余年移动互联网从业经验,多年从事移动地图 App、LBS 企业级服务和智慧交通相关产品研发。个人技术兴趣聚焦在 Linux 生态,包括 Linux 内核等底层技术。
为什么讲这个主题?
想到这个内容,也是基于我自己在技术成长上的一些感悟。
我比在座大多数同学年长几岁,大概十几年前大学毕业。今天我在跟很多面试候选人聊的时候,我会问他们「为什么选择计算机专业」,大部分人给我的答案都是碰巧选了计算机,或者听说这个专业的就业前景不错。
当然也会有同学和我一样,是出于喜欢。我最早接触到计算机还是读初中的时候,当时电脑很贵,家里也没有。有一次在商店里我看到了一台「小霸王」学习机,有人通过在键盘上敲一敲,就能真的在屏幕上出现一点东西,我觉得简直太有意思了,就在当时,我知道自己以后一定会学计算机。
大学之后,基本大一大二接触的都是 Windows。一天偶然看到一些 Linux 代码,从那之后我就开始自学 Linux,直到钻研 Linux 的内核。十几年后我再来看,还是会感叹 Linux 世界的神奇,而且庆幸自己的选择没错。
所以今天,我想分享下在学 Linux 这个过程中的一些思考:什么才是真正的 Linux、它为什么好、我们应该从哪里入手开始学习,希望大家可以有所收获。
你 「懂」Linux 吗?
当问到是不是懂 Linux 的时候,包括我身边的很多朋友都会说「还可以啊,我一直都在用」;也可能会说「懂一点,我听说过 Linus 这个人」,等等。但至少我认为,如果你只是在说以下这些,真的不叫「懂」Linux:

那什么才叫「懂」Linux ?如果把这件事讲透,我认为核心要解决的就是三个「W」——What,Why,How。
What:一些同学在开始投入某个技术领域的时候,可能基础比较薄弱,会很辛苦地学习。学了一段时间以后自己觉得学到了好多东西,但其实很多人并没有学到这个方向的关键、核心和本质。比如我遇到过很多做大数据分析的人,说到 Hadoop、Spark,相关的单词可以说不少,但问到「Spark 和 Hadoop 有什么本质的区别」,「Spark 对数据的界定有什么本质的不一样」这些问题的时候,还是说不上来。
每个程序员的时间和精力是很宝贵的。在我们整个职业生涯中,可能用十年、二十年去学透一、两个东西已经很不容易了。如果决定花时间去学习某个技术之前,一定要想清楚学的是什么,千万不要学偏了,甚至都没走在自己规划的职业方向上。
Why:为什么学?是出于兴趣爱好?是对实施架构很重要?是会影响你的职业规划?是这项技术将来会有很好的市场收益?……不管你的答案是什么,自己要比较清晰。
有一些同学技术学得很杂,问哪个都说比较熟。但问他哪个技术他比较有研究,是他比较资深的,好像又都没有。这就是他没想清楚「Why」,也就想不清楚自己的重心要放在哪里。
How:前两个问题解决完,就应该去思考「How」。到底应该怎么学,才能学得越来越好。



