就职的公司居然还在用Java 1.6,该不该换公司?

秦汝鹊


从事软件开发已经多年,中间换过几次工作,有些公司的编译环境的确不是总是最新的,就是环境有点差异而已,对于编程思想的影响非常有限,而且和平时编程工作差异也不是很大,对于企业来讲除非必须要切换环境否则不会没事折腾环境,企业首先要考虑效益问题,不会因为流行就跟风,现在很多企业还在用着VB,VC等老的脚本,已经用的非常熟练,后续也没有非常大的功能切换,所以这种性质得公司也不会随意切换新的编译环境。



由于JAVA受众太多,没有切换编译版本的公司也是大有人在,特别是一些外包公司基本上不做切换,反正还能继续用,一些自主的产品研发公司,跟进新版本会快一点,互联网性质的公司更新也会快一点。这些都是和公司本身的业务相关的,也不会影响别的东西,换个角度来讲编程语言只是编程的基本功而已,编程的核心是编程思想和解决问题的能力,所以企业在招聘人的时候就是希望找到的人能够立即上手解决问题,表面上是项目经验,本质上讲是解决问题的能力,所以JAVA版本对于大局得影响小的可怜。


很多人迷信掌握多种编程语言的人,觉得这才是高手,编程语言只是基本功,有些人可能掌握的快一些,有的人掌握的特别慢但只要坚持一样能够掌握到位。编程入门有两种性质的人,一种开始感觉特别好,很快就能进入编程语感,但在系统框架上还是需要时间打磨,相对来讲入门会快一些;另外一种人开始反应非常迟钝,甚至外界人感觉到这人可能真的不适合编程,甚至有可能都怀疑自己是不是真的适合从事这个行业,但这类人都有一个潜质就是能够坚持,即使当前看不到希望,可能经过一两年的时间突然有一天觉得自己能写一些东西了,好像突然之间茅塞顿开了,就是传说的开窍了,这类人往往后劲更足,越容易在慢慢积累过程中干成事情。


曾经带过两个这种类型的人,有时候觉得很简单的概念都不能理解,有时候说的话也很难听,甚至用语言来刺激他上进,但看到低头勤勤恳恳学习的样子心又软了,基本上坚持一年多就能找到感觉,一旦有了突破后面做的事情都会比较扎实,个人还是喜欢带这种类型的,毕竟给人的感觉比较踏实,就是前期带着费劲。

越是编程水平高的人越是不会在意编译环境以及编程语言,编程语言本质上讲就是工具般存在,很多编程高手接手一门新的编程语言,只需要很短时间就能上手做项目,不是这人多聪明因为编程套路基本上大同小异,所以学好一门编程需要之后再去学习新的编程语言就会快速许多,难度至少缩减三分之二,学习编程要掌握核心本质,数量和表面都是次要的。

希望能够帮到你。


大学生编程指南


公司还在使用JDK6,不应该是你跳槽的直接原因。


为什么有些公司还在使用JDK6

别说1.6了,还在用1.5的我都见过。

很多企业级的应用,都会运行个三五年,甚至更长的时间,才会有新的系统替代他。如果题主公司的项目都是运行五年以上的话,现在还使用JDK6是有情可原的。(JDK7好像是11年发布的)。

对于大多数企业级应用来说,当系统上线后,“稳定”是最重要的,所以当业务需求可以满足、系统效率也能跟得上的时候,企业是不会轻易升级JDK版本的。


版本高,不一定使用到新特性

  • 首先,Java常用的内容,比如集合、IO、多线程(并发框架)、JVM的内部原理,这些基础的东西是一直都有的,你依然可以从JDK6中学到很多知识;

  • 另外一方面,例如我们单位使用的是JDK8,但是据我观察,大部分程序员都没有用到高版本的新特性,比如很多程序员是不会写lambda表达式的;

  • 我估计我们单位在几年内,也不会升级JDK版本的;若干年后,可能也会被问到“公司还在使用JDK8,要不要跳槽”。


顺着JDK,看看公司的技术栈

这里的技术栈是指:公司项目用到的框架、软件、架构等。(业务经验的积累,在这里不讨论,只谈技术)

  • 有些公司使用SSH框架,单台关系型数据库;

  • 有些公司除了常规的框架,开始使用Spring Boot;系统和系统之间除了接口调用之外,也用到消息队列进行解耦;除了关系型数据库,也引入了非关系型数据库;

  • 有些公司用到了Dubbo、Spring Cloud,开始使用Docker,引入Devops,分库分表...

这时,公司之间技术的差距就显现出来了;同时也会影响到程序员的技术发展;这才是你考虑是否需要跳槽的因素之一。


总之,平台和个人的努力,都很重要。


我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。


会点代码的大叔


光凭这一点就要换公司,那你的想法也太low了。首先你得看,公司用1.6的原因是什么。1比如说有很多企业级的系统,已经运行多年了,1.6可能就是当时最稳定的,毕竟稳定性才是首要的考虑因素。其次再大的公司,或者你眼中技术很牛的公司,未必用的都是最前沿的技术。一昧的使用新技术,并不能够证明什么,反而可能引发不可抑制的问题。而且技术更新迭代迅速,学都学不完。最后就算是 JDK 6,你也能学到很多东西,比如基本的Java API、并发框架、JVM 的内部原理,GC策略,常见的 Java 应用程序的优化措施等。

建议:技术并不是你放弃的原因,还是得看你的需求,如果你在此公司能够实现,那你何必纠结那么多呢?存在即合理!



撒欢的杨儿


Java自从1.6版本之后,与其之后的版本在核心性能上差别不大。后续的JVM版本大多是在功能特性以及标准化上进行升级。因此,你们公司仍旧在使用十多年前的1.6版本并非什么难以接受的事情,更不是让你辞职的理由。oracle在接手java之后,对JVM的版本更新迭代还是比较积极的,比SUN时代明显要频繁。但是我觉得并没有多少有影响力变革。反而出了一些鸡肋功能,比如JAVA9模块化。JAVA8是一个分水岭,这个版本由SUN制定,为之后spring boot、groovy等优秀开源产品的面世奠定了理论和技术基础。

作为JAVA开发人员,我当然是建议随时掌握最新的JVM技术,至少每一个关键版本推出来之后花点时间去研究其中的新特性,是否能够为自己的开发工作带来便利或者为产品项目带来技术升级优化的可能。


微捷Kevin


看到题主这个问题好逗,就忍不住回答一下。那些年经历过的较真,随着随着年龄的增长和生活的压力,渐渐变得越来越远,不知从什么时间,渐渐的习惯了遇到的一切,渐渐忍受了遇到的种种,把所有的不适在时间的荒野里,改变自己让其舒适,在熟悉了之后,又背上行囊,走向下一城,接受新的不适,从熟悉到陌生,从陌生到熟悉,做着自己应当做的工作,热烈的爱着自己的工作。

从没有想过,因为公司仍在使用Java 1.6,而选择跳槽,也不会由于团队是搞PHP的,就选择离开。在大学里,不晓得以后要做什么,要从事什么样的工作,就学了很多杂七杂八的东东,Java、PHP、.NET都学过。最后进入的国企,最初是搞PHP的,我们进入之前才转变技术线做Java,使用的是Java1.6.既来之,则安之,抱着《Head First Java》,将自己熟悉的PHP丢掉,结果就那样真的丢掉了,再也没有拾起过,就这样进入了Java Web的研发行列,一干就是两年多。

就这样,跳槽到另一家公司,团队成员是有搞PHP的,有搞Java的,也有H5、客户端等,大家一起协作,团队分工,完成共同的2C应用的研发。更多的是接手维护一些老项目,并时不时做一些新的需求,以及做相关的架构升级。很不幸,接手的应用就是题主提到的Java1.6、Tomcat6。看着别人普遍在使用Java8,而且一些新特性用的很溜的同事,真心感觉这个版本低了一些。鉴于此,我就发起,将该项目的所有应用都做升级,同时为了保证系统的稳定,不敢跨越的版本太大,只是将Tomcat6升级到Tomcat7,将Java1.6升级至Java1.7,版本逐级递升需要有一个过程,也需要经过充分的测试。

