如果能夠搭乘時光機,我會給還沒成為軟體工程師的自己這九個建議

身在這個軟體業,最重要的並不是知道知道更多的程式語言、函式庫、演算法以及設計模式。而是心態。本文分享了九個作者身為軟體工程師所得到的重要經驗分享。讓我們在技術上,心理上都做好完善的準備來面對這個行業。
評論
評論

最近在 Medium 看到 一篇文章 關於作者 Manuel Ebert 發表了從神經科學系轉換跑道成為了軟體工程師,在軟體業工作所得到的一些感想。文中講述了身為軟體工程師或者是希望未來成為軟體工程師的人該有的心態,在這裡與大家一同分享。(註:本文並非逐字翻譯,而是提綱挈領加上一些個人經驗與讀者分享。)

我一直是一個好的程式編寫員,但直到我辭去了學術界的工作轉而進入一個小的而且有野心的新創公司工作之後,我才發現身為一個軟體工程師,身在這個軟體業,最重要的並不是知道知道更多的程式語言、函式庫、演算法以及設計模式。而是心態。

作者也說了:「如果我更早知道這些,並且提早以這種心態為未來做準備,這會使我的工作容易些」。也因此,她寫下了這個列表給年輕時候的自己。

聰明才智被高估了

很多人認為一定要非常聰明才能夠成為軟體工程師。的確,如果你夠聰明再加上擁有好的表達能力會幫助你在你的求學生涯中輕易地度過。但是這是一種天賦也是一種詛咒,你會發現當你不費吹灰之力的學會對你理所當然的東西的時候,你的同學們卻得付出額外的努力來超越你,但他們所花費額外的努力所學習的東西往往在未來成為了在工作上最重要的事。像是:勤奮、堅持以及社交等。這類的事情因為你太聰明了,你不曾體驗過也就不能夠有切身的體會。

我們舉例來說:往往你會在同學中遇到比較超群的人,你想了個半死也想不出來的東西,他可能覺得理所當然。或者是當你組成了讀書會想要討論作業或者是你不懂的地方,因為你一個人無法單打獨鬥,所以你必須結交朋友進行團戰,往往你很不幸的有個聰明的同學不需要任何人幫忙或者是嘲笑你們很笨。但是別擔心,你所經歷的一切都會成為你未來重要的基礎,當年一起學習的朋友可能在未來成為你重要的人脈,又或者說你絞盡腦汁的這個學習的過程,讓你在未來遇到任何問題的時候都會養成這樣子的思考習慣,像是:我這樣子想對了嗎?有沒有更好的想法?能不能夠在更優化我的解答?

當然,擁有聰明才智毫無疑問的可以幫助你在這個行業中有很好的開始,但在這個行業上或者是其他各種行業上的成功需要的不止是聰明才智,還需要紀律、努力、可靠的人脈以及別做個混蛋!

為你工藝感到自豪

不論你做出什麼,你都要為你自己的工藝品(作者在這裡將軟體比喻為工藝品,因為軟體就像是工藝品一般,需要製作他的人的精心雕琢。)感到自豪。如果你寫了一個軟體,那麼除了你有了成品之外,整個成品出產的過程中,你還有了很多的規劃,像是你思考過你的軟體該有什麼樣的功能,你研究過目前有哪些開源軟體可以使用、你學習過 paradiams 以及程式語言來幫助你完成這個軟體、你找出而且修正了你在編寫程序中所出現的錯誤、你將你的程式碼美化使其更淺顯易懂並且維護它。如果你對於你所做過的這一切都不感到愉快,而只是當成是為了出產成果的一個必經之路,那麼你永遠無法在個領域做的很出色。

有個很好的方式可以顯現你對於你正在建造的工藝品感到非常的榮耀:進行一些寵物專案(Pet Projects),這些小專案並不侷限於想要解決什麼當前立刻需要解決的問題。而你之所以著手進行這些小的專案只是因為你很享受這整個過程。有趣的是,很多我們現在天天在使用的產品,其實都是來自這些小的專案。舉例來講,當初 Facebook 就是馬克的一個 Pet Project 。

學習新的工具

花點時間去真正的下功夫學習一些新的工具,而不是單純的去擴張知識。你必須要親身去學習這些可以幫助你完成任務的工具。舉例而言:你可能知道 Angular.js 是做什麼用的,但是光這樣子還不夠,你要花時間去學習怎麼樣使用它,親自去試試看。 這裡也延續了上述的寵物專案,每次你想要做一些新的東西的時候,你也要試著用新的方式來做。我們要有一種寵物專案很有可能會失敗的心理準備,也因此我們並不需要投注我們大部份的心力,我們該做的是每次都在專案中學習到一些東西。即使今天這個專案失敗了、或者是你對它失去興趣了又或者你發現這個挑戰難度可能有點過高,你還是會學到些東西而不是因為這個失敗對你造成傷害或者讓你自尊受挫。 在這裡作者也推薦了一些值得學習的東西像是:

Github 以及 Git

相信這一點已經是有點老生常談,在 Github 上會有很多可以值得參考的程式碼,Git 也可以幫助我們更有效的管理我們的專案。除此之外,同學或朋友或者是同事之間進行所謂的 Code Review 也是很重要的。讓你的程式碼受到大家的審視,停止使用這些只有你看得到的程式碼來分析數據,因為其中可能有很多的 Bug !

Inkspace 、Adobe Illustrator 或 Sketch

利用這些繪圖軟體來進行圖片以及數據圖表的後置處理,學會用這些東西比光使用 Matlab 或者是 matplotlib 來得更容易些。

Sublime Text

學會使用一個編輯器以及快捷鍵可以省去你不少的時間,Sublime Text 相對 Vim 或者是 Emacs 親切可人的多了。

學習如何表達

表達能力也是重要的一環,多看點 TED talk 看看這些人是怎麼樣利用 15 分鐘講出一段很吸引人的故事。在鏡子前練習你所學到的技巧,因為你的身體你的聲音也會是一個很重要的工具。

Python, R, HTML and Javascript

這些基本的知識可以幫助你成功,如果你對於這些基本的都已經熟悉了,那麼你可以玩玩看一些函式庫或是學習一些新的領域,像是自然語言處理、機器人、音樂合成或者網路爬梳等。

要像是個股東

每每當我們說到公司的最佳利益的時候,通常我們指的是股東們的最佳利益。因此,你該問一個問題是:對你的執行長或者是你的主管而言,誰才是股東?對他們而言股東的利益有多重要?如果你的老闆覺得只有他才是這間公司的股東的時候(快速賺取利益然後脫手),那代表你該以最高速度逃離這間公司了。因為很有可能的你會因為他們的利益而被犧牲。因此,你必須早點發現這一點,如果你不被當成股東一般看待,快點逃跑吧!不論你有多愛這份工作,單方便的付出是不行的。除非你真的很喜歡被虐,但是很遺憾工作不像是日劇,即使你無怨無悔的付出,老闆可能不止不把你當一回事,還在背後踢你下水。

Shipping it(出貨中)

Shipping it 最近在科技業中成為一個相當流行的詞彙,Ship 代表的是出貨,顧名思義就是將你的產品從倉庫中拿出來並且送到客戶手上。但這個詞彙真正想要表達的意思是,在你的產品交付到客戶手上之前,你之前的付出都毫無價值。製作一項產品最重要的就是讓它給客戶使用,因此與其花好幾年做到你擁有一個完美的產品,你應該要先將基本的東西迅速完成,確保其功能之後趕快出貨!畢竟在你花時間調試自己的產品的時候,可能有人已經搶在你前面將產品發表了,而你也就損失了市場。

了解 80/20 理論

