经常被人问到:“我应该怎样做才能成为高手呢?”这个问题可以进一步分解:
什么样的人是高手?
怎样才能把自己训练成高手?
一、什么样的人是高手?
关于“高手”,我的观点是:“能把有用的事情做到位的,就是高手。”这里面有两个关键点:一是有用,二是到位。
1、有用。
这是一个价值观的问题。衡量一个人是不是高手,应该看他对社会做的贡献,而不是自己在家里 YY 出多少 BT 级的东西来。做无用功的,只能算是蛮人,不能算是高手。天上地下全搞定,完全从头做操作系统,甚至自己制造CPU、主板、内存、硬盘的,算不算高手?单纯从技术角度来说,是的,他的知识非常丰富。但是这些知识是不是发挥了应有的作用呢?没有。这样的人,实际上是在浪费自己的青春。社会发展的大趋势是分工精细化,人,必须适应社会。古时候,人们常用“屠龙之技”来形容无用功。屠龙勇士,听上去很厉害,可上哪找龙去啊?慕容复惊才绝艳,可是老百姓不需要大燕国,他再厉害也不会成功,徒增笑耳。
在此劝告程序员同行们,在技术上深入下去,是值得提倡的,但只能是达到目标的一种手段,你的目标,应该是做更有用的产品,或者赚更多的钱,不能为了技术而技术。或者有人抬杠说:“我整天钻研C语言,我要用C语言开发出一种新的、更好用的编程语言,这算不算是技术呢?”应该说,这不算是技术,这是目标。他的目标是“新的编程语言”,相当于改进生产工具。当然了,为了达到这个目标,他要非常了解计算机语言的各种原理以及C语言的N种用法。就好比:这个世界需要有砍柴的人,同样也需要制造柴刀的铁匠。
2、到位。
别小看“到位”,我敢打赌,90%自以为很牛的程序员都做不到这一点。前几年有个游戏叫“北京浮生记”,深受北漂欢迎。作者就曾说过,要做没有BUG的软件。虽然“没有BUG”有点绝对,但这个意识,无疑是非常可敬的。不妨检查一下自已的程序,尤其是牛人,看看吧,乱七八糟的注释,语法不通、错别字连篇的的说明文档,有可能需要花几个小时才能运行起来的例程,到处乱抛的异常或根本不抛出异常……你还有什么资格说牛?如果哪天你真的发明了质能方程,再回来说自己牛也不迟——其实质能方程等重大科学原理,恰恰是由做事很严谨、很到位的人发明或发现出来的。不信?去查查GOOGLE吧。
二、怎样才能把自己训练成高手?
学会下列技术,就已经在高手的路上了
JVM调优
Java程序性能优化
Tomcat
Mysql
Spring IOC
Spring AOP
Spring MVC
Spring 5新特性
Mybatis
分布式架构
架构核心服务层技术
架构关键技术设施
分布式消息通讯 异步于MQ
分布式缓存
Redis
Memcached
MongoDB
数据存储
高并发分流技术Nginx
分布式解决方案
应用框架源码解读
微服务专题
SpringBoot
与微服务的区别于联系
快速构建SpringBoot工程
SpringBoot核心组件剖析
快速集成mybatis实战
快速集成Dubbo及案例实战
构建集成 redis及案例实战
构建Swagger插件实现API
管理及接口测试体系
SpringCloud
Zuul路由网关详解源码探析
Ribbon客户端负载均衡原理
Feign声明式服务调用方式
Eureka注册中心构件
Config配置服务中心
svn、git快速集成
Sleuth调用链路跟踪
BUS消息总线技术
Docker虚拟化技术
介绍、安装与使用
compose部署脚本
service服务编排
redis分布式集群部署
docker file构建
通过maven插件打包镜像
部署及运行应用程序kubernetes编配
构建Mysql集群实战
高可用SpringCloud微服务与docker集成实现动态扩容实战
最后送波福利。现在加群即可获取Java工程化、高性能及分布式、高性能、高架构、zookeeper、性能调优、Spring、MyBatis、Netty源码分析和大数据等多个知识点高级进阶干货的直播免费学习权限及相关资料,群号:835638062 点击链接加入群聊【Java高级架构学习交流】:https://jq.qq.com/?_wv=1027&k=5S3kL3v