迎接新生命

先说个题外话哈~ 518 那天 11 点 57 分,我家的小天使顺利降生。小东西在折磨了女王大人整整 12 个小时后才千呼万唤始出来。现在整天吃了睡,睡了吃的。初为人父的我到现在还是一脸懵逼的状态。 多亏请了月嫂我们现在才没有手忙脚乱的,也终于让我有点时间继续写一些东西。也许是角色突然转变的关系,我现在感慨颇多。 写些东西抒发一下情感的欲望也愈来愈强烈。我十分庆幸这几年来一直努力工作学习,让自己的经济能力能够承担现在的家庭支出,让女王大人和小东西能接受比较好的照顾。我把工作当成人生中非常重要的一部分,能挣到更多的钱,媳妇才不会在想吃一顿大餐的时候思前想后,才不会看到衣服上的价签望而生叹。我想挣更多的钱,而我偏偏就不是一个干大事的人,我有着外界认为的程序员的所有通病 -- 不善言辞,不会察言观色,胸无大志 (只想写代码) 等等。所以我只能一步一个脚印的精进自己的技艺,挣着这一份死工资。但即便是死工资,我也要争取挣到这一职位上一流水平的死工资。正所谓小人物也有小人物的志气,小人物也有小人物的努力方式~~ 所幸这份工作我十分喜欢,坚持下来并不难, 代码这个东西有一种魔性,有时候扎进去了真就出不来了,女王大人的几次暴怒也是因为我只顾着学习忘了管她😂 😂 😂 。我想把自己的学习经验写出来,聊表借鉴。

不要轻视英语

算起来已经工作了快 7 年了,一开始我就是在外包公司混着。欧美外包项目是相当的养人,老外没有加班文化,朝九晚五。回家就是跟小伙伴们打 dota。还总能去国外出差兼旅游,用乐不思蜀来描述是比较贴切的。那是一段不思进取的时光,技术再倒退。在学校学的那点东西忘了个七七八八。 人都说毕业后的第一份工作很重要,显然我浪费了这个机会。这般混混度日的时光一直持续到了与女王大人的相遇。我发现那点微薄的工资实在不足以撑起我俩的未来,自己这点匮乏的知识也支撑不起更高的报酬。所以游戏戒了,美剧戒了,漫画戒了,小说戒了。把之前丢掉的技术慢慢捡回来,那时候很勤奋,疯狂的想把丢掉的时间找回来。好在欧美外包的经历把英语练起来了,为之后的学习打下了一定的基础。英语对技术学习有极大的影响力,不要不重视它。 最前沿的技术文档都是用英语写的,不要等到别人翻译成书,姑且不论翻译的质量如何,就是这个时间我们一般也等不起。也不要寄希望于网上大神的技术博客,虽然大神们一般都染指了最新的技术并也愿意记录下来,但技术博客的风格向来比较随意,文法不通,不成体系,内容较少,受众较小。限于作者的个人时间,文中记录的都是作者碰到的一些主要问题,没碰到的和一些细枝末节的东西不会出现在文章中。而我们都知道在工作中向来是那些最细枝末节的东西卡的你痛不欲生。所以技术博客可以是一个好的引导,而不该是我们主要的学习材料。 而且技术这个东西国内向来都有滞后性,国外火了一阵子以后国内的大神们才开始接触,国内继续发展了一段时间后才会有人写技术博客。这时候你碰到什么问题是很难找到中文的解决方案的,一般都是去 stackoverflow 上,或者官网上,或者直接在 github 上搜 issue 才能找到解决方案。例如我前几天写的 kubeadm 搭建 kubernetes 集群中列的 heapster 异常的问题,搜遍 Google 也只能在 github 上找到有人曾提过一个 issue,也正是这个 issue 让我找到了解决方案。没有一定的英文阅读水平,不建议碰新技术。据我所知最近国内测试圈子比较火的 rest-assured 到现在也没有像样的中文教程,allure,selenide,assertJ 等优秀框架甚至国内还少有人用。如果只看中文的 kubernetes 书籍,我这个测试环境的容器集群也是搭不起来的。所以如果你不想在技术上总是落后他人好几年,建议在英文上下下功夫。

努力成为最强的那个人

