昨天晚上又和同事一起去打羽毛球,這兩次在開始打之前,總是會做一些準備活動,不僅僅包括熱身,還簡單地墊一會兒球,找到手感。然後揮拍幾次,找到感覺。這樣再開始打,就讓肌肉有了記憶,打起來更好一些。
這些活動都是最基本的東西,而正是這些內容,在想要更好地完成打羽毛球這項活動的時候,顯得非常重要,因為正是這些最基本的技能組合起來,才形成了更多複雜的動作,如果基本的動作都做不好,那麼就很難打好球了。
推廣開來,對於軟體開發也是一樣,編碼就是最基本的技能,一個人在工作比較長時間之後,可能會有角色上的轉變,有些人可能轉為專案經理,有些人轉為DBA,有些人轉為架構師,但是都應該從最基本的程式員做起,而且即便工作的主要內容不再是編碼,也應該找些機會編寫一些代碼,來培養自己的那種感覺,否則難免會做出一些不合適的決定。
然而,現實卻並非如此,很多情況下,特別是對於專案經理之類的職位,很多人之所以“轉管理”,就是為了少些代碼,認為那是最低級的工作,做得再好也是沒有出息,所以在職位轉變了之後,只是一味地對別人的工作指手畫腳,完全不知道自己已經陷入了一種怪圈。雖然在一定程度上是管理的職位,但是技術管理和純粹的管理並不一樣,那必須以非常堅實的技術為基礎,然後才可能做出有效管理,否則只是學習一些PMP之類的管理知識,就想做好這項工作,實在是有些困難。
而且,一旦離開了編碼的世界,也就失去了對這種工作的感覺,在給其他人建議的時候,難免有時會有些偏頗,那對別人也是一種不負責的態度。
業界一種流行的說法是,做程式員是青春飯,年齡大了之後一定要轉換角色,而做管理是比較常見的一種方式。然而,人各有所長,就是應該在最適合自己的崗位上工作,而不是“學而優則仕”,這種古老的觀點對於很多人來說並不適合,反而會葬送很多本應該是天才的人,淪為了庸才,不能不說是一種損失。
所以說,不論什麼時候,都不能夠放棄對基本技能的學習和訓練,那樣才能夠更好地做好自己的工作。
對於軟體開發相關的學習,其實可以從體育訓練中借鑒不少,那其中很多的訓練方法都可以在軟體開發的培訓中嘗試一下,其實應該已經有人這麼做了,對於從劍道中吸取“守破離”的思想,在敏捷開發中所用,做法也是類似的。