為什麼成為一名工程師這麼難 —— 從程式新手到準工程師的必經之路

有人說,每個看起來與正常人無異的工程師,其實都是在學習程式開發的途中熬過、壓抑過、而且創傷過的反社會人士。基本上,成為工程師的過程可以被分成四個階段,分別是手牽手心連心蜜月期、困惑之崖、絕望沙洲、以及創傷後的恢復期...。
評論
評論

有人說,每個看起來與正常人無異的工程師,其實都是在學習程式開發的途中熬過、壓抑過、而且創傷過的反社會人士(sociopaths)。

在學習程式開發的過程中,常常看到網路上的「甘苦談」,也聽過身邊前途一片光明的工程師朋友們分享過學習歷程,總覺得不同的人、同樣的故事卻不斷的重複,像是狼叫聲般,從遠處傳來一聲又一聲的迴響。

最近讀到 Erik Trautman 在 Viking Code School 部落格中的文章 《Why Learning to Code is So Damn Hard》,文章裡將學習寫程式(Learn to Code)的過程分成了四個階段,並解釋了兩個影響各階段形成的關鍵因素「資料密度」以及「知識廣度」,最後集合成這張圖:

這篇文章很有趣也十分符合我所聽聞的那些「工程師辛酸史」,因此決定將這四個階段介紹給大家,希望程式初學者們在進入這條不歸路之前,罩子要放亮、計畫要周詳,清楚明白在前方等你們的是什麼,做好心理準備吧!

接下來我將介紹從剛開始寫程式到成為一名工程師,Erik Trautman 所歸類必經的四個階段:


想成為工程師,請做好準備迎接這段必經之路

先假設你學寫程式的終極目標是要靠這行吃飯 –– 進入相關領域工作或是自行創業,你是否做好萬全準備可以從你的信心(Confidence)跟能力(Capability)散佈圖中看出:

隨著你具備的知識跟技能越來越多,你的自信心也會隨之而增減,最後達到能力夠信心足的「Job Ready」點。在 Job Ready 前則可以分成四個階段:

第一階段:手牽手心連心蜜月期

剛開始進入程式開發界的朋友們總是懷抱著遠大的夢想跟抱負,這不能怪他們,畢竟一方面,大家小時候聽多了「寫程式很難」、「電腦科學很硬」這種傳聞,從一開始就把不少人嚇去念社會科學(... 沒有冒犯社會科學專業人士的意思);另一方面,「全民寫程式」這項運動實在太成功,坊間許多工具跟學習平台讓程式開發變得超好理解、上手容易,像是 Codecademy、Treehouse、跟 Code School 等線上平台,或是麻省理工的 Scratch 語言、Google 的 Blockly 等程式語言工具,成功地營造了人人都能寫程式而且靠這行吃飯的 假象 形象。

突然間我們的問題不再是「困難度」,而是「比天高的期望」跟「比地大的夢想」。

最重要的是,以上提到的這些工具跟平台實在太有用,帶領毫無程式開發經驗的初學者們一步步認識變數、條件語句、程式語法。當你一路過關斬將把程式語言基本邏輯跟語法學會的同時,你就會超有成就感、自信心大增,開始有「原來我也行嘛」、「寫程式也不過就這樣」的感覺,基本上覺得自己已經跟「工程師」相去不遠了。

這個階段將充滿喜悅與成就感,在各種線上工具、網路教學的幫助下,你享受著用指尖下指令、電腦就能準確執行的主導感,你讚嘆著程式語言的神奇與強大之處,從 Hello World 到簡單迴圈,每完成一道練習題你的成就感又增加幾分,很多人會在這個時候認為自己已經愛上了電腦科學(而且覺得電腦科學也愛他們),正處於能力提升,自信心也大增的「蜜月期」,這時你可能會覺得世界真美好、人生大概就會從此飛黃騰達,但我得殘酷的告訴你:

這段旅程才剛開始而已。

第二階段:困惑之崖

就跟大部份的情侶/新婚夫妻一樣,蜜月期會結束,你會慢慢發現「相愛沒這麼簡單」。

作業難度一增加(重點是程式碼長度也會跟著增加),程式錯誤警告就頻頻出現,開始不停的除錯(Debug)。而且通常最大的挑戰是 –– 當錯誤出現時,你根本不知道錯在哪裡、該問什麼問題。你的學習進度在這個階段開始停滯不前,像路走到一半突然遇到懸崖而無路可走般,開始對之前的認知感到困惑,跟著信心大失。

通常這個階段會在你完成線上的基礎教學後發生。以製作個人網站(Portfolio Website)為例好了,W3 School 平台提供了一系列 HTML、CSS、JavaScript 等網頁製作相關的程式教學,讓初學者一單元一單元的學習語法跟功能,每單元還有例子示範用法,看似好簡單!全部跟著學一遍之後,你準備好動手打造自己的網站,打開文字編輯器,⋯⋯,然後寫沒兩行就卡關了。

也許靠 Google 搜尋可以讓你撐到完成網站基本架構,但當你想實現自己的創意、加上個人化的設計時,網路上的回答跟示範總是和你心裡所想的不太一樣,所以程式碼不能全抄,然而左拼右湊出的程式碼看似可行但實際上差得可遠了!偏偏還不知從何 debug 起,可能投資了大半的時間程式碼還「有減無增」,毫無進展可言。

這是一個尤其挫折的必經階段,想成為 Programmer 就必須經歷這個關卡,勇敢跳下懸崖、逼自己展翅高飛(當然在這個階段摔死的小雛鳥數量十分可觀)。

但即使你消滅了無數的 bug,終於完成了幾個小專案後,你也別高興得太早,未來的路還是非常長遠而且挑戰性更高! 對於想進入這行吃飯的人來說,「困惑之崖」通常是你決定是否全心全意進入這一行的轉捩點 ,而當你投資所有的時間心力在寫程式上時,你將進入最讓人心灰意冷的第三階段。

你可能會很好奇,到底為什麼緊緊相連的第一階段(蜜月期)跟第二階段(困惑之崖)會差這麼多?如果你也正在經歷以上兩個階段,你要知道,造成階段轉換的原因跟你一點關係都沒有,並不 完全 是因為你比別人笨或比別人不努力,而是因為 「資源密度」 改變的緣故。

因素 1:資源密度 Resource Density

在第一階段中有提到,當零經驗零基礎的你開始學習寫程式時,身邊有著無數的資源跟工具等著你來運用。到 Google 搜尋打「Learn to Code」你會查到超多程式學習平台、教學文、教學影片、甚至經驗談,讓你感到萬分的親切及溫暖,其「手牽手心連心蜜月期」的稱謂當之無愧。

然而到了第二階段時,這些教學資源的數量將 大為驟減 ,任何一個剛脫離初學者的程式學習者都能夠證實我此言不假。初學者一開始遇到的障礙都是「一般常見問題」,教學文、教科書裡就會註明了;後期由於作業難度以及個人需求,問題才漸漸複雜起來,要從 Stack Overflow 或是一些程式人的部落格中去找尋解題線索。一直到在你遇到的問題已經棘手到網路上根本找不太到線索的時候,你便進入了下一個階段。

第三階段:絕望沙洲

要了解進入第三階段的關鍵,就要了解另一項影響著各階段變化的重要因素: 知識廣度

因素 2:知識廣度 Scope of Knowledge

「知識廣度」 也就是度過每個階段你所必備的知識領域範圍。剛開始時你需要吸收的知識很集中,不管用哪種程式語言、不管功能是什麼,首先都要學會變數型態、宣告語法、迴圈及條件判斷式等等,這時隨便請一個工程師教你都是一樣的,因為「重要須知」就是這幾點而已。

然而學完基本功後,你所需的知識領域會一下子擴展很多,像是開始學習物件導向或是著重演算法的效率,你會需要扎實的電腦科學背景來應付,而且每一個應用都可以牽扯出更多的變化... 相信我,這不是幾堂 MOOC 課程就能救得了你的。

在這個時期,萬能的 Google 也只會丟給你更多你不懂的東西,根本查不到相關的線索!最糟的是 你根本不知道你什麼不知道。(You don't know what you don't know.)。於是「學也學不完、越學越不懂」的無力感排山倒海而來,進入最最難熬的第三階段 ––「絕望沙洲」。

這個階段顧名思義像是在橫越沙漠般,是一段非常長且寂寞的旅程,讓你有不知何年何月才能走出來的絕望感。在一望無際的沙漠裡,根本搞不清楚東西南北,資料查了半天毫無斬獲,還不時被海市蜃樓(錯誤資訊或看似可行的解決方案)給誤導,搞得灰頭土臉、頭昏眼花,在這個階段曬死、渴死、絕望死的有為青年更是不計其數。

但只要在絕望沙洲裡熬下去,接下來就會自在許多了!累積足夠的經驗,程式的錯誤就會大量減少、達到一定知識水準,就能準確判斷問題的方向切入核心,工作效率因而有所增進,知識廣度也會慢慢聚焦。等你拖著一身的疲憊終於走出這荒漠時,就進入了最後的階段。

第四階段:創傷後的恢復期

踩著千萬人的屍體成功橫越了沙漠,你的自信心開始回升,Google 功力也可以說是神人的等級。到了這個時候,Hacker News 的新聞以及超硬的 MOOC 課程都不成問題,你也選定了某個程式語言跟框架來專研,而且有能力製作出可以正常運作的應用程式了。

但你心裡深處總有著隱隱的不安,覺得程式能「用」但其實程式碼凌亂無章,工程師的頭銜下其實是誤打誤撞進這行的半調子,雖然你似乎具備了一切就職條件,卻總害怕面試官發現你根基薄弱的電腦知識... 你正在經歷 「創傷後的恢復期」

在飛越困惑之崖、橫越絕望沙洲之後,你應該已經學會該學的、做了該做的,成為一個名符其實的工程師,卻總覺得自已資質平庸根基不穩,雖然有成功打造出一個個專案而信心回升,但老是感嘆自己與心目中「專業工程師」仍有一大段差距...,這些都是「冒牌者症候群」(Impostor Syndrome)在作祟!

在這創傷後的恢復期中,你可能會經常自我懷疑,但只要順著這波效率提升信心也回升的潮流繼續努力,在能力與自信達到一個程度時... 恭喜你:You Are Job Ready!

想深入瞭解「冒牌者症候群」可以參考這篇文章: 工程師,您也患有「冒牌者症候群」嗎?

《延伸閱讀》

做一個網站多少錢:如果你不是工程師,不要說簡單!

寫碼容易,讀碼難:工程師 千萬別重寫程式碼

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

向矽谷的 90 後取經 如何成為受歡迎的工程師?

5 種高效率的軟體工程師角色

40 歲的哀愁:拼不過新鮮的肝靈活的腦,工程師面臨中年危機

軟體工程師從優秀到卓越的進化之路

大神工程師教你怎麼練就「 coding 速度快、 bug 數量少」的境界

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

好友人數

ESG 可以怎麼做?導入「點點簽」電子簽名服務,展開企業永續經營第一步

體現企業敏捷效率、展現品牌創新精神,讓點點簽為團隊夥伴創造效率、為客戶帶來友善體驗、為企業創造良好印象。企業實踐永續 ESG 的第一步,不妨就從導入點點簽開始。
評論
Photo Credit:DottedSign
評論

近年來,隨著疫情時代的時局變化、雲端科技的日新月異,「數位轉型」成為當代企業必備的思維與能力;此外,因應全球環境問題與聯合國永續發展指標(SDGs)的討論趨勢,ESG(Environment 環境、Society 社會、Governance 公司治理)也成了企業不可迴避的經營課題。

無論從何種角度來執行,例如建立線上敏捷的工作系統、減少地端成本(無紙化)等,都能讓企業在持續強化市場競爭力與環境永續兩者間獲得雙贏。回顧疫情期間遠距辦公的經驗,不少企業積極導入線上協作平台、電子簽名等服務,縮短團隊遠距辦公的距離;不過可惜的是,也有部分企業在疫情暫緩後又回到過往傳統的工作模式,其中又以「恢復紙本簽署」為最常見現象。

其實,企業若能善用電子簽名服務,不只能加速簽署流程和提高營運效率外,更能解決紙本、時間、郵寄等成本,邁向企業永續經營。本文以國內知名電子簽名品牌點點簽(Dottedsign)為例,細數電子簽名能為企業帶來的三項永續好處。

Photo Credit:DottedSign/知名電子簽名品牌「點點簽」是企業邁向無紙化、實踐永續的好幫手

更友善的簽名體驗:比傳統紙本流程快 80% 的時間

不少企業會有「紙本合約」的迷思,認為紙本簽名才正式、安全,且有實體文件可歸檔留存,較為安心;事實上,企業使用電子簽名服務不只能加速簽署流程,甚至相比於傳統合約寄送往返的方式,更加安全有保障,也更易於歸檔管理。去年國內受疫情影響,導入電子簽名服務「點點簽」的企業便大幅提升200%,顯見國內企業對電子簽名的認知度及接受度逐漸提高。

而能讓企業從長期培養的紙本習慣轉換成線上簽署的原因,除了疫情促成外,莫過於電子簽名能提供比傳統紙本更友善、更便捷的簽署體驗。只要有一台電子裝置(電腦、平板、或手機),就能藉由點點簽完成無論是遠端、當面或臨櫃的簽名工作,且從創建文件到指派簽署者只需不到一分鐘,簽署者更可依照簽署欄位直覺的完成簽署,大幅降低簽署錯誤率之餘,也省去傳統紙本列印合約、親簽完成後寄回,或親簽後掃描回傳的繁縟流程,有效節省人力和時間等隱性成本,將時間專注在關鍵的任務上。

此外,雙重身分驗證的保護機制,能在傳遞過程中加密嚴防駭客竄改文件,且簽署完成即壓上數位憑證(Digital certificate),能證明文件乃經由當事人線上簽名且未被他人更動。點點簽具備完整的資安守護措施,不必擔心紙本合約遭中途攔截或人為毀損,或是有偽造簽名之虞,讓簽名這件事比過去更加快速、也更加安全。

Photo Credit:DottedSign/點點簽電子簽名有效節省時間人力與紙張成本,讓團隊能專注在重要任務上

更流暢的營運效率:團隊數據分析、文件標籤歸檔一秒完成

數位轉型、永續發展不只是口號,更是推動企業前進、產業進步的力量;如何藉由合適的線上工具落實數位轉型,同時確保其營運策略能夠結合環境永續,更是企業刻不容緩的議題。而電子簽名的多元性及便利性,正在企業營運層面扮演相當重要的一環,無論何種團隊規模及企業需求,皆可藉由導入電子簽名服務「點點簽」集中控管文件權限與資源共享,為管理階層提升效率,即時掌握重要合約的相關進程。

說到點點簽的強項,就不能不提「支援多人簽署任務」的功能特色。用戶在點點簽發起簽署任務後,可指定簽署人的順序,確保流程正確不漏簽或誤簽;也可即時追蹤簽署進度,系統將會自動提醒簽署人在期限內完成簽名。

為了協助組織管理者能更有策略地管理團隊 ,點點簽也提供視覺化的團隊數據分析,組織管理者可藉由團隊數據介面中的「完成文件總數、文件拒簽率、平均簽署完成時間」等數值掌握每位團隊成員手上負責的文件簽署狀況,進而提升團隊效率;其他包含控管成員權限、共享範本等功能,則能協助管理者邁向更高效的營運模式。

尤其針對企業內業務、法務、財會等時常需要處理繁雜文件,更可善用點點簽中的標籤功能,輕而易舉地為已簽署文件標籤歸檔,利於往後即時調閱資料,不必在紙本堆中翻找。總體來說,點點簽不只能確保簽署流程不出錯,更協助企業在營運上更順暢。

Photo Credit:DottedSign/點點簽,為企業提升簽署效率、創造營運價值和邁向永續經營

更美好的永續經營:節省紙張、時間、人力,專注創新成長

據國外知名期刊 FinancesOnline 指出:

長期來看,企業從紙本轉移到線上簽署的成本可節省高達 78%,其中包含可觀的紙張、時間、營運等成本。

關於這點,點點簽的客戶實務經驗可以證明。事實上,每使用點點簽完成一次線上簽署可替公司省下新台幣 36 元的時間與材料成本,且將簽署流程數位化能大量減少紙張及碳粉的使用;據統計,每省下 10,000 張紙可以拯救一顆樹。顯然,點點簽協助企業實踐低碳目標外,更是為地球環境盡一份心力。

另一方面,企業使用線上簽署服務不只能縮短傳統文件往返的等待時間,也能為企業帶來良好的品牌形象。舉例來說,在前線如業務、商務開發人員、諮詢顧問等單位,即可使用線上簽署與客戶打造遠端簽署的情境,維繫與客戶的關係外也利企業掌握關鍵商機。同時,團隊也因導入線上簽署而省下隱性成本,讓企業騰出人力資源,專注創新成長,培育人才達成永續經營的目的。

綜合以上所述,企業須將數位轉型和永續經營納入長期營運上的考量,而導入線上簽署可視為第一步。點點簽(DottedSign)為凱鈿行動科技旗下的電子簽名服務,提供 SaaS 和 API 等解決方案供企業彈性選擇。歡迎使用點點簽,為您的企業提升簽署效率、創造營運價值和邁向永續經營。落實環境永續 ESG 的第一步,不妨就從導入點點簽開始。