实力不是打了鸡血发奋图强一番就能取得的。 业余选手拼了老命也不可能战胜专业运动员,即便业余选手比专业运动员更努力也不行。业余选手没有专业的教练,称职的陪练,合理的饮食,丰富的大赛经验。 不说别的,一个没有任何专业大赛经验的雏儿上了擂台能在经验丰富的赛场老流氓面前走几招?业余选手缺少了太多太多的资源 -- 只有专业运动员才能获得的资源。 所以我们要努力的获取这些资源让我们变的更专业,那对我们来说这些资源都是什么? 领导肯让你去调研技术的时间,供你实战的业务场景,领域专家同事的帮助,解决成堆问题增长的经验值等等。 我们每到一个地方,都要尽快的成为当前团队实力最强的那个人,老外管这种人叫 key person。因为你最强最靠谱,所以碰到什么问题都会让你解决,有什么重要的项目都会提供给你最好的资源去做。然后你变得更强,有机会获取更多的资源去做更重要的事 -- 良性循环。如果我们不是最强的,光是业务压力就让你喘不过气来了。还有多少时间去学习技术?如果我们不是最强的,就算从海绵里挤出时间去学习,又有多少领导肯给实践的机会?如果我们不是最强的,私底下再怎么努力也只是业余选手。 强者越来越强,弱者越来越弱。宁为鸡头,不做凤尾,起码要在某一领域内成为团队中说一不二的人,你才能继续在这个领域内走的更远。这是我的职场哲学。就像摔跤吧!爸爸中对获得了银牌的女儿说:你必须要拿金牌,没人会记住第二名

贪多嚼不烂,要精研某一个领域

测试圈子里有一句话很流行:测试这个职位什么都要懂,但什么都不用懂多深。 我觉得这句话害了不少人,什么都懂点又什么都懂的不深,那只能是上面说的业余选手了, 用脚趾头想也知道谁也不会把核心的东西交给一个略有涉猎的人手上。 面试官当久了都有一种惯性,一看到简历上写着什么都会的人就想 fail 掉他。因为根据以往的经验,候选人几乎确实样样都懂,但每样只懂皮毛,没亮点,我们不放心把任何事情交给他。人的精力是有限的,顾的了这头,就得放下那头。 我是毕业很久之后才明白的这个道理。以前凡是跟测试沾边的都研究。最后我发现哪头都没顾上,面试的时候忽悠门外汉一套一套的,一碰上专业的就露馅了。 也有人跟我说身为一个高级工程师,你就得什么都会,什么都精。 这更是不切实际的想法。 如此小看一门技术是可笑的,任何一个领域的掌握都要经过长时间的实践总结,踩过无数前人挖的坑埋的雷,学习涉及到的衍生到的相关知识才能说有所成就。能在一个领域内达到专家级别已属不易,不是人人都能做蝙蝠侠,精通 130 多种武功。如果你问精通一个领域有多难? 以 docker 的学习路线为例

你看要把 docker 玩精了要学多少东西, 所以每当有人夸我 docker 用的好,我都特心虚。有人跟我争论过玩 docker 不需要懂什么底层原理,能用能满足开发测试的需要就行了。其实在一定程度上这是没错的,开车的人不一定要知道怎么修车,因为我们有 4s 店呢。只是在我们的这个行当里,并没有 4s 店。出了问题要自己扛着,不能事事都依赖运维,毕竟 QA 不是开发的保姆,运维也不是 QA 的保姆不是么。所以如果我们不懂原理的话,出了问题怎么办?随便谁谁谁一不小心把 ip_forward 给关了我们查不出来,随便谁谁谁安个什么软件的时候自动再 iptables 里添加了什么规则把容器网络给堵死了我们查不出来。或者再有那手残的把网桥给删了 (我曾经就是那个手残) 我们也没办法。 测试环境什么都可能发生😂 😂 😂 😂 我就是血淋淋的例子~~~ 也许有人说这个标准太高了,我们只是测试,掌握到 xxx 程度对测试来说就可以说是精通了。这是一个误区,一门技术从来不以你的职位划分等级。同样的程度,不会因为你是测试就是精通,他是开发就是入门。这个说法只是自欺欺人罢了。有些时候,我们对自己的要求委实有点低。

掌握好学习方法

