程序员■根本没有迷茫的程序员,只是你没有找对进阶方式。阿里P8给你建议


最近好多人私信问我 , 该怎样才能成为高薪架构师 , 还有一个就对当前的状态感到迷茫 , 我在此做一个简单的说明 , 或者对迷茫中的你来说有些许帮助 。
当前你感到迷茫吗? 有很多人对现在的工作感到很没意思 , 因为当前的工作 , 完全是实现业务 , 技术上没有任何提高 。 在这种状态下就会感到迷茫 , 特别是一想到将来这种迷茫感就更强烈了 。
与其说迷茫还不如说是担忧 , 随着时间的推移 , 自己的技术又没有长进 , 所以感觉忧心忡忡 。
这里分为二种人:
*混日子 , 过一天算一天
这一种的我就不过多讨论了 , 没有什么意义 。 我也碰到过很多这样的同事 , 此类程序员已经废啦 。
*想提高自己的技术 , 往架构师方向努力 。
给我发私信的人 , 大部分是这一种 。 首先 , 可以看出来 , 这些人都是有自己理想的人 , 也会付诸实践的 。 想往架构师方向走 , 但是却苦于没有人带 , 自己也不知道如何成为框架师 。 再不改变 , 此类程序员可能会也废 。
我想借这个文章和大家聊聊架构师这个话题 , 纯属个人理解 , 与对错无忧 。
架构师的定义?个人觉得架构师需要具有以下几特点:
知识广度:需要知道主流技术为什么诞生 , 能解决什么问题?如果同一种业务用不用的技术来实现 , 会有什么哪些优缺点?比如:流行的ORM框架Mybatis 和 hibernate, 还有spring框架他们之间的优缺点是什么?要有清晰的认识会能在技术造型时做出正确的决定 。
抽象能力:对业务和技术进行抽象 。 比如业务抽象就是对需求进行分析后 , 能够建立完美的实体类以及他们之间的联系 。 技术抽象是对整体架构进行一个分层 , 各层之间的交互 。 这至关重要 , 如果技术抽象能力不足 , 这会导致整个系统的架构不灵活 , 难以维护和扩展 。
知识的深度:至少是某个领域的专家 , 比如消息队列 , 或者activeMQ熟悉其源码 , 知道其实现 。
优秀的学习能力:对新的技术和前沿性的技术进行学习 , 使用它来解决工作中的业务问题 。
那么你该如何去做呢?我觉得可以从以下几个步骤开始:
1: 扎实的Java 基础 , Think in Java上介绍的内容都能理解 , 做到这一步恭喜成为了程序员 。
2:熟练使用主流框架 , 如:mybatis , spring 等 。
3:研究过至少一种以web框架的源码 , 如spring mvc, struts 等 。
4:架构过或者参与过高并发系统设计 , 知道如何应对突发情况 。
5:对自己所处的业务能够根据自己的知识维度 , 提出优化建议或者预测其风险点 。
其实架构师并没有想象中的那么难 , 但是你要看是什么公司的架构师 , 我见过一个小企业的架构师 , 工作八年了 , 但是感觉真的水平就只有阿里P6这样的级别 , 其实能否成为架构师跟机遇有很大关系 , 比如一个程序员 , 以上都做到了 , 但是公司并没有给他这个机会去做 , 一个真正架构的机会 。
针对以上的问题 , 其实更多的是技术方面的东西 , 我自己收集整理了一套Java架构方面的路线图 , 分享给目前工作2~5年左右的Java程序员们 , 可以梳理一下自己的技术 , 这些东西可能你们平时在工作中接触过 , 但是缺少的全面系统的学习 , 所以掌握的都不深 , 希望看了路线图以后大家知道从哪里开始入手学习 。
这是通往架构师的必经之路 , 由浅入深地沉稳扎根基础 。需要完整版java架构师进阶路线图谱及相关架构资料的老铁 , 请转发+关注 , 然后私信回复“666”获得免费领取方式 。
一、扎实基础、深入底层 , 面试我可造火箭 。

  1. 多线程与高并发
  2. 深入JVM
  3. JVM调优案例式实战化指导
  4. 经常被问操作系统原理分析
  5. 从底向上网络原理解读
  6. 案例式深入解析23种设计模式


    推荐阅读