【程式人生】寫部落格一週年紀——橫空出世

宋者為王發表於2019-06-29

前言

       “吾日三省吾身”,《論語》如是說;“我是靠總結經驗吃飯的”,毛主席如是說;“做人要像竹子一樣,每攀登一步,就做一次小結”,名人亦如是說。可見,總結對於人生的成長有著多麼重要的作用。我等凡人做不到曾子“日三省”,但一年總結一次還是可以辦到的。從去年的6月份開始正式寫部落格,到現在不知不覺已經一年了,正好6月又是一個大考月,也是對過去一個階段的學業總結,這裡就對過去一年寫部落格的經歷做一些總結吧。

 

 

 

一、為什麼要寫部落格

       至於我寫部落格的初衷,這和我工作經歷和麵試經歷有關。這裡我想簡單回憶一下過去7年的程式設計師生涯的,不知道讀者您是否有類似的經歷呢?

 

  1、過往的工作經歷

       在這裡,我先簡單說一下過去7年我做程式設計師的工作經歷:

      1)第一份工作,三年。前三年在一家創業公司做Android應用開發,參與的App是和遊戲盒子,電視板,手機等硬體繫結在一起的應用,後來負責我們團隊的那個老闆說話做事太噁心,我憤然裸辭了。

      2)第二份工作,一年。離職後,去了一家上市公司,團隊從零開始開發一款應用,整個Android端由我一個人開發,一年之內在各個應用市場釋出了多個版本,剛有了一定的使用者後,由於所在的這個部門沒有盈利,公司將我們這個新組建的部門裁了,之前開發的App被廢棄了。所以,工作一年,又失業了。

      3)第三份工作,一年。後來我又去了另外一家上市公司,公司做手機的,我們團隊負責做App,既繫結手機出售,同時也上架到一些主流的應用商店上。來這家公司一年時間裡,先是公司股票連續跌停,創下A股連續跌停的吉利斯記錄,很快,公司大老闆捲款77億人民幣跑路了。接下來就是公司裁員,手機業務相關的幾百人幾乎全部裁掉了,也就是說,工作一年後,我又又得找工作了,而且之前參與的應用也不再維護,又被廢棄了。

      4)第四份工作,一年多了,一直到現在。接著我又到了某興旗下的手機公司某比亞科技有限公司做系統開發。剛到公司,碰到該興被美國製裁,罰款14億美元的事件,公司耗費了很大精力和時間挺過這一關,但是傷了元氣,我們該比亞公司營業額大幅下降,幾個月後(也就是現在了)又大裁員,所幸目前為止還沒有被裁掉,但接下來會不會繼續裁就很難說了,說不定,我又又又要失業了。

 

 

       這裡又不是《中國好聲音》導師選學生,“賣慘”有啥用? 說的這些經歷,和為什麼寫部落格能有什麼關係呢?

       當然有了,而且有很大的關係。因為我總是突然失業,突然又要找工作,可是每當我面試的時候,我根本沒法拿自己像樣的作品給面試官去看。前面也說了,要麼App和硬體繫結,無法裝在自己手機裡面給面試官演示;要麼就是整個業務團隊被裁,App隨之被廢棄掉了;就算勉強能拿給面試官看,開發才一年的應用,又能牛逼到哪去,能有多大的競爭力呢?我做了將近7年的Android程式設計師了,每當回憶起我的職業生涯,真的是蒼白無力。古人常說,“人過留名,雁過留聲”,拿不出任務作品的我,經常誠惶誠恐,就算要跟別人吹牛,都沒底氣。所以我覺得應該做點什麼,讓自己的職業生涯,留下一些痕跡。

 

 

  2、過往的面試經歷

       每次失業後,都有一到兩個月的到處面試的經歷。記得有一次,從那個工作了三年的創業公司出來後,我去某安科技去面試。面試官問了我一些問題,雖然這些問題我在工作中也有所接觸,但之前我一直都是一個面向百度程式設計的程式設計師,問題理解不深入,所以回答得不理想,自然而然,面試沒有通過,而且該面試官面試中還不經意說了句“這都工作3年了......”。

       兩年後,我再次找工作時,在另外一家公司面試,居然又碰到了這個面試官,當然他肯定對我沒有印象,我卻一眼就認出了他,因為他那句“這都工作3年了”。這一次他提的問題,有不少是上次面試中問過的,在上次面試之後的工作中,對那次提到的一些沒回答上的問題刻意學習過,所以這次都能答出一二來。這次面試技術面試過了,接下來的HR面試時聊了很多,也聊得挺開心的,其實我自我感覺還是沒什麼問題的,但後來還是沒有錄用我。我心有不甘就去問了這家公司的HR,當然她找了一些理由把我搪塞過去了。我後來回憶了這一次的面試,技術面試雖然過了,但應該是勉強過了而已,儘管當時我都回答出了一些問題,但都不夠深入,這一點我自己還是有數的,而且面試的級別是高階,自然要求更高,當時還聽到這位面試官說了一句“這都工作5年了”。

       所以,根本原因還是我基礎不紮實,面試效果不夠好。巧合的不只是碰到了以前面過我的面試官,還有這家公司。因為這次面試的前一年,我在這家公司的其他部門也面試過,只不過地點在附近的其它地方。那一次技術面是兩個人同時面試的我,面了一個多小時後,讓我留下來做一套題,然後回去等訊息,也是沒有下文了。我想應該也是技術面勉強通過的那種吧,公司在猶豫的時候,有了稍微強一點的競爭者後,就沒我啥事了。

 

       如果面試得非常滿意,結果往往是很快就通知你入職了。曾經有一次面試情況很好,有公司當場就給我簽了合同。還有一次,就是當前工作的某比亞公司,當時是下午去面試的,技術面是3個人一起面試的我,面試效果也很好,一面後馬上就二面,二面完了差不多下班時間了,到晚上7點不到,HR就直接通知我準備入職了,HR面試都免了,薪資也和我要求的差不多。推薦我去面試的獵頭說,我當時是面試官標註為重點跟進的物件(這裡有點扯遠了,其實我就是想表達一下,我不是那麼不堪的,哈哈哈~~~)。

 

       我舉上面的例子,其實就是說圈子其實很小,每次面試的基礎知識,其實也就那些。這些年陸陸續續面試過很多次,從最近3年參與過的高階程式設計師崗位面試情況來看,面試官提的問題大多雷同,比如跨程式間通訊、MVC/MVP/MVVM架構、Handler機制、效能優化、View繪製流程、Android事件分發機制、自定義View、事件衝突、常見的設計模式等。遺憾的是,以往的工作當中對這些都沒有深入研究過,幾乎都只是碰到問題後上網查一下,解決問題了就不管了。這有些客觀和主觀的因素,客觀因素是,深圳的IT公司加班多,光是工作任務就需要加班來完成,同時經常專案緊急,幾乎沒有時間讓你深入去研究某個基礎知識,而且經常不需要掌握太深的基礎知識,也能解決一般的專案問題。

 

 

