我的軟體修習之路(三)——實踐出真知
研究生畢業以後,我的職業之路正式拉開序幕。為了能夠接觸更多的軟體牛人,我選擇了到北京工作。也因此和老婆開始了異地生活。生活雖然苦,但是為了將來,我認為還是值得的。
初到北京,工資不是很高,為了能夠給家裡多節省一些錢,選擇了在離公司比較遠的回龍觀租了房子。在北京工作的人應該瞭解,北京北面的回龍觀,天通苑,西二旗等地都是我們北漂一族租房的首選,所以地鐵13號線的人流量一向是很大的,站著人擠人基本上是摔不倒的。每天從住的地方到公司,大概要有一個半小時的路程。我對自己的時間看的比較寶貴,況且我和老婆分居兩地,心裡總會覺得沒有什麼收穫和進步,這些付出值得嗎?去公司的地鐵之路,往往就是我看書學習的最好時間,基本上每天我會揹著包,帶著書,有機會就在地鐵上看一會兒。畢竟上班了,工作第一,上班時間我儘可能快的完成工作,儘可能少加班,留給自己更多的時間去學習。這樣長久下來,我發現自己加班時間越來越少,學習時間越來越多,學東西也越來越快,這種良性迴圈一直保持到現在。
在這裡希望給大家一些建議,技多不壓身,技術思想都是互通的。如果不知道自己該學什麼的時候,很簡單,不用考慮了,先選一樣學就好了,在不斷學習的過程中,你就會發現,你已經學會了很多思想,而這些思想對於你以後的技術學習會很有幫助。
第一家公司是一家視訊監控領域的公司,我主要從事網路協議對接這一塊的工作,也會涉及簡單的視訊處理,屬於嵌入式Linux應用開發。公司後來在創業板上市。都說第一份工作對一個人很重要,對我來說的確如此。在這家公司,大家一起探討技術,互相學習,氛圍很好。
生活上,我稱之為師兄的蔣兄給我帶來了很多開心的經歷,技術上有問題,可以一起學習討論,除此之外,蔣兄博學多才,上知天文下知地理,博古通今,工作之外也是良師益友。
工作上在這家公司先後有兩位導師,一位是我的組長CC,女中豪傑,工作起來我們經常戲稱她開啟了多執行緒,剛入公司,主要是她指導我的工作,有問題我也可以和她學習,最終她把她的得意作品交給我維護,現在回想,可能也正是由於我維護了這套程式碼,才會有後面的機緣巧合。
這套程式碼主要作為NVR的裝置管理模組而存在,各種和NVR對接的裝置模組,最終都會進入到該模組的管理,所以該模組可以算作是裝置對接的核心。程式碼中涉及多執行緒,同步,資源管理,效能優化等等,以前學習的東西在實踐中找到了應用場景,感覺頓時大徹大悟,才明白理論學習有多重要。而且是C語言寫的,程式碼規模大了,又要保證儘可能少的記憶體洩漏,看到了很多好的實踐方式。
如此關鍵的模組交給了我,責任重大,所以我學習很勤快,生怕有些改動導致整個裝置管理癱瘓。好在功夫不負有心人,慢慢的CC基本上把這方面的工作全部放心交給了我,我就是這個模組的掌櫃的,當時還是很得意的。正因為如此,我遇到了我們戲稱為三國無雙的我的第二位導師。三國無雙是我們組最老牌的工程師,經驗豐富,架構能力也很強,做過Windows,Linux等很多平臺下的開發,而且始終保持著學習的習慣。好幾次下班路上碰到,都會看到他端著iPad看技術視訊。平時看著話不多,實則在自己醞釀著大事。
我們的產品程式碼年久失修,每到新版本釋出前,我們就會開玩笑說和打仗一樣——新增幾個功能,總是引來一堆bug,再加上一些客製化的需要,程式碼凌亂不堪。作為小白的我,覺得是問題,但是怎麼辦,我完全不知道,我只認為,我寫好我手裡的程式碼就好了,其他的我也顧及不到。而三國無雙卻利用工作外的時間,搞了一套新的架構,加之我之前和他有過共同工作的機會,他知道我的學習能力和對程式碼質量的態度,拉我入夥,決定將這一套新的架構加以實現。三國無雙抓住機會,和領導傳達了他的想法,最終得到了公司管理層的認可,就這樣,我們的程式碼新架構設計以及實現計劃開始啟動,三國無雙是主要技術負責人,而我是他直接的第一助手,回想起來,這三個月的時間真的非常快樂,在和無雙一起工作的過程中,建立起了我之後學習工作的整體思路和結構,更是讓我瞭解架構思想的同時得到了實踐的機會。非常感謝無雙毫無保留的經驗傳授,同時也為自己的厚臉皮鼓掌——不會就問,然後主動去實踐,不要端著自己,做一塊在知識海洋吸水的超大海綿。
這個階段,真的學到了很多東西,UML,架構設計流程,C語言的最佳實踐,設計模式的應用和實踐,模組劃分,程式碼解耦的手段,各種機制的實現等等。感覺公司中和這群可愛的人在一起真好。可是事與願違,一年後,公司被股東要求上市,公司財務狀況不好,很多人被裁,由於無雙工資較高,也進入了被裁人員名單,公司當時和大家說公司遇到困難了,暫時大家要離開,將來公司緩過來會叫大家回來(後來有一次回公司看看,公司也的確叫我回去,可是我總覺得我回不去了,有些埋怨)。當時覺得很多人被裁了,我這塊海綿也吸不到水了,雖然沒有裁我,無雙也勸我他的東西我可以接手做,可是我還是離職了。
現在瞭解到一些有關公司創業和融資的流程後,自己也反思了當時公司的行為,不得不說,公司確實也是無奈之舉,以前還對公司的做法嗤之以鼻,還經常說公司很不人道,過河拆橋,但是現在看來公司也是不得已而為之,在公司的一年我很開心,也學到了很多,我很感謝公司曾經收留了我也培養了我。回想在公司這一年的成長,我是穩賺不賠,也正是如此,我才能夠進入北京的第二家公司。
第二家公司是知名的晶片廠商,當時和無雙聊起來離職後到這家公司,無雙考慮我的興趣有些反對,他認為我比較喜歡鑽研技術,應該去一些中小企,這種成熟企業,我沒有辦法學到很多技術。但是他也不排斥我去,說是如果走技術管理路線,還年輕去看看也好,但是不建議久呆,否則會廢了(深謀遠慮,意味深長)。當時自己也不想繼續找下家了,況且我的確想去大企業看看,瞭解一下正規軍的作戰方式。
果然正規軍就是不一樣,軍規嚴明,獎罰分明,大企業的管理毋庸置疑,讓你工作中很多地方不得不服,導師DQ就曾和我說,她在公司的5年,基本上沒有哪個專案在她的印像中是超期的,執行力之強真心讓人信服。在這家公司,人員的技術是縱深發展的,每個人在自己的領域都是高手,自己的模組處理的相當熟練,經過半年的訓練,我也成為了看著log不看程式碼也能知道問題在哪裡的人,結合上自己的架構經驗,從根源上處理bug,竟然還出現了將近連續一個月沒有bug可解的情況(可憐了測試妹子,沒有獎金了,還曾經打電話詢問我程式碼這種現象對嗎)。可是這有些讓我迷茫了,對於公司,這樣的人的確好,降低了從業者的門檻,即便是小白,經過專門的訓練也能很快上手,但是對於個人,尤其是追求技術的人,會限制你的眼界,這樣的人做不了架構,不能指揮戰役。而我不希望自己永遠是一個小兵,而是希望像無雙那樣指揮作戰,設計藍圖,快一年的時候,老婆也比較希望我回家發展,我離職了,決定回家工作。
離開公司前,我給同事做了一些培訓,還把上家單位的蔣兄叫到了這裡,接手我的工作,蔣兄現在還在那裡工作,作為北京二環高富帥青年,我覺得他在這樣一個大型穩定的企業比我要好很多,而且公司也需要穩定的人,我覺得我還是做了一個正確的決定。
在北京的兩年就這樣過去了,可能個人機遇比較好,也可能我個人喜愛學習的態度吸引到了很多好人,總之,這兩年非常快樂,工作雖然累,但是心不累,有盼頭,有追求,每一天的自己都比前一天有進步,同事之間關係融洽,互相幫助,出謀劃策。當時我記得自己曾經和老婆說過,我這兩年,自己的努力加上好機遇,我覺得我可以和北京同樣工作五年的人一決高下了,現在我依然不否認。
回到家,這幾年雖然靠努力有進步,但是機遇少了很多,導致自己感覺自己的進步慢了不少,但是軟體修習之路還在繼續,只是進入了相對的平穩期,北京兩年讓我從入門到悟道,之後在這條道上還要繼續修行,這幾年,自己也從技術人員發展為了管理人員,但是技術依然沒有放掉,我不允許自己成為眼高手低的人。在大公司的管理體會和管理思路,也在指導著我現在的管理方式,這一年也沒有浪費。
兒子最近很喜歡過來摸摸滑鼠,敲敲鍵盤,摸摸我的筆記本,如果他願意,我等著他長大和我一起修行。
路漫漫其修遠兮,吾將上下而求索。