如何让自己成为一个优秀的Java架构师,而不是码农

和大家介绍下我目前所从事的工作。

我目前从事分布式服务架构的设计与开发工作,在阿里的大数据平台上进行应用程序开发。我们整个系统架构采用了“前后端分离”的思想,前端关注数据展现,后端关注数据生产,通过 REST服务将前后端整合起来,所有的应用都是无状态的,可以做到水平扩展。我们将整个系统拆分成许多“微服务”,服务之间通过统一的接口来调用,每个服务是通过容器技术进行隔离,此外服务可发布到统一的服务管理平台上,可通过该平台监控每个服务的运行状态与生命周期事件,并为服务调用者提供了服务发现的能力,可对服务进行平滑升级。

阿里有许多优秀的中间件与基础服务,可以快速帮助我们搭建应用系统,而且这些技术在阿里内部全是开源的,大家可以通过源码和文档学习到很多有价值的经验。阿里也提供了浓厚的技术氛围,每位同学都非常专注于自己的工作领域,大家对工作一丝不苟,相互配合,方向一致。

我是如何走上技术这条路的?

2008 年大学毕业,我离开了母校武汉理工大学,在院长薛胜军老师的推荐下,我来到了上海,这个对于我来说非常陌生的地方。我有幸加入了一家名为“动量软件”的创业公司,这家公司的老板曾经是亚信科技的 CTO,他也是普元软件的创始人兼 CTO,他的名字叫黄柳青,他也是薛老师的大学同学。于是就这样,我的老板成为了我的老师,我习惯叫他黄老师,包括公司其他资深的同事也成为了我的老师,因为我很想他们身上学到更多有价值的东西。

刚开始工作的时候我学习了什么是云计算?什么是 SaaS、PaaS、IaaS?我们花了三年时间开发了一款名为 ODE 的 PaaS 平台,让用户可以在该平台上量身定制自己的软件,最终为客户提供基于 SaaS 的产品。确实很骄傲,那时我们已经在做云了,只是没想到后来云会在中国得到这么好的市场,可能当时只有黄老师一个人想到了吧。

在 2008 年,我为公司拿回了“第一桶金”,这也是我从程序员转向项目经理的里程碑。当时我带领团队远赴深圳,为国信证券公司开发经纪人管理系统,这个项目对于我个人而言却是一笔至高无上的财富,我开始学习如何与人打交道,如何做需求分析,如何将需求转变为技术,如何带领团队小伙伴一起工作。学到了太多太多,但我依然选择在我工作第四个年头里离开了动量软件,我刚加入动量软件的时候,公司只有 5 个人(包括老板和前台),当我离开动量软件的时候,公司已经有 200 人左右了。感谢黄老师!我在他身上学到了很多,他的思想和态度直到今天都还在影响着我。

我的第二份工作还是选择了我最熟悉的证券金融行业,同样也是一家创业型公司,在这家公司里我担任了技术经理,管理了整个技术团队,从项目的售前到售后,我都亲自带领团队来完成。虽然在这家公司我只做了两年,但在这短短的时间里,我学会了如何提高开发效率、如何培养技术团队、如何选拔技术人才、如何建立企业文化。但最后我发现了一个问题,越是想做好,越是很难做好,为了做成一件事情需要做很多的尝试,做事情缺乏正确并有效的方法。

如何让自己成为一个优秀的Java架构师,而不是码农

回想我工作的前六年时间里,我一直都是在创业公司里成长,虽然可以快速学到东西,但似乎很难学到更加规范的做事方法。于是我选择了新的工作机会,来到了 TCL 通讯,这是一家相当大的公司,公司的研发管理流程来源于法国阿里卡特公司。我在公司担任 Java 架构师职位,也算是整个 Java 团队的技术负责人,虽然团队并不是特别地大。我在这家公司做了三年,学到了如何整合现有资源、如何按标准流程去做事、如何设计系统架构、如何进行异地工作、如何跨团队工作、如何用英文来沟通。说实话,当时我没有任何的工作压力,可以按时上下班,从来都不会加班。虽然自己空闲的时间很多,但我并没有选择去浪费时间,而是开始写点技术博客,也正是因为这些技术文章,才改变了我后续的职业发展道路。