主觀因素是,不知道從哪裡下手,需要學到什麼程度,導致沒有那麼強的驅動力去深入學習。所以,這就導致面試中問的那些問題,工作中都遇到過,但就是隻知皮毛,一知半解,知識點零零散散,根本無法跟面試官解釋清楚,一深入問就跪,更無法成體系去掌握它們。

 

       時間過得很快,一晃就是很多年過去了。而自己的職業生涯狀況也讓我一度很堪憂,當然,餓是餓不死的,但相比於相同工齡的程式設計師,真的沒有什麼優勢可言。所以,自己也經常看技術書或者看看網上的文章學習,但這麼泛泛地看效果不佳,當時看明白了,很快又還回去了。大神廖雪峰曾經說過,要想掌握好一項技能,就去寫一本書。所以,我後來開始寫部落格了。

 

 

二、寫部落格的經歷

       這裡,我想記錄一下我第一次正兒八經認真寫部落格的經歷。

       來到某比亞後,這邊軟體流程比較規範,程式碼稽核比以往的公司都嚴格。很多我以前認為一點問題都沒有的程式碼,經常稽核不過被打回來修改。此時,我深刻地感受到,我薄弱的基礎,已經嚴重地制約著我。事實上,平常稽核我程式碼的同事,可能比我小,工作經驗也沒有我豐富,但是他們負責某一塊的功能很長時間了,經常深入去研究這些基礎知識,所以在他們面前我就是“虛胖”而已。雖然可能我在公司的級別比他們高,但真正討論起某個知識點來,我的的確確是啞口無言,毫無“反擊”之力。

       直到有一次,如何使用HandlerThread,如何判斷Handler回撥方法所線上程問題等一些Handler相關的問題頻繁出現後,我才發現我是懵逼的,自己用了這麼多年的Handler,居然有如此之多的盲點而不自知。儘管曾經在面試中經常碰到面試官問Handler機制相關的問題,但差不多就是提前背一下答案簡單回答一下而已,平時根本沒有真正去研究過,我甚至完全沒研究過sendMessage,sendEmptyMessage,post,postDelay這些方法的原始碼,它們的聯絡和區別。所以我一度很慚愧,用了這麼多年的Handler,我居然不過是個小學生水平,在同事面前掉價掉大了。

       事後,我發誓,一定要好好研究一下Handler,於是我開始看原始碼,查資料,看部落格,頓時豁然開朗了。終於搞明白了平時工作中遇到的Handler問題,也明白了曾經在面試中多次難倒我的Handler機制是這麼回事,後來碰到Handler的常見問題,我也就輕鬆了很多。同時我把Handler相關的知識點用文字描述一遍,整理成一篇部落格,發到朋友圈得到了不少好評,這也算得上是我第一篇真正意義上的技術部落格了。

       萬事開頭難,真正用心寫完第一篇部落格後,就一發不可收拾了。在過去的一年裡,寫了40多篇,曾經面試中讓我吃了不少苦頭的問題,工作中經常碰到的問題,學習某一款工具後的記錄等,都花很長的篇幅去梳理和總結,經常半個月到一個月才寫完一篇。

 

