還在念大學的時候,我曾經去一家剛成立一年的小新創公司實習,職位是實習網頁工程師。
那這家公司有多小呢?我剛進去的時候,包含老闆,員工總數只有4人,2個共同創辦人及2個(實習)工程師,除了員工人數少以外,公司的資本額更是只有一百萬。
補充一下資本額的概念,資本額一百萬就是如果公司花錢請了一位年薪百萬的工程師,並且該年度公司沒賺錢的話,這間公司一年內就會破產準備清算的概念XD
實習網頁工程師的職責?
大概就是什麼都要做,前端、後端開發、伺服器設定維護、系統功能需求設計、回應客戶的問題⋯⋯等。
反正小公司嘛,也是是近去後才知道公司除了老闆以外,沒有其他正職工程師了⋯⋯(從此學會以後面試一定要問團隊組成XD)
再說的詳細一點,大概就是幫忙維護一套老闆用PHP及jQuery做出來的網站系統,PHP沒有使用任何框架,資料庫就是MySQL,沒用到什麼新潮的技術,唯一值得一提的大概只有主機是架在AWS EC2上,所以會碰到一些AWS的設定。
啊對了,我們有用FTP,不對,我是說我們把git當FTP用。
剛開始的時候,工作就是修復頁面上的顯示或是呈現的小bug,或是幫忙實作新功能、頁面。老闆經常會隨意拿一張紙,在紙上用鉛筆畫出他想要的樣子,來跟實習生討論他想要做什麼,讓彼此確認需求後再讓實習生們去實作。但是因為只是鉛筆草圖,頂多只能確認功能走向,還有很多細節都是不明確的,所以在實作的過程中,經常還要再另外提出來跟老闆討論。
實作的方式就是用jQuery刻出介面、並自己寫後端的PHP程式,開API給前端撈資料或進行動作,需要新的欄位就自己開phpMyAdmin上去新增。
等到功能完成了以後,自己大概手動測試一下沒問題,就可以請老闆再確認一下,他會按一按或看一看告訴你有沒有其他問題,如果沒有其他問題,就可以上線了XD
QA什麼的,沒有明顯錯誤的話等用戶回報再修就好了。
我學到什麼
硬實力
雖然這家公司的系統沒有用到什麼新潮技術,開發流程也是亂七八糟,但老實說,進入公司前,我只懂基本的程式設計(就是大學所學的科目),沒有碰過任何web開發,所以即便是這樣亂七八糟的開發方式,還是讓我對於web的知識有大躍進。
那我們沒有使用任何PHP框架,因此所有當代框架所擁有的功能,我們想要的話,就會自己實作,像是DB連線管理,所以其實在這一年的實習過程中,我寫了很多類似這樣的模組,並且還要想辦法套用到各種的頁面上,所以我在這樣的過程培養了一些對系統、架構設計的感覺。
軟實力
由於是跟老闆直接討論需求,所以更能理解老闆為什麼想做某些功能,以及這些功能可以替公司帶來什麼效果或影響,像是會帶來更多的客戶、或是可以降低營運的人力成本等。也更能理解為什麼老闆常常不能滿足所有人的需求,因為在有限資源的情況下,必須要做出取捨,讓資源做出最大化的利用。
另外一點是了解到溝通能力的重要性,以前對於工程師的想像就是完成需求方的工作就好,以為寫程式就可以躲在電腦後面,不需要一直跟人互動,但是後來發現,如果拒絕溝通,常常會做出跟老闆或客戶想像中有落差的功能,導致雙方不愉快,我覺得我做對了、不想修改,對方卻覺得我做出沒用的東西。
還有一點就是解決問題的能力。這套系統雖然是老闆自己開發的,但是老闆其實也不是在業界工作很久的工程師,所以很多問題他也是沒有處理過的,因此沒辦法迅速地給予答案或是提供做法。那為了滿足老闆的需求,實習生們必須要能夠自己找到問題的答案,或是自己想辦法釐清問題。
之後還會想去新創工作嗎?
其實這樣的工作方式及開發環境,老實講是有點雷的,但是當初是抱持著學習的心態去的,所以忍受度比較高。
但是反過來說,對於想要迅速提升自己的工作能力,或者是對系統、及營運想要有更全面的認知的話,就很適合去這樣的小型新創公司工作。
那我自己的話,如果還是作為工程師的角色,還是會考慮新創公司,但我會挑自己喜歡的題材,像是公司所在的產業或提供的產品。畢竟新創公司的自由度還是高了一些,成就感也高了一些,同事通常也是比較積極努力的,工作起來會比較愉快。