别看了,看了你也不能成为架构师!
前言
曾几何时,我的"终极目标"也是Java架构师。但当我真正达到这个高度之后,我才发现:原来的"终极目标"现在只能被称为"中级目标",原来觉得一辈子都学不完的技术也渐渐形成了自己的技术工具箱,代码风格和做事风格也沉淀下来了。
至于为什么要写"别看了,看了你也不能成为架构师"也是想找点乐子,我不这么写你能点进来看嘛?
重点
好了进入正题,这篇文章是为了帮助1-5年经验的Java工程师拨开眼前的云雾,享受美好的晴天。
相信很多有经验的Java工程师都碰到过这些情况:
1、感觉学的技术太杂了,公司用什么我就学什么,导致每个技术都知道一点就是没办法连起来
2、在一个公司工作3年,除了使用公司内部的技术以外,没有接触过更多的技术
3、自己感觉到了问题,想通过自学来提升,但是效率太慢
其实能够发现这些问题并且来找方法解决,那么接下来的问题就不大了,因为自我驱动力已经有了,只需要找好方向
个人经历
我已经工作11年了,和大家一样,我也遇到过相同的问题。
我个人对技术的热情可以分为3个阶段
第一个阶段:新鲜,刚接触Java然后自己能开发一些东西出来还能给别人用;
第二个阶段:枯燥,工作一段时间以后发现似乎一直在做相同的事情,除了业务逻辑不一样以外,无非都是对数据的CRUD操作;
第三个阶段:喜欢,喜欢是从被动到主动,被动是因为在工作三年左右去换工作,自以为技术还可以的状态去面试,却每次都面不过,甚至自以为很熟练的spring,在面试时也会有些问题回答不上来。
那个时候我才深刻的发现:技术能力是程序员最核心的竞争力。我想进入bat这样的公司我想要很高的薪资,但是前提是技术要过硬,所以我又重新树立了自己的学习方向。
我的建议
后来我发现一个现象,市场上绝大部分需求是做业务开发的,但是面试的时候都要求你对技术能力有很深刻的研究。这就产生了一个矛盾,业务开发要求的技术能力不高,只需要具备动手能力即可。而面试的时候更多的是需要你去掌握这些原理的东西。
这个现象我觉得很有意思,很多时候当你觉得你很牛逼的时候,你去面试看看,可以让你更加认清自己的能力。这个矛盾能够让我们一直正视自己的角色:我们是做技术开发的,薪资的多少,平台的好坏,都是基于你的资历和技术,你在一个差的平台,那你的能力只会越来越低。所以对于如何去构建自己的核心技术体系?我认为可以给大家去做一个总结
第一、正确的阅读源码
程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。
那么,如何正确的阅读源码呢?
详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。
帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。知其然,并知其所以然。把知识变成自己的
第二、深入了解分布式架构
随着我们的业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景,而且系统中决不能存在单点故障导致整体不可用,所以只有垂直或是水平拆分业务系统,使其形成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提高整个系统的可用性。同时分布式系统的模块重用度更高,速度更快,扩展性更高是大型的项目必不可少的环节。
在技术深度和技术广度上得到飞跃的提升。成为互联网行业所需要的T型人才
第三、初识微服务架构
关于微服务架构的取舍
1、在合适的项目,合适的团队,采用微服务架构收益会大于成本。
2、微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。
3、需要避免为了“微服务”而“微服务”。
4、微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。
应对复杂的业务需求变更、用户膨胀,SOA已成为现在互联网公司标准的解决方案,微服务相关的框架正是为此而生。
第四、一招搞定性能优化
我们不仅仅对项目要运筹帷幄,还要能解决一切性能问题。只有深入学习JVM底层原理,Mysql底层优化以及Tomcat调优,才能达到知其然,知其所以然的效果。除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。
只有全面认识性能优化这个理念,理解底层机制,助力科学调优 同时结合实战案例让你不再只是旁观者
第五、熟悉底层原理,勘破并发编程
主要目的是让编程者深入了解最底层的运作原理,加强编程者逻辑思维,这样才能写出高效、安全、可靠的多线程并发程序。
第六、从零开始了解团队协作效率
通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 可以有效、高速的处理从很小到非常大的项目版本管理
不管是刚入门的小白,还是才高八斗的资深开发、架构,你都需要从这里开始:1、掌握自动化部署技能;2、对于来时小白可以快速提升;3、对于资深开发人群可以加分。
第七、体验一次完整的项目实战
要想立足于互联网公司,且能在互联网浪潮中不被淹没,对于项目的开发实战演练是不必可少的技能,也是对自身能力的一个衡量,有多少的量对等于获得多少的回报。看似简单的一个项目需求图谱,其中的底层原理,实现原理又能知道多少?
利用云服务器搭建真实的开发和部署环境,重在参与,开发一个千人参与的项目。在项目实战中引入大数据相关的内容,学完就能上手
结语
以上就是我给大家总结的七大学习路线图,这七个点环环相扣,基本覆盖了架构师所需要的全部技术知识点,虽然可能你不能一次性全部都掌握了,但这是一个好的学习方向,对于大家如何去构建自己的知识体系,我还是有自信对大家是有帮助的。
如果你想深入学习以上七大知识点,那我就给大家推荐一个学习群:895244712,群内每天都会有架构大牛分享以上知识,只要你有时间就能免费观看。在具备了以上硬技能的同时,大佬也会不定期给大家分享一些软技能知识,比如说面试技巧、沟通技巧、管理技巧等等。
废话不多说了,我还是要强行点一波题:【别看了,看了你也不能成为架构师!】
技术不是看出来的,架构师也不是想出来的。世界上本没有路,走的人多了也就成了路。路已经为你指明了,要不要走?那就看你自己咯~