作者 MoMoShota (正太控)
標題 Re: [請益] php web 轉職建議
時間 Tue Oct  3 10:08:22 2023


TL;DR

我會選 1,換個語言。
最後我也選了這個。

---

我跟你的經歷差不多:

- 同樣是私立資工學士
- 也是一路 PHP 走上來

除了年齡差一點點之外,其它相關經歷大差不差,或許我的經驗能夠讓你作為借鑑。

大概在 2020 年,有天公司(上上一份工作)突然「啪,沒了」,當時我就有考慮幾種選擇:
1. 創業:沒有好的商業模式,而且我也自知不是那塊料
2. 繼續寫 PHP:畢竟從大二打工開始就寫 PHP,可以的話當然想待在舒適圈
3. 換個語言重新來過:當時 Nodejs 跟 Golang 如日中天,薪水大部份都比 PHP 職缺來得香

最後我選了繼續在新創公司寫 PHP,我不後悔這個決定,畢竟熟悉的領域讓我在工作與生活中取得很好的平衡

今年年中跟上一份工作解約之後,我又面臨了一次類似的選擇:而這一次我選了跳槽到 Golang。

我的理由有幾個:
1. PHP 的設計悖離時代趨勢(這個可以寫滿長一篇的,以後有機會再展開來說)
2. Laravel 大行其道,雖然這個框架讓 PHP 重獲活力,但它的發展政策讓我頗有微詞,到底哪來的自信推 livewire 想跟 Vue 搶市場
3. 薪資,前陣子滑到某徵才網站列了五、六間公司找 PHP/Laravel 工程師的職缺,45k,WTF 這個薪資找進來的真的敢用?

當然還有一些個人偏好上的原因,這邊就不佔用篇幅。

綜上所述,我個人推薦換個語言,有的時候在不同語言下可以獲得不同的視野;想要穩定就老牌的 Java .NET,想要學習就 Golang, Python, Node

最後說一個考研的想法:我認為唯有知道自己要什麼才值得唸研究所。
我們大部份人的生活就是跟著大家,國中、高中職、大學這樣一路上來,因為他們說「你需要」,唯有唸研究所這件事應該出於自己的意志做決定。

「為了更好的起薪」,去吧。
「為了學術研究」,去吧。
「爸媽說……」「公司說……」「大家說……」,如果是抱持這種心態的話我建議是想想。

我自己當年也是因緣際會下進中正通訊所,但一學期我就知道自己不是那塊料,於是就遞了休學申請。
直到去年上 Jserv 的課我才又想回去唸書,不過去年陽交大資工丁組沒上,也就先把這條路擱置,或許等十幾年後退休後再去唸也不遲

※ 引述《pvq212 (Malamute)》之銘言:
: 先感謝各位前輩的建議
: 背景:
: 26歲男,私立資工科大學士畢業
: 住台中
: 畢業後實習時的公司就是 php 的接案公司,一直到現在為止都是寫 php,在前公司除了
: code 也需要協助伺服器的建置方面,但感覺自己一直停在原點沒有進步
: 先提供一些自己的技術線或是專案參考,再麻煩前輩給建議是要轉換跑道還是補足什麼?
: 1. 後端語言:python, php
: 2. 前端框架:vue
: 3. server:docker, nginx , gitlab(ci/cd)
: 4. database: mysql, redis, mongodb
: 還有正在學習中但沒有在實戰中應用的 k8s 以及 elasticsearch
: 不會 css,也沒有設計感,但會寫 js
: 後端 python 用的較少,php 大部份框架都碰過,laravel (5~9)較熟,也了解過一些
: 架的設計模式以及生命周期
: 工作上有製作出一些比較有用到以上技術的案子
: 1. 物聯網
:    python 串接 modbus 協議寫入 mongodb,再用 workerman 實現 wesocket 提供客戶
: 連接查看
: 2. 外送
:     geohash 實現附近商家功能 + redis bitmap 每日簽到
: 3. 社群                                                                       :     群聊,私訊,等聊天室功能,用到了比較多的 redis 資料結構去輔助快取
: 以上專案都沒有寫測試,唯一有在寫程式時考慮測試的只有寫購物相關的案子
: 年近 30 也覺得開始該衝刺一下或是找個相對穩定一點的工作,還請各位前輩給我建議
: 1. 換其他語言入職請其他領域(韌體?) ex: golang、java、c 等,變成完全無相關?
: 的工程師重新學習
: 2. 國考,資訊類別
: 3. 繼續蹲 php 或是 web 領域,當小公司的主管職
: 4. 續讀碩士邊刷題,看有沒有機會進大廠


