分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)

导读:
架构师应不应该写代码

为什么别人的系统总是那么烂

成为架构师最困难的门槛是什么?

如何更高效的学习?

1.架构师应不应该写代码

合格的程序员对于明确分配的任务会完成的很好,但是大部分情况下“架构”这个词意味着架构师并不会涉及太多细节,架构图和代码实现之间总还是有些距离,你无法保证所有人都会正确的理解你的设计,或者是程序员写代码时遇到障碍时会立刻想出足够优雅的解决方案。

在我看来,写代码的架构师更像是在做后勤保障的工作:在代码中第一时间发现可能存在的问题,向其他人提出警告,或是给予其他人改进的意见,必要的时候或是给其他人演示一下正确的姿势。

大部分情况下我作为架构师并不需要揽下“核心模块”开发这种工作,毕竟我能调配的时间太零散了,效率难以保证,很多人在专注的情况下比我做的好很多,我只需要保持大局观需要适度参与就可以了。

总的来说,架构师和程序员在某些方面上有点像产品经理和用户的关系,大部分程序员并不会主动告诉你他们想要什么、哪里需要优化,甚至自己也不知道这些。想要做出好的产品,捷径之一就是跟用户做同样的事情。

2.为什么别人的系统总是那么烂

很多程序员解决问题的能力很强,说要解决一个什么问题,下午就能写出几百行代码把功能实现了。但是做出来的东西有种少考虑了什么东西的感觉。大部分程序都能实现功能,但是如果把“时间”这个也作为一个考虑的维度的话,就会意识到一个合格的项目需要考虑更多的东西:更通用的使用方式、易于理解的文档、简单而易于扩展的设计,等等。

很多公司应该都会有一些遗留系统,它们庞大、笨重、难用、几乎无法维护,所有人都在抱怨这些系统,并且每天都在想方设法换掉那些遗留系统。但是一段时间过去之后,又会发现身边的新人又开始吐槽当时替代遗留系统的那个系统了。

“大多数系统当初都很好使,功能当时够用,扩展性看起来也可以,但是这些系统都是开发的人离职之后变坏的。”

3.成为架构师最困难的门槛是什么?

很多人自称架构师的人跟你讲一个架构时简直滔滔不绝,各种技术名词像是说相声一样从他嘴里说出来,三句话不离高并发大数据,但是稍微追问一下,就会发现很多基本概念的缺失,例如自称精通高并发的人说不清楚他所谓的高并发系统的瓶颈在哪里,自称精通架构设计的人说不明白他的系统怎么保证高可用,自称超大数据量的系统实际上只有不到100万条数据,等等。

架构师虽然听起来很高大上,但本质上仍然是工程师,不是科学家,也不是忽悠人的江湖骗子。学习再多,也需要实践落地。设计架构方案更多的是在做一些抽象和权衡:把复杂的需求抽象成简单的模型,从功能、性能、可用性、研发成本等等方面规划如何构建一个系统,这些内容需要更多的实践练习。

4.如何更高效的学习?

大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。

说说自己提升学习效率的心得,其实非常简单:体系化的学习。

在重复了几次痛苦的学习-梳理过程后,再去看一些独立的文章或者资料往往会事半功倍,因为能在体系内找到相对应的知识,甚至有时候一本书里一页只需要看一句话,点破那层窗户纸,就可以掌握新的知识。

跟很多人一样,刚毕业时我觉得作为程序员,只要努力,加上少许天赋便可以获得一些成绩。

工作一段时间后,对自己和其他人的认识也越来越清晰,逐渐的发现程序员之间的差距或许比人和猴子之间的差距还大,接受这个事实这让我郁闷了很久。

再过一段时间,发现自己已经能够客观的评价自己的能力,也意识到了距离并不是那么重要,只要想办法跑的更快,就足够了。

5.快速成为架构师的学习路线

以下五大知识体系是我从业多年总结出来的经验,都是当前最主流的技术。想学习这些技术的朋友可以加群:714526711。群里会分享这些技术知识点供大家学习免费下载

分布式学习路线:




原文地址:https://blog.51cto.com/14207296/2360556

时间: 2024-10-08 23:28:40

分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)的相关文章

我用了7年时间成长为阿里Java架构师,你呢?(附学习路线图)

前言:我用了七年的时间,一步一步走到了现在,中途也有了解过其他的技术,也想过要转其他的语言,但是最后还是坚持下来走Java这条路,希望我的经历可以帮助到后来的人,要是觉得对你有帮助的话,可以点赞关注一下. 导读: 1.架构师应不应该写代码 2.为什么别人的系统总是那么烂 3.成为架构师最困难的门槛是什么? 4.如何更高效的学习? 1.架构师应不应该写代码 合格的程序员对于明确分配的任务会完成的很好,但是大部分情况下"架构"这个词意味着架构师并不会涉及太多细节,架构图和代码实现之间总还是

