原创 【博客大赛】Linux用户养成记——我的2013到2018

2018-4-1 17:54 3797 20 6 分类: 软件与OS 文集: Linux笔记
在EDN新版刚发布的时候,俺信誓旦旦的要正儿八经的写博文,还购买了Wiznote的云笔记服务。然后后续的事实证明这是一个flag,俺完全输给了自己的惰性,这几个月,工作以琐事居多,下班以堕落居多,技术没有明显的成长,说好的吉他练习也搁置了。前几天我的leader离职了,走的时候对我们说了很多推心置腹的话,劝诫我们不能停止成长,这也是我重拾博客的原因。另外,吉他这个事就彻底放弃了,本职工作要学的内容很多,英文也要继续学习,吉他练习又枯燥且花时间,还是算了吧。

说实话很舍不得leader,我对自己的技术有些自信,所以难得真正佩服同领域的人,leader算是极少数的其中一个。不论技术领域还是做事方法,以至人生观世界观,都受他影响颇深。并且我们两个都是日常话不多的,除了正儿八经的技术讨论,极少下班后闲聊,算是某种程度拯救了俺这种轻度社交恐惧症患者。

总之,leader是我决定重新开始写博文的原因。此篇博文的内容依然围绕Linux展开,着重讲述我对Linux及开源世界的看法,Linus Torvalds大神当然也会提到不少,毕竟他十分久远而理论性的影响了我的人生之路。

一、2017年底至今

2017年底到2018前半年,俺对Linux的心态平和了不少,具体表现是不再推荐非Linux工作相关的人使用Linux了。即使是最普通的Linux桌面发行版,它对非专业用户也提出了有些苛刻的要求。父母辈就不用说了,文科生是不愿意用的,程序员里也有一半以上对它嗤之以鼻。知乎里吐槽Linux难用的程序员不是一两个。不同的桌面用户对操作系统的要求不同,我用手机,也不希望它在使用APP时过于麻烦。实际上用户在使用Linux桌面时确实会经常碰到麻烦。

如果说Windows是一艘豪华邮轮,那么Linux就是一艘超级战舰。在豪华邮轮里,一切都是那么舒适惬意,衣食住行都不是问题,健身、游戏、电影、玩乐……只要给钱,自然有人给伺候得舒舒服服。而比较起来,超级战舰就比较麻烦了,尤其舰上还只有你一个人的时候,虽然舰上的东西都免费,虽然所有的说明书都明明白白告诉你了,但是学开战舰的过程依旧辛苦。唯一欣慰的是,学会开战舰之后,你能够乘风破浪,一往无前。你能够对战舰做任何事情,更换发动机、增加房间、把甲板改游乐场……这种乐趣,也是Windows用户体验不到的。

说个比较大的话题,当前国人的版权意识仍然不是特别清晰。在Windows下做开发,安装软件大都找破解版,因为正版商业软件过于昂贵,普通人买不起,公司要买也得咬咬牙。这就带来一个选择,你是想用好用贴心的盗版的商业软件,还是粗糙(也有十分稳固精致的)免费的正版开源软件?你是否愿意为此付出额外的学习成本?

话说有关Linus Torvalds的新闻,很多是他又和计算机安全开发者杠起来了。Linus不止一次评价安全领域的人是“傻瓜”,引发了不少批评和争议。我认为某种程度上Linus还是说的有道理的。打个比方,有一台机械钻床,它的功能是打各种各样的孔。有时候它会出现一些安全问题,比如打孔的时候铁片飞出去了,或者围巾绞入钻头等等。为了安全,是不是要在打孔之前来一次身份验证?在钻头接触铁片的时候再来一次身份验证?为什么不让钻床做钻床该做的事情!通过进门的时候验证操作人员的资质、检查他/她的服装和操作流程来确保安全。冗余的安全措施看起来会让系统更加安全,但它破坏了系统整体的设计思想,不符合现实的规律,不优雅不健康,带来了不可预料的影响。

当然我并没有研究过计算机领域,所以说的可能不对。欢迎批评指正。

仅就这半年在Linux下的工作来看,一个是用C++写了一些代码,一个是学习并使用Python实现日常生活的工具,以及在Flask(Python语言的轻量级Web框架)做简单的设备网页开发。不得不说,我真的是一个非常保守的人。做开发的时候,以官方手册或教科书为准,能够用已有的成熟轮子就用已有的成熟轮子,尽量按照典型的路走,非不得已不做奇思妙想类的创新。Linux下的轮子非常多,几乎涵盖了编程的方方面面。Python也是有各种各种的轮子。在寻找和理解的轮子的过程里,体会轮子制造者的思路和方法论,把轮子用起来,是非常有趣的事情。

这几项工作,应该会在2018年持续下去。接下来的博文,会记录找轮子和用轮子的过程。技术含量不高,看到博文的人不要嫌弃哈~

二、2016年和2017年

往前追溯一年,那时的俺对Linux精神是非常推崇的,希望Linux能够发展壮大。那时候会找很多有关Linux的漫画来看,经常吐槽Windows,也写了一些推荐Linux的博文。对开源精神的领悟,在那个时候铸就了我的价值观的一部分。那时候还干过让妈妈和妹妹更换Linux桌面发行版的事情(此处有笑哭的表情)。妈妈和妹妹都任由我折腾,还问我这个那个怎么使用,当然结局是妈妈极少接触电脑,反而是智能手机占据了她的生活,妹妹换回了Windows,过一段时间后换了苹果电脑。

