WHY I…當上軟件工程師

原文於charizine.hk刋登。

誰是軟件工程師 ?你一聽到軟件工程師這一詞,想到的是個怎樣的人?是個不修邊幅、害羞、不願和別人交談,只懂和電腦打交道的宅男宅女嗎?抑或是個對電子產品十分熟悉,當你購買電子產品時可以咨詢的專家?

軟件工程師的別名多得很,有些叫程式設計員,有些叫程序員,內地叫碼農。軟件工程師的日常工作是建構程式。大家都很熟悉Whatapps, Facebook, Angry Bird… 在互聯網上的一切,包括你手機上的遊戲,都是由軟件工程師構建出來的。

軟件工程師利用代碼(電腦看懂的命令)輸入程式,控制電腦去幫助人們做事。由Facebook上載相片,分享網站,玩遊戲等複雜功能,到簡單計算機的加減乘除,都是一個個的程式。這些程式有繁有簡,且並不限於在螢幕上的一切,很多實在的東西,就像鐵路的調道系統,都要靠電腦程式才能有效率地編排班次。沒有軟件工程師的參與,很多現今社會的便利根本不可能實現。作為一個軟件工程師,他們有着改變世界的能力。

不少人醉心軟件工程,卻是因為作品可能助你一夜致富。自從互聯網的普及,軟件工程師工作的影響以幾何級數上升。從前,軟件只能通過不同的載體,如軟盤,光盤等,用一傳一的方法發佈。現在,軟件通過互聯網,能夠讓全世界的人使用。Flappy bird正是近期的例子 -這個人們一玩就不能作罷的小遊戲,就是由一個住在越南的軟件工程師開發。軟件開發這行業裡,一個人的作品足令全世界趨之若驀。

當然,不是所有人都對名利有興趣的,很多人只求安穩的做自己喜歡的事。軟件工程師能涉獵的行業有很多,大至政府部門跨國企業,小至自由開發員,街邊或網上小商店,從金融業到運輸業,七十二行都有軟件工程師的位置。軟件開發其中一個重點,就是需求不停在變,今日合用的軟件,明天可能因為各種原因需要修改。 由此可見,軟件工程師的需求是不會消失的。 開發軟件需要對系統、電腦、或是某行業的業務流程有一定專業知識,不是誰都可以做。

當軟件工程師首要條件,就是有顆求學的心。軟件問題永遠有不同的解決方案,每一個方案都有不同的代價。不斷學習,對最新科技的追求,是一個軟件工程師的最重要特質。此外,電腦雖然很強大,但是電腦的死穴,是需要十分精確的指示,才能好好工作。一個錯誤的指令,就會令電腦程式「當機」,不可正常運作。對著海量的問題,軟件工程師一定要能「分開及征服」。把一個問題,分析成最細緻的小問題,這樣才能一步步把工作做完,電腦才聽話。

另外,開發軟件要求不斷創新。資訊科技日新月異,用家的要求天天不同,解決問題的方法工具亦要不停更新。因此從事這個行業,每天都和最新最先進的科技打交道。互聯網這個平台令世界上 所有軟件工程師交流心得、切磋技術,甚至合作研究。安坐家中也能和世界上最頂尖的開發人員交流,也是這個行業刺激的地方。

並非所有軟件都能由一個人完成-Facebook、Whatsapp、微信等,都是由一大群軟件工程師同心協力建構出來的。軟件工程師不論是面對同事客戶去協助解決問題,或寫工作紀錄文件及部落格文章,都十分需要和別人緊密溝通。科技日新月異,只有和別人交談才能獲取第一手資訊,不至落後於人。 想改變世界,不喜歡一成不變,喜歡解決問題,就是我當軟件工程師的原因。


Tagged in:

Get smarter in application development, machine learning, sometimes business, every Wednesday night.