我的十年程式設計路 序

蕭文翰發表於2023-02-28

算起來,從決定並從事程式設計開始,已十年有餘了。

這十年是怎麼算的呢?

我的本科是從2009年至2013年,現在回想起來,應該是從2012年下半年,也就是大四還未正式開始的時候決定從事Android開發。參加了培訓班,就是很流行的那種可以先貸款參加培訓。先是培訓上課,然後工作“包分配”,其實就是輔助修改+投簡歷,工作後再慢慢還款的過程。

但實際上呢,我參加培訓確實也走了貸款過程,但最終的工作仍然留在那家培訓公司,做助教。所以也算是找到了一份工作,再後面就是還款的正常流程了。

我記得那是在12年的夏天,開始參加實訓。到差不多年底的時候,就做起了助教。所以到今天為止,總的工作年限可以算是有十年了。

這也是“我的十年程式設計路”系列文章的緣起。回想自己過去的十年,雖小有所成,但也走過一些彎路。相信做為“過來人”,都不希望看到年輕人走自己的彎路,反正我是這樣想的。所以寫下一些文字,這些文字就是我這十年來的經歷以及覆盤。回看自己哪裡做得不足,想想現在的自己有沒有從過去的經歷裡走出來,學到點什麼。再就是給所有讀到這些文字的人一個啟發,如果有可能,避開我失誤的部分。也就是取我的精華,去我的糟粕。

如果哪裡的文字有觸動到你,那將是我十分榮幸的事。

接下來,我將以年份為單位總結每一年的工作。第一年,也就是2013年,就是下一篇文章要詳細紀錄的年份。但是,畢竟2012年我也做了一些事,助教的工作也做了一小段時間。恰好,這篇序言到此為止還略顯單薄,索性現在就和各位看官說說那些發生在2012年的往事。

2012年,我在上大三。那一年的上半年尾聲,總有一些培訓機構來學校做宣講。說白了就是忽悠學生去參加培訓班,賺錢。一開始是打著Oracle旗號培訓Java的,再後來有哪家我就記不清了,反正是直到來了一家培訓Android開發的,我最終選定了這家。

如果不參加培訓班,我會去做什麼呢?我依稀記得那個時候我一心想做影片/影像設計,畢竟我拿過兩次相關獎項;要麼就是去做網路工程師,畢竟我買了全套的Cisco培訓教材。但最終選擇了Android開發,究其原因,一方面是宣講的內容蠻吸引我的,另一方面就是22歲的我認為Android開發很有前景。現在看來,當初的選擇還是挺正確的。

那個時候交通不如現在方便,地鐵只有1號線,雖然家門口就有地鐵站,但它卻並不通往我的目的地,所以只能選擇公交車。

早上8:30(好像是)開始上課,我最遲6:30從家裡出發,步行大概10-15分鐘的路,坐上公交車。大概過1個鐘頭,下車,再轉另一輛公交車。由於另一條公交線路是城郊線路,不僅車次少,而且人多。所以單程2小時,時間還蠻緊張的。當然,下午課程結束,我還要花2個小時回家。算起來,每天有4個小時左右都要浪費在路上。那個時候,心裡別提多羨慕那些工作地點離家近的人們了。

培訓內容是半天 - 半天進行的,半天講課,半天練習。內容上就先是Java基礎,學到能做出個推箱子小遊戲就算可以了。接下來就是Android開發,就是Android API的使用。最後呢,就是專案階段,會選定一個App作為實戰,體會團隊協作程式設計,順便學習SVN(對,不是Git)。

說到底還是年輕,雖然起得早,睡得晚,但每天精力都很充沛,深受那些培訓老師的喜愛。再加上我自己的個性,程式設計能力真的突飛猛進,成為了培訓班的“小大哥”。為什麼是“小大哥”,因為真正的大哥是培訓老師。除了常規上課和練習之外,中午的訂飯工作有時也是我來做。管紀律的老師知道我離家遠,考勤也不怎麼追究,甚至教我說:“遲到了別說起晚了/看錯表/表沒電了之類的,可以說是堵車了,這樣就不算遲到了。”

所以總的來說,在培訓機構的小世界裡,承蒙老師們的照顧,我過得很舒服,也學到了更多。

再到後來,我就成為了……助教。每天半天的學生答疑時間都是我來負責,那段時間過得比參加培訓還要充實。培訓老師跟我講,培訓出來基本都是趕鴨子上架,Java基礎是很薄弱的,也就是停留在會呼叫API的階段,再往深就不行了。而且也並不是所有常用API都會講到,還得自己學習。

所以我利用當助教的時光啃下了《Java語言程式設計》基礎篇和進階篇兩個大部頭,也是我第一次感受到:當注意力投入足夠的時候,是真的會錯過身邊的事物。有一天我在研究書中的知識,有個培訓老師喊我,我是真的沒聽到,直到他走到我面前叫我,我才意識到他的存在。他當時很驚訝地跟我講:“你是真的嗎?”我也很無語,說“是”怕他不信,“不是”又顯得我故意,不過最後還是坦率地講了事實。

這種“投入”的狀態,無論是當時的學習,還是後來的編碼。直到前幾年我才明白:這就是所謂的“心流”狀態。在這種狀態下,會感覺時間、空間彷彿都不存在了。專注於投入的事情,會感覺時間如飛一般。剛剛看時間,還是早上9點,怎麼一下子就到了午飯時間?對,就是這種感覺。

內容上則既不是低水平的重複,也不是難到完全無法處理。而是遊離在舒適圈稍稍遠一點的位置,像登山一樣,雖有難度,但可挑戰。正是這種狀態,是最能提升我的程式設計水平的狀態。

另一方面,地鐵線路修通了,我可以坐地鐵上下班了。地鐵和公交相比,時效和舒適度都上了一個臺階。我從原來的往返4小時通勤,縮短到了僅需要2小時。恰好趕上冬天,能晚起一個小時,早回家一個小時,真的挺舒服。而且面對那些初學者的問題,我終於也能夠處理地遊刃有餘,對答如流。

但是,那種“心流”的狀態漸漸的離我遠去了,我覺得工作越來越沒有什麼挑戰性,沒有難度,盡是些重複性地勞動。不過,畢竟年輕,不懂得“天花板”的概念,在舒適圈裡確實很舒適。

就這樣,2012年便結束了。我記得冬天的時候,下了雪,公司門口和地鐵站出站口的瓷磚很滑。我們戲稱它為“奪命黑瓷磚”,一個不小心,就要摔一個跟頭。到公司後,大家打招呼都是:“你摔了嗎?”大家談論工作的內容越來越少,閒聊神侃的時間越來越多。雖然招生仍在繼續,但似乎資金出現了些問題,但具體我不知道。教學內容居然由不懂技術,也沒實際教過的人來定。現在看來,公司顯然需要進ICU急救一下。

面對個人舒適圈和公司的狀況,我走完了2012年。如果說這一年有何得失,那就是“心流”的狀態,以及對“舒適圈”的認知。

“心流”是高效工作/學習的最佳狀態,突破舒適圈,在其周圍“登山”,是突破自己的最佳方式。

現在的我,如何確定一件事值不值得做呢?就要看這件事本身是否處於舒適圈外,不然就是低水平的重複,做來無味。想要讓自己投入做一件事,如果周圍環境比較嘈雜,就戴個降噪耳機,卻不放任何內容,或放白噪音。目的就是不受打擾,讓自己處於“心流”狀態。

如果你也像快速成長,高效應對工作和學習,不妨試試我的方法,希望這些技巧能真的幫到你。

相關文章