80/20 理論在這方面而言是你花大約 20% 的時間將你的產品 80% 功能完成之後,花 80% 的時間,確保你在這最後的 20% 沒有任何地方出錯。這件事情為什麼這麼重要?因為大多數的人往往低估了一個專案所需要花的時間,工程師或者是科學家尤甚。這往往跟經驗有關,你知道的越多,你往往可以預期這在未來會發生的錯誤或者是其他的一切可能發生的邊界條件。舉例而言,筆者當初的就學的學校建立的售票系統就是沒有考慮負數而造成整個系統停擺。(也就是說你如果購入 -1 張票,系統就掛了)。所以,如果你沒有經驗,你就把你認為需要在這個項目上花的時間乘以五,然後預期你在五分之一的時間到了的時候可以完成大部份的功能。

你並沒有出賣你的靈魂

大部份在你工作時,常常會遇到一些人願意投資你,這些往往出自他們的最大利益。(或許他們期待未來你有所回報),但這並不代表他們擁有你的靈魂,可以叫你做任何你不願意去做的事情。

離開你的舒適圈

一般而言,要離開自己的舒適圈繼續學習是不容易的,當你在自己的舒適圈的時候,你發現你已經會了很多東西,但是如果你想要學習的更多,你就必須離開這個圈子。作者以下圖作為舉例,往往你學習不到任何東西,如果你一直停留在自己的舒適圈裡面,又或者你因為恐慌而無法有效率的學習。因此最好的平衡點就是,在你感到恐慌之前,這是你最好的學習點,在這裡你可以學得最多,改變的也最多。當然這樣子說或許有點抽象,筆者認為 Manuel 想要表達的是,你應該要從自己可以施力的地方開始,然後一步一步的學習更多。舉例而言,你想要學習怎麼使用 Node.js ,你最起碼要知道一些 Javascript 的基本。否則你就是把你自己丟入了所謂的恐慌圈,你發現你什麼都不懂,又什麼都要學。

 圖片來源:Medium

靜下你躁動的心

你的心就像是猴子,往往會想要抓住最近的那根樹枝。往往,你心中有很多的點子、想法、靈感。在做某一件事情的時候,你往往想到了下一件事情,想到了或許你可以用這個點子去做某些事。這樣子的想法被稱為是聯想性思維,對於創造力是一種很好的提升。但是,有的時候你更需要的是專心與集中。總結上述所說的,只有集中才能夠幫助你一步一步的去完成目標。 當然,Manuel 在最後也提到,這些想法未必適合所有的人。但是讓自己在心理層面做好準備這一點是毋庸置疑的。畢竟,態度決定一切。

《延伸閱讀》

菜鳥工程師應知的十個秘密

出走台灣可以是一個選擇,但不是唯一的選擇:一個矽谷工程師的告白

工程師大學時期必經的 35 件事

工程師,您也患有「冒牌者症候群」嗎?

工程師提高工作效率的妙招:學畫畫

美國工程師的台灣夢

下班後,堅持自學有多難?

我要成為前端工程師!給 JavaScript 新手的建議與學習資源整理

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

圖解智慧國家四大關鍵科技,從不同角度帶你了解台灣的科技應用實力

大家都知道台灣有座半導體護國神山,也聽過許多媒體對台灣科技實力的盛讚,但台灣的科技實力到底強不強?我們從四個面向帶你看台灣作為「智慧國家」到底有什麼實力!
評論
評論

大家都知道台灣有座半導體護國神山,也聽過許多媒體對台灣科技實力的盛讚,但台灣的科技實力到底強不強?自己說不如讓國際單位做的調查更客觀顯示。瑞士洛桑管理學院(IMD)每年9月公布的世界數位競爭力(World Digital Competitiveness Ranking)評比,最近一次報告2021年台灣在全球64個主要國家及經濟體當中排名第8,獲得歷年來最佳名次。

而且值得關注的是,支持數位競爭力的核心要素之一,也就是「科技」競爭力。IMD評比報告揭露台灣拿下全球第2的佳績,從2018年的第11名年排名持續上升,顯見台灣無愧於科技強國之名。


科技小百科:
瑞士洛桑管理學院(IMD)是一個長期研究國家與企業競爭力,在國際上具盛名及公信力的評比機構,並自1989年起發布「世界競爭力年報」World Competitiveness Yearbook,其評比報告與調查結果更是各國政府擬定相關政策之參考。IMD每年會定期公布兩份競爭力評比報告,其一是「世界競爭力年報」,每年在6月公布,2022年台灣在63個受評比國家中排名全球第7名。另一份報告為「世界數位競爭力評比」World Digital Competitiveness Ranking,每年在9月底公布,本篇文章引用的資料為這份兩份研究。


也因為科技與國家發展息息相關,有哪些技術是台灣不為人知的優勢?或是未來產業可大力投資布局的領域?我們找出其中四大項與智慧國家最有關的科技,展現台灣具備強勁的科技能量,或許你已經受惠,也或許你能從其中找到發展的機會。

關鍵科技一、融合海陸空領域的多維通訊

隨著國家管理範圍逐漸擴大,通訊範圍多元且彼此關聯,相關科技如低軌衛星、5G通訊、海底電纜等,形成環環相扣的多維通訊聯網。

仔細洞察2021年的IMD報告,台灣在「行動寬頻的用戶比例」這項指標,拿下全球第1的傲人成績。顯見台灣在通訊基礎建設的投資及普及率,是走在全球領先位置。

尤其5G/6G關聯科技更是未來多維通訊的具舉足輕重的地位,原因是5G衍生的價值鏈相當廣泛,舉凡從晶片、模組、終端、邊緣、系統、到應用服務,可形成完整生態圈。為了強健台灣5G專網的自主技術與供應鏈,從2018年先後成立5G產業發展聯盟、5G垂直應用聯盟、以及5G Open Networking平台,逐漸形成5G國家隊。

除了把5G領先國視為戰略目標,當創新技術落地,更能帶來龐大商機。根據工研院的預估,將5G的小基站、邊緣運算、網路虛擬化等關鍵產品、模組、元件加總起來,2025年的市場規模上看2,510億美元(約新台幣7.5兆元),其他國家還在積極推動5G聯網建設,顯見相關商機仍有相當大發展空間。

關鍵科技二、新型態數位經濟與網路服務

邁向Web 3.0的交叉點,元宇宙被視為下一代網際網路的新機會,市調機構Gartner預測,2026年全世界將有25%的人口,每天至少有一小時投入元宇宙虛擬世界,進行工作、社交、教育、購物、娛樂等活動,並藉由虛擬貨幣、NFT進行數位資產的交易,虛擬經濟逐漸成形。

所謂元宇宙,需要以5G/6G高速網路為基礎,透過VR頭盔/眼鏡作為進入3D虛擬世界的載體,在元宇宙的各種互動體驗則需仰賴AI運算、雲端/邊緣儲存、區塊鏈等核心技術支援。人們在元宇宙內可以滿足從現實世界做不到的事情,形成穿梭虛擬、現實之間的生活體驗與商業模式。

近七成投入元宇宙相關應用的企業,認為元宇宙在未來5年一定會蓬勃發展,虛擬音樂會、虛擬時裝秀、媒體及產品聯名展示活動,將是元宇宙優先發生的商業體驗。

那麼台灣要投入元宇宙有何利基?解析元宇宙供應鏈版圖,主要可分為晶片、光電、通訊、AR/VR裝置、內容以及AI技術,台灣科技可從硬體方面,包含晶片、感測IC、光學零組件、伺服器等擅長領域切入。像是大家熟知的半導體大廠台積電,對於相關晶片的供應就至關重要,另外光電產業也有揚明光、玉晶光、中光電等企業,讓投影技術更精緻,再來連接元宇宙的通訊技術,也有聯亞來支援,而裝置軟硬體、AI技術則是有創意、世芯、智原等企業投入,最後想到AR/VR集大成者,就不能遺漏宏達電在這一塊的耕耘,同樣威盛電、佐臻、未來市(XRSPACE)等品牌也積極佈局,可見台灣已有完整的供應鏈,接下來有志於加入元宇宙的廠家,不妨從自身的專長去思考,相信不論是哪個領域的企業,都能有更多的創新、應用內容投入,完善整個元宇宙生態。

關鍵科技三、疫後時代興起的智慧型代理人 

近年因疫情持續延燒,越來越多領域開始導入「智慧型代理人」,像是零售業者引進半自動化機器,協助人力處理訂單、點餐;又或是醫院使用機器人,藉由AI辨識功能分擔部分醫護工作。

所謂智慧型代理人,以它所知的知識範圍內,自主完成人類所給予的指令任務。智慧型代理人發展至今,能協助人類的廣度、深度越來越多,主要是受惠機器學習的技術更為先進,加上其他的自動規劃、互相協調等演算法的成熟,讓智慧型代理人成為下一波產業發展重點。

世界先進國家紛紛把AI納為國家產業重要發展策略,台灣從2018年就推出「台灣AI行動計畫」,全面啟動產業AI化。發展至今,AI應用已從測試階段逐步應用於各式產業,資策會統計發現,掌握AI技術的新創企業在台灣有300家,逐漸摸索出不同的商業策略與獲利模式。

尤其資通訊、醫療照護是台灣兩大擁有頂尖人才的雙軸產業,在疫情之下,就可以看到醫療+科技所衍生的智慧型代理人應用。像是過去為了解決醫療量能不足,開發「5G智慧防疫機器人」,用來隔離病房消毒、運送餐盒及藥品物資,比傳統人力消毒方式有效節省50%時間,還能降低醫護人員感染風險,讓醫事工作更有效率。

關鍵科技四、資訊安全網保護每個人數位資產

我國面臨網路犯罪、駭客入侵政府、機關,甚至竊取個人資料事件持續增加,如何保護國民安心使用數位科技、保障財產安全將是未來重要方向。隨著AI普及所衍生的龐大資料量之隱私及資安問題,成為棘手的挑戰。從國際AI資安發展現況來看,歐盟在2021年提出人工智慧規則草案(Artificial Intelligence Act),鼓勵值得信賴且道德的AI進行研發與應用。微軟更在今(2022)年禁止提供AI推測情緒技術,並制定「負責任AI標準第二版」、Google則停止AI機器人具有自我意識、能與人類溝通等爭議事件,這些做法也都反映美歐在立法之際,業者也在努力自行節制敏感AI技術。

AI資安,是挑戰也是機會。未來,台灣政府與企業也須密切關注美歐相關草案的立法動態,找出AI規範的共同點,以此界定使用AI產品與服務之要求;因此,AI資安不僅需透過科技來防禦,更需要治理與法規,降低AI所帶來的衝擊。

另外,針對5G資安議題,台灣有展開大型科技防禦策略,包含5G資安防護系統、跨機關資安聯防。5G資安防護系統致力確保業者使用的5G系統具備安全、可靠、信賴,與國內5G專網業者進行服務驗證,以強化國產5G系統的整體資安防護能力。跨機關資安聯防的目標放在建立政府與民間的資安聯防體系,藉由橫向整合跨部會,全面提供威脅情資,減少機關隱匿資安事件,降低事件誤報與漏報。

持續提升台灣的科技能量 打造全方位的智慧國家

圖片資料來源:IMD 2022 世界競爭力年報

台灣的科技能量持續提升,從2022年的IMD世界競爭力年報可發現,而且該報告還指出我國擁有高素質勞動力、經濟活力、企業治理能耐、高教育水準等優勢。上述四項與智慧國家高度關聯的新興科技,涵蓋「數位基盤、數位創新、數位包容」等元素,如何借助科技打造創新、包容的社會,在台灣強勁的科技應用產業鏈上,補強創新的能量,並延續發展優勢項目,將是台灣要持續努力的方向。

了解更多智慧國家方案
看更多智慧國家相關報導

行政院科技會報辦公室 廣告