本科毕业,三年弹指一挥间,回头看看才知道时间过得快。
进入软件开发这一行,就意味着永无之境的学习。
我不得不承认,自己这三年,有些失败(失策)。
不是技术不好,也不是不够敬业,只是,低头拉车的时间太多,抬头看路的时间太少,
当“一个人战斗”的工作习惯成为一种束缚,下一个突破点在哪里?下一步的策略是什么?
有过两年工作经验的人想必都有体会,软件开发行业压力大,
经常是时间短,任务重,需求还总在变。
整天的加班,冲向一个又一个的里程碑和deadline。
虽然我现在做反思和调整,也不算太晚,但如果早一点醒悟,能够静下心来想想,现在一定更轻松。
所以结合自身的情况我总结了以下几点让我在技术和薪资达到了一个质的突破。
1、可以执着于技术,但不要把技术当作全部,有一个清晰的钻研路线;
2、工作2年后,要有未来3-5年的“动态”系统学习规划;
3、定期总结计划执行情况,及时修改“动态”规划;
这个时代不缺信息、不缺好的资源,甚至只要你稍微用点心都可以接触到任何领域优质的内容。但同样一份技术教程,有的人看完就可以熟练掌握,而有的人却一点收获都没有。有的人越学技术越厉害,而有的人越学越觉得编程非常痛苦,学了好久还是写不出程序。
我最开始学习编程的时候也是如此,摸索了非常久的时间,才慢慢找到适合自己的系统的高效学习线路。
一、JAVA架构基础
掌握 JAVA架构基础相关的知识是为了后续的学习打下坚实的基础。这一部分是针对小白或者对 JAVA 还不太了解的朋友,当然入门了的朋友也可以巩固一下。
二、阅读源码
程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。
那要如何正确的分析源码呢?
三、分布式架构
随着我们的业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景,而且系统中决不能存在单点故障导致整体不可用,所以只有垂直或是水平拆分业务系统,使其形成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提高整个系统的可用性。同时分布式系统的模块重用度更高,速度更快,扩展性更高是大型的项目必不可少的环节。
四、微服务
关于微服务架构的取舍
1、在合适的项目,合适的团队,采用微服务架构收益会大于成本。
2、微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。
3、需要避免为了“微服务”而“微服务”。
4、微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。
五、性能优化
我们不仅仅对项目要运筹帷幄,还要能解决一切性能问题。只有深入学习JVM底层原理,Mysql底层优化以及Tomcat调优,才能达到知其然,知其所以然的效果。除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。
六、并发编程
主要培养编程者深入了解最底层的运作原理,加强编程者逻辑思维,这样才能写出高效、安全、可靠的多线程并发程序。
获取往期阿里架构师精讲资料、精讲视频、Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术,可加入Java进阶之路:878249276。