HenCoder:给高级 Android 工程师的进阶手册

是什么?

给高级Android工程师的进阶手册。如果你做Android开发,如果你做到了高级但自感遇到了技术无法继续提升,可以试试看这里。

这件事的准备工作,我精心整整一年。

为什么?

决定做这件事,源于一年前我和老婆的一次对话。

我:「又拒了个技术分享邀请。」
老婆:「为什么?」
我:「不知道讲什么。」
老婆:「江郎才尽了?」
我:「才尽了。真的不知道讲什么好,选题太难了。关键是选不到对听众有用的题。其实说实话,让我选一个大家关心的技术话题,上台去逼逼几十分钟,让大家听得热血沸腾鼓掌叫好,这一点都不难。但是这种分享大多数时候对听的人并没有什么帮助,虽然他们在听的时候会觉得受益匪浅。
老婆:“你连粉丝都黑。”
我:「我说的是真的。他们虽然会觉得,哇塞讲得好牛逼啊,我还要学习一个啊,但其实一个分享听下来或者读下来,他们的技术并没有得到任何长进。我觉得技术分享这种事,应该是听者获得知识,讲者获得声望的双赢的事,而假如受益者只有我自己,听者得不到实质性的收获,我宁愿不讲。所以我不是不愿分享,甚至不知道分享什么。
老婆:「伟大。」
我:「我真这么想的。」
老婆:「我没讽刺你。你上次跟我说最近写不出技术文章了也是这个原因吗?」
我:「对。不知道写什么能真正帮人进步。我现在不太想写技术热点了。倒不是说景点没用,或者我觉得现在很多人最需要的不是这些前沿技术的追新,甚至一些相对基础的东西。尤其是很多高级工程师,更需要基础。
老婆:「高级的不会基础?上了大学还不会 1+1=2 ?」
我:「1+1=2 可不是基础,那叫入门知识,和基础是两回事。就比如你说的数学吧,小学学 1+1=2,中学学抛物线,大学学微积分,这都是必备知识,不叫基础。但是基础差的人,就有可能因为不知道括号里面的应该优先计算而导致微积分算错。括号是小学就学的东西,但它会影响到你以后的各个阶段,这个就叫基础。」
老婆:「没听说谁上了大学还不知道括号里的应该先算的。」
我:「我这不是举例嘛,你领会精神。做到了高级的,基础确实不会太差,但很多人的基础知识都是在工作中慢慢补起来的,不够系统。」
老婆:「基础知识不是大学就学过了吗?」
我:「还真不是。这几年中国的软件发展太快了,学校教育跟不上。你看我当时就是我们学校第一届软件工程专业的,老师们都是摸索着教的,能教得多系统?」
老婆:「你连母校都黑。」
我:「其实我们学校算好的了。」
老婆:「那你为什么不讲基础?教教高级工程师怎么用括号。」
我:「这就是关键所在啊,基础超级难讲明白的。基础的东西往往成体系,而且既晦涩又难理解,要想讲得通俗易懂,我光准备就得花很长时间。」
老婆:「多长时间?」
我:「不知道。不过怎么着也得半年到大半年吧,而且还得是全职做它的前提下。但是全职做明显不现实啊,全职做就得辞职,辞职就没工资了。」
老婆:「哦。」
我:「嗯。」
老婆:「你说的这个基础,真的很有用吗?」
我:「真的。基础相当于武侠小说里的内功,看起来你以为没用,但是已经内化到骨头里了,基础好的人做起事来非常稳当,而且再学别的什么也会很快。而你基础如果不好,工作头两年可能还好,慢慢你就会发现,你的技术提升不动了。其实大家做到一定水平之后,都有各自擅长的东西,你别看我在网上有点小名,真论技术他们未必就比我弱。但长期来看,基础是每个人都需要的,如果我能把我花了很多时间学到的这些基础给他们讲出来,让他们轻轻松松就能学会,不用和我一样花费大量的时间在这上面,你说这事棒不棒?」
老婆意味深长地看着我:
然后她说:「我同意你辞职。」
我:「我没,我没说要辞职啊。」
老婆:「咱家又不缺你挣的那点钱。」
我:「……你这么揭穿我考虑过我的感受吗?」
注:出于篇幅考虑,谈话内容已经过精简。

第二天,我提了辞职。

去年 7 月 1 日,离职后的我回到郑州,开始了自己的「高级 Android 括号里优先计算技术分享」的准备工作。

