软件工程是计算机领域发展最快的学科分支之一,在所有软件开发类人才的需求中Java工程师的需求量占软件工程所有岗位需求的60~70%。巨大的企业需求和庞大的人才基数也必然产生激励的就业竞争。那么作为一名Java程序员,2019年如何提升自我技能、保持自己的岗位竞争力呢?我大致总结也以下几点,和大家一起分享,希望对大家新一年的工作有借鉴意义。
很多Java程序员仍然停留在依照现有框架写业务代码的阶段,也许正是因为Java为我们提供了太多的好框架,使得很多Java程序员都忘记了应该去思考一些框架之外的东西,这可能也是为什么很多人觉得Java程序员薪资低的原因。
就拿我们常用的SSM框架来说,如何提高数据库读写性能,如何把业务模块隔离,如何处理多线程并发问题,这些都是需要我们在依照现有框架写业务代码时去思考的问题。
此外,即使现在单机版框架对你已经够用,但还是推荐适当了解一些分布式方面的知识,毕竟这个是趋势。
消息队列,Redis缓存,日志框架,数据库性能优化,这些知识都能给你带来非常大的帮助。
回到Java核心方面,大家应该着重关注集合(即数据结构)和多线程并发这两块。比如HashMap(甚至是ConcurrentHashMap)的底层实现,ArrayList和LinkedList的区别,不用抠每一行源代码,但总得说得出一个所以然来。比如volatile和synchronized关键字有什么用,实现原理是什么,进而了解JVM的原理。
除了码代码的能力,线上排查问题的能力也十分重要,要学会使用常用的jdk工具,比如jstack、jmap。很多Java服务都是部署在Linux上,通常要通过一些Linux命令,比如less、grep来查看日志。
如果上述能力都能逐一掌握,你就会发现这些实用技能远比埋头写业务代码要高效的多。当然以上只是个人见解,如果大家有什么好的想法,欢迎在评论区热烈讨论。
最后附一张Java学习线路图,希望对大家学习有帮助。