掘金 XDC 2022 - 普通技术人的弯道超车指南

·  阅读 1519

Hello 大家好,我是 Flutter GDE 郭树煜,也是《Flutter 开发实战详解》的作者,掘金 id 恋猫de小郭,今天主要分享的内容是 - 普通技术人的弯道超车指南,也算是厚颜无耻地来分享一些自己的经验,作为一个 ”普通“ 的程序员,我是如何一步一步地走到今天。

一、什么是普通技术人- 大多数

首先什么是普通?在我看来普通也就是“大多数”,可能这个 “普通” 放到更大的数据下也不算普通,但是基于程序员这个圈子,在起点上我也算是 “大多数” 里的一员:

  • 普通家庭,父母“灵活就业”
  • 普通大学,不知名本科
  • 普通就业,大四进入了一家刚成立的医疗企业从事嵌入式开发,实习工资 1000 ,毕业后 4000

1.1 入行

作为 “大多数“,我一开始并不知道会去做开发,事实上我的专业是通信工程,当时选这个专业无非就是觉得它可能会和 4G 挂点边,当时我不知道这个专业毕业后会做什么,后来也确实也挺挂边,项目监理和机房网管是我们学校这个专业最主要的就业方向。

所以我也不算是完全正经的科班毕业,不过谭浩强的 C 语言是学了,恰好这是一门我还比较刚兴趣的课程,所以后来我又选修了单片机和嵌入式,最终得到了第一份实习的工作:

用 C 语言和 MiniGUI 开发监护仪的 UI 界面,就是下图左边机器上的 UI,没有控件,就是靠自己用 Canvas 定位画出来,也许你不敢相信,急诊室和手术室设备上的 UI,会是一个初出茅庐的实习生写的。

后来因为需要在 Win 上开发界面,所以自学了 C++ 和 QT 开发了 PC 软件,如上图右侧图片,因为那时候需要做一个中央监护软件,统一接受所有床边机器的数据,不得不说当时是真的头铁,当时这套系统在医院 CCU 就因为数据延迟差点出了事故

毕竟 CCU 都是心脏病人,而当时通过内网 UDP 包经一台垃圾交换机同步数据,几十台床边机,数据量又大,每天连续24小时工作,用个几天就可能会出现了半小时左右的数据延迟。

再到后来公司业务需要,就自学了 Java 开发 Android,然后就正式脱坑嵌入式,转向移动开发,再之后就是经历了 Cordova、 React Native、Weex 、uni-app 等框架的洗礼,然后就是我现在的工作 Flutter 。

所以,作为一个半吊子入门的程序员,从我的经历上看,可以看到其实早期我一直都是随波逐流,什么火了我就学什么,为什么?因为我焦虑

1.2 焦虑

作为普通的 “大多数”,没有学历,没有大厂背景,没有光环,所以我总是在想着如何追赶上这个“时代”,每天疲于应战,慢慢地就开始变成抵触和戾气。

为什么做一个普通的程序员这么累?这是我早期的想法

转折点在于 2016 年末,那时候因为团队负责人的离职,而我“恰好”接替了他的位置,我还以为天上掉馅饼,本来还有点高兴,却不知道老板和高层其实正“密谋”解散公司,而随着开发需求的下降,我有了不少空闲的时间,有了时间之后我就开始“不安分”,想着我能给自己做点什么,最终不出意外,我开始做开源和写作。

现在想想,当时的焦虑真的就在于渴望得到认可,因为缺乏有效的交流和学习,所以基本上像是无头苍蝇一样横冲直撞,导致早期几乎就没有什么沉淀。

而那时候,因为开始写作,我也恰好是在 2016 年入驻了掘金,我开始走上技术分享的契机也是以掘金为起点,从一开始的技术沙龙,到参加各种开发者大会,再到加入 GDE 组织,慢慢地就走上了不一样的道路

说起来我印象很深刻就是,早期的声网、极光等开发者大会,都是通过掘金平台间接联系上。