所有的技术都是为业务来服务的,脱离了业务的技术,只是看起来美好的空中楼阁。使用Java1.6并不能说明什么,使用Java1.8更是如此,当你的业务到达那一步,或者你们团队的整体技术到达了非使用Lambda不可时,就会自觉不自觉的推动团队应用体系的升级。而当你主导不了团队的技术体系时,只能默默的融入环境去做好自己,或者沉淀一段时间去寻找更加适合自己的工作。



夕阳雨晴


如果你想一辈子做技人强人,你可以考虑换一个公司,以满足自己适应当前技术水平的新鲜感,如果你以后想向其他方向发展,你是管理,比如业务?现在的学习公司其他方面的东西,比如企业文化,比如业务知识。其实答应了公司产品的项目架构成型后,技术在项目里面起的作用其实非常小。别说jdk1.6了,1.5,1.4都能看到,前两年我甚至看到个国内上市公司的产品还是主要jsp中嵌java的方式实现的,一些数据库连接都是在jsp中完成,但丝毫不影响人家的产品在全国的知名度及行业竞争度,人家技术用的再low,但也不影响人家赚钱,你技术水平再高,没有东西拿出手也是白搭。


长空之风23


说实话不知道你这问题是无知还是来引战?我先问你项目最需要的是什么?稳定。一个新的JDK版本总会经历数次更新,那么在生产上更新前的底层BUG你怎么办?自己找到改写JDK?其次你到底了解多少JAVA底层?知道每一个版本的差异嘛?如果只多了一个对现在项目无用的功能,是否要升级?最近发现每日头条上流行什么智商机,什么用苹果什么心态,用华为什么心态,什么无知新手感觉理所当然问题。感觉提问的人越来越主观,失去客观考虑问题的角度。记住,万事皆有因,只是你能不能看到所有的因果关系。


SIDFIRST


你可以换公司,但是不该是因为这个理由。

别说1.6,1.4的公司我也待过。

首先要端正态度:你是在挣碗饭吃,不是在改变世界。所以你用的技术,不在于酷炫与否也不在于是否前沿,而在于是否适合公司业务。

这两年太多媒体给了大家错觉,让很多码农有了一种改变世界的蜜汁优越感。改变世界的是资本,不是码农。

回归正题,你在写JAVA,1.6的功能基本也算够了。如果非得用函数式编程,为啥要用JAVA呢。1.6还是1.8,不妨碍你进步。

更多的还是要看看公司的技术氛围,发现前景,还有老板是不是智障。这些决定了你是否应该跳槽。


嘲拉误国


Andoter的学习笔记很高兴为您解答这个问题。

因为公司使用的JDK是1.6,而决定换公司是非常不可取的。

首先,公司的软件开发统一使用JDK1.6进行开发肯定是有相关的项目需要导致的。

比如历史遗留项目使用JDK1.6开发,里面中涉及的相关特性代码升级起来成本比较高,所以针对老项目使用JDK1.6进行开发。我第一家公司是做土地信息管理的,那些事业单位使用的数据库都是Access+VisualStudio2008,工具非常久,但是由于相关的限制原因就无法升级。包括我现在公司的开发使用的还是Visual Studio2008,现在都过去很多年了,一直也没用升级版本,就是由于历史项目原因导致。

其次,这也是你展示能力的大好机会。

公司使用jdk1.6,这时候你有比较好的推荐选择,做个充分的准备,然后跟你们领导汇报一下,说一下现在的jdk1.6的弊端,推出最新的jdk版本来升级项目,事成之后,领导肯定对你另眼相待,升职加薪不是梦。

加油。


Andoter的学习笔记


知道啥是做行业软件的公司吗?别被那些网上鸡汤文忽悠了,做行业软件公司都是关系户。你做个系统卖给小老板就值一两万,做个互联网系统,也就值个四五万,在行业里面都是后面加两个零以上。

用老版本的公司,多数是给行业做系统的公司。越做行业核心系统,越真的有钱。行业都是事业编制的,别人严格遵守国家法定上下班制度的。加班,你是不是没能力啊?


分享到:


相關文章: