初入職場,好不容易成為軟體工程師。面對全新的職涯,未來的一切都很新鮮、值得期待。

然而,經過半年、一年之後,我們開始持續地遭遇挫折,越來越覺得難以再往前跨出重要的一步,陷入嚴重的自我懷疑。我們和往常一樣不斷學習,不敢鬆懈,但眼前的目標依然遙遙無期。

Photo by Lina Trochez on Unsplash

要怎麼做才能變成資深工程師?找到更好的工作?或者更重要的,我如何肯定自己的價值?對自己更有自信?

這一切都要回到最初的問題:軟體工程師的價值到底是什麼?

軟體工程師的價值

厲害的技術,不會創造價值。除非這個厲害的技術解決了重要的需求!

幾乎每個成為軟體工程師的朋友,都有一段持續學習、努力精進技術的時刻,而這樣的好習慣,也確實幫助大家找到一份不錯的工作。然而,長期養成的習慣,加上不斷地被鼓勵,讓很多工程師深陷其中,限縮了視野,失去了對其他事務的關注。

因為不安全感、因為想要變得更強、因為工程師本來就要持續的學習,不斷地鑽研各種新的、看似厲害的技術。但是,為什麼,總是無法獲得相對應的報酬或回饋呢?

是的,若我們沒有進一步運用技術,解決重要的需求,那就沒有真正值得被看見的價值!

發掘需求,主動承擔

組織中,工程師身為一個小螺絲釘,被安排完成各式各樣的任務,就算是再怎麼不被重視的任務,都可能是整個產品中,無法或缺的一部份。

小螺絲釘,依然有不可或缺的價值,那正是我們擁有一份穩定薪水的理由。然而,如果我們想要更多、更好、更有自信,那麼,關鍵不在於技術的精進,關鍵在於我們能否發掘出真正重要、會被關注的需求,並且挺身而出!

發掘關鍵需求並不容易,有時候甚至必然會有辦公室政治問題,然而一間正在成長的公司中,一定有這樣的可能性,我們必須跳脫技術思維,克服各種困難,主動探詢機會。

除此之外,對公司而言的關鍵需求,看起來肯定不會是可愛的小兔兔;有大機率,這個關鍵需求看起來是隻邪惡的大白鯊!

所謂承擔,就是儘管沒有人能確定未來,沒有人知道方法,但我們勇於接下這份任務,勇於面對挑戰並負起責任。這樣的核心素質,是我們能夠突破自我屏障的關鍵。

學無止盡,貢獻所學

學習,是為了貢獻;貢獻,才會產生價值。

完全沒有基礎能力的入門者,需要大量的學習。而一個已經能在職場上工作的專業人士,需要的是找到貢獻的方法!

其他關於軟體工程師轉職的文章


終究,必須在數百位的申請者中,做出決定。

有人這樣說,會選擇念心理系的人,本來就心理有毛病。話說得稍微重了,或許不是心理有毛病,而是對情緒有敏銳的感受。

每個人都有自己的故事和期待,而大家都選擇了在這個時候,提出參與訓練營的申請,聚焦於此。如果可以的話,我希望能滿足每一個人;然而,顯然無能為力。

發出邀請的時候是令人開心的,因為我覺得自己正在做一件值得期待的事。而發出拒絕信的時候,是沉重的,尤其,必須拒絕那麼多期待的時候 …

Photo by Gauravdeep Singh Bansal on Unsplash

給收到拒絕信的朋友

我被拒絕過不少次,很清楚那種被否定的感覺,並不舒服。有時候,甚至沒有特別想加入的公司,發出來的拒絕信,都會讓人感到難過;就更不要說是期待已久的職位或是計畫。

我們把情緒的部份和真正重要的理性規畫分開,處理完情緒之後,認真的想想:如果真的想成為軟體工程師,那麼,就算沒有人在旁邊輔助,我們本來就要學會獨立學習、成長的能力。

那麼,就是現在了!無論有沒有加入這個計畫,都不應該影響你的決心,畢竟,這是自己的職涯和人生,怎麼可以栽在這一點小事情上呢?

堅定意志,眼光放長,自然就海闊天空。

給收到邀請信的同學

很開心的,歡迎各位加入。我們即將開啟一段旅程,我也正在積極的籌備這其中的一切事務。

確實,我過去帶過不少學生,累積了許多經驗。或許,我能在這段時間,給你一些信心,我能幫忙規劃學習的目標和方向。然而,非常清楚的是:你的決心和投入,才是這段旅程中,最關鍵的核心部份。

魔戒遠征隊才剛啟程,考驗正要開始,我會站在你的身邊,陪著你面對接下來的所有挑戰。