有些人很努力,但他就是做不出成绩。 不是他笨,不是他努力的少。只是他还没找到正确的玩法。我们总能看到有人发帖询问学习 XXX 应该看什么书。然后他就会网购一本推荐的最多的回家开始啃。然后一个月后你会发现其实他还是做不出什么东西来。为什么呢? 因为顺序错了。一本成体系的书籍应该是我们熟悉了这门技术的基本玩法之后才去看的,带着对这门技术的基本认知才能看懂这本书描绘的含义,我们才能在这本书里找到我们需要的内容。在我们什么都不知道的情况下从头肯一本书,基本上在第一章就被天花乱坠的概念弄懵逼了。一本书上的细节太多了,多到让你感到绝望,弄不清楚你真正要用的东西,在书上,我们看不到这们技术的实际运用效果,它只是写给你看。但不能带你身临其境,举个例子,如果你之前没接触过容器技术的话,那你就是把 docker 核心原理翻遍了也不如你运行一个 docker run 有用。 所以我们学习任何东西才要从 hello world 开始,从先写个 demo 开始。 当结果在电脑运行给你看了,你才能真正的理解。所以书这个东西,是在你对这门技术有一定认知的情况下再去研读的。莫要颠倒顺序。一开始的时候就是奔着 demo 去的,就是奔着基本使用去的。

他山之石可以攻玉

我们说要多逛设计社区,多跟同行交流,跟参加一些活动。主要目的,是增加自己的眼界。 我们的消息是闭塞的,有些时候我们不懂一些技术,框架,概念。并不是因为我们学不会,而是压根没听说过这门技术。github 上如汪洋大海一般的信息我们所知甚少。所以我们才要沟通,交流。 多看看别家是怎么做的,用到了什么技术。我们参加各种测试沙龙,大会。并不指望讲师在短短的几十分钟内就能教会你一门技术。而是想知道这世上有这门技术,这个技术能做到什么效果。然后我们回去下功夫研究一番。

戒躁

以前玩魔兽的时候有一句名言:不轮你多少次把鼠标键盘摔在地上,最后也要捡起来重新练。我们在精进技艺的路途上向来是披荆斩棘着走过来的,尤其是刚开始的那段时间。所谓万事开头难,一开始的时候我们几乎是蒙着眼睛闯进了某个领域,做什么都找不到章法,写个 hello world 都困难重重。多少人在入门这一步上放弃了。技术这条路就是这样的,永远不可能一路平坦,我们要耐着性子跟他磨,跟他耗,把因为一个错误卡一天甚至数天的情况当成常态。高手是怎么来的? 踩着坑出来的。

这里的戒躁,不仅是焦躁。也是浮躁。这条路上很多人都在入门时放弃,但又有多少人止步于一个 demo 水平的程度就停下来了。刚才说过,如此轻视一门技术是可笑的。如果一门技术让你三两天就精通了那它也就没什么价值了。迄今为止,docker 技术我已经学习了 1 年多了,这一年多里我大部分的学习投入都放在了 docker 上。即便如此,我也只认为自己是个中级水平而已。

戒骄

伊斯兰教有七大死罪,经典动画钢之炼金术师中将傲慢列为其中之最。动画中每一位人造人都代表了一宗罪则,而傲慢是其中最强大的。从霍恩海姆和傲慢在狭路相逢后的一段对话中我们可以看出来,傲慢是父亲最早萌生的罪,也是第一个人造人。这部神作的作者曾说过动画中作为最大反派的父亲是人类阴暗面的写照。7 个代表着七宗罪的人造人先后从父亲的体内分裂出来。我们可以看出来,在作者心中,傲慢是第一大罪。 把这个问题引申到技术圈子里,我们发现傲慢是技术人的绝症。一旦心生傲慢,那这个技术人就开始步入死亡。因为他自觉老子天下第一,从此不再有动力去主动学习什么。而软件这个行当有如逆水行舟,不进则退。 前些日子有件事对我触动挺大,有个我们都觉得不错的候选人推到了 CTO 那里面一下。 后来老大把他 fail 掉了。 我们问他为什么,我们的意思是现在人不好招,他能做到这个程度已经不错了,来了以后干活没问题。老大跟我们说:你们觉得他现在是什么水平的? 其实他还是有很大进步空间的对不对。 可我跟他聊的时候发现他觉得他已经是业界顶尖了,这样的人我觉得他已经不会再进步了。 这个事情对我触动很大,让我又一次重新审视了自己。 例数过去几年,我也曾经多次处于这种状态,每当有点成就的时候就膨胀的不要不要的。 不过好在我运气比较好,总能及时碰到更牛的人把我一巴掌打回现实。所谓知耻而后勇,勇者在认识到自己的不足后,会努力的填补它。

结尾

路漫漫其修远兮,吾将上下而求索。希望我的经验对大家有用。预祝大家都能成为大牛


↙↙↙阅读原文可查看相关链接,并与作者交流