写在开篇

不管是开发、测试、运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。

然而“梦想是美好的,现实却是残酷的”,很多同学在实际工作后就会发现,梦想是成为大牛,但做的事情看起来跟大牛都不沾边,例如,程序员说“天天写业务代码还加班,如何才能成为技术大牛”,测试说“每天都有执行不完的测试用例”,运维说“扛机器接网线敲shell命令,这不是我想要的运维人生”。

提升技术的误区:

有人认为想成为技术大牛最简单直接、快速有效的方式是“拜团队技术大牛为师”,让他们平时给你开小灶,给你分配一些有难度的任务。

有这种想法是错误的,主要有这几个原因:

1、首先,大牛是很忙的,一个团队里面,如果大牛平时经常给你开小灶,难免会引起其他团队成员的疑惑,我个人认为如果团队里的大牛如果真正有心的话,多给团队培训是最好的。然而做过培训的都知道,准备一场培训是很耗费时间的,课件和材料至少2个小时(还不能是碎片时间),讲解1个小时,大牛们一个月做一次培训已经是很高频了。

2、大牛不多,不太可能每个团队都有技术大牛,只能说团队里面会有比你水平高的人,即使他每天给你开小灶,最终你也只能提升到他的水平;而如果是跨团队的技术大牛,由于工作安排和分配的原因,直接请教和辅导的机会是比较少的,单凭参加几次大牛的培训,是不太可能就成为技术大牛的。

学习方式

很多人以为要学习就要像学校上课一样,给你一整天时间来上课才算学习,而我们平时加班又比较多,周末累的只想睡懒觉,或者只想去看看电影打打游戏来放松,所以就没有时间学习了。

实际上的做法正好相反:首先我们应该在工作中学习和提升,因为学以致用或者有实例参考,学习的效果是最好的;其次工作后学习不需要大段时间,而是要挤出时间,利用时间碎片来学习

如何想办法真正的提升自己:more and more

做的更多,做的比你主管安排给你的任务更多。熟悉更多业务,不管是不是你负责的;熟悉更多代码,不管是不是你写的。

这样做有很多好处,举几个简单的例子:

需求分析的时候更加准确,能够在需求阶段就识别风险、影响、难点

问题处理的时候更加快速,因为相关的业务和代码都熟悉,能够快速的判断问题可能的原因并进行排查处理。

方案设计的时候考虑更加周全,由于有对全局业务的理解,能够设计出更好的方案

找到正确的学习路线

一、构成架构师的技能体系

二、阅读源码,分析源码知识点总汇

这张图详细介绍了源码中所用到的经典设计思想及常用设计模式,先打好内功基础,了解大牛是如何写代码的,从而吸收大牛的代码功力。

结合Spring5和MyBatis源码,带你理解作者框架思维,帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。

三、分布式架构

有了大牛的代码功底之后,接下来可以更好地学习分布式架构技术。

透彻理解分布式架构的好处和优点

必然性,适应市场需求,能够去找一些更大的平台发展,提升自己的综合技术能力和薪资。

了解从传统架构到分布式架构演变过程所带来的技术变革,将理论和实战相结合,透彻理解分布式架构及其解决方案。

从分布式架构原理,到分布式架构策略,再到分布式架构中间件,最后在加上分布式架构实战,让程序员可以在技术深度和技术广度上得到飞跃的提升,成为互联网行业所需要的T型人才。

四、微服务架构技能总汇

随着业务的发展,代码量的膨胀和团队成员的增加,传统单体式架构的弊端越来越凸显,严重制约了业务的快速创新和敏捷交付。为了解决传统单体架构面临的挑战,先后演进出了SOA服务化架构、RPC框架、分布式服务框架,最后就是当今非常流行的微服务架构。微服务化架构并非银弹,它的实施本身就会面临很多陷阱和挑战,涉及到设计、开发、测试、部署、运行和运维等各个方面,一旦使用不当,则会导致整个微服务架构改造的效果大打折扣,甚至失败。

五、并发编程

从Java基础接触多线程,到分布式架构环境下的高并发访问,并发编程充分利用好各个服务器处理器,以最高的效率处理各个任务协同有序工作。透彻理解锁的应用。

六、性能优化

大家都知道,性能一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,性能方面就会下降,如果想成为一名优秀的架构师,性能优化就是你必须思考的问题。

所以性能优化专题从JVM底层原理到内存优化再到各个中间件的性能调优,比如Tomcat调优,MySQL调优等,让你洞悉性能本质,全面认识性能优化,不再只是旁观者。

七、Java开发必知工具

一名优秀的架构师必须有适合自己的兵器,也就是工欲善其事必先利其器,不管是小白,还是资深开发,都需要先选择好的工具。工程化专题的学习能帮助你和团队提升开发效率,让自己有更多时间来思考。

Git:可以更好地管理你和你团队的代码。

Maven:可以更好地管理jar包和项目的构建等。

Jenkins:可以更好地持续编译,集成,发布你的项目。

Sonar:一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题(提升代码的质量,更加高效地提升开发效率)。

八、实践一个双十一电商项目