资深大牛分享:一个合格的Java程序员如何成长为优秀的架构师

踽踽独行上下求索总是痛苦,如果有良师益友陪伴点拨必能事半功倍.从新手码农到高级架构师,要经过几步?要多努力,才能成为为人倚重的技术专家?本文将为你带来一张程序员发展路径图,但你需要知道的是,天下没有普适的道理,具体问题还需具体分析,实践才能出真知.资深大牛分享:一个合格的Java程序员如何成长为优秀的架构师如果大家如果在自学遇到困难,想找一个java的学习环境,可以加入我们的java学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题. 我认为,架构师的内功主要包含三部分:判断力.执

十年java架构师分享的一些干货,成为架构师的必备技能

十年java架构师教你怎么学好java架构一.分布式架构架构分布式的应用和工具,成熟目前的技术包括 J2EE,CORBA 和 DCOM,这些技术牵扯的内容非常广,相关的书籍也非常多.分布式系统是一个古老而宽泛的话题,而近几年因为"大数据"概念的兴起,又焕发出了新的青春与活力.除此之外,分布式系统也是一门理论模型与工程技法.学习分布式系统的同学往往会感觉:"入门容易,深入难"的确,学习分布式系统几乎不需要太多数学知识.分布式系统还是一个复杂且宽泛的研究领域,学习一两门

Java架构师分享自己的从业心得,从码农到架构师我用了八年

工作了挺久,发现有个挺有意思的现象,从程序员.高级程序员,到现在挂着架构师.专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了. 这些疑问有些来自于跟小伙伴的交流,有些是我的自问自答,有些到现在也想不清楚,这篇文章就来写一写这些年来自己的从业心得. 记得有人说过一句话,大体意思是:现在计算机技术发展那么迅速,日新月异,那些学计算机技术的人,要不断学习才能不被淘汰,那些人的脑子是不是坏掉了,干嘛要让自己活的这么累?表示不解.不想时隔几年,我也进入了这个飞速发展的IT行业.大概是随

JAVA架构师面试分享—链家网

本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间都是在做.NET相关的技术工作,并且自己所负责过的项目规模都是比较小,并且差异也较大.在高并发性,高伸缩性的互联网网站的架构方面没有太多的经验,只是在之前空闲时阅读李智慧老师的<大型网站技术架构>一书给了我不少的启发.面试过程比较简单,首先是笔试,架构师职位主要是一些知识的理解,也有一些数据库查询

分享系列--面试JAVA架构师--链家网

本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间都是在做.NET相关的技术工作,并且自己所负责过的项目规模都是比较小,并且差异也较大.在高并发性,高伸缩性的互联网网站的架构方面没有太多的经验,只是在之前空闲时阅读李智慧老师的<大型网站技术架构>一书给了我不少的启发.面试过程比较简单,首先是笔试,架构师职位主要是一些知识的理解,也有一些数据库查询

Java架构师分享自己的技术体系,程序员如何从码农到专家

一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心驱动力.我见到绝大多数程序员,对学习的态度,基本上就是这几个层次(很偏激哦): 下图是我总结出目前最应该学习的源码知识点: 二.分布式架构 分布式系统是一个复杂且宽泛的研究领域,学习一两门在线课程,看一两本书可能都是不能完全覆盖其所有内容的. 总的来说,分布式系统要做的任务就是把多台机器有机的组合.

一名工作8年的Java架构师分享经验之如何成为一名架构师

很多工作一定年限的程序员感觉自己到了瓶颈不知道怎么去突破,其实这个时候就要冲破传说中的架构师. 架构师是个很神秘人物,那么架构师的技术一般在什么程度呢?怎样才能被称为架构师? 技术深度 有没有看过JDK源码,看过的类实现原理是什么. HTTP协议 TCP协议 一致性Hash算法 JVM如何加载字节码文件 类加载器如何卸载字节码 IO和NIO的区别,NIO优点 Java线程池的实现原理,keepAliveTime等参数的作用. HTTP连接池实现原理 数据库连接池实现原理 数据库的实现原理 技术框

阿里P7架构师分享:15分钟快速掌握SpringCache(使用详解)

缓存的策略有很多,在应用系统中可根据情况 选择,通常会把一些 静态数据后者变化频率不高的数据放到缓存中,如配置参数.字典表等.而有些场景可能要寻找替代方案,比如,想提升全文检索的速度,在复杂场景下建议使用搜索引擎,如Solr或 ElasticSearch. 通常在Web开发中,不同层级对应的缓存要求和缓存策略全然不同,如下图:下面了解一下缓存中的两个比较重要的基本概念: 1. 缓存命中率 即从缓存中读取数据的次数与总读取次数的比率.一般来说,命中率越高越好. 命中率 = 从缓存中读取的次数 /(