2019 年终总结与回顾
时光荏苒,岁月如梭。
又到了回顾过去,展望未来的(chui)高(niu)光(bi)时刻了~~
职业回顾
去年年底准备跑路,然后年前面试,拿了头条的 offer,年后就入职了~~~
应聘的岗位是 Android-多媒体开发工程师,具体招聘岗位见官网:多媒体平台研发工程师-Android — 抖音火山
工作内容简单说就是做音视频 SDK,支持头条的一些业务。
实际上早先我也不是做音视频的。
16 年从西电本科毕业后主要是做 Android 应用开发,那时候热衷于使用 RxJava、Retrofit、Glide 等优秀的开源库,写着拿手的 MVP、MVVM 架构代码,同时研究研究 Android 系统源码,深入学习 Android 插件化和组件化,到后来又上手了 Kotlin ,掌握 JetPack 系列套件,极大地提高了应用开发效率,正是战斗力爆表的时候,这是多么单纯而又美好的时代~~~
然而遗憾的是,直到现在也没上车 Flutter,话说现在来还来得及嘛…
再后来,画风突变,入了音视频的坑,也算是渐渐开始转型了,毕竟上面提到的技能都很少用到了,主要是在写 C++ 代码,当然写的也不怎么样。
不少人都说想学习音视频开发,但是不知道怎么入门,那么我又是怎么转型的呢?
因为前司工作分配,独自做了个相机应用项目,后来又参与了一款画板应用,填了不少坑,但是通过这两个项目也点亮了 OpenGL 和音视频相关的技能树。
事实上在上面项目开发之前,我也是干着打杂的活,做着应用业务的开发。不过当时短视频应用开始有点火热,就对这方面的技术关注多了点,看过不少相关的开源项目代码和博客文章,比如 GPUImage、grafika、cameraview 等,以至于后来有机会去做相关的开发时,果断就接下来了,这才有了后面的故事~~~
由此可见,如果你想做某一方面的事情,可能它与你现在做的事情毫无关系,你也要默默地行动,不能只有心动而无行动,等着哪一天有机会来了,便是厚积薄发的时刻。
这种鸡汤是不是很熟悉,鸡汤喝多了,反而觉得是另外一种味道。
技术其实这东西也是讲究风口的,更准确的应该说是业务讲究风口,技术只是工具,为业务服务的。
短视频风口来了,市场很大,各大公司都想从中分一杯羹,那么就难免对技术人才的需求量更大了。而短视频业务涉及到的音视频技术,要么公司内部已经有了相应的技术沉淀,要么就从零开始积累打造,赶时间的话就去外面招聘,或者花钱用别人提供的服务。但总之,就是需要人了。
因此,技术人员作为整个产业链中的重要一环,也可以在此之前做好相应的学习,毕竟机会是留给有准备的人,前提你得准备呀。
这个思想和炒股买基金有点类似,在支付宝和一些基金软件上,经常能看到说提前布局 5G ,然后推荐买入各种股票和基金。
买股票基金,或者抄币,都算是做价值投资,也是讲究在低估时买入,在高估时抛出。做技术道理也差不多,前期猥琐发育,后面一波带走。
说的有点夸张了,其实是后来运气好,赶上了头条深圳招聘,正好团队在扩招,招聘名额多,需求量大,不知道放了多少水,我这小小菜鸡才得以入坑。
所以呀,如果你看到一些公司靠谱项目也在扩招,别犹豫,简历投它。
说回正题,提到音视频开发,但实际上,我所做的既不是视频开发,也不是音频开发。音视频包含的范围太广了,每个点又可以细分,有音频组也有视频组,专门研究各种音频玩法,各种视频算法,高大上的内容反正看不懂就对了。
但是作为一个完整系统,总还是需要各个环节衔接的。除了高大上的研究,工程化落地、性能优化、接口对接、日常测试等等环节,都是需要的,就看你处于哪个环节了。
这年头想要一个人单打独斗,从上到下,掌握所有环节难度很高了。看着茫茫代码,拧着手里的螺丝,有种觉得个人太过于渺小了。
对此,还是要保持兴趣,多一点探索。
个人发展
今年开始运营了公众号 【纸上浅谈】,不过也是佛系运营,一直没有太多时间投入到这个上面去。
还有个博客网站:https://glumes.com/
,一般技术文章都会先发在博客上。
网站的日均访问量周一到周五都在几百以上了,到了周末就暴跌,可见放假大家技术文章都看得少了。
通过谷歌搜索 YUV、CameraX、Vulkan 等关键字,都能直接搜索到博客文章,而且博客阅读体验也会比较好,实现了全站 HTTPS 纯净无广告。当然,不是我不想挂广告,而且申请了无数次 Google AdSenese 皆以失败告终,最后懒得折腾,弃疗了(感觉错过了几个亿)…
其实折腾博客是一件很费神的事情,从早期搞独立主机,WordPress 建站,折腾 WP 模板,域名购买解析,到 GitHub Pages 建站,VPS 自建图床,全站 HTTPS,这一路走来,满是心酸与妥协。
每一位博客站长都不容易呀,体验过的人都会懂,基本不会有太大的访问流量,但还是在坚持写作的,这应该就是一种 Geek 精神的体现了吧~~~
同时还维护了一个比较纯净的技术交流群【OpenGL ES 技术交流群】,从早先的一两个人,到目前已经有 300+ 了,里面不少头条、腾讯大佬。除了交流 OpenGL 相关内容,也会谈及音视频相关的开发。
群聊比较抵制广告链接,做纯粹的技术交流。有人会问头条 XXX 功能是怎么实现的,抖音 XXX 效果是怎么实现的,这特么我哪知道呀,就算知道我也不能说呀,毕竟饭碗要紧,好在还有很多热心大佬,总还是能够答疑解惑的。
另外,早期写了很多 OpenGL 方面的博客,许多人就是因为这方面才关注了掘金和公众号,列举一下 OpenGL 的系列文章:
- OpenGL 学习系列—基础的绘制流程
- OpenGL 学习系列—基本形状的绘制
- OpenGL 学习系列—坐标系统
- OpenGL 学习系列—投影矩阵
- OpenGL 学习系列—观察矩阵
- OpenGL 学习系列—纹理
- OpenGL 的 glDrawElements 绘制方法
- 用 OpenGL 对视频帧内容进行替换
- OpenGL 优化项之面剔除和注意点
- OpenGL 深度测试与精度值的那些事
- OpenGL 之 GPUImage 源码分析
- OpenGL 之 EGL 使用实践
- OpenGL 之 帧缓冲 使用实践
- OpenGL 实践之贝塞尔曲线绘制
- OpenGL 实现视频编辑中的转场效果
其实后来还写过 Vulkan 的系列文集,只是感觉这方面的开发者略少,不太受关注,就没有继续写下去了。
- 进击的 Vulkan 移动开发(一)之今生前世
- 进击的 Vulkan 移动开发(二)之谈谈对渲染流程的理解
- 进击的 Vulkan 移动开发之 Instance & Device & Queue
- 进击的 Vulkan 移动开发之 Command Buffer
- 进击的 Vulkan 移动开发之 SwapChain
不过,学会的技能还是没有忘的,都存在了脑海和笔记本里,化身为一行行代码,伴我行走江湖。
最近还尝试了录制视频课程,在慕课上录制了一套 Android NDK 开发的免费技术视频。
以前都是写文章,现在开始录制技术视频,两者的表现形式不一样,但共同点都是需要提前把相关的知识掌握好,并且在录制、写作的过程中还需要不断查漏补缺,对个人能力的提升都是很有帮助的。
至于后续是否继续录制视频,现在还只是尝试,不断探索中,主要还是太耗时间了,而且收益不高。
什么时候技术视频可以不是只讲枯燥的代码,而是像华农兄弟、美食家王刚、手工耿那样丰富有趣,普及一些计算机基础知识并且展示手工小项目,就好比参加项目比赛做出来的成品给大家演示。要是真能那样,写代码可能会更有趣一些吧。
最后就是在掘金上的成就啦,截至目前都有 4500+ 的关注了,而且还在不断增长中。
回想当年,能有一两百都开心不已了,自从开始写 OpenGL 相关内容后,就在不断增长,并且掘金上关于 OpenGL、音视频的内容也越来越多,这是个好的迹象呀,学习资源越多,说明这门手艺需求量也在增多,对于打工仔来说总是利大于弊的。
都看到这了,不关注一波公众号嘛,你的关注才是我不断更新的动力…
程序人生
马上就要是新的一年了,该立新的 Flag 了。
话说工作三年,跳槽两次,在珠三角这个地方算是打通关了,珠海、广州、深圳都留下足迹。总的来说珠海是最宜居了,海边生活过得特别惬意,适合养老,反观现在生活质量随着薪资的上涨而直线下降了。
说到养老,有时候在想离 35 岁失业下岗都还有十年呢,这十年还是得写代码讨生活呀,不然也没别的手艺了,为啥不精益求精,把代码写得更 six 一点呢..
抱着这样的念头和想法,也不会有学不动了的念头,只是有没有时间了,不过来日方长,慢慢搞呗…
前段时间还做了一两个 iOS 的需求,因此特意看了一下 OC 和 Swift ,不得不说 Swift 的语法和 Kotlin 好相近,入门的门槛大大降低了。
音视频毕竟是跨平台的,学习一波 iOS ,了解一下双端的实现思路总还是不错的。除此之外,写文章讲究首尾呼应,Flutter 抽时间也要了解一波。
另外还有好多好多有意思的事情可以去做,希望接下来会写更多音视频、图像渲染方面的文章博客,除了基础的理论介绍、代码分析,最好再带上一些实践项,做点好玩的东西~~
具体做哪些就不先说了,预知后事如何,持续关注一波吧~~~