Re: [請益] php web 轉職建議
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 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1696298904.A.F30.html
推
10/03 10:57,
7月前
, 1F
10/03 10:57, 1F
我倒是不會這麼武斷地說「PHP 已死」這種話,畢竟這個生態系上還是有許多人為此而努力著。
我仍然是喜歡 PHP 的,但對它的發展不抱樂觀的態度,無論是官方或非官方的生態皆然。
推
10/03 11:33,
7月前
, 2F
10/03 11:33, 2F
→
10/03 11:33,
7月前
, 3F
10/03 11:33, 3F
→
10/03 11:34,
7月前
, 4F
10/03 11:34, 4F
→
10/03 11:34,
7月前
, 5F
10/03 11:34, 5F
→
10/03 11:34,
7月前
, 6F
10/03 11:34, 6F
Node.js、Go、Python 也都是免費的,有些時候不一定是因為成本考量才用這些技術
→
10/03 11:58,
7月前
, 7F
10/03 11:58, 7F
推
10/03 12:02,
7月前
, 8F
10/03 12:02, 8F
Rust 是個有趣的新興語言,它承襲並改進了很多 C++ 的缺點,如果你本來是個 C++ 的開發者可能會覺得很容易上手。
它用 Ownership 管理記憶體的方式是建立在開發者對於記憶體的申請與釋放有著足夠完整的概念才比較好掌握,如果是習慣了 GC 的開發者可能會覺得它的編譯器超級靠杯,整天在那邊擋著擋那的。
※ 編輯: MoMoShota (125.227.27.45 臺灣), 10/03/2023 12:13:07
→
10/03 12:22,
7月前
, 9F
10/03 12:22, 9F
→
10/03 12:23,
7月前
, 10F
10/03 12:23, 10F
→
10/03 12:45,
7月前
, 11F
10/03 12:45, 11F
→
10/03 12:47,
7月前
, 12F
10/03 12:47, 12F
https://imgur.com/a/4eKqNFZ
哪間徵才網站就不說了,整張列表裡算月薪都是從 40K 開始算,上面寫 45K 算是客氣了
我也知道一定不乏高薪的 PHP 職缺,也一定存在低薪的其它語言職缺,但看下去用 PHP 的低薪情況比其它語言多不少
→
10/03 12:52,
7月前
, 13F
10/03 12:52, 13F
→
10/03 12:55,
7月前
, 14F
10/03 12:55, 14F
推
10/03 12:55,
7月前
, 15F
10/03 12:55, 15F
承蒙惦記,其實那篇文發出來後不久後我就跟公司結束合約,主要是因為原本要做的東西都差不多告個段落,而且我也沒有轉正的意願。
之後投了一間用 Go 的公司,所以現在專職在寫 Go;不過我算是比較隨興的人,搞不好哪天跳去寫 Python 或去賣雞排也不是沒可能
推
10/03 13:25,
7月前
, 16F
10/03 13:25, 16F
※ 編輯: MoMoShota (125.227.27.45 臺灣), 10/03/2023 13:59:40
推
10/03 13:52,
7月前
, 17F
10/03 13:52, 17F
→
10/03 13:52,
7月前
, 18F
10/03 13:52, 18F
→
10/03 14:10,
7月前
, 19F
10/03 14:10, 19F
→
10/03 14:53,
7月前
, 20F
10/03 14:53, 20F
→
10/03 15:13,
7月前
, 21F
10/03 15:13, 21F
→
10/03 15:13,
7月前
, 22F
10/03 15:13, 22F
→
10/03 15:13,
7月前
, 23F
10/03 15:13, 23F
→
10/03 15:28,
7月前
, 24F
10/03 15:28, 24F
→
10/03 15:29,
7月前
, 25F
10/03 15:29, 25F
→
10/03 15:30,
7月前
, 26F
10/03 15:30, 26F
→
10/03 15:31,
7月前
, 27F
10/03 15:31, 27F
→
10/03 15:32,
7月前
, 28F
10/03 15:32, 28F
→
10/03 15:32,
7月前
, 29F
10/03 15:32, 29F
→
10/03 15:37,
7月前
, 30F
10/03 15:37, 30F
→
10/03 15:38,
7月前
, 31F
10/03 15:38, 31F
推
10/03 15:59,
7月前
, 32F
10/03 15:59, 32F
推
10/03 17:43,
7月前
, 33F
10/03 17:43, 33F
→
10/03 17:43,
7月前
, 34F
10/03 17:43, 34F
→
10/03 17:44,
7月前
, 35F
10/03 17:44, 35F
推
10/03 18:29,
7月前
, 36F
10/03 18:29, 36F
→
10/03 18:29,
7月前
, 37F
10/03 18:29, 37F
→
10/03 18:29,
7月前
, 38F
10/03 18:29, 38F
→
10/03 18:29,
7月前
, 39F
10/03 18:29, 39F
推
10/03 18:31,
7月前
, 40F
10/03 18:31, 40F
→
10/03 18:31,
7月前
, 41F
10/03 18:31, 41F
→
10/03 18:31,
7月前
, 42F
10/03 18:31, 42F
→
10/03 18:32,
7月前
, 43F
10/03 18:32, 43F
→
10/03 18:32,
7月前
, 44F
10/03 18:32, 44F
→
10/03 18:48,
7月前
, 45F
10/03 18:48, 45F
推
10/03 18:51,
7月前
, 46F
10/03 18:51, 46F
→
10/03 18:55,
7月前
, 47F
10/03 18:55, 47F
推
10/03 18:57,
7月前
, 48F
10/03 18:57, 48F
推
10/03 19:04,
7月前
, 49F
10/03 19:04, 49F
→
10/03 19:04,
7月前
, 50F
10/03 19:04, 50F
→
10/03 19:09,
7月前
, 51F
10/03 19:09, 51F
→
10/03 19:10,
7月前
, 52F
10/03 19:10, 52F
→
10/03 19:12,
7月前
, 53F
10/03 19:12, 53F
→
10/03 19:17,
7月前
, 54F
10/03 19:17, 54F
→
10/03 19:18,
7月前
, 55F
10/03 19:18, 55F
→
10/03 19:21,
7月前
, 56F
10/03 19:21, 56F
→
10/03 19:27,
7月前
, 57F
10/03 19:27, 57F
推
10/03 20:58,
7月前
, 58F
10/03 20:58, 58F
目前才剛到職一個月,其實要說有什麼體悟嘛……都還在試水溫階段吧
以 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 分支預測的可能耗損
推
10/03 21:02,
7月前
, 59F
10/03 21:02, 59F
→
10/03 22:04,
7月前
, 60F
10/03 22:04, 60F
→
10/03 22:04,
7月前
, 61F
10/03 22:04, 61F
→
10/03 22:22,
7月前
, 62F
10/03 22:22, 62F
※ 編輯: MoMoShota (1.171.139.138 臺灣), 10/03/2023 23:29:44
→
10/04 01:11,
7月前
, 63F
10/04 01:11, 63F
→
10/04 01:12,
7月前
, 64F
10/04 01:12, 64F
是的,很多功能是錦上添花
在會使用 GDB 之前,大學時期還不是一行行 printf 過來,沒有這麼多附加功能確實也寫得出程式。
不過會用工具跟不會用工具就會產生效率上的差距,身為一個開發者當然希望自己的開發體驗是好的。
→
10/04 04:01,
7月前
, 65F
10/04 04:01, 65F
→
10/04 04:02,
7月前
, 66F
10/04 04:02, 66F
→
10/04 04:05,
7月前
, 67F
10/04 04:05, 67F
→
10/04 04:05,
7月前
, 68F
10/04 04:05, 68F
我是本來就會寫 Python, Go, Node.js,不過都是一些 Side Project 或社群經歷,沒有實際工作經驗。
所以說跳 tone 跳很大,其實我覺得還好,大概就認真 K 個兩下午就可以回憶起來。
不過我最偏愛的還是純 C,但除了嵌入式或韌體廠似乎這種職缺比較少,而我也不太偏好這些領域
→
10/04 04:17,
7月前
, 69F
10/04 04:17, 69F
→
10/04 04:17,
7月前
, 70F
10/04 04:17, 70F
→
10/04 04:19,
7月前
, 71F
10/04 04:19, 71F
→
10/04 04:20,
7月前
, 72F
10/04 04:20, 72F
→
10/04 04:21,
7月前
, 73F
10/04 04:21, 73F
→
10/04 04:23,
7月前
, 74F
10/04 04:23, 74F
→
10/04 04:26,
7月前
, 75F
10/04 04:26, 75F
→
10/04 04:27,
7月前
, 76F
10/04 04:27, 76F
→
10/04 04:27,
7月前
, 77F
10/04 04:27, 77F
感謝您的資訊
不過還是澄清一下,我與 Vincent 並不是同一個人。
我們是在研究所認識的(中正通訊),我休學之後就跟他沒什麼交集,直到在 Rosetta 巧遇(對,世界就是這麼小)。
不過,如果你想把我們當成是同一個人也沒什麼問題,反正怎麼想是你的自由。
當時的面試題目是我們與其它同事一起完成的,實作題是由他主導,然後我追加了一些 Follow Up(不過 Follow Up 都沒有用到,殘念)
因為上一篇文是在公司老闆的同意下發出來的,因為我覺得版面上似乎都沒有以徵才者的角度的心得文,用公司的角度發文就不特別提誰誰誰的貢獻了
推
10/04 07:55,
7月前
, 78F
10/04 07:55, 78F
→
10/04 07:55,
7月前
, 79F
10/04 07:55, 79F
※ 編輯: 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
推
10/05 21:26,
7月前
, 80F
10/05 21:26, 80F
推
10/06 21:09,
7月前
, 81F
10/06 21:09, 81F
→
10/06 21:09,
7月前
, 82F
10/06 21:09, 82F
→
10/06 21:09,
7月前
, 83F
10/06 21:09, 83F
推
10/07 23:06,
7月前
, 84F
10/07 23:06, 84F
→
10/07 23:06,
7月前
, 85F
10/07 23:06, 85F
→
10/07 23:07,
7月前
, 86F
10/07 23:07, 86F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 3 篇):
請益
6
18