八年Java架构学习经验总结:第六点尤为重要!

前言:

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月28K你却只有10K?

其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差),主要和勤奋程度、提升方法有关。

勤奋程度不必多说,全靠自我监督和自制力。在这里我们详细谈谈提升方法,毕竟好的提升方法会让你事半功倍。到底有哪些有效的好方法,能帮助我们进阶成Java高级工程师呢?

下面这3种方法,你应该加以重视:

  1. 吃透基础技术
  2. 养成良好的阅读源码的习惯
  3. 有长期的技术学习规划

下面,我们来一起逐条看看,特别是第 3 个方法。

吃透基础技术

基础技术是各种上层技术共同的基础。吃透基础技术是为了更好地理解程序的运行原理,并基于这些基础技术进化出更优化的产品。很多分布式系统架构,以及高可用、高性能、高并发的解决方案基本都可以在基础技术上找到它们的身影。所以,对基础技术的学习才能够更好地掌握更高维度的技术。

很多人会觉得底层技术博大精深,从语言、编程范式、算法和数据结构、计算机原理、网络、数据库、分布式技术等等,怎么可能有时间去掌握这么多东西呢。这确实需要持续学习的毅力,现在很多技术大牛仍在夯实扩展自己的底层技术,自己就更没有理由忽视这一块了不是吗?

养成良好的阅读源码的习惯

源码阅读,尤其是针对你正在使用的第三方库。千万不要面试的时候,什么源码都未学习过,理由就是业务太忙,更有甚者说“我觉得没用”。

阅读源码要能回答两个问题:要解决什么问题+是如何实现的?大到整个项目,小到一个模块、函数,看的时候都要抱着这两个问题去看。看完了这两个问题能答上来,才是有效。

阅读源码时建议你这么做:

背景调查:看官网介绍、维基百科,了解主要功能,被应用于哪些项目以及基本的使用,掌握这些基本信息 使用框架:至少follow“Get Started”做个小demo(真的有人连API都没调用过,上来就看代码) 尽可能编译调试。能调试的代码,几乎没有看不懂的 了解一些设计模式。这样看到名字里有proxy,builder,factory之类的,就心领神会了 横向分层,纵向分块。代码都是分模块的,有的是core,有的是util,parser之类的,要知道看的是哪一层,哪一块。有的小项目分层不明显也不必强求

注意:要看的不只是语法上的技巧,更重要的是设计上的思路和原理。知易行难,把养成良好的阅读源码习惯提上日程吧!

有长期的技术学习规划

Java进阶之路离不开一个长期学习规划的指引。你可以制定一个系统的学习路线,帮助你全面提升技术水平。当然,对于每个Java程序员来说,几乎都有一个成为架构师的梦想。

以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上。想想有多少人对于自己将来要从事的职业和技术类型进行过深入思考和比较呢?当我跳出编码后,我开始思考和程序及程序员职业生涯相关的问题,最后发现,影响我们走入今天的困局的竟然是一些我们常常挂在嘴边的话。

今天,就为大家整理一份目前互联网公司最主流的技术选型:

一:常见模式与工具

学习Java技术体系,设计模式,流行的框架与组件是必不可少的:

  • 常见的设计模式:编码必备
  • Spring5:做应用必不可少的最新框架
  • MyBatis:玩数据库必不可少的组件

二:工程化与工具

工欲善其事必先利其器,不管是小白,还是资深开发,玩Java技术体系,选择好的工具,提升开发效率和团队协作效率,是必不可少的:

  • Maven:项目管理
  • Jenkins:持续集成
  • Sonar:代码质量管理
  • Git:版本管理

三:分布式架构

高并发,高可用,海量数据,没有分布式的架构知识肯定是玩不转的:

  • 分布式架构原理
  • 分布式架构策略
  • 分布式中间件
  • 分布式架构实战

四:微服务架构

业务越来越复杂,服务分层,微服务架构是架构升级的必由之路,Java技术体系,和微服务相关的技术有哪些呢?

  • 微服务框架
  • Spring Cloud
  • Docker与虚拟化
  • 微服务架构

五:性能优化

任何脱离细节的ppt架构师都是耍流氓,向上能运筹帷幄,向下能解决一线性能问题,Java技术体系,需要了解:

  • 性能指标体系
  • JVM调优
  • Web调优
  • DB调优

六:底层知识

从架构设计,到应用层调优,再深入了解底层原理,扎实的Java基本功才能让自己变为扫地神僧:

  • 内存模型
  • 并发模式
  • 线程模型
  • 锁细节

注:以上技术体系主要针对1-6年Java开发工作人群!

原文发布于微信公众号 - Java技术驿站(chenssy89)

原文发表时间:2018-10-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏软件测试经验与教训

如何管理测试项目(二)

2926
来自专栏SEO

「消息」Google推出新的弧形移动搜索结果界面

3788
来自专栏Java学习网

学习你的第一门编程语言

好的,决定好想学什么编程语言了吗,现在就让我们开始学习吧。 所有你需要做的就是打开一本书,然后开始阅读,是这样的吗? 不全是这样的。我的意思是,你可以用那种方式...

3106
来自专栏平凡文摘

2018最吸金编程语言

4565
来自专栏Java架构

在北京做Java开发如何月薪达到两万,需要技术水平达到什么程度?

2474
来自专栏程序员互动联盟

为什么用手机学不好编程?

最近看到很多人在用手机编写代码,不是说手机写不了代码,而是用手机写代码在调试方面缺陷很多,查阅资料也有很多不便利的地方。 为啥不提倡用手机写代码? ? 1.长期...

38012
来自专栏云计算D1net

SDN和SDS如何影响未来的云构架

软件定义网络(SDN)和软件定义存储(SDS)在实现负载分离的同时,还能够提供敏捷性和快速扩展等特性。 使用云服务——不论是私有云还是混合云——的租户,都希望能...

3118
来自专栏架构师之路

通过“缓存”传递数据,是否可行?

如《互联网分层架构的本质》所述,互联网分层架构的本质,是数据的移动。 数据的移动,需要载体,DB和cache是常见的数据存储载体。 ? 如上图: service...

3587
来自专栏平凡文摘

理解程序员并不是一项简单的任务, 即使你当过程序员

1534
来自专栏CSDN技术头条

为什么说Python是伟大的入门语言

本文作者列举了一些Python特性,并认为Python是最适合入门的编程语言,一起来看一下。 最近发表了三篇关于我的艺术史背景是如何影响我教学的文章。现在要分享...

2518

扫码关注云+社区

领取腾讯云代金券