--
Sent from nPTT on my iPhone 14 Pro

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.229.107.164 (臺灣)
※ 作者: MoMoShota 2023-10-03 10:08:22
※ 文章代碼(AID): #1b6tUOym (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1696298904.A.F30.html
※ 同主題文章:
Re: [請益] php web 轉職建議
10-03 10:08 MoMoShota
10-03 14:10 y2468101216
testPtt: 原來php已死 曾經的jsp php asp三巨頭Q.Q1F 10/03 10:57

我倒是不會這麼武斷地說「PHP 已死」這種話,畢竟這個生態系上還是有許多人為此而努力著。
我仍然是喜歡 PHP 的,但對它的發展不抱樂觀的態度,無論是官方或非官方的生態皆然。

vi000246: php是免費的 mysql也免費 會用php當主力的公司都是成本考量 資金不多的 不像其他語言 只要有錢就有解決方案
通常都是新創比較愛用 等穩定成長了就變一堆技術債
畢竟剛開始都是找低薪菜鳥 就算後來有錢找老鳥
根基打壞了也很難救 所以 遠離php吧2F 10/03 11:33

Node.js、Go、Python 也都是免費的,有些時候不一定是因為成本考量才用這些技術

testPtt: rust值得學嗎 感覺mozilla什麼都推不起來7F 10/03 11:58
hermithsieh: rust我看程式碼也是蠻複雜上手的…8F 10/03 12:02

Rust 是個有趣的新興語言,它承襲並改進了很多 C++ 的缺點,如果你本來是個 C++ 的開發者可能會覺得很容易上手。
它用 Ownership 管理記憶體的方式是建立在開發者對於記憶體的申請與釋放有著足夠完整的概念才比較好掌握,如果是習慣了 GC 的開發者可能會覺得它的編譯器超級靠杯,整天在那邊擋著擋那的。
※ 編輯: MoMoShota (125.227.27.45 臺灣), 10/03/2023 12:13:07
superpandal: php正確使用方式以前就講過 邊看官方文檔邊自己造輪子才是正解9F 10/03 12:22
acgotaku: 台灣大型互聯網公司,影音串流公司核心服務都有 php
所以php職缺是不是只值45k 這就純屬你自己的經驗11F 10/03 12:45

https://imgur.com/a/4eKqNFZ
[圖]
哪間徵才網站就不說了,整張列表裡算月薪都是從 40K 開始算,上面寫 45K 算是客氣了
我也知道一定不乏高薪的 PHP 職缺,也一定存在低薪的其它語言職缺,但看下去用 PHP 的低薪情況比其它語言多不少

acgotaku: Laravel,nestjs...這些熱門框架雖然語言不同但根本孿生13F 10/03 12:52
tsaigi: 想去丁組當教授的廉價勞工嗎 嘻嘻14F 10/03 12:55
happy8649: 大大不是六月還在板上分享面試文找人嗎 跳槽這麼快XD15F 10/03 12:55

承蒙惦記,其實那篇文發出來後不久後我就跟公司結束合約,主要是因為原本要做的東西都差不多告個段落,而且我也沒有轉正的意願。
之後投了一間用 Go 的公司,所以現在專職在寫 Go;不過我算是比較隨興的人,搞不好哪天跳去寫 Python 或去賣雞排也不是沒可能