二、技术人的高速公路-写作

所以我的转折点是开始 “开源” 和 “写作” ,我一直觉写作是“普通”技术人表现自我价值的最好途径之一,作为“大多数”之一的程序员,在“学历”,“履历”,“资历”这三板斧都不够情况下,一些非官方的背书,自然而然就成了我们的筹码

2.1 写作的现实目的

所以我最初写作的目的很现实,就是想给自己多一个背书 ,因为在学历和履历上已经落后,所以我希望通过其他方式帮助自己实现弯道超车。

所谓 “文无第一武无第二”,相信大多数人都不会觉得自己的智力有问题,很多时候只是机遇不好,并不是自己的能力不行,需要的只是一个机会。

但是就像我会时不时幻想中500万,甚至规划如何分配,但是我从来不买彩票

所以光想着 “怀才不遇” 肯定是不行的,因为 “出来混,是要讲势力,讲单位,讲背景,会打有个 P 用啊“ ,所以有机会也需要好“背书”的支持,而在技术社区写作,给了我这样一个”买彩票“的途径。

而我从 2016 年开始写作,一开始也不知道写什么好,所以我主要是从身边出发,开始分享自己的一些 Android 项目经验,那时候刚好 Android 还比较火热,特别是音视频相关的内容,所以赶上了一波快车道,甚至当时开源的 GSYVideoPlayer 项目并没有多少技术含量,它只是帮开发者解决了一些音视频上的脏活。

所以创造内容的时间很重要,比如现在你还做 Android 的内容,那么肯定 Compose 这条车道更有速度

所以我写作的目的一开始就很现实:就是想尽量让自己能有点名气,有点背书,以后能够更好地找工作,而其实写作这么多年,从我接触到的情况来看:

非大厂的“普通”技术人,对于写作的热情会远远高于大厂的开发

因为在大厂一般已经代表有了光环,能进大厂在背书上就已经赶超了不少普通人,并且大厂开发因为保密条例和工作强度,往往也不容易通过社区来表现自己,比如:

  • 大厂开发作品可能需要发布到团队号,企业微信公众号,因为需要做的是企业技术影响力
  • 大厂开发的开源贡献更多是体现在企业的开源项目

但是普通技术人也有大厂梦,所以会更迫切需要一块敲门砖来证明自己,而写作往往是技术人表示自我的最低门槛

  • 写作可以让你在社区更加活跃,让更多人发现你
  • 写作是一种很好的自我驱动
  • 写作可以带来持续的交流和自我完善

所以对于“大多数”的技术人来说,如果你工作没有太大成就,如果你的项目并不知名,那么通过社区发布你的技术文章,就是技术人亮剑的过程,在技术社区里去打磨自己,让自己从社区的索取者变成贡献者,慢慢经营和创建你的技术影响力,就是“大多数”开始走上高速公路的起点

2.2 让写作成为习惯

那开始写作之后,应该如何去坚持和持续下去?相信这是很多创作者的困恼。

如果从我的个人经验出发,其实工作中的问题就是你最好的素材,因为它们都是来自于现实的需求。

相信大家日常都会通过搜索引擎或技术社区去解决一些问题,工作中大家找资料时都目的性很强,找到问题之后 cv 成功,那么问题就过去了,慢慢地这种习惯就成了本能之后,那么工作中你可能解决了很多的问题,但是没有沉淀。

举个例子,当面试的时候面试官问你:“能不能详细讲述下你解决过最让你印象深刻的Bug” ?这时候你可能会卡壳,然后思考最近解决过哪些问题,有什么问题能够拿出来说而不至于尴尬,有什么技术点好讲,然后你说近期解决了播放器卡顿问题,对方问你如何解决,你说换了个库就好了,然后气氛一度陷入沉默

