前言
時光荏苒,歲月如梭。
又到了回顧過去,展望未來的(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 ,然後推薦買入各種股票和基金。
買股票基金,或者抄幣,都算是做價值投資,也是講究在低估時買入,在高估時丟擲。做技術道理也差不多,前期猥瑣發育,後面一波帶走。
說的有點誇張了,其實是後來運氣好,趕上了頭條深圳招聘,正好團隊在擴招,招聘名額多,需求量大,不知道放了多少水,我這小小菜雞才得以入坑。
所以呀,如果你看到一些公司靠譜專案也在擴招,別猶豫,簡歷投它。
說回正題,提到音視訊開發,但實際上,我所做的既不是視訊開發,也不是音訊開發。音視訊包含的範圍太廣了,每個點又可以細分,有音訊組也有視訊組,專門研究各種音訊玩法,各種視訊演算法,高大上的內容反正看不懂就對了。
但是作為一個完整系統,總還是需要各個環節銜接的。除了高大上的研究,工程化落地、效能優化、介面對接、日常測試等等環節,都是需要的,就看你處於哪個環節了。
這年頭想要一個人單打獨鬥,從上到下,掌握所有環節難度很高了。看著茫茫程式碼,擰著手裡的螺絲,有種覺得個人太過於渺小了。
對此,還是要保持興趣,多一點探索。
個人發展
今年開始運營了公眾號 【紙上淺談】,不過也是佛系運營,一直沒有太多時間投入到這個上面去。
還有個部落格網站: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 了。
話說工作三年,跳槽兩次,在珠三角這個地方算是通關了,珠海、廣州、深圳都留下足跡。總的來說珠海是最宜居了,海邊生活過得特別愜意,適合養老,反觀現在生活質量隨著薪資的上漲而直線下降了。
接下來幾年總是要寫程式碼的,為什麼不把它經營地更好一點呢。抱著這樣的念頭和想法,也不會有學不動了的念頭,只是有沒有時間了,不過來日方長,慢慢搞唄...
前段時間還做了一兩個 iOS 的需求,因此特意看了一下 OC 和 Swift ,不得不說 Swift 的語法和 Kotlin 好相近,入門的門檻大大降低了。
音視訊畢竟是跨平臺的,學習一波 iOS ,瞭解一下雙端的實現思路總還是不錯的。除此之外,寫文章講究首尾呼應,Flutter 抽時間也要了解一波。
另外還有好多好多有意思的事情可以去做,希望接下來會寫更多音視訊、影像渲染方面的文章部落格,除了基礎的理論介紹、程式碼分析,最好再帶上一些實踐項,做點好玩的東西~~
具體做哪些就不先說了,預知後事如何,持續關注一波吧~~~