华为专家自述:一个成功码农要经历四个阶段_yyxvm,一线大厂架构师都推荐的Golang零基础大全

本文讲述了作者从研究生时期的分布式计算研究转向Linux发行版工作,经历枯燥乏味,发现兴趣与技术细节的重要性,以及在行业中积累的对技术深度和广度的理解,最终在理解和创新层面深化对IT行业的认识。
摘要由CSDN通过智能技术生成

我在研究生、博士期间所学和OS一点关系都没有,我的专业是分布式计算和大规模存储。当我的人生轨迹看起来一切安好地沿着存储一路狂奔的时候,毕业季到了,我却面临找不到工作的窘境。彼时国内IT能力还处于随便代理点西方的东西就能发财的阶段,没有什么公司去做深层次的研发。所幸由于做存储不得不修改Linux内核,加上平时也喜欢玩玩Linux,虽然我当时的水平放到现在简直是二把刀的档次,但在那个能装上Linux都是高手的时代,这点手艺让我通过了T公司的面试,进入了这个在大学期间我就心之向往的公司。

当时的工作状态是什么都得做,而且所有的事情都要靠自己。我很快认识到,和我上学时想象中的高大上完全不一样,做Linux发行版实际上是一个很枯燥、乏味的工作,没有留着大胡子的hacker(黑客),也没有穿着T恤写程序的开源范儿,有的是无穷无尽的制作软件包,修改有着无数bug的安装程序,不知什么时候来临的程序崩溃、系统黑屏。凌晨两点被销售的电话惊醒,回答技术问题也是屡见不鲜,以至于我一直有写一篇论文的冲动,论文名字是:《论IT故障总在后半夜的社会学基础和技术背景分析》。

随着市场和行业的变迁,在T公司工作了4年后我加入了W公司WRLinux产品线,由于产品线刚成立,所以也经历了一段混乱时期,我们不得不和全球的同事们一起从产品设计、具体实现到流程管理等一点点地将产品线逐步推到正轨上。

**公司工作多年后我发现,不论什么行业做到最后,枯燥乏味才是行业的本质。**无论求学时的我对当时的T和W公司怀有多大的憧憬和期待,对OS技术具有多么高的敬意,但是在工作后没多久,原始的兴趣就消退了,随之而来的是疲倦和乏味。这其实很正常,任何兴趣变成职业以后剩下的多半只有痛苦。

可能在这个时候,恰恰是兴趣检验你是不是真的喜欢做这行,或者能做这行,甚至很大程度上,兴趣也决定了你最终在这个行业能达到的高度。我很难想象,一个对OS没有兴趣的人会下班以后在家打开电脑,去尝试学习一种新语言,去安装一个新的OS玩玩,去了解一下内核的底层机制是怎么样的,或者无聊到写一个小玩意保持一下手感。

我还是喜欢用Linus在CNCF2017大会上的一段话来佐证一下兴趣的重要性。他说他依然很讨厌C++,对maintainer(维护者)依然怀有tough love(又爱又恨),但当有人问他如何做好一个软件项目,如何能让一个开源软件更成功的时候,Linus说:“当你做软件的时候,不要去考虑它是否能成功,你只需要考虑你自己是否喜欢做这个事情,然后去做就好了。”

诚然,光有兴趣,没有能力也是做不成什么事情的。如果对某一个领域要有深入的理解,一定要有扎实的基础。所谓扎实的基础是,从这个行业的最底层一步步地爬上来,做过这个行业的所有工序,对整个流程都有切身的经验,这样才能拥有对所有技术细节的理解,而细节永远是考验一个人是否专业的标尺

在这一点上,我要感谢曾经的经历,我完整地经历了一个Linux的发行版本制作的全过程,做过所有的工序。不管哪里出问题,都需要去修理,这也帮助我对OS这样一个庞大的系统具有了全面的理解。这些经历形成的条件反射到现在都还依然清晰。这是技术深度的基础。

还有一个方面则是技术广度的基础,虽然我在学校期间的研究方向和OS没有什么关系,但是分布式系统、存储系统中的很多基本理论、设计方法依然为我后面的职业道路提供了很多的帮助。而博士期间的思维训练,对细节的重视对我也是影响深远。甚至在某个时间点,我突然意识到,无论是宏观的数据中心,还是微观的处理器设计,整个IT世界都是围绕“一致性”这个基本准则在绕圈圈。如果没有相关细节的基础知识打底,是完全不可能产生这些化学反应的。

**同时长期对细节的关注养成的职业习惯会很大程度上有助于技术判断。**在OS领域,通常很少出现问题,但是一旦出现问题,都是大问题。举一个我亲身经历的例子,若干年前,一个客户的USB系统出现了问题,当时客户和FAE(现场应用工程师)团队已经做了详细的分析,判定问题出现的版本区间是XX到XX之间,但是问题必须在2天内闭环,否则后果很严重。