但是当你习惯写作之后,你就会对问题开始感兴趣,因为每一个 Bug 都可能成为你的写作素材,一开始你可能只是简单记录问题和解决方式,但是慢慢地你就会问出那三个字:“为什么?”

当你开始想 “为什么” 的时候,你就已经开始成长了,而当你能通过文章解释“为什么”的时候,那你就会慢慢对这种融会贯通的感觉上瘾,然后自发性地去探索和记录问题。

这就是我的经历之一,如果你看我的掘金,就会发现我的很多文章都来自于各种问题,除了我自己的问题,还有别人的问题,有意思的问题都成了我探究的素材,因为我已经有了写作的习惯,而文章里你可能又会收获其他有意思的问题,这就产生了有效的交流。

写作习惯之所以可以加速你的成长,很大原因也是网络上的答案参差不齐,如果你只习惯求助于网络,一直从网上复制代码,也许你可以解决一些问题,但是下次再遇上类似问题, 同样的技巧失效了,那需要怎么办?

比如在 Flutter iOS OC 混编 Swift 遭遇动态库和静态库问题,可能你会说,配置 use_frameworks!Allow Non-modular Includes in Framework Modules 就可以解决,但是为什么?如果还是有编译错误怎么办?

其实这是我做跨平台开发时,在网上解决 iOS 问题是最经常出现的状态,类似的问题,别人的解决方案对我无效,或者说,有时候是薛定谔的有效:

所以只有当你有探索的欲望,有写作的习惯,你才会慢慢地把问题变成你的积累,沉淀出属于你自己的知识库,同时也能帮助你打造一个良好的背书

另外,因为人在离开学校之后,其实很多事情要依赖于你的自制力去实现,但是不管你如何规划让自己自制,都很难长时间去坚持,因为与你的习惯不符合。

而当你习惯写作和对写作素材有迫切需求之后,你可能就会开始热爱,当你热爱一件事情就不需要靠自制力了,这也是很多人问我,你既不卖课又不做广告,怎么保持还在持续产出,即使没什么人看的原因。

所以让自己对问题探索保持热爱,保持写作,就是你实现漂移过弯的重要能力

三、成长路上的明灯-开放交流

就像前面说的,我的很多文章来自于技术问题,而这些问题不只我自己,也有一些来自网友的问题,交流的好处之一,就是总有一些我没遇到过的问题出现,而恰好我对这些问题感兴趣,比如:

这些问题也成为了我在创作疲惫期的灵感,而帮助别人解决这些问题,也是一种自我成长的过程,其实我一直觉得我能走到今天有很大一部分原因来自于运气,而我觉得这部分运气其实来自于结善缘:

因为和你交流,别人可以得到他们想要的东西,所以大家才会更愿意和你交流

也有人觉得这是一种被白嫖过程,当然不可否定交流过程中一定会有这样的情况,所以在开放交流的基础上,也要学会甄别什么是有用的交流,毕竟别人叫你大佬,不一定就是觉得你是大佬,只是因为大佬可以更好白嫖。

举个例子,当一个人一次两次三次时不时地在群里咨询问题时,我会觉得他很活跃;但是当一个人一个星期两个星期三个星期还一直在群里问各种问题时,我会觉得他当我是傻逼。

另外只要你保持开放交流,那么你肯定会遇到和你意见不同的人,这时候就要判断对方是在讨论还是抬杠,特别是如今大家可能都被过多贩卖焦虑,有的人可能很会敏感,也许你的正常交流,在别人眼中就是一种炫耀

而我对于有效交流的最大感悟之一:就是不去纠正别人的错误。 其实在此之前我一直没注意到自己的一个缺点就是“好为人师”,有时候看到评论或者群聊里有什么不对的时候,就总是憋不住地想去纠正,时不时总会点燃一些麻烦。

所以除非别人主动找你,不然没必要去纠正他们,因为你本身没有这个权利和义务,开放的目的是为了有效的交流,所以没必要把时间浪费在争论上,同时不要太过在意别人的评论,挑选有用的交流是成长路上良好的润滑剂。

