Developer自我養成之路

2017.10.17 by
陳仕傑
陳仕傑 查看更多文章

我是Joey,大家都叫我91,是TDD的狂熱者,將敏捷精神融入到自己的生活與人生。目前在 Odd-e擔任敏捷教練,主要負責台灣的所有業務。曾任JCConf,PhpConf,WebConf與Agile Tour Taipei&Hsinchu等研討會講師,也活躍於兩岸的敏捷及技術社群,熱愛寫作,是位技術部落客,技術專欄作家,也身兼技術書籍的作者與譯者。

Developer自我養成之路
CC0
在軟體開發這一條路上,developer可以從哪幾個方向去累積自己成長的能量,怎麼樣可以避免自己見樹不見林?

在軟體開發這一條路上,developer可以從哪幾個方向去累積自己成長的能量,怎麼樣可以避免自己見樹不見林。

這篇文章分享我個人的一些經驗,希望能對茫然的開發人員們,提出多一點的角度供大家參考。

前言

最近上下班在捷運上通勤的時間很長,剛好看到對岸社群的一篇文章:「小王的架构师之路

基本上我挺不喜歡這種浮濫的標題,但內容卻是挺剛好地描述了我最近這一兩個月,常跟一些公司的主管,以及junior developer回答跟分享的主題相關:Developer該怎麼走出跟一般人不一樣的成長之路。

請原諒我用如此模糊冗贅的描述,一時間找不太到好的形容詞

看著這篇文章的描述,就跟自己在軟體開發職涯一路走來的感覺有點像。

究竟要走上這樣一條路,是靠天分、特質還是努力,還是都要有,我也說不上來。但我很肯定的是,文中提到的幾個重點我很認同,因為這幾乎是成長必備的要點。

關鍵點

不要不求甚解

當你站在巨人的肩膀上解決了你眼前的難題或需求,試著培養興趣,試著找回你那個developer的好奇心,那怕你只是試著去瞭解,但最後看不懂而停止,你還是養成了自己的這個思考習慣,這個思考習慣是你開始學習的「火種」,相當重要。

若想要瞭解問題原因,設計的思路,這會很自然地強迫你思考,強迫你去看別人寫的程式碼,強迫你學習好的跟避開不好的寫法。

你會碰到的問題,大家也會碰到

這通常代表著兩件事:

  1. 第一,你碰到的問題,如果這個世界上別人也會碰到,那麼別人是怎麼解決的。在這之前,你可以思考一下你想怎麼解決,然後跟別人的作法比較一下,自然就會走到上述「不要不求甚解」的段落。

  2. 第二,如果這個問題大家都會碰到,也沒有什麼好的方式可以解決(至少你得已經有能力判斷什麼叫好的方式)。當你覺得麻煩、慢、笨、難用,那這就是創造價值之所在。盡你所能去解決這樣的問題,你就是第一個受益者,因為你獲得了快樂、能力、經驗還有生產力。而且,把這分享出去,幫助他人解決問題,你的價值就不只是一個人的價值,而是團隊、社群、全球的價值。

找到你有興趣的領域,用最舒服的方式學習

在我剛踏進這一行沒多久時,我寫了一篇文章來描述我找到的學習方式,請見:[工作心得]面對學習未知技術的恐懼

我知道當時的文章排版得相當醜陋,2009年當時對設計還沒有觀念,加上blog系統改版,之前的文章layout就還沒時間調整。

對我來說,最舒服的學習方式,就是沒有壓力的學習。 什麼叫有壓力,什麼叫做沒壓力。當你有時程壓力,就是最常見的一種壓力。

所以,我在發生問題之前學習,我平時的消遣就是看看自己有興趣的領域,有哪些文章很有品質的作者發表了哪些資訊,去瞭解這些資訊要解決的問題跟需求是什麼。很多時候,你得透過這方式才知道,原來還存在著這樣的需求。沒有經過這一段,很可能會讓自己還是停留在Don’t know don’t know的階段。

引述電影《神鬼交鋒》(Catch Me If You Can)的一段台詞:

Carl Hanratty: I'm going to let you fly tonight, Frank. I'm not even going to try to stop you. That's because I know you'll be back on Monday.
Frank Abagnale, Jr.: Yeah? How do you know I'll come back?
Carl Hanratty: Frank, look. Nobody's chasing you.

當你沒有壓力時,你可以很自在地學習,這會幫助你找到你有興趣的領域,或是幫助你在有興趣的領域中,更深入的學習。那怕你正努力看的東西對現在的你來說可能相當難以理解,但這段時間跟投入,絕對不會浪費。原因有二:

第一,就像Steve Jobs的一段話

You can't connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future.

你現在學習的每個片段知識你得相信在未來適當的時機,他們就會串連起來發揮作用。

如果你的片段越多,連起來的機率就越大。所以學習曲線一直以來都不是線性的,而是當你學得越多,接著你就學得越輕鬆。只是大部分的人都跨不過去一開始的那一道障礙。

第二,如果這個東西這麼難懂,那麼對很多人來說,是一樣難懂的。你已經花了一段時間跟心力,去發現「它很難懂」。而別人連這段時間都還沒有投入,當未來在實務上真的發生這樣的問題或需求時,你需要暖機的時間就比別人少一點