「高级」?

说一下「高级」这个词。同样的一个词,不同的人有不同的理解,不同的位置和环境有不同的定义。A 公司的「高级」,在 B 公司也许叫「中级」,到了 C 公司可能又成了「资深」。想来我最后一次换工作时,薪资涨了不少,职位却是从 「高级 Android 工程师」「降级」成了 「Android Engineer」。所以为了理解的统一,我先明确一下我所指的「高级 Android 工程师」的具体是谁:我这里说的「高级 Android 工程师」,主要指的就是国内大多数小型和微型公司里的 Android 骨干或 Android Leader。这些人在公司的职位通常叫做「高级 Android 工程师」,技术也很不错,但和一些有技术积淀的大公司中的高级工程师相比,他们中的多数人往往(注意是「多数人」「往往」,不是全部,谢绝学我老婆抬杠)底子不够扎实,基础相对薄弱,所以很容易在到达一个还不算很高的技术水平之后,就感到难以继续提升了。他们并不是不想上进,而是不知道应该怎么上进,很多人都已经尝试过很多学习方法,但都好像没有刚入行时那样进步神速,感觉每天都是一个全新的自己了。据我了解,现在中国的程序员中,这样的人非常多。他们是每个公司的骨干,但技术水平却没有达到自己期望的高度(甚至有不少人,也没有达到公司同事以为的高度)。我在这里所说的「高级」,指的就是这些人。

而我做这件事希望可以帮到的,也是这些人。

Talk is cheap

在做之前,只觉得这会是一件有点麻烦的事;然而做了才渐渐发现,这件事真是太太太麻烦了。原本以为半年就能做成,没想到却做了整整一年。这一年里,我学了很多,做了很多,也走了很多的弯路。

还好,今天我终于能够宣布,我的技术分享项目「HenCoder」面世了!

从今天起,我将会持续地在我的知乎专栏掘金专栏、微信公众号(HenCoder)、以及网站 HenCoder 同步发布我的每一期的分享。频率大约会是每周一更。

第一阶段首先是 Android 的 UI 基础中的自定义 View,下面这段视频是一个对此简要的介绍:

正式的技术内容将会从下周开始。如果感兴趣,可以先来关注一波。

FAQ

在这一年里,朋友和内测读者们跟我提了不少问题,我把其中问得最多的几个拿出来统一回答一下:

你的目标是什么?

答:通过补足技术短板,帮助国内的小型和微型公司的 Android 开发主力突破技术瓶颈,让他们的技术提升得以持续而不是停滞不前,从而让这些小微型公司 Android 主力的技术水平整体提升一个层次。当然如果能帮到更多范围的人群,我会更开心。

你觉得你做的这件事意义大吗?

答:大。现在国内其实特别缺高级的 Android 开发。据我从各种渠道了解到的信息,目前国内的情况是:在程序员方面,很多 Android 开发找不到好工作,而在公司方面,也有很多高级的 Android 职位招不来优秀的人才。因为现在国内公司对 Android 开发的要求是比程序员们的实际水平要整体高一些的,这中间有一道沟。而如果国内的 Android 开发能够整体提升一个层次,这道沟就被填上了,那么对于程序员们和公司们来说,都是有利的。喜大普奔啊。

你打算用什么形式来分享?

答:录播的视频 + 文字 + 练习项目。视频负责打通概念,文字负责阐述细节,练习项目负责最后一公里,让你从「我懂了」变成「我会了」。

为什么准备工作会花了一年这么久?

答:因为要想做到高质量,需要学习很多之前没有接触过的东西。比如这一年里,我把我打算讲的那些东西全部从头重新学了一遍,保证我讲出来的东西是绝对准确无误的;另外,为了视频的制作,我还学了拍照、视频拍摄、视频制作、动画制作、录音、镜头表现。除此之外,还走了很多弯路,学了和做了很多最终没有被我采用的技能和事情。

收费吗?

答:不收。收费的话很多人就不看了,我希望更多的人能看到。

那你的盈利模式是什么?

答:这个问题让我觉得自己瞬间成了一名创业公司的 CEO。赚钱的事不是没想过,但确实没有太多想,我现在就是一心的想把这件事做好。

你会坚持做下去吗?

答:只要有足够多的人喜欢,我一定会继续做的。

感谢

最后,感谢这一年以来给了我各种支持和帮助的各位: