首页 > 海文新闻 > Java程序猿跳槽应该学哪些方面的技术

Java程序猿跳槽应该学哪些方面的技术

2017年10月20日10:12:35来源:海文国际         73
分享到:

这个世界上有一类人特别苦逼,苦逼到什么程度呢?他们省吃俭用攒钱买房,结果房价越来越贵;公司外部竞争激烈,他们工作异常繁忙,披星戴月,日复一日;技 术更新行业罕见,他们要随时调整心情,随时学习知识;他们长期和机器为伍,大多比较呆傻,比较单纯;还有很多不一一例举,这一类人就是程序员。

而就是这么一类程序员过着这么苦逼的生活,在公司内部却难以获得公平的晋升机会,外来的和尚总是在不断打破平衡,甚至是刚毕业的新和尚拿得都比老和尚多,这是全行业都罕见的奇观,IT人有幸经历了。

1.png

某创业公司,某个程序员要离职,老板甚至不问问他直接领导的意见,就同意了,没有挽留,之后大骂不忠诚,这个人拿3k,拿了2年,他走了以后,老板用5k雇了个新面孔,但就是不愿意给这个老人晋升,不愿意给加到哪怕是4k。

某上市公司,游戏部门突然从外部空降了一个领导,原因是原大佬被挖走以后,剩下的人升谁都有意见,难以服众,不从外部请人来镇不住局面,这个人一来,大家是团结了,团结起来和这个人斗,但最后还是和解了。

某国际大公司,某人伪造简历,包装的如花似玉,获得高职,工作主要有下属完成,他只需要汇众汇报即可,越混路越宽,直到某天事发,依然是高官。

某 IT企业,某同学离职时语重心长的对我说,XX(可以理解为网游,搜索,电商任意一种)是今年毕业的这些人清华人的机会,我们就是比某人强十倍也没有机 会,也得从下面做起,搜索的天时不属于我,此人去了某金融分析软件公司,目前是高管,同期留在某IT企业的其他同学依然过着苦逼的生活。

举了这么多例子,我想说得是为什么不给你晋升这个问题,或者晋升很难,为什么?

1)大佬的问题

你 晋升困难,最大的主观原因在你自己,最大的客观原因在你的直接上司。付责任人的说,目前很多企业的领导是不合格的,他们大多80后,没有为他人着想的思想 基础,一味的考虑自己,不顾下属,曾经我对某人说,你说你是合格的领导,你说出你下属每个员工租房在哪里,每月多少房租,我就同意你是合格的领导,结果他 羞愧不言。你晋升不了,很大程度上是你的领导没有帮你,连你每月房租多少都不知道,你指望他帮助你提高技术水平,帮助你晋升?

2)大佬的大佬的问题

你 大佬的大佬,level很高,他需要引入新鲜血液,他知道这个队伍缺什么,这个是他思考的问题,他需要找牛的人来补这个缺口,于是一个光鲜照人的牛人进来 了(虽然两年后也会泯为众人)给队伍带来了新鲜的血液,但你的大佬升不上去,你大佬边上的位置被这个人占了,你的位置在哪?

3)公司的问题

各 大企业给员工的再教育和培训都是不尽相同的,但大多口号是一致的,在工作中锻炼成长,这句话是最扯淡的,国外很多大公司是有很完善的培训和再教育计划的, 会给员工一个充电的机会,并且给其一个完善的培训后,以便于让他在新升职的岗位上能够很好的胜任。在国内大公司都在找牛人,就是不愿意自己培养,原因是什 么,不解释,你懂得。

4)你的兄弟

很多时候让你升不了职恰恰是因为和你一起战斗的兄弟, 他们工作也很不错,你升职了,他们怎么办?这也是一个平衡的问题,你很努力,为什么你没有带动你的兄弟一起努力,你上去了,需要你这帮兄弟的支持,他们会 支持你吗?曾有一个说了一句话,我觉得很值得回味,“当大家都认为你该升职了,就是你升职的时候了”,细细品味,很有道理。

5)你自己的问题

最 后你升不了职是你自己的问题,每天工作很忙,没时间充电,每天工作压力很大,来不及学习,每天这个那个,一年下来碌碌无为。你提高了自己的效率了嘛?你周 围有朋友再帮你吗?你知道你要学什么嘛?你知道什么样的工作才能超出领导的期望?,你超出领导期望后却没有升职和领导沟通过吗?我曾在某企业,我周围的几 乎所有人加薪升职都是和领导沟通后才获得的。指望主动给你加薪升职,不如指望自己的沟通。

6)还是你自己的问题

你选择的这个行业是不是对的,公司是不是对的,就好像我说的这个清华的同学这个例子。如果你能耐大可以选大公司,PK到一票牛人上去,如果你能耐不大,去成熟大公司,还心理期盼高薪升职就不现实了,不如去一个有前途的中小公司,开创自己的事业。

从企业角度出发,如何创建一个合理公平的晋升机制呢?

1)第一流大佬才会招第一流的人,第二流大佬只会招第三流的人,因此公司一把手必须是第一流的,价值观才能靠谱,制度才靠谱,没熟读历史,不理解中国文化的,建议不要做公司一把手。

2)晋升的制度必须公平,面向每一个人,每一个层次,这往往很难做到,做前端的和做后台的不好比,但做前端的可以和做前端的比。必须要有公开公平的比拼,已获得升职机会。例如某公司做一个高维矩阵分解的难题,大家机会均等,性能最快,效果最好,胜出者升职,带领团队。

3)鼓励公司职员交流,传播和帮助他人的文化,一个人如果乐于助人,帮助他人提高技术水平,这个人升职升上来,大家都会顶,反之,你保守,不帮助他人,水平再牛,升职上来也没人支持。

4)可以给职员一些挑战的机会,提供更多的资源,比如某公司的闪电计划,超越了谷歌搜索效果,就是一个很好的例子,要敢于给一些勇于挑战的职员更多的资源,在严酷的战斗中考验,并提供充分弹药。

5)给予内训机会,邀请业界牛人讲座,送职员去美帝考察开会乃至工作等等。培训机会是发达国家企业的一种非常好的激励措施,一个岗位5个人培训,最好的上岗,这是一个很公平的机会,培训机构足够独立。

方法有很多,只要这第一流的大佬,心中有着这帮打生打死的兄弟,办法总是有的,不要总是考虑自己的业绩,考虑自己的乌纱帽,做到这一点很难很难,但制度不是只有这位大佬可以制定,任何职员都应该积极投身到制度建立的过程中,要敢于提出自己的观点,毕竟公司是大家的公司。

Java程序猿跳槽应该学哪些方面的技术

互联网产品、大型企业级项目常会用到的:

并发处理技术。具体到Java上通常是涉及java.util.concurrent、并发锁机制、NIO等方面,当然最近比较火爆的Netty框架也可以作为高并发处理的备选方案之一,这需要对Java的线程调度机制有着比较深的理解。不过这些可能会涉及并发控制的对象(比如reentrantlock等)只能存在于一个JVM里的问题,一旦系统规模大到需要部署多个JVM来处理并发的情况,则需要采用共享session的技术(比如spring-session),或者尽可能将系统后台设计为无状态的服务,这需要对RESTful有着较深的理解。

高可用、负载均衡技术。互联网产品、企业级应用通常要求一年里的Downtime控制在很小的范围内,这需要足够的高可用和负载均衡架构来支撑,这个一般和Java技术本身没太大关系,但却是一名初级程序员向高级程序员甚至是架构师CIO进阶的必备技术,因此可以适当了解一下Nginx、HAProxy等对这方面的支持。另外现在最“时髦”的做法是将应用docker化,配合ETCD、kubernetes等工具在容器的层面上实现高可用和负载均衡,当然这需要看实际的需求,最时髦的不见得是最适用的,要考虑构建成本。

缓存技术。缓存应该是大型系统中或高并发条件下提高响应速度的亘古不变的真理(虽然也看到过淘宝搜索商品功能采用的大数据处理技术实现的零缓存的文章,但能达到淘宝的体量和技术水平一般不太可能),这方面的工具太多了,ehcache、memcached、redis……从Java的角度来讲,需要了解的一是Java对这些工具的连接器,二是缓存技术背后的JSR-107标准,可以参考spring-cache的实现,阅读一下源码加深理解。

异步处理技术。这通常也是抵消高并发的处理手段之一,从Java的角度看最简单的异步处理就是新启动一个异步线程,这同样也需要对Java的线程调度有所了解,当然也可使用Spring中的@Async之类的也可以简单实现异步线程的处理。如果是非常消耗资源的业务处理,简单的异步线程是满足不了需求的,这就需要一些消息中间件来做这些异步处理了,消息中间件有很多,activemq、rabbitmq、kafka……需要了解的是Java对这些中间件的连接器。不过异步处理中最关键的是事务保证的问题,这可能需要对事务的两步提交有所了解。 

在这里我有一个专门为跳槽JAVA开发人员想要跳槽准备的一个线路图: 

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述

图片描述