Java 会在很长的一段时间内是主流,现在做Java Web开发都用哪些框架呢?

常用的比如Spring MVC、Struts2 等,国内的 JFinal、Nutz 等也不错,当然Smart 也是一个很好的选择。

有一定Web前端开发经验的人,很多都会有这么个想法:那些写框架的人好厉害,什么时候我才能写一个自己的框架呢?有时候看看别人的框架代码,又觉得很复杂,对此我有一些建议以及新人学习需要什么基础?分享一些好的方法。

抽象能力:对业务和技术进行抽象。业务抽象就是对需求进行分析后,能够建立完美的实体类以及他们之间的联系。技术抽象是对整体架构进行一个分层,各层之间的交互。这至关重要,如果技术抽象能力不足,这会导致整个系统的架构不灵活,难以维护和扩展。

知识的深度:至少是某个领域的专家,比如消息队列,activeMQ熟悉其源码,知道其实现。

优秀的学习能力:对新的技术和前沿性的技术进行学习,使用它来解决工作中的业务问题。

那么你该如何去做呢?我觉得可以从以下几个步骤开始:

1: 扎实的JAVA 基础,Think in java上介绍的内容都能理解,做到这一步恭喜成为了程序员。

2:熟练使用主流框架,如:mybatis,spring 等。

3:研究过至少一种以web框架的源码,如spring mvc ,struts 等。

4:架构过或者参与过高并发系统设计,知道如何应对突发情况。

5:对自己所处的业务能够根据自己的知识维度,提出优化建议或者预测其风险点。

其实能否成为架构师跟机遇有很大关系,比如一个程序员,以上都做到了,但是公司并没有给他这个机会去做,一个真正架构的机会。因为之前的架构师不离职他就没有机会,这就是现实!

技术人的归途

走技术这条路,归途是什么?是否转型又该如何抉择呢?

至少有好几条路线是可以走的,比如:深入技术、转型做产品、转型做管理等,需要根据自己的特长和性格来选择,做自己喜欢的事情。

从技术转管理,对自身的要求比较高,说具体点,需要看自己的情商,为人处世的经验,与人沟通的技巧,自己也需要有足够的胸怀,去包容一些事情,还需要自己有足够的人格魅力去吸引别人,让别人愿意跟着你一起做事。管理有些东西是很难从书本上学到的,但一些经典的管理理论是必须要去学的。

相比较而言,继续深入技术或者从技术转产品会容易一些了,因为很多时候都不太需要与人打交道。

如果你想学习Java工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty源码分析和大数据等知识点可以来找我。

而现在我就有一个平台可以提供给你们学习,让你在实践中积累经验掌握原理。主要方向是JAVA架构师。如果你想拿高薪,想突破瓶颈,想跟别人竞争能取得优势的,想进BAT但是有担心面试不过的,可以加我的Java架构进阶群:668395460

注:加群要求

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。 
2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。 
3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。 
4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。 
5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知! 
6.小号加群一律不给过,谢谢。

