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

評論
評論

5578893436_bcddd9e630_zphoto credit: CEThompson 

最近在 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 的基本。否則你就是把你自己丟入了所謂的恐慌圈,你發現你什麼都不懂,又什麼都要學。

confort zone 圖片來源:Medium

靜下你躁動的心

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

《延伸閱讀》

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

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

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

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

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

美國工程師的台灣夢

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

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

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

好友人數

相關文章

評論