kimi112136: php 免費 mysql免費??這是啥外行說法啊?16F 10/03 13:25
※ 編輯: MoMoShota (125.227.27.45 臺灣), 10/03/2023 13:59:40
hegemon: 之前板上不是有個樂譜保存計畫在找php的?還限制以前寫java的不要來應徵?這樣可以去衝那個缺呀17F 10/03 13:52
vi000246: kimi大有什麼內行說法可以開導我一下嗎?19F 10/03 14:10
love99067333: 成本考量你應該說的是入門門檻低 免費是啥概念20F 10/03 14:53
Hsins: 遠離那些不用 Red Hat 或 SUSE 而用免費 Linux Distro 的公
(不要對上一條認真,抱歉…)21F 10/03 15:13
superpandal: 現有流行語言都是開源免費 協議略有不同而已 php能省錢是因為開發效率
基本上免費的linux穩定性沒比較差 有些甚至還有異想24F 10/03 15:28
nicehorse06: vi解釋下哪些是要錢的技術,新創不用27F 10/03 15:31
superpandal: 不到的東西是你在那些商業系統看不到的 甚至安全性28F 10/03 15:32
nicehorse06: 我理解好用的都免費,付錢是請人擦屁股29F 10/03 15:32
superpandal: 我的理解是付費是別人的形狀 免費是我自己的形狀 折騰的意義在於替自己客制化30F 10/03 15:37
testPtt: 免費好r 我也是vs2012/2013才開始投入c#32F 10/03 15:59
vi000246: 付費有人幫你搞定麻煩的部分 免費就要自己折騰囉 沒有那麼多佛心人幫你造輪子
如果你喜歡造輪子 那就當我沒說吧33F 10/03 17:43
kimi112136: 閣下應該不是碼農..所應該不知道我付軟體授權費用不會變成產品,我買win server不會憑空多一個網站,我買oracle 不會有人幫你開table,除非新創一開始規模就很大,不然授權費用在整體成本非常低…..36F 10/03 18:29
kevinyin999: Rust很讚 正在學 但台灣幾乎沒職缺40F 10/03 18:31
kimi112136: 在十幾二十年前會用php是因為他很多現成模組可以套用,在草創的時候可以快速產出產品進行驗證
所以php mysql免費就用他,只會出現在對程式完全沒概念的人口中說出41F 10/03 18:31
testPtt: 看微軟會不會出個R#我就真的加入rust45F 10/03 18:48
Arbin: Rust現在不只Mozilla在推吧46F 10/03 18:51
testPtt: 問題在mozilla推什麼東西最後都被別家產品打趴47F 10/03 18:55
viper9709: 推分享48F 10/03 18:57
philip80220: 微軟推rust推的很用力吧,還希望可以用rust來開發driver49F 10/03 19:04
superpandal: 在linux上免費與付費的系統組件多半是雷同的 所以你可以選擇要不要自己造輪子替換組件 免費中也一堆造輪子很不方便的  不是免費就一定得自己造輪子
但以上兩個付費的都採用rpm包 很明顯不是很鼓勵定製的系統 因近期centos事件後轉debian的也都是如此
debian也很久前就叛出簡化的配置引入systemd這東西免費與付費最大的差別在於服務 付費賣的就是服務51F 10/03 19:09
happy8649: 轉語言/換工作後有什麼體悟可分享嗎,文章好像沒提及58F 10/03 20:58

目前才剛到職一個月,其實要說有什麼體悟嘛……都還在試水溫階段吧
以 Go 跟 PHP 相差最大的我認為是開發體驗

1. LSP 的支援性

有用 VSCode 寫過 PHP 的就知道,即便裝了大大小小的插件,可能常常開發體驗還是東缺一點、西缺一點。
這也是我之後都用 PHPStorm 的主因,與其花時間折騰環境,不如花錢解決。
這很大程度上是因為 PHP 的 Lang Server Prtocol 支援度不佳(畢竟 PHP 目前都是社群自己跳出來做的,並不是官方提供的)

Go 就官方自己有實作 gopls。

2. Debug 的難度

即便是在 PHPStorm 上,如果想要下斷點、單步執行之類的 Debugging,需要經過一系列的設定(XDebug)
如果是在 VSCode 或其它編輯器上,那體驗更糟

Go 無論在 Goland 或 VSCode 上下斷點幾乎是開箱即用。

3. 測試的方便程度

在 PHP 中如果想要測試,通常會使用 PHPUnit 框架(或現代一點,用包裝過的 Pest)
它需要一些設定,雖然已經很簡化了,甚至給了某些工程師不寫測試的藉口

