成為軟體工程師的前兩年我學了什麼?

看了這篇文章:成為軟體工程師的前兩年學了什麼? (What I Learned in My First Two Years as a Software Engineer) 個人也蠻有感而發。

其實我進入職場前兩年,完全與「軟體」這兩字無關。退伍後沒多久先到如同資策會的資訊機構,花了半年時間上了關於 MCSE、Novel CNI/CNI 等與系統管理面的認證養成班。我算是很積極的,上完課的同時就去考認證,接連考取了上述的認證執照 (共 10 來個科目)。

當年認證是很夯的,也還沒有被搞爛 (一堆考古題),所以我找相關系統管理的工作是還蠻容易的。不過我後來選擇擇了一家從事 Client/Server 系統開發的公司,他們在應徵資料庫管理師。因為我對該公司採用 Oracle 資料庫系統極感興趣,起因是上 MCSE 有一門 SQL Server 科目,我對裡面有個範例 (圖書館資料庫表格結構設計) 非常好奇與納悶,為何表格分析可以這樣環環相扣? 問了當時的講師他也不知道。 :)

總之,一進入該公司後,我向經理提出要到 Oracle (當年位於民生東路) 上相關資料庫管理的課程。經理也很乾脆,當年這類課程 (MCSE、Novel CNE) 要價可不斐,至少 5 萬以上起跳。我可是很積極的,從完全不懂所謂的資料庫是做什麼,到考取 Oracle DBA 的專業認證,只花了不到三個月 (每上完一堂課就馬上去考,共有五門科目),這期間 K 的原文教材可是有 3000 多頁,只不過當年學習熱忱洋溢,可說是相當享受那種成就感。

當年我可還是全台灣第五個考上 Oracle DBA 的認證,甚而 Oracle 台灣訓練中心經理想要挖我過去那邊上班,不過當年我還是樂於待在那家公司,也可說是感謝那位經理能給我教育訓練的預算讓我上課充實技能。

不過這樣待了一年,老實說,我對與「系統 (OS/Network/資料庫)」的相處發現興趣不太大,工作上只要把關好兩件事:備援與效能調校,那就相當輕鬆了。所以閒暇之餘,想要自行寫一個圍棋 (學生時代最熱愛的棋藝,也在圍棋協會昇上業餘初段) 對弈的軟體。我還記得第一個自學的程式語言就是 Java,為此我又在工作期間花了一個月時間買書用力 K 相關語法,然後又去考取了一張 SCJP 認證。雖然勉強可以「寫出來 (那時我還是用 Java Applet 寫的)」,但程式碼卻是「落落長」,非常沒有成就感。

就是那個時候我才第一次聽到所謂的 OO (Object-Oriented) 物件導向這類神秘的技藝,聽說會了它就可以解決軟體許多相關的問題。 (能解決什麼問題我也不知道 !^^)

反正當年我還特別跑到重慶南路位於2F的「巨擘書局」,買了五本 OO 原文的書籍,當然沒有一本看得懂。那時國內也出了一本「世紀末軟體革命」,賣得嚇嚇叫,理所當然也跟風買了一本,用力研讀內容覺得好像很神,應該是技術能力要相當高深才能看得懂,總之當年我就是看不懂在寫什麼。現在當然可以理解了,然後也才知道這本書內容其實言之無物的。 >_<

閱讀全文 »

[文摘] 工程師12年工作經驗-能解決問題的不是工具而是思考

** 本文同步發表於 FB 社團-軟體設計鮮思維 **

這一篇關於軟體工程師綜合了12年的工作實務經驗,有感而發所自省整理出的12條工作經驗。

他寫的每一條教訓與體會,正是個人在這個軟體業界全都碰過,但卻少有人真正能像該位工程師這般得以內省而後想改變自己的。

嗯,業界的通病大概是這樣的情境:

  • 管理者想要找工具或方法來解決軟體開發的問題,但卻不從根本做起。
  • 開發人員總會說,我想要進步,但公司文化與環境不允許,所以我只能自艾自憐。 (其實自己本身早已同化而不自知)

記得啊~ 以下12條教訓不是口號,而是確實要從過程中實踐與體會。「獨善其身後,才得以兼善天下。」

  1. 工具不能代替思考。
  2. 除非管理小組能夠真正懂得敏捷「轉變」的價值,否則它就不能發揮作用。
  3. 學習需要一個安全的環境。
  4. 每個人都可以成為領導者。
  5. 架構師去寫代碼往往能作出最佳決策。
  6. 改變需要勇氣。
  7. 建立信任的關鍵是言行一致。
  8. 成功的結對程式設計與良好的協作相關。
  9. 多模式思維促進更強大的結果。
  10. 認識到每個人都有不同的優勢。
  11. 終身制學習。
  12. 積極的影響迸發幸福感。

論學習歷程的三階段-守破離《2》

相當驚訝軟體業界的大師 Martin Fowler (UML Distilled, Refactoriing, NoSQL Distilled 等作者),早已於 2006 年在他的 blog 內已發表了以「守、破、離」為題-ShuHaRi,說明在從事所謂的軟體技術與開發方法論上,所歷經的三個學習階段。

這裡特別把這一段的原文摘錄下來:

The idea is that a person passes through three stages of gaining knowledge:

Shu: In this beginning stage the student follows the teachings of one master precisely. He concentrates on how to do the task, without worrying too much about the underlying theory. If there are multiple variations on how to do the task, he concentrates on just the one way his master teaches him.

Ha: At this point the student begins to branch out. With the basic practices working he now starts to learn the underlying principles and theory behind the technique. He also starts learning from other masters and integrates that learning into his practice.

Ri: Now the student isn't learning from other people, but from his own practice. He creates his own approaches and adapts what he's learned to his own particular circumstances.

  • 「守」的階段:Martin 認為學生主要遵循一位導師所教授並務求精確即可。這個階段不用太過探索理論基礎,而是在「如何做 (How to do)」上下功夫;也不要三心二意追求多種方法(論),專注在導師所要求的主軸,把它做精就是了。

    個人所認知的關鍵字為:學習、How-to、專注

  • 「破」的階段:有了基礎實務的經驗,學習者會開始來思索原來所學關於理論基礎與原則,並會逐漸整合其他大師的論述,帶入自己的實務工作上。

    主要的關鍵字為:反思、整合、驗證

  • 「離」的階段:學習者已不全然由他人(導師)所學習而來,更多是從自身的實踐階段過程中,創造出自己所領悟的方法 (論),並應用在現狀的工作環境中。

    主要的關鍵字為:實踐、創造、驗證

閱讀全文 »

論學習歷程的三階段-守破離《1》

前陣子逛「誠品書局」時,不經意看到這本書名-「守.破.離」。雖然我沒有翻閱書本的內容,但大概也知道必然是繞著這三個字的原意來解讀,並帶出作者想表達的核心思想。

其實最早就已在日本漫畫名作家「村上紀香」這部「龍」史詩般的漫畫裡看到對「守.破.離」的闡述;男主角「龍」的劍道老師內藤高治送給他這三個字,以期許「龍」能體認到劍道的本質。

引用日本劍道心訣對這三個字的解釋:

「守」,就是守著的意思,在我們學習劍道的初學階段,須順從老師的教誨,虛心學習,將所學熟練體會,變成自己的東西。

「破」,修習相當程度後,試行突破老師教導之原則,遝有招式和心法,精益求精。

「離」,招式心法苦心研究後如有新的心得體會,則可離開師父自創成新招,進而開拓前代所未至之新境地,更期進入劍道至高之殿堂。

不僅用於劍道,「守.破.離」這三個字更適合用來代表學習的三個階段。就我個人對其的解讀,只要後面各加上同一個字-「守題.破題.離題」,就很容易理解。

閱讀全文 »

[影片] 丈量世界 (Measuring the world)觀後心得~熱情觀察與學習

丈量世界 (Measuring the world) 片  名:丈量世界 / Measuring the world
導  演:德勒夫巴克 (Detlev Buck)
主  演:佛洛里昂大衛費茲 (Florian David Fitz)
     卡爾馬可維奇 (Karl Markovics)
     大衛克羅斯 (David Kross)