收拾行囊,繼續往前走吧 ~


要說服公司錄用一名新人工程師,履歷上不僅要有相關的軟體開發技能,還要有能夠確實運用技能,開發產品的「能力證明」

如果是一名本科系畢業的新鮮人,由於在學時期至少接受過四年的相關訓練,且許多資訊工程系的教學規劃上,多多少少會有一些專案練習。所以,有機會直接用本科系的學歷當作能力證明,取得第一份工作。

然而,對多數的轉職者來說,通常不是本科系畢業的學生,也沒有在相關領域的工作經驗,那麼,開發一個軟體專案作品,就成了唯一能夠證明技術能力的方式。因此,專案的開發,在轉職的過程中扮演非常重要的角色。

Photo by Markus Winkler on Unsplash

以下,分享轉職過程中的專案開發,我們會考慮的幾個面向。

選擇專案主題

如果有明確的個人偏好、或某種理想性,那麼,建議盡量選擇一個會讓你真正產生熱情的專案主題。這會讓你在開發過程中,更有機會撐過每一個艱難的時刻。

然而,如果你的個人興趣並不明顯,找一份環境和待遇都滿意的工作就是最大的驅動力。那麼,建議先對軟體產業進行研究,找出偏好的領域,並且找出在該領域發展的公司和產品,以這些已經上線的產品為藍圖,去發想個人專案主題。

設定專案目標範圍

專案目標範圍的設定,對於缺乏經驗的開發人員來說,確實有其困難。我們必須在滿足最終目標的前提之下,考慮相關技術的熟悉度、困難度、開發時間、以及可能的意外等等因素,來決定整個專案的功能涵蓋範圍。

專案範圍的設定,整體來說,有以下建議:

  1. 配合求職目標:前端工程師,就盡量選擇能展現前端技術的功能。
  2. 至少要有 2 個主要的使用者故事線 (User Story)。
  3. 先設定高目標,但準備好比較簡單的 B 計畫,在中途隨時可替換。
  4. 務必尋求至少 2 位較為有經驗的 Mentors 給予建議。

專案品質要求

這世界上沒有 100% 的專案,產品永遠都有改進的空間。就算是第一線的公司,最受歡迎的產品,都不可能是完美的。所以,身為轉職者,我們當然不是要把專案做到滴水不漏。那麼,要做到什麼程度呢?

有個清楚的大方向是:「做到大部份的用戶,在沒有旁人的指示下,也能順暢的使用。如同我們平常使用網站、App 的經驗。」

你的專案成果,必須是一個軟體產品,必須是一個你敢分享給朋友、甚至分享給陌生人使用的產品。產品中不應該呈現還沒完成的內容;產品中不應該有破損的畫面;產品為了讓用戶掏錢,會注意到每個細節;產品中不應該在使用者操作的過程裡,出現無法排除的錯誤。

開發一個能真實上線運作的產品,證明你已經準備好了!

記得:老闆不是請人來公司學習,是請人來開發產品,幫公司賺錢的。

切忌僥倖心態,在有限的時間內,完成產品中的每一個細節,絕對深深的考驗一個人的抗壓性,而這是必要的修練!專案成品距離實際產品越遙遠,求職的時候,就會越加的辛苦。

更多關於軟體工程師轉職的文章


我是彭彭,彭兆蔚。謝謝你願意到這裡來,聽我說一段故事。

最近剛過生日的我,已經超過 35 歲。在生日當天,我問自己,到底在這麼多年的努力,有了一些累積,少了一些生存壓力之後,我還要追求什麼?還有什麼值得追求的?

整理了自己的過往,有了脈絡。

我對世界保持好奇,對生活擁有熱情,情緒稍微敏感,樂於與人互動。儘管國中時就接觸了程式開發,但在大學入學時,毅然放棄較熱門的資訊工程,選擇就讀稍偏人文領域的心理學系。

大學就讀時,在現實面,深刻的體悟到,撰寫程式、開發網站這套技藝,能有效幫助一個沒有背景的孩子,找到未來財富自由的希望,因此我花了很多很多的時間開發、經營自己的網站,並且最終回到了資訊工程研究所取得學位。

然而,很快的,又因為無法滿足於只和機器互動的職業模式,念碩士班時,便抓住機會,開始在台大資訊系統訓練班,擔任兼職的 Java 講師,持續分享技術給所有有興趣的朋友。而這個坑一踩,就是十二年,直到今天。

在我的職涯中,離不開兩個核心。第一,我喜歡創造軟體產品,藝術性的自我滿足。第二,我喜歡和他人互動,喜歡分享經驗,每當我離開人群一陣子之後,總是會再回到有人群的地方。