如何让自己成为一个优秀的Java架构师,而不是码农相关推荐

  1. 为什么只有java才有架构师_为什么架构师都是java出身?怎样成为优秀的java架构师?...

    java架构师作为程序员的发展方向,很多程序员都想做架构师,但是同时也不是很明白为什么架构师都是java出身?那么接下来,我们就来给大家讲解一下这方面的内容. 所谓架构师,只是功底深厚的程序员.并且j ...

  2. 一个十年Java架构师的成长之路分享

    前言 我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的 ...

  3. 一个合格的JAVA架构师需要了解哪些知识?java架构师面试题又会有些什么?

    原文  http://www.chinastor.org/gdcc/9259.html 在网上找了一个牛人给出的题目 牛人出的面试题如下: 1. struts,spring,hibernate 这样的 ...

  4. 如何成为java架构师?2023版Java架构师学习路线总结完成,真实系统有效,一切尽在其中

    导读 从初级Java工程师成长为Java架构师,你需要走很长的路,很多有计划的人在学习之初就在做准备.你知道Java架构师学习路线该怎么走吗?成为一个优秀的Java架构师究竟需要学什么?接下来就跟小编 ...

  5. java架构师的自我修养是什么

    java架构师当然是脑力劳动者,但是在相同的脑力劳动中也存在主要差异. 有一种脑力劳动易于评估. 或者可以判断是对还是错:例如考试成绩: 或者可以进行比较:例如,两个人下棋以区分赢家和输家: 或者可以 ...

  6. 如何成为Java架构师?学习路线是怎样的?大佬总结成长之路跟着往上走,建议你提早开始准备!

    导读 好程序员告诉你Java架构师学习路线,从初级Java工程师成长为Java架构师,你需要走很长的路,很多有计划的人在学习之初就在做准备.你知道Java架构师学习路线该怎么走吗?成为一个优秀的Jav ...

  7. java工具链 有什么_Iodine:一个优秀的Java语言工具链

    原标题:Iodine:一个优秀的Java语言工具链 原文:Iodine: a Better Java Language 作者:marc hoffman 翻译:雁惊寒 摘要:本文介绍了一款非常优秀的Ja ...

  8. 一个优秀的Java程序员必须了解的GC机制

    一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序 ...

  9. 【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?

    怎么成为一个优秀的程序员,而不是一个优秀的码农? 9 条评论 分享 默认排序按时间排序 98 个回答 3844赞同反对,不会显示你的姓名 萧井陌 微信公众号:炼瓜研究所 技术社区 - 3844 人赞同 ...

  10. java 优秀源码_想要快速进阶Java架构师?这份超强(长)学习计划单 请签收!...

    优秀工程师的成长之路就是一条不断打怪升级之路的"修仙之路"! 而Java程序员一向比别人更难,如果说大家都在修仙的话,java程序员简直神似"剑修",入行枯燥精 ...

最新文章

  1. 《Excel 职场手册:260招菜鸟变达人》一第 14 招 利用数据验证记录数据录入时间...
  2. 物联网技术概论的课程编号_课程 物联网应用实战 7月班仅剩3个席位
  3. MySql连接时提示:unknown Mysql server host
  4. boost::intrusive::smart_ptr用法的测试程序
  5. 网络编程(part9)--socket套接字编程之TCP套接字
  6. python快速上手 让繁琐工作自动化 英文版_入门python:《Python编程快速上手让繁琐工作自动化》中英文PDF+代码...
  7. find_first_of和find函数的区别
  8. 一旦上云,欲罢不能,带大家薅一薅“云羊毛”
  9. AJHG | 人类遗传学领域一流期刊推荐
  10. windows主机的linux虚拟机中使用neovim复制、粘贴
  11. HTML课程导航作业,北大青年课程导航.html
  12. Message from debugger: Terminated due to signal 6
  13. IOS中怎么使用微软雅黑字体
  14. scrapy——抓取知乎
  15. 第六天 02.mysql数据库的基本操作和密码爆破
  16. BaiduPCS-Go百度网盘不限速下载(2019年7月13日13:28:26成功)
  17. codeblocks出现Encoding Changed The saved doucument contained characters which were illeal
  18. Android Studio获取wifi列表等信息
  19. try catch使用
  20. Java原型模式(prototype)

热门文章

  1. ZOJ 3527 Shinryaku! Kero Musume 【树形DP[带简单环]】
  2. Axure的基本功能
  3. Python笔记:re模块详解
  4. win7系统计算机怎么排列图标,Win7系统桌面图标的三种排序方式
  5. android 打开闹钟,Android中的闹钟设置关闭和打开
  6. 中国石油燃气蓄能器市场深度研究分析报告(2021)
  7. 化工自动化石油化工的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  8. 详解冯诺依曼体系结构与操作系统
  9. 异数OS TCP协议栈测试(五)--关于QOS与延迟
  10. excel如何去重统计户数_如何用好excel统计函数