另外一种交流的机会就是参加大会,可能很多人已经对各种线上和线下的大会麻木了,觉得在这些大会上找不到有价值的交流,但是其实对我来说,参加这些大会,确确实实给了我从台下走到台上的明灯

不知道有多少 Android 开发还记得 ApkBus,2013 年我刚开始入坑 Android 那会, 安卓巴士可以说是我的启蒙社区, 而在最后一届 ApkBus 的 《无界》 大会上,我接触到了人生中的第一位 GDE ,在那届大会上我认识了很多 Android 开发的朋友,也结识了一些社区的运营人员,这也给了我后面“登台”的契机,所以有的人可能会认为参加这种大会意义不大,但是有时候主动其实就是一种机遇

毕竟在这种交流会上,你上去和大佬要个微信,一般都不会拒绝。

在安卓巴士的《无界》大会之后, 因为掘金和一些积累,我开始了技术分享的旅程,如下图所示,是我从 2019 年开始所参加的部分大会或者平台直播的视频备份

所以我一直觉得,程序员的工作很容易构成所谓"圈层"的泡泡,因为我们经常生活在互联网,我们需要接受大量的碎片化知识,从而因为“孕妇效应”,让我们不到看到真实世界的样子,特别是标签化的岗位之后,我们都只在自己的领域内卷,虽然专注没错,但是思考和沉淀和交流也很重要,

所以和不同的人交流,通过写作或者开源相互认识,提高自己的认知能力,这也是一种重要的自我成长。

最后,最有效的交流就是和你自己交流,给自己一些思考的时间,去反思和沉淀,不管是交流和协作都需要时间,大家都在谈奋斗,很多时候老板的定义是:

  • 把努力=加班
  • 把成长=工作

在一定程度上或者是对的,但是如何判定这个对,需要你去回顾,去思考,反思自己这段时候的加班和工作给你带来了什么,不是说加班一定不好,我也有朋友在忙碌的项目里得到了快速的成长, 但是最终你还是需要时间去思考和沉淀,给自己一个和自己交流的机会,去复盘自己这段时候所做的选择

比如知乎有一位博主,记录了下自己的人生转折的故事,答主大概 40 多岁,家住北京,已婚有娃,2020 年面临两个 offer 选择:

  • 一个 K 公司,上市公司业务成熟,过去做总经理,有期权,但是要去深圳
  • 一个是 C 公司,在北京,同样总经理,有股票,工资一样,刚起步

如果是你会怎么选? 答主选择了 C 公司,留在北京,因为他考虑了 K 公司是大公司,除了远离开家庭,过去之后人员管理也不如在C公司自己从头带起听话,我觉得这个选择合情合理。

但是后来 C 公司一直半死不活,而这位答主却慢慢被边缘化,公司关键人物也被换成了老板自己的人,而没去的 K 公司股票却翻了 3 倍。

答主最后复盘了自己的过往,觉得自己当时的选择确实没错,但是自己工作的能力和方向其实更适合成熟的大企业,盲目地选择方向导致最终中年陷入尴尬的找工作旅程,但是通过住户的记录和复盘,还有和网友的交流意见,也帮助他后面一步步走出困境。

所以和自己交流,复盘自己的过去的选择,是成长过程中是很重要的一个习惯。

四、最后

最红总结一下:

  • 写作是技术人自我学习和自我提升的渠道之一,特别是对于希望出头的技术人,同时也是自我沉淀的一种方式
  • 通过历史的写作沉淀,可以逐步复盘自己踩过的坑,才能避免接下来继续走弯路
  • 保持开放交流的心态,要学会宽容,也要学会拒绝
  • 最终的目的就是提高自己的技术影响力,从而提高自我的价值

我正在参与掘金技术社区创作者签约计划招募活动,点击链接报名投稿

分类:
Android
分类:
Android
收藏成功!
已添加到「」, 点击更改