因此,當你在發生問題之前學習,而其他人在發生問題時才學習,對你來說這根本不是問題,對他來說是沒碰過的問題。自然對旁人或你的老闆來說,就會覺得你是有talent, potentiality的員工。

如果在發生問題時才學習,也就是我們常見的SOD (stack overflow developer),在時程的壓力下,肯定是先求解決問題,而不是深入瞭解。即使你有興趣,你也沒時間再往深一點挖。所以他們常在發生問題時,上網找相當多相關的解決方式,接著沒有時間思考地trial and error,哪一個範例貼上去會動,用它就對了。

所以他們總是不求甚解,解決方式往往也是迂迴、湊巧、瞎貓碰上死耗子的作法,進而欠下一屁股技術債。然後,後續的職涯人生再繼續為了還技術債而墮入無間地獄。

所以,看出來了嗎?在問題需求發生之前學習,是正向循環,你在實務上會獲得許多盈餘的紅利時間來做更多正向循環的事。你沒有壓力、快樂、有價值、有成就感、獲得知識、養成習慣。如果是負向循環,就會永遠處於時程壓力、技術債、不求甚解、怨天尤人的情況。

找到自己有興趣的領域,也相當重要。原因是學習需要花費相當多時間與心力,才能獲得效果。就像李小龍說的:「你要怕的不是會一萬種踢腿的人,而是把一種踢腿練習一萬次的人。」一旦你找到你有興趣的領域,那你的學習就是輕鬆快樂的,你很容易就會進入心流狀態(flow),時間花在哪,成就就在哪。如果一樣得花那麼多的時間,才有機會達成成就,那麼興趣才是你持續下去的養分跟動力。否則投資還沒獲得成果,你大概就已經逼死自己了。

走出井外,看看外面的天空有多遼闊

引述自Lee Ruddy老師書上的名言:

在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。
和什麼樣的人在一起,就會有什麼樣的人生。
和勤奮的人在一起,你不會懶惰;
和積極的人在一起,你不會消沈;
與智者同行,你會不同凡響;
與高人為伍,你能登上巔峰。

很多junior developer進入職場後,以為公司內的作法就是全世界的作法,以為這樣做是正常的,以為只能這樣做,更甚養成了一些詭異的價值觀跟不好的習慣而不自知,再糟糕一點,當他們變成senior developer或是leader或是主管時,以同樣的方式去影響未來的junior developer。

就像之前有人提到的死海效應

公司發展到一定階段,能力強的員工容易離職,因為他們對公司內愚蠢的行為的容忍度不高,他們也容易找到好工作;
能力差的員工傾向於留著不走,他們也不太好找工作,年頭久了,他們就變中高層了。這種現象叫做死海效應:
好員工像死海的水一樣蒸發掉,然後死海鹽度就變得很高,正常生物不容易存活。

這並不全然是junior developer的責任,但要走出這條死胡同,junior developer就是得有這一份認知,走出公司以外,拓展自己的視野,尋找公司外志同道合的夥伴,你才能瞭解、分辨什麼樣的作法是好的,聰明的,適合的。

而且,學習這條路相當漫長,有同tone調,有可以一起互相打氣、學習、互補、依靠的夥伴,相當重要。而這一些夥伴通常都在公司外部,或許某部分原因是,因為這樣你們才不會有工作上業務的交集或利害關係。當觸角延伸到公司以外的地方,視野拓展到公司以外的地方,你的職涯跟人生會多出很多event的發生,就跟玩RPG game一樣,你得有event才能獲得夥伴、裝備、升等、增加skill技能數值的機會。

這會讓你的心像活水一樣充滿活力跟熱情,而不是把自己那口井當作全世界。

結論

其實,機會真的是滿山滿谷的,就看你有沒有累積足夠的能力去發現機會,掌握機會。

事實上,當你發現有很多機會,自己卻苦無能力掌握,那種書到用時方恨少的感覺,其實讓人相當懊悔。

摘要一下以上幾個能讓你走得長久的重點:

  1. 找到你的興趣
  2. 知其所以然,役物而不役於物,不要不求甚解
  3. 在問題跟需求發生之前學習
  4. 找到合適的夥伴與mentor
  5. 多看看公司以外的世界,作法,接觸更多的人事物

追求卓越,成功自然就會跟著而來。花若盛開,蝴蝶自來。

時間花在哪裡,成就就在哪裡。要投入大量時間,你得對它擁有興趣,否則光靠意志力是走不長遠的。

希望這篇簡單的整理,可以給一些茫然徬徨的朋友一點方向。也希望這篇文章能拋磚引玉,引出更多前輩或朋友的經驗或討論。

本文由陳仕傑授權轉載自in 91

《數位時代》長期徵稿,針對時事科技議題,需要您的獨特觀點,歡迎各類專業人士來稿一起交流。投稿請寄edit@bnext.com.tw,文長至少800字,請附上個人100字內簡介,文章若採用將經編輯潤飾,如需改標會與您討論。

(觀點文章呈現多元意見,不代表《數位時代》的立場。)

每日精選科技圈重要消息