圖片來源:David Martyn Hunt ,CC Licensed
這篇【會寫程式還不夠,矽谷傑出軟體工程師都有的5種能力 】說得不錯,值得想深耕軟體技術領域、以技術立身的人一讀。這也是我在矽谷工作時的切身經驗,因此我一直希望訓練學生這些高生產力的傑出軟體工程師所具備的能力:
● 不害怕探索陌生程式語言
● 精通Debug
● 開發節省時間的工具
● 優化重複性工作的速度
● 發展系統性思考模式
我十一年前從矽谷回到台灣教書,原本想把這些工程研發能力的重要性傳達給學生,卻發現號稱電腦王國的台灣,在軟體工程的領域的研發文化竟是意想不到的淺碟。明明是國外重視的工程技術,國內卻乏人問津。學界標榜要世界一流,只好抄捷徑,從理論著手;業界要快速賺錢,沒時間研發,要的是現成的解決方案,所以在軟體界,產學的落差很大。
要知道,產學落差影響最大的是學生和工程師。講難聽點,教授可以一輩子在學術的象牙塔裡優遊自在,不用太在意學生的出路;老闆和主管把握時機賺飽了錢,之後可以把產業當投資遊戲來玩。但如果在學校沒有受到足夠的工程訓練,成為工程師之後又沒有機會做深入的研發案,可能一輩子只能「逐水草而居」,接些門檻不高的專案,難以成為傑出的軟體工程師和系統架構師,結果就是一直為人代工、為人作嫁。
礙於視野,一般學生常常以為解決困難的理論問題、寫出酷炫的應用才了不起,程式設計競賽得獎的是神人,不大明白軟體和系統工程的概念,不大知道高生產力的意義性。如果一直做為人代工、為人作嫁的工程師,或是成為主管、老闆、理論型學者,是您想要過的日子,那麼您大可不必繼續看下去了。以下是我的個人經驗談,分別對應到以上的五項能力:
一、不害怕探索陌生程式語言
我很早就建立起程式設計能力,在高中時自己學了約十種程式語言,學到後來覺得學新的程式語言沒什麼了不起,只是很有趣、很簡單、很有用。所以只要有空、有需要、有機會,就很自然地會學到新的語言。尤其在平行處理、分散式系統和異質計算一直有新的語言出現,需要有不害怕探索陌生程式語言的能力。
二、精通Debug
然而我必須說我從來就不是很擅長特定的程式語言,也不是很精通程式設計,我很少設計新的演算法,但我看很多人寫的程式碼,而且擅長Debug,這是設計師和工程師的重要差別之一。在解決平行處理和系統效能優化的工程問題時,會遇到很多一般程式所沒有的Bug,而且很難抓,尤其是所謂的Performance Bug,更是需要傷腦筋,有時候還需要一些方法論和工具才行。
三、開發節省時間的工具
因為平行程式的Bug很難抓,複雜系統Performance不好分析,所以需要開發出能幫開發者節省時間的工具。我的博士論文裡面敘述如何以工具蒐集程式的靜態與動態資訊,以工具進行分析和優化,甚至設計工具去將程式和系統建成模型(model)後做進一步的模擬。我在矽谷Sun公司做系統優化工作時,用了非常多的效能分析工具;現在帶領學生開發從晶片設計到超級電腦的輔助工具,都覺得工具特別重要。
四、優化重複性工作的速度
除了工具之外,要進一步省下大部分時間(所以日子可以輕鬆點),必須觀察或預判工作中大量重複的部分,設法將之優化。好比優化程式的效能。就是找到關鍵的迴圈,再以各種手段(編譯器選項、改寫程式碼、平行化、GPU、硬體加速器等等)去加速它。同樣的想法也可應用在工作和生活上,要重複同一工作很多次,可不可以寫一個小程式(Script)去自動化工作的執行和結果的分析?如果每天重複做某些事,能否換個方式讓這些工作變得有效率?
五、發展系統性思考模式
即便是簡單的系統,也有「牽一髮動全身」的問題。很多時候,做了一件所謂優化的工作,未必會得到好處,搞不好先看到壞處。複雜的系統就像人體和社會,出了問題要吃藥、要修法,但藥不能亂吃,法不能亂修,需要有「系統性思考模式」: 了解每個變因可能造成的正面和負面的結果,乃至於變因之間、變因與系統之間的交互影響。對複雜系統來說,做這件事的難度很高,所以我才會一直想研究方法論和發展工具,來提高生產力。
容我再補充第六點:
六、化繁為簡、有條不紊與人溝通
很多工程師很難與人溝通,有些滿嘴都是一般人或老闆聽不懂的術語,有些則是會做不會講。各位到矽谷看,大部分的高級工程師都能言善道,能夠把艱澀難懂的技術,依據對方的程度,用對方能聽懂的語言表達。如果不能表達清楚的話,再怎麼厲害,作為工程師的成就也有限。
擁有高度生產力的工程師,是國家真正的技術力和國際的競爭力,這是瑞士、荷蘭、以色列、芬蘭這些國家走的路線,而不是靠低工資和加班工作。我發現台灣過去的薄利多銷的路線已經不單只是衍生出業界現在必須面對的問題,經濟壓力和普遍過勞的現象也造成不少社會文化的問題,影響健康、降低生活品質、讓文化層次停滯不前。
在我個人能力範圍所能做的,是設法提高我學生的工程素養,有機會就協助某些有志提昇技術能力的業界人士。但大家可能要先有個認識,這些能力往往都不是一般人到研究所和業界學個一年兩年能夠出師的。以我個人的駑鈍之才,到了國外念博班和工作時有緣遇到艱難的工程問題,才得以略窺門徑,然而在台灣要如何才學到這些技能呢?
我沒有簡單的答案,這也不是容易的事,我之前談過多次。我只是相信,以目前台灣的環境來說,這是一條值得鼓勵嘗試的路,如果在學校和業界有機會面對艱難、前瞻的工程問題,才有機會練到功夫。網路上很多明師,不一定要拜師才能學藝。
反過來說,如果只在乎速成,在學校不願挑戰艱難的工程問題,到了業界又沒有機會遇到前瞻的工程問題,我想就很難發展上述的能力,這也是當前台灣業界非常缺乏系統架構師、軟體架構師的原因。
但這些原因都不是真正足以阻擋一個能欣賞工程技藝的、願意認真學東西的人,有機會花幾年時間深入做系統研究,自然會學到上述能力。如果具備上述能力,還需要擔心工作的問題嗎?如果業界有很多高生產力的人才,還需要這麼擔心競爭力的問題嗎?
※本文內容授權自《洪士灝》,未經授權不得轉載。
更多《研發製程》工作機會來了~
在洪士灝目前擔任國立台灣大學Associate professor和NTU PAS Lab擔任CEO & Founder。提倡理念,當老闆的不要覺得自己高人一等,當伙計的不要在心態上矮人一截,但平等不等同於放肆沒規矩,就事論事時,不以人廢言。批判不等同於鬥爭。許多人為鬥爭(爭權奪利或是報復)而著文發言批判,是個人所不樂見。多元價值的社會,需要平等包容來降低動盪。
最大的敵人,不是別人,而是自己。轉職,第一個要過的關不是面試官,而是自己心理這一關。
我在台灣是資深老妹,到了韓國新創公司,成為菜鳥老妹。面對這些小我 10 多歲的前輩,顛覆了我的舊思維。
到了畢業季,許多剛學校畢業的學生也開始進入職場,進入職場後,很多事情可能與原本想像不同,沒有人有把握一開始就百分之能掌握工作的全部項目,軟體工程師這行業也是如此,與上個世代相比,軟體撰寫這個行業也經過
〔記者黃子暘/新北報導〕接受特殊教育的學生需要更多的關懷、支持,在校有賴特教生助理員的悉心輔導,新北市教育局昨天表示,逐年擴編預算加強助理員的待遇與服務量能,一一三學
〔記者林曉雲/台北報導〕民航特考明年有重大改變,考試院院會今(21)日通過相關修正,「飛航諮詢」及「航空通信」科別整併為「情報通信」科別,另減列各科別之專業科目,為更
〔記者廖雪茹/新竹報導〕為因應畢業季求職及廠商求才需求,勞動部勞動力發展署桃竹苗分署竹北就業中心下週二(21日)上午10點到下午2點,在竹北國民運動中心4樓辦理現場徵
〔記者蔡淑媛/台中報導〕台中市政府將於5月17日在西屯區公所7樓禮堂舉行西屯區徵才活動,邀請鼎泰豐、友達光電、星巴克、IKEA等20家廠商,提供850個工作機會,平均
你常在臉書社團、LINE 群組、Facebook 看到「家庭代工」、「打字員」等詐騙訊息嗎?但、事實上這完全是「假兼職,真詐騙」,讓許多民眾或是想要兼職賺點錢的家庭主
7-ELEVEN與蜂蜜故事館聯名推出霜淇淋新口味「海鹽蜂蜜牛奶」,5月15日起更首度於澎湖限定門市開賣,瘋追2024澎湖國際海上花火節必嚐!此外5月17日起「國際冰品
林浥樺/核稿編輯
〔財經頻道/綜合報導〕人工智慧(AI)成為市場當紅炸子雞,無論是員工或是企業,都正利用AI來保持競爭力,因此有些人擔心,未來他們的工作會被AI
五月報稅季,想吃美食不怕荷包失血!肯德基祭出「百元有找美食套餐$89超雞賞」,A+B組合明星商品自由搭,包括美式煙燻咔脆雞堡+玉米濃湯等任意買一送一組合,通通只要 8