過去二十年來,我自己創業,經營網站和手機應用程式;我在資策會,Tomofun 擔任過軟體、網站工程師,在職場上,我曾經帶領小型團隊開發產品,並負責與客戶溝通。

我長期扮演程式訓練講師的角色,無論是在線上、線下都有我的足跡。最後,我在 AppWorks School 擔任網站技術導師:帶領、陪伴有志於轉職的朋友,進行嚴格的訓練,成功入行,取得第一份前端、或後端工程師的工作。

在將近兩年半的導師經歷中,有幸認識了一群勇於冒險、目標清楚、努力不懈、且心存善念的人們。前幾個月,我離開了職場,然而,這些人在我心中,卻留下了無法抹滅的記憶。

我總是想著,這樣的一群夥伴,應該可以做得更多吧!

這就是「軟體工程師扶持計畫」的創立基礎:我心心念念的,想與一群志同道合的夥伴,幫助在台灣軟體產業中的人們,創造更多的價值。

技術交流,聚會現場

我們定期聚會,交流技術知識,職場八卦。我們邀請職涯顧問,來分享長期的職涯規劃。我們將會一起協助更多有興趣進入軟體開發領域的朋友,獲得一展長才的機會。

我期待,更多人對這樣的計畫有興趣,更多朋友可以來加入這個計畫,以下連結是計畫的網站,歡迎大家參觀:

更多關於軟體工程師轉職的文章


選擇一個程式語言,並且開始學習,是所有軟體工程師的共同入門方式。

如果想成為網頁前端工程師,學習 HTML 和 CSS 以及 JavaScript;若是後端工程師,則可以根據自己的喜好,學習 Java、Python、PHP 等等族繁不及備載;如果是 Android 應用程式,學習 Kotlin;若是 iOS 則學習 Swift。

對於這麼多的領域技術,初心者很容易產生選擇障礙,甚至在某個技術學習一陣子之後,不斷的懷疑當初的選擇。我們總是想投入一個最有前景、最適合自己的領域,然而,又有誰能告訴你答案呢?

Photo by Pankaj Patel on Unsplash

技術領域的選擇

我想提供一個清晰的訊息給大家:只要是能被非專業人士認識的程式語言,幾乎都會是在當下的時空背景中,很好的入門選擇。就以 2020 年來說,無論是 Python、JavaScript、C++、Java 都是相當好的語言教材。

就以傳統資工系的教學來看,有些學校大一學的是 C、有些學 Java、有些學 Python 和 JavaScript,然而這些學校教授做的選擇,並非影響學生未來發展的關鍵。

遵循興趣和直覺,選擇之後,無怨無悔的全心投入,就會是最好的方向。初期的程式語言選擇,對於長期的職涯發展沒有絕對的影響力。

學習資源的選擇

在網路上、書店裡、教室中,程式語言入門的教學內容非常非常的豐富。甚至許多優質的教學課程,免費開放給有心的人學習。

常見的問題是:我到底該選擇哪一個教程才是最好的?資深大大們推薦哪一本書?不,你應該選擇最適合的,而不是去探尋別人口中最好的課程。

重點不在教材內容的多寡粗細,而在於對教學方式的接受程度。

程式語言入門內容其實大同小異,不同的單位、不同的導師其實能提供的差異性很有限。因此,找一個主觀感受上最舒服、最喜歡、最能讓你有動力完成整套課程的教學,反而會是影響你學習成效的關鍵。

學習的目標

初期階段,主要的學習目標是:工具和語法的 100% 熟練。

程式語言的學習,在進入複雜的邏輯之前,首要是對工具、語法的熟練。軟體工程師有兩個主要的核心:其一是技藝的打磨;其二是知識的學習,兩者缺一不可。

技藝層面的重要性,很容易被初學者忽略。寫程式就像做木工,看了再多技巧介紹的書籍影片,也無法成為一個手藝精巧的木工師傅,除非大量的親手操作練習。

如果英文打字還有點慢,那就不要期待和其他人有一樣的學習速度;如果對基本語法的運作流程沒有正確的了解、沒有嘗試撰寫程式解決問題,後面所有的學習都像海市蜃樓,靠近就會消失。

許多課程有附帶作業,許多導師會提供每個主題的延伸挑戰。這些額外的、需要你獨立進行的練習,會是初期的學習中,最重要的部份!

保持對細節的耐心,長期打磨練習,才會有所得。

選你所愛,愛你所選,是最好的心理建設!像個木工、像個藝術家,訓練自己重視創作過程中的每個細節,是最好的學習心法。

更多關於軟體工程師轉職的文章