看起来似乎并不难,只要循着二分查找法,很快就可以定位是什么补丁合入导致的问题,但是我总觉得哪里不太对劲,一个是这些合入的代码虽然和USB有关,但是补丁的内容和问题并不完全匹配,二是长期在这个行业,养成了多疑的习惯,虽然前面几个团队都拍着胸脯保证,但我始终对问题总出现在XX和XX之间的结论抱有怀疑。

最终,除了用二分法继续查找原因外,我又找了一个工程师,把问题梳理了一遍,同时和整个社区进行了细细的比对,并没有局限在某个版本区间。幸运的是,最终工程师找到了一个不起眼的、和那个版本区间完全没有关系的补丁解决了这个问题,我的这种谨慎和小心也帮助公司保住了这个客户。

无论多高职级的工程师,只有对细节的关注才能避免一些可能是“眼见为实”的偏差,而尽可能多的知识覆盖,才能让一个人有足够的分析和判断能力,对自己所从事的领域做到心中有数,同时才能产生不同知识之间的交联反应。

**在兴趣和技术细节基础之上,更重要的阶段则是要对所在的行业有深刻的理解。**我从职业生涯的一开始就有机会持续接触市场,多次参与商用操作系统配套多款芯片的全过程,不但技术分析、需求谈判是全程参与,甚至最初的商务报价也是我拍脑袋给出来的。虽然这似乎和纯技术没有直接的关联,但是一个工程师能具体看到所做的东西怎么转化成为商品是一件意义非凡的事情。

穿上西装,打上领带去见客户、投标竞标并不是传统意义上的技术范畴,但是我始终认为这种经历远远要比我的技术积累来得更为重要。**它培养了某种“直觉”,行业的“直觉”。**虽然我认为,对于很多事情,人的直觉是不靠谱的,但那是指对确定性事物而言。但是世界上大量的事物是不确定性的,对于不确定事物走向的判断,除了“直觉”,别无他法。

参与到市场化、产品化的过程中,能够极大地提升工程师对技术的进一步认知。以openEuler为例,我们在一开始的设计过程中就始终强调一点,一定要以生态伙伴的利益为最高的设计目标,要帮助合作伙伴更多的赢利。如果只是单纯从技术角度来看,这好像听起来怪怪的,我们花费了成本,却不主动获得收益。但是,如果从更为广泛的市场角度来看,其实操作系统本身是连接硬件和软件的桥梁,连接畅通了,交流更顺畅了,市场繁荣起来了,在这个市场里的玩家,不论是硬件,还是软件,都会获得可观的收益。因此就完全没有必要去收一点点过桥费了!

只有在对行业有深刻的理解的基础上,我们才能谈到技术规划,我们才能谈到版本演进路径,我们才能谈到生命周期,甚至才能谈到社区治理、技术方向的投入等内容。如果要做一个总结的话,可以囊括成为一句话:不光要懂技术,更要懂行。

我一直认为只有在懂行的基础上才谈得上创新,我理解的创新并不是一个技巧的改进,一段代码灵光一闪的优化,而应该是在对所在领域深刻理解的基础上做出的一些或大或小的变革,或者是一个完整的产品,或者一个完整的系统,而且这些变革、产品、系统能在商业上带来一些收益。这应该是一个工程师最高的境界了。

**从创新的角度来说,个人之见,一个顶级的工程师,并不是那个在发动机的外壳画上一道线,然后说这道线值1美元,但是知道在哪里画值49999美元的天才,而是创造了发动机的那个无名工程师。**在我看来,那个天才只是修正了这个工程师的一个bug而已,只是一个“微创新”,而那个工程师才是使得这个故事有一个开始的人。

我相对比较推崇的创新不是在一个已有的系统上修正得更好,我更倾向于做出一个新的完整的系统,哪怕这个系统一开始非常不完美,需要等待那个画条线就能赚五万美元的天才,但是创新不就是从0到1的不完美开局么?只有一个完整的系统才能有掌握自己命运的机会,才能持续演进,特别对于平台类系统而言,才有可能有自己的品牌和生态。

传统上,由企业主导的内部创新都会强调必须要和业务强结合,同时要求短期能够有收益,因此,对于很多长周期的、可能具有颠覆性效用的创新,企业内的研发环境可能并不那么友好。

幸运的是,华为已经正式开始实施鲲鹏产业战略,操作系统成为了重要的一环。公司成立了openEuler开源社区,按照行业的做法来做生态,目标就是作为一个开放、创新的开源平台,为第三方的操作系统提供稳固的底座和基础。一个全新的鲲鹏架构,一个全新的openEuler的开放社区,我们可以将一些不成熟的,甚至是天马行空的想法放到社区里孵化,让宽容的开源社区为这些项目提供一个良好的生长空间。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值