2015年3月24日 星期二

程式設計職崖探索(1):了解自己

了解自己適合甚麼職務


Context

最近開始注意職涯規劃與探索,一來是因為在電資領域摸索與學習了幾年,慢慢地希望能找出一個適合自己的領域,以下參考《Programming Interviews Exposed》這本書,摘要了幾個問題,能幫助程式設計人士釐清甚麼工作適合自己
Binary_Tech_Systems


了解自己(Know Yourself)

在不知道自己想要甚麼的情況下求職是沒有意義的,因此在你開始找尋你的工作前,有一些預備事項得先進行,舉例而言,只是成為一個好的編程人員(coder)是不夠的,你必須明瞭就業市場的需求與如何利用你的專業知識與技能去找到適切的工作
  • 你是系統工程師或應用程式開發人員嗎?
    • 系統工程師需要透過程式碼來維持系統的運行,有時得和非程式人員溝通
    • 應用程式開發人員主要是撰寫應用程式,供非程式專業背景的人士來完成他們的工作
    • 應用程式開發人員需要和非程式專業背景的人更頻繁的溝通
  • 你喜歡撰寫UI介面嗎?
    • 使用者介面設計是非常講究、挑剔,很容易受到批評與苛求
    • 考慮易用性、操作體驗以及跨平台(各類裝置、國際化),使得設計很難做到最好
  • 你是很好的除錯工程師嗎?
    • 如果你覺得在自己的程式中找出問題相當費勁,想像一下去解決別人的程式問題
    • 這需要強大的分析力與問題解決技巧。
    • 找出問題並且修復bug能得到極大的報酬,但很肯定的是這樣的工作並不是每個人都適合的。
  • 你喜歡程式測試嗎?
    • 測試也可稱為品質保證或QA
    • 找尋有技巧的測試員相當不容易,通常需要有撰寫自動化測試的程式編寫能力。
  • 你是系統架構師(architect)或者編程人員(coder)?
    • 如果你喜歡設計(這裡的設計比較偏向規劃、構思方面的能力)更勝於寫程式,作為一個軟體架構師可能對你比較有吸引力
    • 系統架構(architecture)的職務要能與許多人互動、可能較少或者完全不需要寫程式
    • 你需要對於如何撰寫程式有很好的理解以便成為一個有說服力與影響力的架構師
    • 除非你在軟體架構方面做了正式的訓練,不然通常你的發展路線會是先從寫程式開始,然後展現你在設計上的天賦與調適、安排各個專案之規劃的能力,才能成為一個架構師

非技術面的考量

  • 你對管理感興趣嗎?
    • 有些coder的長遠計畫是成為經理人等管理階層職務
    • 如果管理是你的目標,無論如何,你將必須去發展領導技巧以及展示你有足夠的經管能力去管理那些軟體開發能力和科技相關知識能力一樣好的人
    • 如果管理並不是你的目標,找尋有不錯科技職涯發展路線的公司,這樣你能為了升遷而不必專注在人事管理上。
  • 你想在大公司工作?
    • 大公司有許多優點,像是提供穩定的工作與職涯發展
    • 而非科技人士對於大公司的名稱與商標也有一定的認知
    • 另一方面,你可能對於官僚體系與嚴肅的風格感到窒息
    • 大公司彼此間的競爭相當頻繁
  • 你想在小公司工作?
    • 薪資會比較少
    • 在新創公司中較能保證往後的升遷(與也許更實在的酬勞)隨著公司的成長和成功
    • 反面而言,當然,小公司有更大的失敗風險,而你可能因此失去工作
  • 開源專案更適合嗎?
    • 主要的撰寫程式工作通常是私有的、閉源的專案。
    • 而開源軟體的開發提供了許多機會,讓人們去參與開源專案。
  • 你想要長期或短期的接案?
    • 有些程式設計師渴望改變,最多用幾個月的時間在每個案子上
    • 如果你喜歡短期的案子,而且不介意奔波、業務性質的短暫工作,承接公司的案子相較於常規性的組織團體工作會更有意義

相當重要的事情是對於這些問題,這裡沒有標準答案,但回答這些問題後,你能更確切的知道實際狀況,讓你能夠去找出適合且喜歡的程式相關工作

沒有留言:

張貼留言

此部落格主要作為學習研究、心得分享,歡迎大家討論指教...