工作多少年了,还在传统公司写if / for 等简单的代码?那你就真的要被社会淘汰了,工作多年其实你与初级工程师又有多少区别呢?那么作为一个高级Java攻城狮需要突破哪些知识点呢?
1、Java基础技术体系、JVM内存分配、垃圾回收、类装载机制、性能优化、反射机制、多线程、网络编程、常用数据结构和相关算法。
2、对面向对象的软件开发思想有清晰的认识、熟悉掌握常用的设计模式。
3、熟练掌握目前流行开源框架(spring/springmvc/ibatis),并且对其核心思想、实现原理有一定认知。
4、熟悉Oracle、MySQL等数据库开发与设计以及缓存系统Redis或 Memcached的设计和研发以及流行的NoSQL数据库,如MongoDB等。
5、熟悉底层中间件、分布式技术(包括缓存、消息系统、热部署)、消息中间件:ActiveMQ、RabbitMQ、工作流中间件:JBPM。
6、精通shell编程,熟练应用awk、sed、grep、strace、tcudump、gdb等常用命令。
7、有大型分布式、高并发、高负载(大数据量)、高可用性系统设计开发经验。
8、对配置管理和敏捷研发模式有所了解(svn,git)。
9、熟悉常见的一些解决方案及其原理:单点登录、分布式缓存、SOA、全文检索、消息中间件,负载均衡、连接池、流计算等;
10、熟悉流行的微服务以及应用开发框架,诸如Spring Cloud以及Spring Boot等;
11、大数据相关技术,诸如Hadoop技术栈等以及AI技术和数据分析技术;
12、能大概知道市面上主流技术的特点及业务瓶颈,诸如机器学习、区块链等,再学点新技术或变成语言(除了Java和C/C++根据兴趣和需要,还可选择的有包括不限于R、Python、Go、Nodejs-JavaScript等)。
好了,大概知道自己哪里尚待发力,在2019要继续学习补充点什么知识了吧!
随便列举,没说都得学习掌握,要按需学习掌握。
——做程序员真的不容易!做个牛B的IT人更不易啊^_^,继续奋斗打怪兽……
原文地址:https://blog.51cto.com/14207296/2373136