大家好,我是彭彭。過去十多年來,長期從事程式教育,從開始的 Java、JavaScript 網站前後端開發,一直到後來的 Python、Golang、以及偏向商業分析的 Google Analytics 都是我有觸及的領域。

Photo by Cosmic Timetraveler on Unsplash

過去兩年半,我在 AppWorks School 陪伴將近一百位想轉職成為前端、或是後端工程師的人們。用完整半年的時間,從無到有,成功獲得第一份軟體工程師的工作。

過程中,我的身份是導師、是書僮、也是朋友。每天每天,大家努力前進,奮鬥不懈的模樣,深深烙印在我的腦海中。以至於事後,閒暇之時,總會想起某些曾經發生的故事,想起某些無法忘懷的感受。

這一切,是我著手撰寫這篇文章的濫觴。

雙倍努力還不夠

在這裡,第一個想做的,是打破所有天真的想法:無論想轉職成為前端工程師、後端工程師、手機 App 開發工程師、還是任何泛軟體工程師的職位,都可預期會是一段非常、非常困難的過程!

這是一個技術職位,薪水或許不到頂級,但通常也不會太差,擁有其他行業都難以媲美的自由風氣。在求職市場上,你要面對的是已經學習程式開發 4 ~ 6 年的應屆畢業生,以及那些可能擁有 1 ~ 2 年工作經驗的初階工程師。

沒道理,自學 1 年,就拿到工作吧?這世界還是有些基本的規則存在。除非,我們 2 倍努力。哦,不對,需要 4 倍以上的努力!

努力可能白費

轉職成為工程師這條路,在人生中,絕對是一個風險事件。可能轉職不成,連寶貴的時間、機會成本都賠了進去。默默地,回到原來的地方,心想:至少我嘗試過了。

這樣,你甘心嗎?

從樂觀一點的角度來看,我非常同意,所有努力都會一點一滴的累積。然而,殘酷的現實是:累積的能力若沒有達到一定的高度,滿足求職的基本需求,在就業市場上就無法展現出任何價值。

這是一個從 0 到 1 的艱苦過程。

沉潛、忍受,長時間的努力,被市場忽略、被他人否定,直到累積的能力突破臨界點,才苦盡甘來。很多人,撐不到這個最後時刻。

多變的就業市場

軟體工程師這個行業,本質上是多變的,也正因為多變,所以才有那麼多機會不斷的釋出,讓大家有追夢的可能性。

轉職者的劇烈不安在這個領域中是顯而易見的。持續演進的技術,持續變化的職務要求,我們怎麼能確定現在努力學習的東西,在未來的三年,依然有意義?

我面對過無數次這樣的焦慮,我的回答也千篇一律:沒有人能保證你的選擇是正確的,只能義無反顧,並且準備好再努力一次!能夠把變化當成常態的人,最適合這個領域。

你,準備好了嗎?

行前準備

請自我檢視以下每一個問題,符合越多描述,你越有機會成功轉職,踏入這個有趣、好玩、又殘酷的領域:

  • 你徹底放棄所有天真的想法和各種轉職廣告中宣傳的成功捷徑。
  • 你只是一個普通人,不是秋森萬,任何特例都與你無關。
  • 你準備好用半年以上的時間,心無旁鶩的學習相關技能和知識。
  • 你能排除萬難,沒有任何藉口,每天持續學習 6 小時以上。
  • 你能忍受自己的學習成果,被別人批評的一文不值。
  • 你能在三天內,解決任何碰到的技術困難,不接受任何拖延的理由。
  • 你有良好的財務規劃,應付短期內無法順利找到工作的困境。
  • 你有無論如何都不願意走回頭路,不想認輸的自虐傾向。

誠摯的,歡迎你加入我們 :)

更多關於軟體工程師轉職的文章


在程式開發的過程中,透過建立特殊的資料結構以讓我們能使用 Key 直接對應到 Value 的資料,是非常常見的動作。

JavaScript 的開發者長久以來,使用原始的物件 (Plain Object) 來滿足這方面的需求。但,畢竟物件設計的初衷,不是專門用來滿足鍵值對應 (Key-Value Pair) 的運算情境。因此,總有那麼些缺憾。

近年,我們終於擁有了一個特製的 Map 物件,提供最佳化過的 Key 和 Value 對應的資料結構。以下就來介紹這個 JavaScript ES6 中最新的 Map 物件,給大家認識認識嘍。

Photo by Sandy Millar on Unsplash

一、基本使用方法:

在 JavaScript 中使用 Map 物件主要有以下三個步驟:

1. 建立 Map 物件:

let map=new Map();

2. 將鍵值對 (Key-Value P …

Chao-Wei Peng

Founder and Web Instructor. Welcome to My Website: https://training.pada-x.com/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store