Java|金三银四,作为Java程序员的你为什么面试总拿不到高薪?

Java|金三银四,作为Java程序员的你为什么面试总拿不到高薪?

文章图片

Java|金三银四,作为Java程序员的你为什么面试总拿不到高薪?

文章图片

Java|金三银四,作为Java程序员的你为什么面试总拿不到高薪?

文章图片


金三银四指的是每年的三四月份都是人才招聘的高峰期 , 因为跟春节和春运紧接 , 到人才市场 , 人都是满的 , 所以称为金三 , 伴随的四月则称为银四 , 每一年职场迎来“金三银四” 。
总结做完了 , 得失看清了 , 奖金拿到了 , “算账”过后的职场人可谓一身轻松 。 有什么计划 , 可以放心做起来 , 一场接一场的招聘会更是把职场人的心撩拨得蠢蠢欲动 。 迂回作战、直奔目标、潇洒“裸辞” 。
如果有了换工作的想法 , 建议采用国外的做法 , 提前三个月到半年 , 每月拿出四分之一的薪水作为“跳槽资金” , 以应对风险 。
今年的金三银四即将过去 , 如果你面试时总被砍价 , 总是拿不到期望的高薪 , 我给你总结了以下两个点:
1、知其然不知其所以然
做了多年技术 , 开发了很多业务应用 , 但似乎并未思考过种种 技术选择背后的逻辑 。 所以 , 我并不放心把具有一定深度的任务交给他 。 更重要的是 , 我并不确定他未来技术能力的成长潜力有多大 。
2、知识积累不成系统
在面试中 , 面试者似乎无法完整、清晰地描述自己所开发的系统 , 或者使用的相关技术 。 所以 , 我会怀疑他是否具备高效解决复杂问题、设计复杂系统的能力 。
现在可以不夸张的说 , Java是现阶段中国互联网公司中 , 覆盖度最广的研发语言 , 掌握了Java技术体系 , 不管在成熟的大公司 , 快速发展的公司 , 还是创业阶段的公司都能有立足之地 , 也是从程序员飞跃架构师的启动器 。
总结了从初级到中级到高级到架构需要掌握的技能树
主要包含几个方面:
第一个是基础:
比如对集合类 , 并发包 , IO/NIO , 内存模型 , 泛型 , 异常 , 反射等有深入了解 , 最好是看过源码了解底层的设计 。 比如一般面试都会问ConcurrentHashMap , CopyOnWrite , 线程池 , CAS , AQS , 虚拟机优化等知识点 , 因为这些对互联网的企业是绝对重要的 。 有些人这关都过不了 , 还发闹骚说这些没什么用 , 为什么要面试 , 这就不对了 。
举一例子 , 在使用线程池时候 , 因为使用了无界队列 , 在远程服务异常情况下导致内存飙升 , 怎么去解决?你要是连线程池都不清楚 , 你怎么去玩?
再举一例 , 由于对ThreadLocal理解出错 , 使用它做线程安全的控制 , 导致没能实现真的线程安全 。 所以作为一个拿三万的JAVA程序员这点基础是要有的 。

第二你需要有全面的互联网技术相关知识:
从底层说起 , 你起码得深入了解mysql , redis , mongodb , nginx , tomcat , rpc , jms等方面的知识 。 比如MySQL , 你要知道常见的参数设置 , 存储引擎怎么去选择 , 还需要了解常见的索引引擎 , 知道怎么去选择 。 知道怎么去设计表 , 怎么优化sql , 怎么根据执行计划去调优 。 高级的你需要去做分库分表的设计和优化 , 一般互联网企业的数据库都是读写分离 , 还会垂直与水平拆分 , 所以这个也有经验的成分在里面 。
Redis , Mongodb都是需要了解原理 , 需要会调整参数的 , 而nginx和tomcat几乎都是JAVA互联网方面必配 。
RPC相关的也很多 , 必须各种网络协议 , 序列化技术 , SOA等等 , 你要有一个深入的理解 。 现在应用比较广的rpc框架 , 在国内就是dubbo了 , 可以自行搜索 。
至于jms相关的起码得了解原理吧 , 一般情况下不是专门开发中间件系统和支撑系统的不需要了解太多细节 , 国内企业常用的主要是activeMQ和kafka 。
【Java|金三银四,作为Java程序员的你为什么面试总拿不到高薪?】
第三就是编程能力 , 编程思想 , 算法能力 , 架构能力:
首先30K程序员对算法的要求并不太高 , 但是排序和查询的基本算法得会 。 编程思想是必须的 , 问你个AOP和IOC你起码的清清楚楚 , 设计模式不说每种都用过 , 但也能了解个几种吧 。

最后就是架构能力 , 这种不是说要你设计个多牛逼多高并发的系统 , 起码让你做一个秒杀系统 , 防重请求的设计能快速搞定而没有坑吧 。