Go 則是在標準庫中就整合了 Testing 的功能,甚至還有 Benchmark 可以使用
順帶一提,最近才剛用 Benchmark 說明我改進過後的演算法相比原來快了 5 倍餘,所以對該功能有感

4. 對於底層的可掌握能力

我們知道,PHP 會直譯成 OPcode 然後執行,但實務開發上很罕有機會去碰到這些細節(或者說,這些細節對於 PHP 開發者並不重要)

Go 集成了一系列有用的工具,例如可以依賴 objdump 之類的工具去看編譯出來的組合語言
最近也利用這個功能實際去觀察 if else statement 及 bitwise 的執行差異,從而降低 CPU 分支預測的可能耗損

wulouise: rust看好的人很多吧,就是台灣沒職缺...59F 10/03 21:02
BoXeX: rust會想用的公司  大概就目前用c/c++
然後公司因為那些不安全的行為痛過  才會考慮吧60F 10/03 22:04
testPtt: 目前看rust都是底層為主 應用層感覺沒什麼推62F 10/03 22:22
※ 編輯: MoMoShota (1.171.139.138 臺灣), 10/03/2023 23:29:44
netburst: 以前都用np++寫PHP+FTP外掛的 根本沒那麼多毛
也是LARAVEL框架寫爽爽63F 10/04 01:11

是的,很多功能是錦上添花

在會使用 GDB 之前,大學時期還不是一行行 printf 過來,沒有這麼多附加功能確實也寫得出程式。
不過會用工具跟不會用工具就會產生效率上的差距,身為一個開發者當然希望自己的開發體驗是好的。

superpandal: xdebug就很不錯用了 設定也不難 反組譯就沒試過 可能php解釋器加參數或phpdbg可以解決
Go就是better c 確實不錯 但我不想被問為何跳tone這麼大65F 10/04 04:01

我是本來就會寫 Python, Go, Node.js,不過都是一些 Side Project 或社群經歷,沒有實際工作經驗。
所以說跳 tone 跳很大,其實我覺得還好,大概就認真 K 個兩下午就可以回憶起來。

不過我最偏愛的還是純 C,但除了嵌入式或韌體廠似乎這種職缺比較少,而我也不太偏好這些領域

Lushen: 這個ID有印象 上次在Backend台灣用分享一篇朋友起手
結果被起底就是原po本人的
這篇剛好提到中正通訊所 應該就是本人無誤
你fb留的blog上面就有那個面試題了
https://i.imgur.com/fdmqlPQ.png
在fb上面我朋友 ... 我朋友 ... 確實頗尷尬@@
在fb上發言的eq 有興趣可以去backend台灣朝聖
傳送門: https://bit.ly/3LMRGl7
這些應該都公開資訊XD69F 10/04 04:17
[圖]

感謝您的資訊

不過還是澄清一下,我與 Vincent 並不是同一個人。
我們是在研究所認識的(中正通訊),我休學之後就跟他沒什麼交集,直到在 Rosetta 巧遇(對,世界就是這麼小)。
不過,如果你想把我們當成是同一個人也沒什麼問題,反正怎麼想是你的自由。

當時的面試題目是我們與其它同事一起完成的,實作題是由他主導,然後我追加了一些 Follow Up(不過 Follow Up 都沒有用到,殘念)
因為上一篇文是在公司老闆的同意下發出來的,因為我覺得版面上似乎都沒有以徵才者的角度的心得文,用公司的角度發文就不特別提誰誰誰的貢獻了

jobintan: 真的選擇比努力重要,基本上PHP薪資比起NodeJS/Golang/Ruby/Python這四大新創愛用的後端語言,就是比較低。78F 10/04 07:55
※ 編輯: MoMoShota (125.227.27.45 臺灣), 10/04/2023 09:26:05
※ 編輯: MoMoShota (125.227.27.45 臺灣), 10/04/2023 09:43:55
※ 編輯: MoMoShota (125.227.27.45 臺灣), 10/04/2023 09:46:01
※ 編輯: MoMoShota (125.227.27.45 臺灣), 10/04/2023 09:55:27
--
作者 MoMoShota 的最新發文: