如何成为技术大牛?如何获得架构经验?

588 阅读9分钟

hello,小伙伴们好,我是江湖人送外号[道格牙]的子牙老师。

最近在跟一些小伙伴的交流过程中,发现迷茫的消极的偏多。正好之前也答应大家,给大家分享下我的职业生涯、技术成长之路,那就写篇文章分享下吧,希望小伙伴在看完我的成长心得、成长经历之后,能够重新燃起激情,能够重拾对未来的信心。

人活着,需要信心,需要希望。

一叶知秋

计算机这行,你入行的时间直接决定着你毕业后第一份工作的样子,甚至能决定你的一生。

像李开复、张亚勤、陆奇这些大佬,他们都是在很小的时候就开始学习编程。很小是多小呢?小学前后。而且整个学习生涯、职业生涯都是在计算机这个领域沉淀。就读的学校、跟随的老师都是国内国际顶流。此后就业加入的公司,从事的工作也都是国内国际顶流。所以他们的成就,在计算机领域,是顶流。

我不清楚他们为什么在那么小的时候就知道要学习编程、会去学习编程,但我们大多数人其实到大学才接触到编程,有的甚至更晚。从这个意义上说,我们与他们相比,就是至少15年的差距。5年前后,尚且能天壤之别,更别说15年了。真的是人家毕业开始找工作时的起点是我们很多人这一生可能都无法达到的终点。所以如果你的孩子热爱计算机,趁早培养。你未实现的梦,就交给你的孩子吧。

同样是在大学才开始接触编程,有的人也成为了计算机领域的顶流。比如雷布斯雷军、红衣教主周鸿祎、小马哥马化腾、微信之父张小龙…我们与他们相比,差在哪里呢?其实你可以想到很多,但是我觉得核心的差距是目标。我们在大学里学编程是一种什么心态呢?应付考试。而雷总,受《硅谷之火》的影响,超快速学习、大量学习,大学期间已经是小有名气的高手。后来受WPS之父求伯君的邀请加入金山,后面的故事相信大家都有耳闻了:成为金山总经理、带领金山上市实现财务自由、成为投资人、创办小米。

而我们只是普通人。大学期间要么非科班,要么是科班但是C语言都不过关的半桶子程序员。因为大学期间没有过多接触社会,不知道大学的学习与社会的需要是脱节的。所以开开心心第一年、忐忐忑忑第二年、慌慌张张第三第四年。有条件的,实习前夕花钱报班突击学习。没条件的,与鸡争早与狗争晚的发奋图强。但是都改变不了你未来至少五年CRUD的命运。

不论你是Java Web、大数据、Android、PHP、Python…都是同样的命运。每天业务代码,写不完的业务代码,写到你想吐想爆炸想辞职想转行…我并没有夸大,问问你身边经历过的人就知道我所言非虚。这样的五年,足以消磨你对技术的热情,对生活的热情。让你变得对生活麻木,对身边人麻木。

如何破局

这样的命运可以改变吗?可以。但是肯定充满了困难!我不信命,不屈服于命运,我也坚信:我命由我不由天。

像我们这样的普通人,如果想崛起,我觉得只有一条路:专注,聚焦一个领域,成为这个领域的Top。像我,聚焦JVM、操作系统内核。我把一项技术分成三个级别:会用、懂原理、熟读代码。非我核心能力部分,有的会用我就不再花时间学习,有的懂原理我就不再花时间深入研究源码。但是我核心能力部分,我每个细节都不放过,做非常详细的笔记、画非常清晰的流程图。因为人生真的很短暂,不是说人的一生很短暂,而是说人生能够拿来拼搏而无畏的时间很短暂。

在你的能力未成形前,接受CRUD的命运,用心把事做好。事情做好的前提下,积蓄力量。因为成功需要机会,机会就藏在每一个赏识你的人中,而每一个赏识你的人都藏在你做的事情中。很多人的眼光短浅,不注意自己的形象:给多少钱做多少事、听不到回报绝不付出…有时候真的需要换位思维:如果你是老板,你是leader,你喜欢这样的自己吗?

总结说,我觉得就两个词:专注、用心工作。何谓用心工作?你就问自己:如果我是老板,我喜欢什么样的员工?如果我想交朋友,我愿意跟什么样的人交朋友?把这些品质列出来,朝着这个方向努力。气质优秀了,能力才能被看见。不然就只能感叹怀才不遇。能力让你黑白难辨,而气质是一层镀金。能力加上气质,你才看起来像一颗闪闪发光的金子。才会有人赏识你,愿意帮助你,想成全你。

我是如何一路走来

我也给大家分享下我今天的技术实力是如何一步步锻炼出来的。这里没有任何的炫耀,因为我其实也不算多成功吧。 我是个喜欢想明天的人。我在还是一个普通开发的时候,我就意识到一个问题:没完没了的工作安排,根本没有时间学习。从那时候开始,我就在想如何成为一个leader。因为成为了leader,你可以挑任务,你可以适当地“摸鱼”学习。因为评估一个leader的产出不是他一个人,而是他的整个team。我在今天还坚信,一个人的改变,第一道坎就是成为一个合格的leader。我的很多技术都是在leader阶段“摸鱼”完成学习的。比如C语言、C++、Unix程序设计。

其实有了这样的底层能力,我已经领先了很多人。所以很长一段时间很膨胀,很狂妄,吃了很大苦头。其实这算我的污点吧,我为什么拿出来说呢?我就是想告诉大家,德要配位,德不配位很危险。这些年随着直播的崛起,诞生了很多大V主播,笑到今天的还有几人呢?这就是钱不配位、德不配位的结果。决定你能走多高的,能力只是基础,德行才是本质。所以看看大成者,都像个圣人对吧。你可以说他是装的,但人家知行合一了。

后来把状态调整回来以后,又回归初心,沉淀技术,开始啃操作系统内核。因为这个时间点,我已经在技术总监位置干了两年,薪资职位双瓶颈,只能进大厂才能突破。但是学历不好的我,必须要走内推路线。但是这样的条件的我,好像不够格能让谁觉得你很棒帮你内推。到今天我还记得最开始自学内核的场景,因为我很自信自己的自学能力,加上我的技术底子又如此得扎实,但是感觉根本学不会。后来误打误撞了解到昆山滴水教内核,毫不犹豫报名了。学完内核后,我内心最明显的改变就是:无所畏惧。

当时带我们的老师创业去了,所以有想学内核的小伙伴可以找我的同学火哥,百度搜:内核达人。

其实人生很多抉择就是金钱与时间的取舍。而穷人通常都是把钱看得更加重要,宁可花时间到处找盗版视频,遇到问题到处找答案浪费时间,也不愿意花点钱痛快地解决一件事情。大多数事实表明,该花的钱终归还是要花出去,折腾一趟,可能最终会花得更多。对于学习、对于投资自己,我向来的原则都是尽我所能去找这个时代这个领域最好的人学习。为什么要学习?为了获得共识。但共识只能让你成为普通人,高共识才能让你领先于他人。高共识谁有?这个领域牛叉的人。

还有,Java Web方向,让大家最头疼的就是没有机会练架构能力。没有机会练架构能力就没办法成为架构师,没办法成为架构师就更没机会练架构能力。就像先有鸡还是先有蛋的问题一样无解。我是怎么做的呢?先把事情做好,让大家对你的印象:靠谱。然后去了解业务、了解架构、学习中间件、架构方案、大公司的系统演进方案、揣摩为什么…然后分析公司的架构存在什么问题,可以引入什么技术来解决。

其实锻炼架构能力,最好的地方是中小型公司。因为这些公司的leader其实能力也就那样,而且比较摸鱼。你提出的方案大多情况下他会甩给你做,如果你在他那里是一个靠谱的人。有的人等机会,有的人创造机会。你想成为哪一种呢?

题外话

我成长中面临的这些问题,我相信大家也正在经历或者即将经历。回头看的话,我觉得技术人,如果有选择,走硬核路线,别玩应用层。如果没得选择,先玩应用层,蓄力底层实力,后面再看自己到底喜欢哪个方向。其实在计算机这个行业,你想取得一定的成就,底层是逃不开的。

我做的手写JVM小班及后面准备开的操作系统内核班就是培养大家的底层实力的。

手写JVM小班一期分两个阶段实现,第一阶段是用Java实现,第二阶段用C++实现,下周一开班。开班后报名会比现在贵上一些。二期班因为会加入大难点多线程,会讲到操作系统的线程机制,所以价格相比一期会贵不少。所以真的想学习手写jvm小班的小伙伴,真的意识到底层价值的小伙伴,良心建议跟第一期。报名第一期可以免费学习第二期。

对我不了解的小伙伴可以关注我的公众号【硬核子牙】看看我的往期文章。聊天窗口回复【jvm】可以找到我。