發行公司:絕色國際, Boje Buck Produktion
類  型:劇情
片 長:123分鐘
語言:德文
【劇情簡介】
德勒夫巴克導演,改編自德國作家丹尼爾凱曼,刷新二次大戰後文學銷售紀錄的暢銷同名小說。

揭開山脈與星空的真相,需要的是一枝筆還是一支船隊?天才與頑童的冒險丈量,即將展開……

兩位德國青年一起在十八世紀末以自己的方式「丈量世界」。被譽為「哥倫布第二」的探險家亞歷山大‧封‧洪堡(1768-1859)親赴原始森林深入奧利諾科河中以身試毒,他計算土著身上的頭蝨,更在探勘洞穴與攀登火山之中歷經萬種險境,不僅親眼目睹了海怪出沒,亦與食人族相聚同歡;而數學家及天文學天才卡爾‧費德烈‧高斯(1777- 1855),僅在自家屋中即可證明空間為曲面的景況。沒有女人就活不下去的他,在新婚之夜竟不顧嬌妻從床上一躍而下,只為了記下靈光乍現的公式。

時至一八二八年,年事已高的兩人同享學術盛譽,各自有其獨特個性與脾氣的他們首次於柏林相見,卻被捲入拿破崙戰敗後混亂不堪的德國政局。一場精采絕倫的天才頂尖對決,揭示了截然不同的世界觀點,在人性廣大的渴望與脆弱之中,巧妙結合史實與豐盛的想像力,哲思滿載直抵內心最深處。

這部德國出品的德語片,是改編自德國作家丹尼爾.凱曼(Daniel Kehlmann)的暢銷小說-丈量世界

影片同時描述著兩位主角-探險家 封‧洪堡 (Alexander von Humboldt)與 天才數學家 卡爾‧費德烈‧高斯(Carl Friedrich Gauß)的一生。

兩位主角洪堡出身於貴族世家,而高斯則是出身於一般階級的貧寒家庭;兩位主角只有在小時候曾有一面之緣,那是高斯的數學老師為尋求洪堡的貴族世家贊助宮廷獎學金時,而後兩個各自在不同的領域、不同的世界持續追尋著他們的理想,直至一甲子後洪堡自美洲返回普魯士(當時的德國),並希望與已成為當代大師的高斯見面才又重逢 (但洪堡卻忘記他小時有見過高斯)。

洪堡好動,喜愛探索未知的世界;高斯好靜,只喜歡待在家裡研究自己的數學。這兩個人好像是生活在不同的世界,但其實他們都有著當代大多數人所沒有的特質-熱情、觀察、體會與分享。

所以,看完影片後,我總算了解為何片名取名為「丈量世界 (Measuring the world_」!? 因為洪堡用行動來丈量這個世界,而高斯則是用數量來丈量這個世界。

閱讀全文 »

[文摘] 吳清源梅與蘭芳論述棋道及帶給的啟發

原文的標題是這樣:吳清源梅蘭芳論的是棋道 但給予的啟發又不僅僅侷限於棋道

個人覺得寫得很好,有些關於 吳清源 的軼事,以前在所閱讀書籍並未看到,故此特別摘錄備存。

其實關於「吳清源」與「梅蘭芳」相遇的軼事,我曾在「天外有天 (作者:吳清源)」一書中有看到「吳清源」提及過,一次是在孩提時期,另一次則是吳赴日已成為知名棋手時,「梅蘭芳」到日本公演時兩人再次相遇並聊起以前往事的描述。

不過我倒是沒看到有這段從「梅蘭芳」的口述,說他曾經在「北京」看過吳孩提時期與一位老先生的對局,而且已事隔30年,「梅蘭芳」竟然還可以記得這麼一清二楚,當時吳可還是一位12歲的孩童而已啊,而「梅蘭芳」卻已是國劇當代名伶,是最頂尖的一把交椅,卻對吳是如此的印象深刻,實在令人佩服與尊敬。

一位是古往今來的圍棋不出世大天才,一位是承上啟下的京劇大師,兩人相差30歲,卻是如知己般惺惺相惜。

兩人對所謂的「棋道」所延伸的義理有著一致性的見解,除了學習與模仿之後,再來就是要有自己「高度的思想」,還要有相當的「力量」從現實中實踐之。我認為這也是「知行合一」體踐的最好詮釋。

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal