13
回答
java工程师如何向架构师前进
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

该如何向架构师前进呢,有点迷茫

举报
fightingman
发帖于9个月前 13回/2K+阅
共有13个评论 最后回答: 8个月前

曾经年轻的我也有着成为架构师的梦想,直到后来,我朝思暮想的村花小翠结婚生子,而我依然单身。从此我就不再想什么架构师之类的东西了。兄弟,赶紧泡妞才是王道啊。

--- 共有 3 条评论 ---
青莲居士 回复 @404-网页不存在 : 层主是人才,我们都是有梦想的人,老婆已经有了,目前还缺个女朋友 9个月前 回复
404-网页不存在什么?你跟我说一个,一个就够了吗? 9个月前 回复
fightingman怎么办,已经泡到了 9个月前 回复

如果你很迷茫的话,那证明你根本不在往架构师这条路上面走,因为一般有职业规划并且能完成的人,

是不会迷茫的。另外架构师的要求很高的,你先达到高级程序员再说。

--- 共有 4 条评论 ---
notreami再加一个,扯淡,你就告诉我,10年前,你知道啥叫机器学习嘛?10年后,你知道有什么新技术嘛? 8个月前 回复
西红柿幽幽子职业规划是鬼扯 9个月前 回复
丛林迷雾胡扯 9个月前 回复
fightingman正解 9个月前 回复

基础。基础。基础。 我个人感觉 啥计算机原理、操作系统、网络。这些要没盲点才行。然后才是解决问题

--- 共有 1 条评论 ---
fightingman基础很重要,但光有基础是肯定不行的 9个月前 回复

入门(1年)

  1. 目标:参与简单的项目开发。
  2. 技能:
    • 掌握 Java。经典的《Java 核心技术:卷1 基础知识》(或者《Java 编程思想》)必看,跳过其中的图形和 applet 章节。习惯查阅 Java API Doc。为了保证代码的质量,《Effective Java》、《Clean Code》和《重构》也需要至少通读一遍。
    • 熟悉 Linux 开发环境和 bash shell。Linux 是我们的开发和部署环境,你最好尽快熟练它。Linux 的基本使用可以通过《鸟哥的Linux私房菜:基础学习篇(第三版)》学习,开发 bash shell 脚本可以参考《Linux Shell脚本攻略》。
    • 掌握开发工具
      • 熟练使用一种 IDE。Intellij IDEA或者 Eclipse 都可以,推荐使用前者。至少熟悉常用的快捷键,会 debug(包括远程 debug)项目。
      • 熟悉一种编辑器。比如 Vim/Emacs/Sublime Text,至少学会搜索/替换/代码补全。
    • 掌握 JDK 以外的常用类库和工具包。JDK 原生 API 在很多场景下使用并不方便。你需要掌握社区贡献的优秀类库和工具包,比如 apache commons、google guava 等,具体可以翻阅 服务端技术选型 的Utility 篇。
    • 掌握 Web 开发框架。我们使用 Spring(或Rose) + Ibatis(或Jade) 开发 web 服务,你需要熟练掌握它们。
    • 学习代码规范。我们大致上遵循 oracle 的 Java 语言编码规范,你可以先阅读并熟悉它。Code Formatting 文件在 git@xxx/coding-standard.git,在编写代码之前,请把它导入到 IDE 中。另外,确认 IDE 已经安装 Findbugs 和 CheckStyle 插件。
    • 熟悉开发流程。我们的开发流程大致如下:功能开发->单元测试->功能测试->Code Review->集成测试->发布。确保你熟悉其中的每个环节。
    • 其他。需要熟练使用版本控制工具 Git(阅读:《Git 权威指南》),以及项目构建工具 Maven(阅读:《Maven 实战》)。另外,在这个阶段可以尝试 TDD 开发。

进阶(2-3年)

  • 目标:独立负责某个服务端项目。
  • 技能:
    • 掌握 web 开发最佳实践,掌握 Restful API 设计,理解 Spring 原理。推荐阅读《Spring揭秘》。掌握项目分层、子模块划分。推荐阅读:《J2EE 核心模式》。
    • 掌握 web 架构设计。包括 Http 反向代理,数据缓存,负载均衡,水平扩展和垂直扩展。推荐阅读:《分布式 Java 应用:基础与实践》。
    • 掌握关系型数据库。包括设计 MySQL 表结构,根据业务特点分表分库,基于执行计划的 SQL 分析优化,以及数据库容量规划。推荐阅读:《MySQL 必知必会》、《高性能 MySQL》。
    • 了解 NoSQL。我们大规模使用 Hadoop、HBase、Hive,同时部分项目使用 Redis、Storm。你需要学会这些工具最基本的使用。
    • 学习 web 安全知识。了解 web 前端安全问题。设计安全 web 服务,包括加解密、防伪造、防重放攻击等。
    • 掌握 Http (推荐阅读:《图解Http》、《http权威指南》)、Thrift 等协议。
    • 掌握服务容量规划,性能调优,可靠性保证,以及故障处理。学习容量规划和性能调优知识,梳理业务监控点,熟练使用我们的监控报警系统。推荐阅读:《深入理解 Java 虚拟机》。
    • 其他。设计模式:从项目中学习,有时间可以看看《深入浅出设计模式》、《JDK 里的设计模式》。学习Java Socket 编程与多线程知识,可以看看《Java 并发编程实战》,并翻翻并发编程网的文章。

深入(4年以后-)

  • 目标:分布式系统和中间件开发。
  • 构建知识体系:《大型网站系统与 Java 中间件实践》、《大型网站技术架构:核心原理与案例分析》。
  • 原理与设计:《大规模存储式系统》、《UNIX 网络编程 卷1:套接字联网 API》、《How Tomcat Works》。
  • 学习开源项目:Apache Thrift、Zipkin、Netty、Rose、Jade、淘宝 RPC 系统 Dubbo 等。分析项目中的设计思路。比如,同样是RPC框架,Finagle 和 Dubbo 有什么异同。
  • 其他。根据参与的项目加深学习吧。比如,如果需要写 DSL,可以读一下《领域特定语言》,对 Redis 感兴趣推荐读一下:《Redis 设计与实现》。有两本书,无论做什么项目,都推荐读:《Unix 编程艺术》、《UNIX 环境高级编程(第3版)》。
--- 共有 3 条评论 ---
八一菜刀很全面,但我觉得年限得往后推迟1~2年 8个月前 回复
fightingman老哥,学习了 8个月前 回复
求是科技楼主高见! 9个月前 回复

1. 菜鸟入门:熟悉语法,了解编程思想,能够模仿已有功能进行开发和修改

2. 略有小成:独立完成一些功能的开发,能够封装工具类,能够通过api文档解决问题

3. 一般高手:能够完成模块的设计、能够对第三方组件,接口做初优雅得封装,能够对框架或第三方产品做出优化方案,疑难问题分析

到这个阶段就可以去挑战架构师岗位

4. 初级架构:能够完成一整套业务系统得架构设计,能够做框架集成、并加入常见的业务场景解决方案

5. 架构师: 能够模仿主流框架做一套自己得最小化实现,能够讲解大部分常见协议得原理和简单得实现过程,能够通过抽象得概念描述理解其应用场景

到这个阶段 就差不多能胜任架构师了,再之上还有行业架构师,首席架构师等 对大脑消耗会越来越大

等到你秃顶得时候 基本就能成为万中无一得高手了

顶部