对于现如今的互联网环境,JAVA程序员该如何自处?
网友解答: 这个问题很适合搞过多年Java程序员来回答,我是其中的一个。先看现如今的环境。现在2019年初,科技行业的寒冬,很多公司开始收缩招聘,比如京东、阿里,传闻华为也是如此。下面是
这个问题很适合搞过多年Java程序员来回答,我是其中的一个。
先看现如今的环境。现在2019年初,科技行业的寒冬,很多公司开始收缩招聘,比如京东、阿里,传闻华为也是如此。
下面是我的私人建议,供参考。觉得有点价值的请点个赞,编码不易,码字不易,我非搬运工,全是原创,也欢迎在底下留言,我会尽可能地回复你。
一、纵深发展,将Java做精做深Java技术路线图:初级开发工程师 - 高级开发工程师 - 架构师 - 资深架构师 - CTO。
1、底层能力:
JVM:核心知识、性能调优、内存管理和调优、程序编译和优化等
常用软件:Tomcat/Jetty的运行机制和性能优化、Mysql/Mariadb的底层机制和调优
Linux:不是会几个命令行,简单安装某个包就行,而是精通和会调优
Java语言和程序:代码高效低冗余,高内聚低耦合;程序性能优化;线程安全,异步通信编程;紧跟最新版本,比如Java 11;精通Java 8中的特性:函数式编程,Lambda等等
2、精通使用各种工具:
编译和第三方包管理等:Maven/Gradle
IDE:Eclipse/IntelliJ IDEA
CI/CD:Jenkins等持续集成和部署工具
源码管理:Git
代码质量控制:Sonar、PMD、Findbugs
敏捷开发管理:禅道等
3、应用框架能力:
Spring:整体体系和设计思想;IOC、AOP;源码分析;Spring MVC;事务策略
Mybatis:源码分析;配置和Mapper;性能优化
4、架构能力:
分布式架构:精通原理、策略和中间件;数据一致性问题
微服务:这块尤其要精通,因为现在都是采用微服务的架构。建议选择Spring Cloud,因为其技术覆盖全面;Docker;谷歌的Kubernetes
设计模式:精通常用设计模式:代理、工厂、单例等并应用
熟悉:SaaS,云计算,REST,建模等
5、技术领导能力:
项目管理:敏捷开发,Scrum和看板模式;进度管理和风险控制
团队建设:团队激励和惩罚;团建活动;文化氛围维护;成员技术实力提升
合作:和其他部门或第三方
二、横向扩展,学习该时代需要的新技术:AI、区块链、大数据纯粹的Java实力并不能完全保证你的竞争力。
设想一下,你面试心仪的职位,面试官问你:你有AI或区块链经验吗?你说没有。那面试官必定会说:我们需要有这方面经验的人,你不合适。
这块要深入说,又要较大篇幅来讲,点到为止吧,因为该问题的重点是Java。
三、(可选)开辟其他赛道:写技术博客、做自媒体这个世界总是有2种类型的人才:通才或者专才。
每个人都有自己适合的事情,比如技术很好的,却不善于沟通和表达;有的人喜欢发言,可以在这个领域试试。
四、(谨慎)抛弃Java,拥抱其他平台要抛弃存量总是让人很恐惧,因为沉没成本太大。所以,对于这个建议,请仔细思考,并谨慎对待。对于Java存量不大的人,可以多想想。
不可否认,Java目前还是编程语言里面的第一名。但是,作为一门老语言,在目前互联网社会要求越来越快,越来越轻的情况下,疲态渐显。
在AI和区块链领域,Python和Go崛起了;应用型的互联网公司,更青睐Nodejs。
Java仍然强势,但在走下坡路;而另外一些相反。
所以,你需要深入做数据分析,再看自己的喜好,该舍弃的时候就需要勇敢地舍弃。
网友解答:谢谢邀请!
2019年的互联网环境相对以往来说要更复杂一些,互联网领域也正在经历从消费互联网向产业互联网转型的阵痛期。其实不少公司从2018年开始已经在陆续进行结构化调整,这些调整中的重要内容就是岗位调整,而岗位调整对于程序员来说既是机会,也是挑战。
岗位调整的机会在于新的发展方向也许会有较大的成长空间,尤其在当下产业互联网发展的初期,大量的岗位将陆续释放出来,一些涉及到大数据、云计算、物联网、人工智能等内容的工作岗位往往比较受欢迎,薪资待遇也比较高。从这个角度来看,大数据等相关领域的发展对于Java程序员来说是重要的机会。
虽然产业互联网的发展会带来大量的机会,但同时也会带来一定的挑战,尤其在行业发展的初期,更是如此。目前大数据、人工智能等产品面临着落地应用的问题,要想把这些互联网技术落地到传统行业,需要突破大量的行业发展壁垒,而这个过程往往是比较艰难的,这个过程也必将形成一定的淘汰,有的公司会生存下来,而有的则会慢慢转型。因此,产业互联网发展的过程对于程序员来说,也是一个重大的挑战。
对于Java程序员来说,在当前的环境下,应该做好三件事:
第一:立足岗位紧跟技术发展趋势。Java程序员一方面要做好本职工作,另一方面也要紧跟技术发展趋势,尤其是大数据相关方向。大数据是未来Java程序员的重要发展方向之一,应该做好提前准备。
第二:掌握行业动态。对于Java程序员来说,一方面要埋头苦干,另一方面也要抬头思考,掌握行业动态,对自己的职场规划随时做出相应的调整。尤其要关注物联网、人工智能领域的行业动态,这是产业互联网的重要技术领域。
第三:了解行业知识。在产业互联网阶段,行业知识的重要性将得到进一步的重视,因为要想破除传统行业的发展壁垒,一定要有行业人士的参与。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续在酷米写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网方面的问题,也可以咨询我,谢谢!