前言linux
「吾日三省吾身」,《論語》如是說;「我是靠總結經驗吃飯的」,毛主席如是說;「作人要像竹子同樣,每攀登一步,就作一次小結」,名人亦如是說。可見,總結對於人生的成長有着多麼重要的做用。我等凡人作不到曾子「日三省」,但一年總結一次仍是能夠辦到的。從去年的6月份開始正式寫博客,到如今不知不覺已經一年了,正好6月又是一個大考月,也是對過去一個階段的學業總結,這裏就對過去一年寫博客的經歷作一些總結吧。git
1、爲何要寫博客程序員
至於我寫博客的初衷,這和我工做經歷和麪試經歷有關。這裏我想簡單回憶一下過去7年的程序員生涯的,不知道讀者您是否有相似的經歷呢?面試
一、過往的工做經歷編程
在這裏,我先簡單說一下過去7年我作程序員的工做經歷:設計模式
1)第一份工做,三年。前三年在一家創業公司作Android應用開發,參與的App是和遊戲盒子,電視板,手機等硬件綁定在一塊兒的應用,後來負責咱們團隊的那個老闆說話作事太噁心,我憤然裸辭了。性能優化
2)第二份工做,一年。離職後,去了一家上市公司,團隊從零開始開發一款應用,整個Android端由我一我的開發,一年以內在各個應用市場發佈了多個版本,剛有了必定的用戶後,因爲所在的這個部門沒有盈利,公司將咱們這個新組建的部門裁了,以前開發的App被廢棄了。因此,工做一年,又失業了。架構
3)第三份工做,一年。後來我又去了另一家上市公司,公司作手機的,咱們團隊負責作App,既綁定手機出售,同時也上架到一些主流的應用商店上。來這家公司一年時間裏,先是公司股票連續跌停,創下A股連續跌停的吉利斯記錄,很快,公司大老闆捲款77億人民幣跑路了。接下來就是公司裁人,手機業務相關的幾百人幾乎所有裁掉了,也就是說,工做一年後,我又又得找工做了,並且以前參與的應用也再也不維護,又被廢棄了。工具
4)第四份工做,一年多了,一直到如今。接着我又到了某興旗下的手機公司某比亞科技有限公司作系統開發。剛到公司,碰到該興被美國製裁,罰款14億美圓的事件,公司耗費了很大精力和時間挺過這一關,可是傷了元氣,咱們該比亞公司營業額大幅降低,幾個月後(也就是如今了)又大裁人,所幸目前爲止尚未被裁掉,但接下來會不會繼續裁就很難說了,說不定,我又又又要失業了。post
這裏又不是《中國好聲音》導師選學生,「賣慘」有啥用? 說的這些經歷,和爲何寫博客能有什麼關係呢?
固然有了,並且有很大的關係。由於我老是忽然失業,忽然又要找工做,但是每當我面試的時候,我根本無法拿本身像樣的做品給面試官去看。前面也說了,要麼App和硬件綁定,沒法裝在本身手機裏面給面試官演示;要麼就是整個業務團隊被裁,App隨之被廢棄掉了;就算勉強能拿給面試官看,開發才一年的應用,又能牛逼到哪去,能有多大的競爭力呢?我作了將近7年的Android程序員了,每當回憶起個人職業生涯,真的是蒼白無力。古人常說,「人過留名,雁過留聲」,拿不出任務做品的我,常常坐臥不安,就算要跟別人吹牛,都沒底氣。因此我以爲應該作點什麼,讓本身的職業生涯,留下一些痕跡。
二、過往的面試經歷
每次失業後,都有一到兩個月的處處面試的經歷。記得有一次,從那個工做了三年的創業公司出來後,我去某安科技去面試。面試官問了我一些問題,雖然這些問題我在工做中也有所接觸,但以前我一直都是一個面向百度編程的程序員,問題理解不深刻,因此回答得不理想,天然而然,面試沒有經過,並且該面試官面試中還不經意說了句「這都工做3年了......」。
兩年後,我再次找工做時,在另一家公司面試,竟然又碰到了這個面試官,固然他確定對我沒有印象,我卻一眼就認出了他,由於他那句「這都工做3年了」。這一次他提的問題,有很多是上次面試中問過的,在上次面試以後的工做中,對那次提到的一些沒回答上的問題刻意學習過,因此此次都能答出一二來。此次面試技術面試過了,接下來的HR面試時聊了不少,也聊得挺開心的,其實我自我感受仍是沒什麼問題的,但後來仍是沒有錄用我。我心有不甘就去問了這家公司的HR,固然她找了一些理由把我搪塞過去了。我後來回憶了這一次的面試,技術面試雖然過了,但應該是勉強過了而已,儘管當時我都回答出了一些問題,但都不夠深刻,這一點我本身仍是有數的,並且面試的級別是高級,天然要求更高,當時還聽到這位面試官說了一句「這都工做5年了」。
因此,根本緣由仍是我基礎不紮實,面試效果不夠好。巧合的不僅是碰到了之前面過個人面試官,還有這家公司。由於此次面試的前一年,我在這家公司的其餘部門也面試過,只不過地點在附近的其它地方。那一次技術面是兩我的同時面試的我,面了一個多小時後,讓我留下來作一套題,而後回去等消息,也是沒有下文了。我想應該也是技術面勉強經過的那種吧,公司在猶豫的時候,有了稍微強一點的競爭者後,就沒我啥事了。
若是面試得很是滿意,結果每每是很快就通知你入職了。曾經有一次面試狀況很好,有公司當場就給我簽了合同。還有一次,就是當前工做的某比亞公司,當時是下午去面試的,技術面是3我的一塊兒面試的我,面試效果也很好,一面後立刻就二面,二面完了差很少下班時間了,到晚上7點不到,HR就直接通知我準備入職了,HR面試都免了,薪資也和我要求的差很少。推薦我去面試的獵頭說,我當時是面試官標註爲重點跟進的對象(這裏有點扯遠了,其實我就是想表達一下,我不是那麼不堪的,哈哈哈~~~)。
我舉上面的例子,其實就是說圈子其實很小,每次面試的基礎知識,其實也就那些。這些年陸陸續續面試過不少次,從最近3年參與過的高級程序員崗位面試狀況來看,面試官提的問題大多雷同,好比跨進程間通訊、MVC/MVP/MVVM架構、Handler機制、性能優化、View繪製流程、Android事件分發機制、自定義View、事件衝突、常見的設計模式等。遺憾的是,以往的工做當中對這些都沒有深刻研究過,幾乎都只是碰到問題後上網查一下,解決問題了就無論了。這有些客觀和主觀的因素,客觀因素是,深圳的IT公司加班多,光是工做任務就須要加班來完成,同時常常項目緊急,幾乎沒有時間讓你深刻去研究某個基礎知識,並且常常不須要掌握太深的基礎知識,也能解決通常的項目問題。
主觀因素是,不知道從哪裏下手,須要學到什麼程度,致使沒有那麼強的驅動力去深刻學習。因此,這就致使面試中問的那些問題,工做中都遇到過,但就是隻知皮毛,只知其一;不知其二,知識點零零散散,根本沒法跟面試官解釋清楚,一深刻問就跪,更沒法成體系去掌握它們。
時間過得很快,一晃就是不少年過去了。而本身的職業生涯情況也讓我一度很堪憂,固然,餓是餓不死的,但相比於相同工齡的程序員,真的沒有什麼優點可言。因此,本身也常常看技術書或者看看網上的文章學習,但這麼泛泛地看效果不佳,當時看明白了,很快又還回去了。大神廖雪峯曾經說過,要想掌握好一項技能,就去寫一本書。因此,我後來開始寫博客了。
2、寫博客的經歷
這裏,我想記錄一下我第一次正兒八經認真寫博客的經歷。
來到某比亞後,這邊軟件流程比較規範,代碼審覈比以往的公司都嚴格。不少我之前認爲一點問題都沒有的代碼,常常審覈不過被打回來修改。此時,我深入地感覺到,我薄弱的基礎,已經嚴重地制約着我。事實上,日常審覈我代碼的同事,可能比我小,工做經驗也沒有我豐富,可是他們負責某一塊的功能很長時間了,常常深刻去研究這些基礎知識,因此在他們面前我就是「虛胖」而已。雖然可能我在公司的級別比他們高,但真正討論起某個知識點來,個人的確確是啞口無言,毫無「反擊」之力。
直到有一次,如何使用HandlerThread,如何判斷Handler回調方法所在線程問題等一些Handler相關的問題頻繁出現後,我才發現我是懵逼的,本身用了這麼多年的Handler,竟然有如此之多的盲點而不自知。儘管曾經在面試中常常碰到面試官問Handler機制相關的問題,但差很少就是提早背一下答案簡單回答一下而已,平時根本沒有真正去研究過,我甚至徹底沒研究過sendMessage,sendEmptyMessage,post,postDelay這些方法的源碼,它們的聯繫和區別。因此我一度很慚愧,用了這麼多年的Handler,我竟然不過是個小學生水平,在同事面前掉價掉大了。
過後,我發誓,必定要好好研究一下Handler,因而我開始看源碼,查資料,看博客,頓時豁然開朗了。終於搞明白了平時工做中遇到的Handler問題,也明白了曾經在面試中屢次難倒個人Handler機制是這麼回事,後來碰到Handler的常見問題,我也就輕鬆了不少。同時我把Handler相關的知識點用文字描述一遍,整理成一篇博客,發到朋友圈獲得了很多好評,這也算得上是我第一篇真正意義上的技術博客了。
萬事開頭難,真正用心寫完第一篇博客後,就一發不可收拾了。在過去的一年裏,寫了40多篇,曾經面試中讓我吃了很多苦頭的問題,工做中常常碰到的問題,學習某一款工具後的記錄等,都花很長的篇幅去梳理和總結,常常半個月到一個月才寫完一篇。
3、寫博客所受的益處
寫博客最大的受益者是寫博客的人,儘管我只寫了一年的時間,但也明顯感受到本身受益不小了。
1)學到了更多更深的知識。寫博客並非徹底懂了才寫,而是懂得大概後開始寫,一邊寫一邊發現不懂之處,而後弄懂這些不懂之處,再繼續寫,像滾雪球同樣,至少我就是這麼幹的。
2)清除盲點。對於某一個知識點,我會查閱不少資料,閱讀其餘優質博客,搜索源碼,看書上的描述等,與當前知識點相關的內容都會去涉獵。
3)創建本身的技術棧。做爲一個程序員,須要明白本身這個階段必需要掌握的技能和知識,而經過寫博客可以直觀地記錄本身懂了什麼,還有什麼須要學習,而不是隻記錄在腦海裏。
4)加深對知識的理解。「好記性不如爛筆頭」,其實當咱們把一些已知的知識梳理一遍並寫下來的時候,會對已知知識的記憶和理解會更深入。
5)刺激求知慾。當我在不斷髮現本身的不懂之處時,就特別想把它們搞明白。其實我之前對技術老是缺乏一種深刻探索的慾望,一切是隻要能應付工做須要就夠了。可是自從開始寫博客後,就有一種想把整個程序世界都研究透的慾望,儘管這是不可能實現的,但我確實更愛研究技術了,常常是樂此不疲。
6)成就感爆棚。看着本身曾經困惑不已的知識點被一一攻破,心裏的喜悅和成就感是不言而喻的。並且時不時周圍會有同事和朋友對我寫的博客讚許有加,這也讓我信心滿滿,由於平時工做中寫博客的人其實很少,能寫得還不錯的人就更少了(雖然我寫得也未必很好,但絕對是走心了的,不是每個程序員都能堅持去寫的)。
7)增長面試時的籌碼。有些招聘信息中,若是常常寫技術博客,會讓面試者在簡歷中留下博客地址。無疑,技術博客寫得好的話,對面試無疑是有很大好處的。這也是我努力寫博客的動力之一。
8)利於作工做記錄,提升工做效率。用博客來記錄之前常常出現的問題,分析思路和解決問題,有助於再次碰到時輕鬆解決。並且對於經常使用的linux命令,git命令等,均可以作好記錄,之後記憶不清晰了,隨時能夠打開博客開查看。
9)提高表達能力等。除了前面提到的對於技能和知識點的提高有很大幫助外,還能夠培養本身的表述能力,由於把一個問題描述清楚讓讀者來閱讀而且理解,這種技能也是須要磨練的。同時,寫一篇高質量的博客,可能須要很長時間,無疑這也是在培養一我的的耐心和心性吧,會讓人少一絲的浮躁。
總之,堅持寫博客,好處多多。好處說了一大堆,固然這都是筆者這一年寫博客的感悟,對於別人不必定也這樣。多是筆者以前基礎太薄弱了,因此纔會感受到受益這麼多吧,就好像一個餓得快死的人,幾個白饅頭給他,他都會以爲是山珍海味同樣。不過,我仍是但願,在之後的寫做中,仍然可以感覺到這些益處。
固然,寫了一年博客,帶來的也不必定都是積極的影響,負面的影響也是有的,好比,陪老婆玩耍的時間少了很多,哈哈哈~~~
4、一些疑惑
儘管寫博客一年下來,本身受益頗多,可是相比與不少的博客專家和大神,我還只是個剛入門的新人而已。我不太清楚後面持續寫下去會出現怎樣的景象:對職業生涯的影響會有多大?怎樣平衡寫博客、工做和生活的時間?怎樣讓博客獲得更多的關注?如何提高本身的寫做技能?等等!並且編程是一門實踐性很強的技能,寫博客要轉化成真正解決工做問題,也還有不少路要走吧。
結語
在寫博客這條路上,我還剛剛開始,所謂「路漫漫其修遠兮,吾將上下而求索」,我還有很長的一段路要走。所幸,本身還比較喜歡寫,但願本身能在IT這條道路上越走越順吧。