三、2013年到2015年

2013年我大学毕业不久,本来是做单片机的软硬件设计,但是那个深刻体会到单片机在资源上的瓶颈,急切的想学习高级处理器的使用。Linux不可避免的进入了视野。开始是在ARM Cortex-A8上做嵌入式Linux开发,着重在硬件驱动部分和基础的C语言程序。入门花了挺长的时间,数度找不到方向。好在读了一些经典的书籍之后慢慢找到了感觉。

《鸟哥的Linux私房菜》是新手入门必备。它主要讲Linux系统怎么使用。不同于Windows的傻瓜式操作,Linux的命令行部分也是需要学习和练习的。这本书在网络上有官方网页版,不用买就能看完整的。

《Unix环境高级编程》是新手编程必备。它主要讲Linux系统的C语言编程的基本概念,包括main函数是怎么回事、文件、标准流、系统调用、进程、线程、网络等等是怎么回事和怎么操作。即使是学习C++、Python或其他高级语言,也需要这本书打底,它对我的帮助是巨大的。

《深入理解Linux内核》是内核学习必备。这本书看得我相当痛苦,看完好处也没有那么明显。Linux内核是一个非常庞杂博大的程序,弄懂它非常不容易,弄懂一角都非常了不起。我现在已经不做内核移植和开发了,转向了机器人应用层开发。这本书和Linus对我的影响一样,久远、潜移默化且本质性。

--------
程序员是不是过了三十五岁就会停止成长?
程序员的中年危机是不是非常致命?
这些话也对也不对。会不会停止成长,关键在于自己。著名心理学家武志红讲过一个有关苹果的故事:

一棵苹果树,终于结果了。

第一年,它结了10个苹果,9个被拿走,自己得到1个。对此,苹果树愤愤不平,于是自断经脉,拒绝成长。第二年,它结了5个苹果,4个被拿走,自己得到1个。“哈哈,去年我得到了10%,今年得到20%!翻了一番。”这棵苹果树心理平衡了。

但是,它还可以这样:继续成长。譬如,第二年,它结了100个果子,被拿走90个,自己得到10个。很可能,它被拿走99个,自己得到1个。但没关系,它还可以继续成长,第三年结1000个果子……

其实,得到多少果子不是最重要的。最重要的是,苹果树在成长!等苹果树长成参天大树的时候,那些曾阻碍它成长的力量都会微弱到可以忽略。

真的,不要太在乎果子,成长是最重要的。

但确实中年程序员在缺乏技术深度的开发领域,很难和刚毕业的小伙子小姑娘竞争。他们要求的工资更低,更愿意理解老板的需求,对于公司来说,当然更加好用。所以像我这样的终年程序员一定要培养自身的核心竞争力,在深度和广度方面发挥不可替代的作用。

所以从今天开始,继续保持成长吧。

文章评论2条评论)

登录后参与讨论

用户1187092 2018-5-16 08:21

看着不错。
硕士毕业么?工作五年了。机器人应用层。
有兴趣做总线相关的么?

givh79_163.com 2018-4-2 11:15

不要太在乎结果,过程美好就够了。有时候觉得这句话是平凡之人的一句自我安慰
相关推荐阅读
DiracFatCat 2018-09-05 12:14
【博客大赛】卡尔曼滤波学习笔记(11)从位置估计速度
卡尔曼滤波器,不仅仅是一个低通滤波器,否则也不会持续发展50年。 示例:桑先生需要测试高速列车的性能。测试的目的是判断列车在直线上能否保持80m/s的速度。速度和位置每0.1秒测量一次,但是由于...
DiracFatCat 2018-08-31 19:32
【博客大赛】卡尔曼滤波学习笔记(10)一个简单的示例
《Kalman Filtering: Theory and Practice Using MATLAB》第三章,看不懂,暂时略过。《Kalman Filtering: Theory and Pract...
DiracFatCat 2018-07-19 15:09
对sed命令的练习
sed是流编辑器。它每次处理一个输入,因此很有效率。官方手册:https://www.gnu.org/software/sed/manual/sed.html学习Linux命令,当然要阅读官方手册,所...
DiracFatCat 2018-06-19 15:10
【博客大赛】卡尔曼滤波学习笔记(八)可观测性和可控制性 ...
可观测性是指,在给定模型的情况下,动力学系统的状态是否由它的输入输出唯一确定。可观测性是系统模型的特征。如果传感器矩阵H是可逆的,则本系统可观测,因为有:如果传感器矩阵H某些时候是不可逆的,则本系统仍...
DiracFatCat 2018-06-19 10:56
【博客大赛】卡尔曼滤波学习笔记(七)Z变换
如果我们仅仅对离散线性系统感兴趣,那么就使用下面这个表达式:如果u是常量,那么可以写成:为了简化表达式,我们可以将上面写成:离散线性时不变系统的Φ求解,可以使用Z变换。(* 由于本人已经忘记了Z变换的...
DiracFatCat 2018-06-19 10:54
【博客大赛】卡尔曼滤波学习笔记(六)拉普拉斯变换
对于线性时变/时不变系统,求解Φ(t)有多种方式,拉普拉斯变换是其中一种。(* 由于本人已经忘记了拉普拉斯变换的内容,因此本节待续。)...
我要评论
2
20
关闭 站长推荐上一条 /2 下一条