前言
“我”从事IT行业将近5年,这五年,在工作上平平淡淡,简简单单的。最近成家了,然后为了生活吧,内心深处想真正的去改变一次,想去多学技术,多学知识,多接触人,多总结。
从刚毕业到实习,是一个阶段。从大学到实习,从学的基础,到实践。然后感觉自己有了质的变化。那时候自己对知识渴望,所以自己学习东西都是抱着积极的心态去学,对比着学,然后总结。那个期间,上班时间安心的上班,完成本分的工作,并且总结学习知识点。下班了,然后把总结的知识点巩固,上网查资料更深入的去了解。那时候的自己,就是一个学习很好的学生,在同届的实习生中也是很突出的一个。那时候的激情有时候都让自己感动。实习要结束,要正式踏入社会,开始面试。由于自己从小腼腆的一个小男生,跟女孩子说话都脸红,去服装店买个衣服服务员问自己,然后就脸红。面临着要面试,为了改变自己的缺点,每天自己会在小房间里,对着镜子,自己做自我介绍,自己去描述学习的知识点,有时候自己跟自己对话等等吧,最终,顺利的走进了IT行业。开始了新的征程。
走进IT行业,第一家公司是个外包公司。公司的制度等等吧,总感觉工作再认真不如别人运气好的人,工作在不认真也比运气不好的人拿的多。一切归结运气吧。然后对技术和知识没有了追求,天天只干好自己的本分的工作。慢慢发展,到了自己的工作都不愿意做的地步。这样持续了一年半,最后内心觉悟感觉要改变,然后就辞职了。
进入一个小的公司,刚开始感觉很不错,工资一般吧,但是不累,上下班自由,每天工作就一两个小时,也有忙的时候,一天五六个小时吧。天天如此,这么多的时间也没有想着去学习,只想着怎么去玩。就这样又过了一年,别说技术增长,其实技术在下滑。原来掌握的知识点也在慢慢的忘记。
跟很多程序员一样,工作时不会的去网上查找,ctrl+c,ctrl+v。如果断了网,完全就没法工作了。
跟很多程序员一样,知道的东西很多,学的不精,不会用,只是知道而已,或者只知道概念。
跟很多程序员一样,想改变,但是只是想想,或者一直没有付出行动。
前两天,自己准备了简历,面了一家。最后发现面试官跟我一样吧,基础概念分不清(回来后上网查了查)。然后感觉真的需要改变了。
漫天无际的知识,不知道从何入手。现在的策略就是,遇到就要懂,不要得过且过。没事想看点书,最近几个月,看的书的类型有管理方面的,有技术方面的。
提一个会被喷的想法,要是向架构师方向发展,我该做点什么的?入门,我应该学点什么的知识。重构?设计模式等等,应该看什么样的书那?
小结
在这个行业参加工作4年到5年的攻城狮的朋友们,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。这个时候不要着急提高自己的技术,已经是时候提高你的影响力了,你可以尝试去一些知名的公司去提高你的背景,你可以发表一些文章去影响更多的人。
当然,你也可以去Github创建一个属于你的开源项目,去打造自己的产品。技术学到这个阶段,很容易遇到瓶颈,而且往往达到一定程度后,你再深入下去的收效就真的微乎其微了,除非你是专门搞学术研究的。然而很可惜,大部分程序猿做不到这一步,那是科学家做的事情。这个时候提高影响力不仅仅是因为技术上容易遇到瓶颈,更多的是影响力可以给你创造更多的机会。
然而具有一到五年开发经验的程序员需要掌握学习内容很多!
JVM/分布式/高并发/性能优化/Spring MVC/Spring Boot/Spring Cloud/MyBatis/Netty源码分析等等等
01、透彻理解Tomcat原理手写动静态资源的实现
02、分享能源领域的分布式监测系统架构
03、分布式系统关键技术Rpc框架详解与实现
04、自己写一个SpringMVC框架
05、使用Jsoup实现网页爬虫功能
06、JAVA高级进阶之NIO通信架构原理详解
07、高手必过之路透彻理解Spring容器IOC的原理分析
08、并发编程之深入业务隔离场景原理详解
09、深入浅出Java虚拟机
10、源码分析之手写MyBatis
11、大型分布式服务治理技术-Dubbo企业级实战
12、大流量高并发之限流特技
13、深入分析热部署机制的原理实现
14、高性能反向代理服务器Nginx-动静分离实战
15、架构师必备技能之Spring MVC框架原理解析
下面为系统的学习方向
01、分布式缓存分析对比
memcache的原理分析及使用
memcache和redis的横向对比分析
分布式接口技术
webservice/RMI/restful的使用
02、高并发专题-数据库层面优化
分库分表的原理及规则讲解
数据库主备及高可用
03、性能调优专题-jvm调优
JVM原理剖析
jvm内存模型及垃圾回收器的分析
04、微服务架构技术栈分析
springboot的使用
05、分布式协调服务zookeeper
zookeeper集群及相关概念分析
zookeeper java api的使用及实践
06、从集中式到分布式架构
分布式架构的演进过程
分布式架构的基石-TCP/UDP
07、分布式服务治理
dubbo控制台及监控中心的安装部署
dubbo常用配置分析
dubbo实战演练
08、NIO技术之-Netty
NIO基本概念及BIO、AIO的对比分析
NIO核心设计思想剖析(Buffer/Channel..)
Netty产生的背景及优缺点分析
Netty实现IM聊天系统
09、高性能之道-MongoDB
MongoDB高可用部署
MongoDB动态查询及索引剖析
MongoDB集成spring应用
10、数据库高性能之道-Mysql
分库分表深入分析
Mysql主从模型配置/Mycat的使用
11、分布式通信技术
JMS基本概念和模型
ActiveMQ结合Spring开发
ActiveMQ静态网络和动态网络链接
Kafka的高可用方案及原理分析
12、SOA架构及微服务架构
什么是SOA架构/为什么需要SOA
领域驱动设计方法/典型SOA架构设计
spring boot深入剖析
spring boot+dubbo企业实战
13、Docker虚拟化技术
Docker虚拟化技术(镜像/仓库/容器)
Docker整合spring boot
Docker 服务编排
14、导流技术
Nginx反向代理、负载均衡
Nginx进程模型分析
Nginx+keepalived高可用方案
15、微服务技术
spring boot(mvc)
spring boot(REST)
spring boot(验证)
16、spring cloud
spring cloud config client
spring cloud config server
spring cloud netflix eureka
spring cloud netflix ribbon
spring cloud hystrix
spring cloud feign
spring cloud stream
spring cloud bus
spring cloud sleuth
17、分布式消息技术-kafka
kafka高可用集群及介绍
kafka底层实现原理分析
18、分布式缓存-redis
redis的数据类型分析
redis高可用集群方案
lua脚本在redis中的应用
19、高性能之道-MongoDB
MongoDB的基本原理
MongoDB常用命令及客户端使用
手写基于MongoDB的ORM框架
MongoDB高可用解决方案
20、数据库高性能-Mysql
分库分表深入分析及主从模型
数据库中间件Mycat介绍
21、性能优化专题
从测试的角度解读如何衡量性能
了解Linux系统
22、虚拟机-JVM
内存模型、运行时数据
垃圾回收、GC日志
调优实战
23、Mysql数据库调优
Mysql底层存储分析
面试技巧之SQL执行计划及优化手段