三、寫部落格所受的益處

       寫部落格最大的受益者是寫部落格的人,儘管我只寫了一年的時間,但也明顯感覺到自己受益不小了。

       1)學到了更多更深的知識。寫部落格並不是完全懂了才寫,而是懂得大概後開始寫,一邊寫一邊發現不懂之處,然後弄懂這些不懂之處,再繼續寫,像滾雪球一樣,至少我就是這麼幹的。

       2)清除盲點。對於某一個知識點,我會查閱很多資料,閱讀其他優質部落格,搜尋原始碼,看書上的描述等,與當前知識點相關的內容都會去涉獵。

       3)建立自己的技術棧。作為一個程式設計師,需要明白自己這個階段必須要掌握的技能和知識,而通過寫部落格能夠直觀地記錄自己懂了什麼,還有什麼需要學習,而不是隻記錄在腦海裡。

       4)加深對知識的理解。“好記性不如爛筆頭”,其實當我們把一些已知的知識梳理一遍並寫下來的時候,會對已知知識的記憶和理解會更深刻。

       5)刺激求知慾。當我在不斷髮現自己的不懂之處時,就特別想把它們搞明白。其實我以前對技術總是缺少一種深入探索的慾望,一切是隻要能應付工作需要就夠了。但是自從開始寫部落格後,就有一種想把整個程式世界都研究透的慾望,儘管這是不可能實現的,但我確實更愛研究技術了,經常是樂此不疲。

       6)成就感爆棚。看著自己曾經困惑不已的知識點被一一攻破,內心的喜悅和成就感是不言而喻的。而且時不時周圍會有同事和朋友對我寫的部落格讚許有加,這也讓我信心滿滿,因為平時工作中寫部落格的人其實不多,能寫得還不錯的人就更少了(雖然我寫得也未必很好,但絕對是走心了的,不是每一個程式設計師都能堅持去寫的)。

       7)增加面試時的籌碼。有些招聘資訊中,如果經常寫技術部落格,會讓面試者在簡歷中留下部落格地址。無疑,技術部落格寫得好的話,對面試無疑是有很大好處的。這也是我努力寫部落格的動力之一。

       8)利於做工作記錄,提高工作效率。用部落格來記錄以前經常出現的問題,分析思路和解決問題,有助於再次碰到時輕鬆解決。而且對於常用的linux命令,git命令等,都可以做好記錄,以後記憶不清晰了,隨時可以開啟部落格開檢視。

       9)提升表達能力等。除了前面提到的對於技能和知識點的提升有很大幫助外,還可以培養自己的表述能力,因為把一個問題描述清楚讓讀者來閱讀並且理解,這種技能也是需要磨練的。同時,寫一篇高質量的部落格,可能需要很長時間,無疑這也是在培養一個人的耐心和心性吧,會讓人少一絲的浮躁。

       總之,堅持寫部落格,好處多多。好處說了一大堆,當然這都是筆者這一年寫部落格的感悟,對於別人不一定也這樣。可能是筆者之前基礎太薄弱了,所以才會感覺到受益這麼多吧,就好像一個餓得快死的人,幾個白饅頭給他,他都會覺得是山珍海味一樣。不過,我還是希望,在以後的寫作中,仍然能夠感受到這些益處。

    當然,寫了一年部落格,帶來的也不一定都是積極的影響,負面的影響也是有的,比如,陪老婆玩耍的時間少了不少,哈哈哈~~~

     

 

四、一些疑惑

       儘管寫部落格一年下來,自己受益頗多,但是相比與很多的部落格專家和大神,我還只是個剛入門的新人而已。我不太清楚後面持續寫下去會出現怎樣的景象:對職業生涯的影響會有多大?怎樣平衡寫部落格、工作和生活的時間?怎樣讓部落格得到更多的關注?如何提升自己的寫作技能?等等!而且程式設計是一門實踐性很強的技能,寫部落格要轉化成真正解決工作問題,也還有很多路要走吧。

 

結語

       在寫部落格這條路上,我還剛剛開始,所謂“路漫漫其修遠兮,吾將上下而求索”,我還有很長的一段路要走。所幸,自己還比較喜歡寫,希望自己能在IT這條道路上越走越順吧。

 

相關文章