作者MoMoShota (正太控)
看板Soft_Job
标题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 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1696298904.A.F30.html
1F:推 testPtt: 原来php已死 曾经的jsp php asp三巨头Q.Q 10/03 10:57
我倒是不会这麽武断地说「PHP 已死」这种话,毕竟这个生态系上还是有许多人为此而努力着。
我仍然是喜欢 PHP 的,但对它的发展不抱乐观的态度,无论是官方或非官方的生态皆然。
2F:推 vi000246: php是免费的 mysql也免费 会用php当主力的公司都是成本 10/03 11:33
3F:→ vi000246: 考量 资金不多的 不像其他语言 只要有钱就有解决方案 10/03 11:33
4F:→ vi000246: 通常都是新创比较爱用 等稳定成长了就变一堆技术债 10/03 11:34
5F:→ vi000246: 毕竟刚开始都是找低薪菜鸟 就算後来有钱找老鸟 10/03 11:34
6F:→ vi000246: 根基打坏了也很难救 所以 远离php吧 10/03 11:34
Node.js、Go、Python 也都是免费的,有些时候不一定是因为成本考量才用这些技术
7F:→ testPtt: rust值得学吗 感觉mozilla什麽都推不起来 10/03 11:58
8F:推 hermithsieh: rust我看程式码也是蛮复杂上手的… 10/03 12:02
Rust 是个有趣的新兴语言,它承袭并改进了很多 C++ 的缺点,如果你本来是个 C++ 的开发者可能会觉得很容易上手。
它用 Ownership 管理记忆体的方式是建立在开发者对於记忆体的申请与释放有着足够完整的概念才比较好掌握,如果是习惯了 GC 的开发者可能会觉得它的编译器超级靠杯,整天在那边挡着挡那的。
※ 编辑: MoMoShota (125.227.27.45 台湾), 10/03/2023 12:13:07
9F:→ superpandal: php正确使用方式以前就讲过 边看官方文档边自己造轮 10/03 12:22
10F:→ superpandal: 子才是正解 10/03 12:23
11F:→ acgotaku: 台湾大型互联网公司,影音串流公司核心服务都有 php 10/03 12:45
12F:→ acgotaku: 所以php职缺是不是只值45k 这就纯属你自己的经验 10/03 12:47
https://imgur.com/a/4eKqNFZ
哪间徵才网站就不说了,整张列表里算月薪都是从 40K 开始算,上面写 45K 算是客气了
我也知道一定不乏高薪的 PHP 职缺,也一定存在低薪的其它语言职缺,但看下去用 PHP 的低薪情况比其它语言多不少
13F:→ acgotaku: Laravel,nestjs...这些热门框架虽然语言不同但根本孪生 10/03 12:52
14F:→ tsaigi: 想去丁组当教授的廉价劳工吗 嘻嘻 10/03 12:55
15F:推 happy8649: 大大不是六月还在板上分享面试文找人吗 跳槽这麽快XD 10/03 12:55
承蒙惦记,其实那篇文发出来後不久後我就跟公司结束合约,主要是因为原本要做的东西都差不多告个段落,而且我也没有转正的意愿。
之後投了一间用 Go 的公司,所以现在专职在写 Go;不过我算是比较随兴的人,搞不好哪天跳去写 Python 或去卖鸡排也不是没可能
16F:推 kimi112136: php 免费 mysql免费??这是啥外行说法啊? 10/03 13:25
※ 编辑: MoMoShota (125.227.27.45 台湾), 10/03/2023 13:59:40
17F:推 hegemon: 之前板上不是有个乐谱保存计画在找php的?还限制以前写ja 10/03 13:52
18F:→ hegemon: va的不要来应徵?这样可以去冲那个缺呀 10/03 13:52
19F:→ vi000246: kimi大有什麽内行说法可以开导我一下吗? 10/03 14:10
20F:→ love99067333: 成本考量你应该说的是入门门槛低 免费是啥概念 10/03 14:53
21F:→ Hsins: 远离那些不用 Red Hat 或 SUSE 而用免费 Linux Distro 的公 10/03 15:13
22F:→ Hsins: 司 10/03 15:13
23F:→ Hsins: (不要对上一条认真,抱歉…) 10/03 15:13
24F:→ superpandal: 现有流行语言都是开源免费 协议略有不同而已 php能省 10/03 15:28
25F:→ superpandal: 钱是因为开发效率 10/03 15:29
26F:→ superpandal: 基本上免费的linux稳定性没比较差 有些甚至还有异想 10/03 15:30
27F:→ nicehorse06: vi解释下哪些是要钱的技术,新创不用 10/03 15:31
28F:→ superpandal: 不到的东西是你在那些商业系统看不到的 甚至安全性 10/03 15:32
29F:→ nicehorse06: 我理解好用的都免费,付钱是请人擦屁股 10/03 15:32
30F:→ superpandal: 我的理解是付费是别人的形状 免费是我自己的形状 折 10/03 15:37
31F:→ superpandal: 腾的意义在於替自己客制化 10/03 15:38
32F:推 testPtt: 免费好r 我也是vs2012/2013才开始投入c# 10/03 15:59
33F:推 vi000246: 付费有人帮你搞定麻烦的部分 免费就要自己折腾罗 没有 10/03 17:43
34F:→ vi000246: 那麽多佛心人帮你造轮子 10/03 17:43
35F:→ vi000246: 如果你喜欢造轮子 那就当我没说吧 10/03 17:44
36F:推 kimi112136: 阁下应该不是码农..所应该不知道我付软体授权费用不 10/03 18:29
37F:→ kimi112136: 会变成产品,我买win server不会凭空多一个网站,我 10/03 18:29
38F:→ kimi112136: 买oracle 不会有人帮你开table,除非新创一开始规模就 10/03 18:29
39F:→ kimi112136: 很大,不然授权费用在整体成本非常低….. 10/03 18:29
40F:推 kevinyin999: Rust很赞 正在学 但台湾几乎没职缺 10/03 18:31
41F:→ kimi112136: 在十几二十年前会用php是因为他很多现成模组可以套用 10/03 18:31
42F:→ kimi112136: ,在草创的时候可以快速产出产品进行验证 10/03 18:31
43F:→ kimi112136: 所以php mysql免费就用他,只会出现在对程式完全没概 10/03 18:32
44F:→ kimi112136: 念的人口中说出 10/03 18:32
45F:→ testPtt: 看微软会不会出个R#我就真的加入rust 10/03 18:48
46F:推 Arbin: Rust现在不只Mozilla在推吧 10/03 18:51
47F:→ testPtt: 问题在mozilla推什麽东西最後都被别家产品打趴 10/03 18:55
48F:推 viper9709: 推分享 10/03 18:57
49F:推 philip80220: 微软推rust推的很用力吧,还希望可以用rust来开发dri 10/03 19:04
50F:→ philip80220: ver 10/03 19:04
51F:→ superpandal: 在linux上免费与付费的系统组件多半是雷同的 所以你 10/03 19:09
52F:→ superpandal: 可以选择要不要自己造轮子替换组件 免费中也一堆造轮 10/03 19:10
53F:→ superpandal: 子很不方便的 不是免费就一定得自己造轮子 10/03 19:12
54F:→ superpandal: 但以上两个付费的都采用rpm包 很明显不是很鼓励定制 10/03 19:17
55F:→ superpandal: 的系统 因近期centos事件後转debian的也都是如此 10/03 19:18
56F:→ superpandal: debian也很久前就叛出简化的配置引入systemd这东西 10/03 19:21
57F:→ superpandal: 免费与付费最大的差别在於服务 付费卖的就是服务 10/03 19:27
58F:推 happy8649: 转语言/换工作後有什麽体悟可分享吗,文章好像没提及 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 分支预测的可能耗损
59F:推 wulouise: rust看好的人很多吧,就是台湾没职缺... 10/03 21:02
60F:→ BoXeX: rust会想用的公司 大概就目前用c/c++ 10/03 22:04
61F:→ BoXeX: 然後公司因为那些不安全的行为痛过 才会考虑吧 10/03 22:04
62F:→ testPtt: 目前看rust都是底层为主 应用层感觉没什麽推 10/03 22:22
※ 编辑: MoMoShota (1.171.139.138 台湾), 10/03/2023 23:29:44
63F:→ netburst: 以前都用np++写PHP+FTP外挂的 根本没那麽多毛 10/04 01:11
64F:→ netburst: 也是LARAVEL框架写爽爽 10/04 01:12
是的,很多功能是锦上添花
在会使用 GDB 之前,大学时期还不是一行行 printf 过来,没有这麽多附加功能确实也写得出程式。
不过会用工具跟不会用工具就会产生效率上的差距,身为一个开发者当然希望自己的开发体验是好的。
65F:→ superpandal: xdebug就很不错用了 设定也不难 反组译就没试过 可能 10/04 04:01
66F:→ superpandal: php解释器加参数或phpdbg可以解决 10/04 04:02
67F:→ superpandal: Go就是better c 确实不错 但我不想被问为何跳tone这 10/04 04:05
68F:→ superpandal: 麽大 10/04 04:05
我是本来就会写 Python, Go, Node.js,不过都是一些 Side Project 或社群经历,没有实际工作经验。
所以说跳 tone 跳很大,其实我觉得还好,大概就认真 K 个两下午就可以回忆起来。
不过我最偏爱的还是纯 C,但除了嵌入式或韧体厂似乎这种职缺比较少,而我也不太偏好这些领域
69F:→ Lushen: 这个ID有印象 上次在Backend台湾用分享一篇朋友起手 10/04 04:17
70F:→ Lushen: 结果被起底就是原po本人的 10/04 04:17
71F:→ Lushen: 这篇刚好提到中正通讯所 应该就是本人无误 10/04 04:19
72F:→ Lushen: 你fb留的blog上面就有那个面试题了 10/04 04:20
74F:→ Lushen: 在fb上面我朋友 ... 我朋友 ... 确实颇尴尬@@ 10/04 04:23
75F:→ Lushen: 在fb上发言的eq 有兴趣可以去backend台湾朝圣 10/04 04:26
77F:→ Lushen: 这些应该都公开资讯XD 10/04 04:27
感谢您的资讯
不过还是澄清一下,我与 Vincent 并不是同一个人。
我们是在研究所认识的(中正通讯),我休学之後就跟他没什麽交集,直到在 Rosetta 巧遇(对,世界就是这麽小)。
不过,如果你想把我们当成是同一个人也没什麽问题,反正怎麽想是你的自由。
当时的面试题目是我们与其它同事一起完成的,实作题是由他主导,然後我追加了一些 Follow Up(不过 Follow Up 都没有用到,残念)
因为上一篇文是在公司老板的同意下发出来的,因为我觉得版面上似乎都没有以徵才者的角度的心得文,用公司的角度发文就不特别提谁谁谁的贡献了
78F:推 jobintan: 真的选择比努力重要,基本上PHP薪资比起NodeJS/Golang/ 10/04 07:55
79F:→ jobintan: Ruby/Python这四大新创爱用的後端语言,就是比较低。 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
80F:推 happy8649: 感谢分享 10/05 21:26
81F:推 shallreturn: 最近也在重新学习准备面试,语言的方面也还在考虑要 10/06 21:09
82F:→ shallreturn: 不要跳,想说一开始写 php 头都洗了要不要继续.. 但 10/06 21:09
83F:→ shallreturn: 前景 10/06 21:09
84F:推 chan15: 万年老话题了,PHP就钱少机会多啊,长期在 tasker 接案, 10/07 23:06
85F:→ chan15: 以 ruby 为例,案子少之又少,一有案子常常只有一个人报价 10/07 23:06
86F:→ chan15: ,红海市场肯定有高报酬,但你要吃的到啊 10/07 23:07