顯示廣告
隱藏 ✕
※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2018-04-06 07:16:35
看板 Soft_Job
作者 brianhsu (墳墓)
標題 Re: [請益] 離開Web開發的建議
時間 Thu Apr  5 10:09:17 2018


※ 引述《m13m13m (奇怪 還沒收到??)》之銘言:
:
:    工作上遇到一層不變的薪水, 和難以跨越的門檻(做某一個框架
: 幾年, 想換到另一個想去的公司但是框架不同, 好的話,年資是從新算,
: 常常是遇到根本沒機會, 即戰力第一. 久而久之,路變得有點窄.
: → m13m13m: DevOps/SQL 是好建議,正在點docker/aws, SQL command      04/04 21:20
: → m13m13m: Argos:想出國看看, 我不想當嘴炮的人                     04/04 21:20
: → m13m13m: oneheat: 騰訊嗎. 語言框架不對, 第一關就無法pass了      04/04 21:21
: → m13m13m: 假設我PHP很多年,要去弄node.js/ java也是從頭算年資.     04/04 21:22
: → m13m13m: 從頭開始學. 另外換一個語言不可能只要幾周, 比如c++      04/04 21:23
: → m13m13m: 學很多你要保證你每一個都能一直跟上去最新的工具         04/04 21:23

這一串看下來,感覺你好像很糾結在語言或框架的熟悉度就是即戰力。

但出來久了,很多時候你會發現其實大家真的在用的東西都是很簡單的部
份的,也就是傳說中的只用到 20%  的功能,有 80%  是用不到的。

當然有把語言和框架用到出神入化的人,但多數的時候反而都是很基本的
部份,有的時候甚至會覺得這是好事,框架有他方便的地方,但通常藕合
度比較高。我現在反而比較喜歡不過度依賴框架的程式碼。


所以你會發現大家會覺得你想加薪,結果想出來的方式是跳框架很奇怪。

即戰力是可以從不同的面向來看的,舉例來說,當今天你發現你家用 PHP
做的做流量統計服務(類似 GA 的服務)的網站,效能撐不住了。開個網
頁要四五分鐘還開不出來,這個時候來了兩個人:


A:「嘿,我做過工廠自動化數據分析報表的網站喔。咱們的資料量是每個
機台最慢每秒有一則統計輸出,工廠有一百台機台,二十四小時開工,所
以每天有約八百萬筆資料產出。我們的網站報表數據基本上是即時的,不
會差距三分鐘,網頁讀取速度不會超過一秒。喔,我們的系統是用 Java
實作的。」


B:「我有五年 PHP 的經驗喔,我 Laravel 很熟喔。我做過很多 CRUD 的
網站喔。」

請問如果你是主管,你會覺得哪個對你們公司才是即戰力呢?我想這就類似
上一篇回文裡 qrttl 大大提到的套路。因為做過,所以知道這個問題大致
上怎麼解,而很多問題的本質,是與該專案所使用的程式語言或框架沒那
麼相關的。


像我基本上都是在 Java 相關的專案與工作打滾,但也去面試過資深 PHP
工程師的職缺,然後問與考的東西大部份都與 PHP 無關,而是在於各式各
樣的「套路」。例如 MVC 的基本概念,XSS 怎麼防,SQL Injection 怎麼
防,怎樣的問題你會怎麼解,API 你會怎麼設計。我 PHP 是研所論文在用
的,之後出來工作七八年,完全沒在用,甚至沒用過任何 PHP 的框架。


講實話,如果沒有速查表和參考資料,你叫我從頭寫 PHP 我大概會寫不出
來。但最終我有拿到 Offer,而且也還不錯,只是經過一些考慮後還是決
定繼續待在 Java 這個領域。


至於你說的第一關被刷掉,我想履歷和面試時的應對可能有比較大的關係,
特別是面試,不只是你問我答,也需要自我披露啊!面試官問的時候,你
可以在你的回答裡延伸出你練過什麼套路,解過什麼問題,而且展現出你
理解的是這個問題的基礎原理,而不是只是瞎猜。


舉例來說,你們的解法是加開 Instance,那為什麼要加開,是 CPU Bound
還是 Memory Bound 還是 IO Bound?你們是用什麼方式決定是否要加開
Instance,怎麼做 Profiling 怎麼做 Benchmark?這些也都是套路的一
部份,而且也不會跳語言或框架就會有太大本質上的改變。


那有沒有跳語言和跳框架即戰力就下降的狀況?也是有的,例如你現在叫
我去寫 NodeJS ,我肯定寫得不好也沒有即戰力,因為和我最熟悉的典範
是不同的。


PHP 和 Java 的世界裡,多數都是 Multi-Thread / Blocking  的操作,
迴圈什麼隨便用。

但 NodeJS 是個完全不一樣的世界,他的典範是 Single Thread / 非同
步呼叫模式,基礎的思考方向就不一樣,解題的方式也會不同,如果我用
Blocking 的思考方式去寫 NodeJS,結果肯定很慘烈。


這種的我覺得跳語言和跳框架就比較有意義,因為學到的是另一種解問題
的思維。

而有一些問題,在某個典範下可能很難解,但在另一個典範會比較容易,
例如這幾年很火紅的用 Functional Programming 的典範來解決 Concurrent
問題等等。

最後,這一陣子決定要花點時間做個 Side Project 當做這幾年工作成果
的總覆習,於是列出了一些這個專案想要達成的目標,大致上如下:

  - TDD,測試覆蓋率 90% 以上。
  - 乾淨的架構,核心邏輯與資料庫、框架等等嚴格分割。例如資料儲存
    可以在不依賴框架的情況下,隨時抽換 NoSQL 或 RDBMS。
  - 架構上有足夠的彈性,可不靠 Middle Ware 就能做到 DB Sharding。
  - 架構上有足夠的彈性,可不靠 Middle Ware 就能做到資料庫讀寫分離。
  - 證明 API Server 可以處理 C10K 的問題。
  - 可以做到網站與 APP 的資料雙向同步。
  - 能夠做到快速部署,快速建立開發環境,模擬新人進來時候的狀況。

結果列一列之後,發現多數都是和語言 /  框架無關的問題,而是在系統架
構上要怎麼設計,而這些設計原則,不太會因為換了語言或框架就改變的。

以上是在 Backend  打滾了幾年後的一些想法,給你參考看看。


--
   ~                 白馬帶著她一步步地回到中原。白馬已經老了,只能慢慢地走,
  'v'    Brian Hsu   但終是能回到中原的。江南有楊柳、桃花,有燕子、金魚……
 // \\   ( 墳 墓 )
/(   )\              但這個美麗的姑娘就像古高昌國人那樣固執。 【白馬嘯西風】
 ^`~'^
   http://brianhsu.moe               『那都是很好很好的,可我偏不喜歡。』

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.72.39
※ 文章代碼(AID): #1QnOLJ7S (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1522894163.A.1DC.html
vi000246: 實用推1F 04/05 10:16
pttworld: 原文是跳出web, 這一串都不是跳出的2F 04/05 10:17
pttworld: 而以換領域不是即戰力很正常,這一串都沒人切中要害
brianhsu: 原 PO 的根本目的在加薪,跳不跳老實說沒什麼差……4F 04/05 10:25
brianhsu: 待在熟悉的領域談加薪還比較容易些。
wildli0422: 推推6F 04/05 11:08
qrtt1: 真正該跳出來的是那個限制自己發展的思維啊。7F 04/05 11:14
qrtt1: 往哪個方向跳都好,但舊的方向驗證了幾年沒有收到好的效果
qrtt1: 主題的原 PO 也該試試別人的方法了。
※ 編輯: brianhsu (36.231.72.39), 04/05/2018 11:17:45
qrtt1: 相當同意 @brianhsu 說的,在同領域的難易度較高。只要不10F 04/05 11:17
qrtt1: 把單純把 web 只想成是單純投入個人的生產力,還包含了架構
qrtt1: 與如何維持服務。他是一整組不斷演進的,一直換框架,換領
qrtt1: 域,只是在玩不同遊戲的新手村而已。
qrtt1: 在同一個領域還有個明顯的好處是,你 credit 夠高的話,會
qrtt1: 有機會,且有人願意冒險讓你先站在目前的基礎上,做跨領域
qrtt1: 的實驗。例如,其他文討論到的 py -> go,或其它的替代解法
OSDBNetwork: 有實力的人,寫出來的文章就是精彩.17F 04/05 11:41
rabido: 大大可以分享一下決定繼續待在Java領域的原因嗎?18F 04/05 11:52
stupid0319: 推,有實作基礎比較重要,程式的語法跟框架反而好學19F 04/05 11:52
holmes2136: 力推,有很多東西是不同語言可通用20F 04/05 11:57
peanut97: 你一定是文中裡的A21F 04/05 12:19
qweasd777: 大推22F 04/05 12:30
Vendy: 因為有jvm很多玩具,不僅僅java吧XD23F 04/05 12:39
DirtyVegas: laravel那段真是中肯 偏偏老闆思維只會在意你會不會使24F 04/05 12:41
DirtyVegas: 用
brianhsu: 樓上答對了,JVM 太多玩具玩不完。XD26F 04/05 12:41
DirtyVegas: 很少會在意你彈性處理問題的思維27F 04/05 12:42
jonyig: 推28F 04/05 12:47
brianhsu: 當然比較喜歡現在公司薪資結構和辦公室環境也是很現實29F 04/05 12:53
brianhsu: 的一環啦。直接年薪 / 12,不發年終的公司比較少,但我
brianhsu: 喜歡。XD
johnny94: 這個版需要這種文章多一點32F 04/05 13:52
abccbaandy: 好奇真的有人每份工作語言都不同的?像這篇最後也沒跳33F 04/05 14:02
abccbaandy: PHP阿...

不知道算不算啦跳……

第一份工作:Android 手機 BSP Kernel Driver,C 語言。
第二份工作:Java / JSP 網站後端。
第三份工作:Scala 網站全端 / Scala 桌面程式 / STM32F429 與 8051 等單晶片控制硬
體 IO,收發 RS232 訊號等樣樣來。
第四份工作:Java / Play Framework 網站後端。

然後切換的過程中,程式語言框架反而是最簡單的部份……我只記得我好像燒掉兩片 STM
32F429 呢,和不知道多少個機板呢。囧。

m13m13m: 謝謝大大的指點,看來您工作外花很多心思在系統設計的學習35F 04/05 14:17
m13m13m: 因為我看到的許多case大多是會不會寫,系統層面的規劃大多
m13m13m: 欠缺考量, 所以會出現欠許多"技術債".我會想說換框架薪資
m13m13m: 待遇比較好是因為某些企業有偏好的語言框架, 那些企業的
m13m13m: 待遇十分好.  謝謝您的指點
※ 編輯: brianhsu (36.231.72.39), 04/05/2018 14:29:52
abccbaandy: 除了2跟4其他也差太多XD  這樣履歷拿出去不會被質疑嗎40F 04/05 14:35

第一份半年,多數在維護和 debug,沒啥好講。大學專題做 Linux Kernel,所以
不太會被質移,而且才半年,多數知道是剛出社會方向不定。

第三的話,桌面程式我本身就有開過個人專案,嵌入式系統的部份,我講得出整個
系統架構的和專案的一些細節啊,所以還沒被質疑過。畢竟小公司,一個人抵  N
個人用,什麼都要碰很正常啦。
※ 編輯: brianhsu (36.231.72.39), 04/05/2018 14:44:33
pttworld: 問題會在第一份切入第二份,我當初組語轉Java薪3萬141F 04/05 15:52
CCben: 推42F 04/05 17:32
MOONY135: 第一份sas 第二份c++XDDD 覺得追語言沒啥用43F 04/05 19:40
avans: 推心得!44F 04/05 19:52
fayhong: 推!內功深厚的高手45F 04/05 21:16
jingyang: 樓上有人提到,我換工作幾乎每次都不同語言,C++->pyth46F 04/05 22:56
jingyang: on->Java->node->golang->php,語言只是工具,工作久了
jingyang: 看的是你的 domain knowhow,語言特性的重要性相對來說
jingyang: 低很多
a8989332: 初期是工具使用者 後期要練到架構設計者!50F 04/05 23:49
NodeWay: 好文推 我是覺得能掌握多種語言也是實力的一部分51F 04/06 00:54
NodeWay: 舉例來說就像寫網站不能不懂js 不同需求有其適合語言
lturtsamuel: 不用換工作 新創公司不同專案可能框架就不同了53F 04/06 03:02
lturtsamuel: 因為都是跟人合作 別人用啥就用啥

--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 122 
作者 brianhsu 的最新發文:
  • +25 Re: [閒聊] 人品不好不要買 Pro 手把和 L 鍵賭 - NSwitch 板
    作者: 118.165.48.91 (台灣) 2021-01-21 20:41:08
    上來報告一下最新的狀況,和繼續來勸世。 和 momo 客服反應後,他們讓我退貨第二隻手把了。 然後不知道是不是我賭性堅強,加上還是想要有完整的 Switch 體驗, 我決定再試一次。既然不少人都說 m …
    61F 26推 1噓
  • +20 [閒聊] 人品不好不要買 Pro 手把和 L 鍵賭 - NSwitch 板
    作者: 202.89.121.110 (台灣) 2021-01-18 12:56:51
    話說 Switch 也買了好幾年,一直都是用 JoyCon,沒特別想買 Pro 手把, 但這次 MHR 玩了一下會兒後,想起大家都說 Pro 手把手感很好。雖然說我 也是有八位堂的轉接器,但實際使用下 …
    34F 20推
  • +26 [請益] ROG B550F-Wifi 和技嘉鳥頭 Pro AC - PC_Shopping 板
    作者: 202.89.121.109 (台灣) 2020-12-21 12:26:41
    事情是這樣的啦,我上個月貼了一個菜單文,主要想組 5900X 香香機, 但 CPU 根本買不到,所以也一直沒組。 之前本來是想要挑 ROG B550F Gaming(WIFI),主要是想挑一塊 B55 …
    68F 27推 1噓
  • +118 [爆卦] 沙烏地阿拉伯早就調降簽證費用 - Gossiping 板
    作者: 61.228.14.71 (台灣) 2019-09-16 20:46:31
    小弟我 2014 年柯粉轉 2019 年柯黑啦,聽說有一份最近有一份神奇 ID 的名單, 想說像我這樣柯粉轉柯黑的叛徒,不在名單上的話,這名單就太不像話了! 然後看了一下,果然在名單上呢!還是 B7 …
    232F 128推 10噓
  • +118 [問卦] 我明明是柯黑為什麼從B7降到W7啦? - Gossiping 板
    作者: 61.228.14.71 (台灣) 2019-09-16 20:46:31
    小弟我 2014 年柯粉轉 2019 年柯黑啦,聽說有一份最近有一份神奇 ID 的名單, 想說像我這樣柯粉轉柯黑的叛徒,不在名單上的話,這名單就太不像話了! 然後看了一下,果然在名單上呢!還是 B7 …
    232F 128推 10噓
點此顯示更多發文記錄
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