Re: [请益] Java后端薪水更高的方向

楼主: Uzak (情与欲)   2022-07-16 18:14:13
※ 引述《empireisme (empireisme)》之铭言:
: 文章可能很长,先说一下
: 一 个人背景和工作内容
: 我个人的背景是年资一年的Java后端工程师,目前在电信业服务(非中华电信),学历为清
: 交商管硕士(非资管)
: 年薪大概65-75万(因为是年终占比太高所以不确定,月薪不到45K)
: 我的工作内容主要是Spring Boot开发,使用的技术框架主要是
: swagger,hibernate,jdbc template,spring security等等
: 部署方面就是打包成war档案,然后丢到linux主机的tomcat资料夹里面而已....
: 后来公司导入jenkins之后,大概也不需要管部署
: 我的工作内容真的主要就是CRUD,而且还是给内部业务的的CRUD
: 我自己有感受到,我是那种要工作中有用到,才会体会比较深的类型
: 比如说我学生时代一直不太会用left join 现在终于比较熟
: 不知道sql指令要命中index,要下explain去检查
: 以前不知道学生时代那些继承的动物例子有什么用,后来工作后看到前辈去用basedao
: 里面包了很多常见的功能像是paging之类的,才发现继承的好用
: 我清楚意识到,因为我做的只有CRUD而且还不是给很多使用者的CRUD所以
: 非常害怕落入所谓的工作十年可是可能技能跟工作两年的人一样的状况
: 版上的大大才多次提到类似的概念
: 原文问错问题了,不管你学什么,学多少技术种类,都不会影响你的薪水。学到什么程度
: ,找什么工作,才会影响薪水。
: 之前看了Drtech大的文章
: https://reurl.cc/Yvx344
: 所以我的问题如下:
: 1. Java Backend要学多深 ?
: 之前看了本版的系列文章,
: https://www.ptt.cc/bbs/Soft_Job/M.1527864627.A.626.html
: 还有几篇 java 后端的面试心得
: 都会问到 jvm 调优,或是redis kafka相关的问题
: 但是我目前的公司应该是不会用到
: 2. 要找什么产业,哪些公司 ?
: 为了避免这篇文章太像伸手牌,所以下面会放入我觉得可能可以的产业和我自己的网络上
: 发现的观察
: # 二 做过的努力
: 1.
: 想说即使公司没有大流量场景来训练,然后大流量场景可能又和多执行绪有关
: 所以就想说去udemy上买相关课程
: ![](https://i.imgur.com/YaBiwGy.png)
: 目前大概看了三分之一,但还是有点雾煞煞@@
: 做过的事情是找了几个网络上的范例,比较有开多执行绪跟没开多执行绪
: 统计资料夹大小的速度差别
: 2. 基本的资料结构
: 去geekforgeek还有买书练习java资料结构,主要以leetcode explore为主
: 书我目前是看 数据结构与算法之美 是简体书,好处是书中的code都是用java还不错
: 目前大概是排序算法 练过快速排序,合并排序
: linkedlist知道基本的时间复杂度,还有删改操作
: 还有一些经典题目,例如反转Linkedlist 合并两个linkedlist,环的检测等等
: 目前是感觉对于code的掌握度有变高,脑袋也有变灵活点,但可能因为我的工作性质,所
: 以还没感受到资料结构的威力,我目前的工作性质大概只会用到两种资料结构ArrayList
: 还有HashMap
: 3. 看对岸的面试题
: 对岸有很多JAVA面试题的影片,就是诸葛老师他们,睡前会看个一两集,
: 蛮喜欢看一些像是mysql优化的
: ![](https://i.imgur.com/Cf0uon0.png)
: 或是对岸的图零学院,他有一系列的刷题套路可以看
: # 三 觉得还不错的产业 电商产业和租车产业
: 看了电商产业的职位,有的会和金流有关
: 有的和物流有关
: 有的则是订单相关
: 订单部分好像又可以很复杂
: 之前看到有版友提过
: - 订单快照功能,保留当时的商品资讯 e.g. 价钱,规格等
: - 是否需要跨商店结帐?
: - 出货时需不需要做到分批出货?
: - 退款时需不需要做到只退款部分商品?
: - 出报表支援商业决策,譬如说过去一个月,哪间商店营业额最高? 哪些商品最热卖?
: 像我就对这些问题的数据库设计没什么想法,我可能就停留在有一对多,多对多,然后要
: 做正规化而已
: ,比如说要知道过去一个月哪间商店营业额最高,应该就是直接下sql指令就好了吧?
: 当然这是我最初浅的想法
: 然后电商产业好像会有一些双十一的的高流量场景?
: 国内JAVA为主的电商,我知道的有
: momo 跟远传friday,但后者好像有大裁员,而且cakeresume上面显示的薪水,好像也是
: 45K到70K的样子,另外momo虽然非常赚钱,但是网络上查到的java工程师薪水好像也普普
: 另外我最近看到格上租车的职缺描述,里面提到会设计高流量后端服务,还有微服务设计
: ![](https://i.imgur.com/bwjDkfo.png)
: 但是其实我没有接触过租车产业,不确定是不是如同cakeresume上面说的那样
: # 四 台湾系统厂
: 之前看台湾系统厂的中位数薪资,其实也不低,当然是比半导体低,但是也有一定水准
: 但是我实际去找 asus 或是 acer的JAVA工程师薪水,好像也是普普
: ![](https://i.imgur.com/VW1hS1o.png)
: # 五 外商
: ![](https://i.imgur.com/Up3x6gP.png)
: 之前看到太阳鸟在征才,也不太确定是要学到什么程度才能拿到比较高的薪水
: # 六 我的学习困境
: 透过专案的训练,开始学会用swag方便测试API,开始学会Spring Security懂得如何基于
: 脚色给予适当的URL保护,原本没学过jdbc template,也慢慢学会了
: 但是外界常用的redis kafka 或是多执行绪技术我们公司目前应该是不会用到
: # 七 结论
: 上面好像写得有点太发散,所以我应该找什么产业的什么部门?
: 电商吗,还是一些乙方,因为乙方我看过有些公司好像也有月薪七八万
: Java 后端应该要能学到什么程度,能解决什么样的问题? 才能有一百万左右的薪水?
: 我自己的想法可能是leetcode要能够解掉easy
: mysql 优化要能够说出除了index命中以外
: 然后是不是要自己想办法学会Spring cloud 这种微服务框架?
: 甚至还要会负载均衡 ?
springboot自带tomcat,
build成jar自己可以直接启动成一个微服务,
打包成war再放进tomcat里这是以前jsp servlet那个石器时代的作法,
你们用springboot却这样部署,
很大机率你们可能没有真正了解springboot究竟要解决怎样的问题
你现在看了前辈的code觉得继承好用
但是你不明白继承不是一个好的pattern
很容易让专案过度复杂
用compose的方式往往会更好
golang就没有Class没有继承只保留interface
你有探讨过这中间的原因吗
jdbc template只是spring提供的一种template
jpaRepository也可以做一样的事
假设只学会使用这些而没有真正明白和数据库沟通时需要注意的细节
(比如在循环中去query或insert/update是一种糟糕的作法)
那么你的实力并没有变强
碰到数据库瓶颈你很可能也找不到问题点
你没有multithreading的实战经验
很多高薪的公司的业务场景你无法handle
你也无法理解golang为何能够更好的解决高并发问题
我相信你也不了解jvm的细节
或是spring底层的实作
这些都是成为厉害java工程师必经的路
高薪要看产业看公司没错
但那不代表你在高薪产业就不需要扎实的能力
我的观察是
你的能力还很浅
眼睛却一直盯着钱
这样你永远无法成为真正厉害的工程师
我共事过的一些很强的工程师
光看multithreading code就可以看出可能的问题
碰到没有清楚的error message的瓶颈时
也能够短时间找到问题点
pm给出大的需求
能够清楚拆分成小的ticket分给下面工程师去做
时程估计合理
架构设计可靠
程式码优雅高效
你需要做的是看看好公司都开出怎样的需求
自学后去面试
被打枪再学再面试
想办法进到这些公司去实战这些技术
是金子到哪都会发光
你是大神别人只会捧著钞票来求你
作者: kokona554 (Ocelot)   2022-07-16 18:23:00
正想建议可以先理解java是怎么跑起来就看到这篇,中肯
作者: empireisme (empireisme)   2022-07-16 18:56:00
jpa reposiotory这个我是知道的,但是多执行绪目前就只有看线上课程不太有机会在工作中用到,看了一些高薪的工作要的技能,很多就是说希望会多执行绪,或是高流量,但又希望有实战经验对,我们公司包成war这还真的是,我第一份工作也是jar去部署的没错请问有推荐的自学多执行绪的方式吗?jvm调优的话,我目前是看到对岸有一个相关课程https://i.imgur.com/673vNFi.jpg
作者: BigCockman (大雕男)   2022-07-16 19:02:00
继承也不是全然不好吧
楼主: Uzak (情与欲)   2022-07-16 19:05:00
当然不是全然不好 只是有更好的方式@empireisme 可以先看看"深入理解Java虚拟机"这类的书不一定要直接买课程
作者: empireisme (empireisme)   2022-07-16 19:08:00
https://i.imgur.com/TFWumBM.jpg像是这种工作,我看他的叙述也只有提到要会Spring cloud而已uzak 这些课不用钱拉,都是直接看而已,但不知道我的顺序应该是啥?事先去学多执行绪吗?还是jvm?公司没有场景的话,怎么验证自己学的多执行绪多执行绪我自己也就做一个简单的去统计资料夹大小,网络上还有一些下载开多执行绪的范例,网络上则是有一些死锁相关的面试不太知道怎么学多执行绪,还是说先补资料结构比较重要呢
作者: Hsins (翔)   2022-07-16 19:33:00
要对 JVM 熟悉了你才能把 Java 里的多执行绪弄明白
作者: kop14922000 (MrDin)   2022-07-16 19:34:00
请教一下那现在sprimgboot的部署应该是什么方式?我公司现在的做法也是包成war档丢到UAT的tomcat资料夹里
作者: Hsins (翔)   2022-07-16 19:36:00
你会有这些问题,应该先回去补 OS 基础。我想这是为什么 U大说眼睛只盯着钱,看起来因为非本科的关系,所以 DSA、OS、CA、CO 都还不明白,就急着追框架追应用
作者: empireisme (empireisme)   2022-07-16 19:41:00
CA CO是什么的缩写阿,请问谢谢u大回答,那看起来我那个thread的课程应该都有提到https://i.imgur.com/JfBP4Kx.jpghttps://i.imgur.com/NwWgJq0.jpg@Hsin所以可能要找大学os的课程搭配实作的线上课程看这样吗?
作者: Hsins (翔)   2022-07-16 19:48:00
计算机结构和计算机组织,但其实把作业系统跟计算机网络掌握好,对你的帮助就会很大了
作者: empireisme (empireisme)   2022-07-16 19:51:00
作业系统我应该会去看陈世杰老师的课,计算机网络的话就真的没概念了,只知道什么三次握手,还有七层网络
作者: wulouise (在线上!=在电脑前)   2022-07-16 19:55:00
继承好,只是也更好写烂,太多不该继承的用继承
作者: sb8888 (V5)   2022-07-16 19:55:00
那你应该还要在看细一点 最好可以把http协议如何透过硬件到软件的流程搞懂 封包的过程之类的 为什么会丢包 编码的格式有其意义要了解一下 我也一年半而已一起努力可以去了解一下滑动窗口之类的
作者: Booker5566 (书人五六)   2022-07-16 20:55:00
大大关于 compose 有相关关键字或推荐 YT/udemy 的课程吗
作者: lovdkkkk (dk)   2022-07-16 21:23:00
推, 80% 是我想讲的, 能力感觉还不到扎实本科毕业生然后建议到 104 看板上大家推的公司开的缺的要求去练
作者: x000032001 (版废了该走了)   2022-07-16 21:52:00
Composition over inheritance
作者: SHANGOYANYI (彦一)   2022-07-16 22:18:00
用springboot开发其实不等于系统有改成微服务 所以包成war也不是什么太奇怪的事
作者: viper9709 (阿达)   2022-07-16 23:34:00
这篇写的不错
作者: surprised128 (pudding)   2022-07-17 00:28:00
Tomcat部分,我猜原来的project 可能把他exclude 了,不然照理说会有冲突才对
作者: rereterry (rereterry)   2022-07-17 00:52:00
推这篇的讨论,其实有时对很多人,大概真的是连关键字都缺乏有效的方式发现,需要其他人的力量把雾拨开,剩下的就可以自己步入正规了
作者: hegemon (hegemon)   2022-07-17 01:11:00
spring boot目前建议是改用undertow, 再来对于微服务来说,spring boot 还太肥,应该要去看看quarkus或是micronaut. 要不然就是上spring-native
作者: KY1998 (HAN)   2022-07-17 03:09:00
多执行绪你要快速入门直接看B站juc并发相关影片,免费
作者: JustinHere (良葛格)   2022-07-17 17:44:00
之前整理的多执行绪 https://bit.ly/3cl6Ajz
作者: eopXD (eopXD)   2022-07-18 00:09:00
作者: shaomi (kerker)   2022-07-18 00:30:00
!!楼楼上本人?
作者: hakosaki (hakosaki)   2022-07-18 08:58:00
推良葛葛
作者: hobnob (hobnob)   2022-07-18 16:01:00
大推这篇的态度
作者: xrururururu (胖达)   2022-07-19 21:45:00
不觉得继承全部不好吧 一直说golang很好也很怪

Links booklink

Contact Us: admin [ a t ] ucptt.com