电商项目目的是把所学的分布式,微服务,性能调优等知识运用起来,只有在项目中你才能巩固知识,提升自己。实践电商项目会利用云服务器搭建真实的开发和部署环境,让你从零到项目实战,体验真实的企业级项目开发过程,让你具备独立开发和搭建分布架构系统的能力。

总结

要想有机会,首先你得从人群中冒出来,要想冒出来,你就必须做到与众不同,要做到与众不同,你就要做得更多! 成为技术大牛梦想虽然很美好,但是要付出很多,不管是Do more还是Do better还是Do exercise,都需要花费时间和精力,这个过程中可能很苦逼,也可能很枯燥,这里我想特别强调一下:前面我讲的都是一些方法论的东西,但真正起决定作用的,其实还是我们对技术的热情和兴趣!

文章中涉及到的技术点都分享在群:190469800 里 每天都有大牛分享技术

java 资深_Java架构师之路:从Java码农到资深架构师相关推荐

  1. 架构师之路:从码农到架构师你差了哪些

    转载自   架构师之路:从码农到架构师你差了哪些 Web应用,最常见的研发语言是Java和PHP. 后端服务,最常见的研发语言是Java和C/C++. 大数据,最常见的研发语言是Java和Python ...

  2. java架构师之路:JAVA程序员必看的15本书的电子版下载地址

    java架构师之路:JAVA程序员必看的15本书的电子版下载地址 作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一 ...

  3. 代码精进之路:从码农到工匠读书笔记

    代码精进之路:从码农到工匠读书笔记 第一章技艺 代码命名规范的意义: 由此可见,事物的复杂程度在很大程度上取决于其有序程度,减少无序能在一定程度上降低复杂度,这正是规范的价值所在.通过规范,把无序的混 ...

  4. Java程序猿如何从码农晋升为架构师

    一.架构师的定义 首先必须具有丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去. 其次要具有领导能力与团队协作技能,软件架构师必须是一个得到承认的技术领导,能在关键时候对技 ...

  5. Java程序员如何从码农晋升为架构师,你跟架构师的差别在哪里?

    一.如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量. ...

  6. java创新_Java没有创新了吗?Java 13提供可提高生产率和效率的功能

    Java没有创新了吗? 在其CodeOne会议上,Oracle解释了Java SE 13正式发布后Java的快速发布周期如何带来创新. 在过去的二十多年中,Java编程语言新版本的开发速度相对较慢,仅 ...

  7. java log4j logback jcl_进阶之路:Java 日志框架全画传(下)

    导读:随着互联网和大数据的蓬勃发展,分布式日志系统以及日志分析系统得到了广泛地应用.目前,几乎在所有应用程序中,都会用到各种各样的日志框架来记录程序的运行信息.鉴于此,工程师十分有必要熟悉主流的日志记 ...

  8. java私塾 java篇_Java私塾跟我学系列——JAVA篇 五、

    五:Java如何做到让机器理解我们想要做的东西 用一个图来描述这个过程会比较容易理解: 1:编写代码 首先把我们想要计算机做的事情,通过Java表达出来,写成Java文件,这个过程就是 编写代码的过程 ...

  9. 【 58沈剑 架构师之路】究竟啥才是互联网架构“高并发”

    2019独角兽企业重金招聘Python工程师标准>>> 一.什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设 ...

最新文章

  1. 【深度学习】(3) 全连接层、激活函数
  2. 轻量级卷积神经网络的设计技巧
  3. 利用SQL索引提高查询速度
  4. 【效率】如何有效提问
  5. 【Python应用】Python+Kepler.gl轻松制作酷炫路径动画
  6. Js函数function基础理解
  7. 『设计模式』Web程序开发最基本的编程模式--MVC编程模式
  8. 2016/06/22 中色启动筹码分析作业
  9. postfix报错postfix: fatal: parameter inet_interfaces: no local interface found for ::1
  10. 前端学习(2324):angular初步使用
  11. https 密钥 php,https加密方式是什么
  12. 如何应对软件项目的投标答辩
  13. python使用ide_python使用什么ide?[关闭]
  14. sC#进阶系列——WebApi 接口参数不再困惑:传参详解
  15. 2019-2020大一下学期总结和暑假安排
  16. 无法找到mac地址必须重启计算机_AB PLC | CPU或以太网模块重启DHCP请求
  17. 算法:回溯十四 Restore IP Addresses数字字符串还原为IP地址(2种解法)
  18. 用 QT实现拖放(drag-drop)功能
  19. “最新”手机号码归属地库制作
  20. GameCenter Achievement相关问题

热门文章

  1. DataTextField和DataValueField的区别
  2. 让UpdatePanel支持上传文件:解决当页面显式设置document.domain时提示的500错误
  3. 今天才知道还有这个地址 MS 的
  4. C/C++ queue队列的理解以及使用
  5. 动态规划——最优买卖股票时机含冷冻期(Leetcode 309)
  6. C语言课后习题(10)
  7. C语言课后习题(5)
  8. 跨考计算机报班,考研跨考的经验总结与分享
  9. access 打印预览 代码_如何在亚银标签纸上批量打印条形码
  10. 论文阅读丨神经清洁: 神经网络中的后门攻击识别与缓解