研發or技術支持?美國IT人的觀點與思辨

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

  研發和技術支持哪個更好?這似乎一直是一個爭論不休的問題。這個問題你怎么看?不妨先來看看米國 IT 人怎么看。LZ 表示從中還是得到一定啟示的。

  以下為引述內容,不代表 LZ 個人或論壇觀點。  

  一名計算機專業的畢業生在論壇發起一個討論:

  我是一名計算機專業畢業生并已經申請了工作。我需要于兩周內在兩個職位中做出選擇:研發(純 coding)還是支持(Web 應用程序)?我好奇于這兩種職業的發展前景與從業壽命。鑒于當前的經濟形勢與成本縮減(外包等),我担心做出錯誤的選擇將會影響若干年后的薪資水準。入門級薪資沒有太大區別,我想知道未來哪一個會面臨更多的需求。

  LZ 摘選了米國 IT 人民一些耐人尋味的回復:

  作為一名有十年經驗的軟件研發人員,任何時候只要能遠離維護別人開發的代碼,我都會這樣做的。但是,似乎你說的這兩種職業都可能是編程的工作,所以我看不出來區別。關于從業壽命,我想沒有太大區別。我認為更應該關注職位描述,如果我是你,我會問問這兩者究竟會將我導向何方。越快脫離碼農(code monkey)對你來說越好:比如,分析(analysis),系統架構等等。職位更安全,薪資更高。碼農并不值錢,隨便拉個人都能做(LZ 表示并不認同)。只有對整個技術體系有深刻理解的人,他們的集成與設計所蘊含的知識才無可取代。即便有些東西被外包出去,你還是需要分析和設計。

  給樓上點贊。注意:設計與研發跟純寫代碼有本質區別。

  我會遠離嚴格的編碼類型的角色。支持工作會讓你從業務角度獲取有益的經驗,確定產品如何提供價值或從業務角度汲取失敗的經驗。支持角色也更容易轉換到其他團隊如銷售,服務,市場,產品管理等等。因為你在維護或修復問題時需要與這些團隊緊密合作。是一個在公司內部建立關系網的好機會。

  我要介紹一下編程這個工作。編程并不是每個人都能做的,需要有很好的邏輯思維。很多人認為程序猿需要與生俱來的能力,如果沒有天賦上一堆編程課也沒用。我基本上認同上述觀點。公司在選擇實習生時很看重 GPA,平均要求 3.0 到 3.5。如果一個職位申請者達到 50 至 100 那么 GPA 平均要求 4.0 也是很正常的。如果你的 GPA 是 2.4 或 2.8 這就會影響你選擇公司的類型和規模。我所效力的航空航天公司最起碼的要求是 3.0-3.5。我觀察到成功的軟件研發人員有某些共同特質:

  • 音樂天賦
  • 注重細節
  • 按照模塊順序思考問題
  • 數學好,邏輯化
  • 擅長搭建東西(小時候喜歡玩樂高)
  • 桌子很亂但又能迅速從中找到所需
  • 有創造力
  • 不喜交際(有小團體)
  • 小組討論中沒有高度的互動
  • 強迫癥
  • 以牛頭犬的韌勁完成既已開始的工作
  • 在完成任務時廢寢忘食
  • 對于愛好或游戲專注而又熱情
  • 對工作很有激情

  (有人 match 嗎?)

  我有三十五年的軟件研發經驗。以下是我的觀點:

  1. 教育 —— 大多數公司希望他們的研發工程師至少擁有學士以上學位。有豐富的經驗能夠更好的進入角色。學位不高那他的職業生涯將會受限。
  2. 研發工程師每天至少需要坐在桌前 8 小時以上。最終這會損害你的健康。
  3. 研發工程師更多的承受項目進度的壓力。
  4. 支持工程師更可能需要到處走動甚至要出差。
  5. 支持工程師工作可能讓更多遠離家庭。
  6. 研發工程師賺更多錢。
  7. 支持工程師將主要致力于解決研發工程師的問題。
  8. 研發和支持都可以是非常有價值的工作。

  如果可能的話,與已經在那家公司工作的家伙談談你會分到的具體工作職責和職業道路是什么樣的。有一點需要注意:在很差的經濟狀況下大多數公司不想雇傭有經驗的專業人士,取而代之他們想雇傭外包或應屆生以節約成本。但與此同時他們又希望員工工作能力等同于2-3 年工作經驗的人。

  你要做的事哪方面的研發(技術,架構,平臺)?

  有時候支持角色比研發人員更多接觸研發。比如作為研發你可能只工作于整個軟件應用的一個小模塊,而做技術支持你有機會為整個應用修復小 bug。如果你的支持角色只要求你與客戶溝通并且把 bug 交給其他部門那你也不會學到太多。所以必須了解職位的更多細節。如果你有一年的研發經驗你可以很輕易地轉向支持,但從支持轉向研發就沒那么容易。

  我會選擇研發。我做了支持而且隨時要準備 call out。你對應用不會有一個完整的藍圖,當他們轉向新的技術,你支持的那些東西就沒用了——而研發人員可以得到新平臺的很好的培訓。

  從研發你可以轉向設計和分析,業務分析,但支持將永遠被拋在后面做技術支持。同時應用維護以驚人的速度被外包給海外。

  首先要明確你的研發職責是什么。純編碼還是不要了因為這些年已經外包給印度了。你追求的應該是技術/功能設計的角色,這樣的工作包含業務需求分析并在架構中將之轉變成為可行的解決方案。這樣你可以獲取更多的業務經驗從長遠看來更為有用。

  如果你接觸的是基礎架構或信息系統管理,那么做支持也可以。理想的話你可以像管理方向發展。但剛開始壓力會比較大因為你有可能隨時 on call,整理遺留代碼以發現問題所在,由于時限緊迫而需要承受很大壓力。

  基本上你要學習軟技巧如分析,問題解決,以及溝通只能通過經驗積累。技術知識無論什么時候都可以學到。

  選擇研發而不要選研發維護。研發你有機會開發新的有趣的 feature 可能接觸更新的技術。做研發維護你只會支持現有的 feature 以及以前使用的技術。第二,你有可能要維護別人的代碼,如果沒有文檔或寫的不好就會很痛苦。當你發現代碼寫的很糟糕但你又不能重構或沒時間重構你就只能打上補丁。第三研發維護壓力更大應為你要為客戶解決問題。如果是一個嚴重的缺陷你就會碰上我說的第二個問題從而承受很大壓力。

  如果你僅僅考慮個人未來而不是具體的任務,我會建議你選擇能帶給你更好工作技能的職位。像他們說的,如果一個職位現在或將來能讓你接觸設計/架構,那將是一個很大的加分。人力管理或新的開發語言也是很大的加分。

  辣么各位,有認同的觀點么?


網載 2014-07-03 10:15:45

[新一篇] 羅永浩多年前的求職信,人家牛逼是種習慣

[舊一篇] 蘋果應用審核“聲聲慢”
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表