前言:我用了七年的时间,一步一步走到了现在,中途也有了解过其他的技术,也想过要转其他的语言,但是最后还是坚持下来走Java这条路,希望我的经历可以帮助到后来的人,要是觉得对你有帮助的话,可以关注一下和转发分享,帮助让走在Java这条路上还迷茫的同行们。

刚当程序员时,我是属于那种勤勤恳恳类型的员工,工作态度用认真来形容不为过,每天我几乎是团队里最早到公司,又最晚下班的一个。而组员张工一般情况下都是准时上下班的,即使项目进度比较紧急,他也很少加班,除非是有特殊情况,他才加班。

要是按勤奋程度和工作时间长短来衡量,我想我比张工积极多了。按理说,我这么积极,工作量应该比张工多才对,其实不然,领导安排给我的工作任务和张工的任务相比,我比他还要少。

从张工提交的代码看,他的代码不仅规范而且很优雅,大的不说,就他能对一些基本控件进行封装处理,还做了拓展,方便给其他开发人员调用,就已经很让我敬佩不已了。

而我所谓的工作时间长,其实大多时间是在重复地造轮子,一个相同的功能重复做,不仅没有做封装处理,导致冗余代码还多,有时候刚好碰到需求改动,我就把自己累得够呛,现在想想,真的活该啊。

image.png

类似这样的情况不知你身边有没有:

读书的时候,有的同学上课时眼睛睁得特别大,还做笔记,一节课下来,笔记本里密密麻麻的,课后做的练习题也不少,可成绩却差强人意。而有些同学表面看似不怎么努力,学习成绩却保持很好。

工作时,有些人总是“加班”,看起来很敬业,而他们上班时间却一会儿逛淘宝,一会儿刷微博,看头条,该上班时间完成的他们留在了下班时间做。

…………

有时候我会有一种错觉,觉得自己明明很努力了,连碎片化时间都拿来学习,可进步却不大。

甚至本该闲着的时间,为了不让自己闲着,找了一大堆事情来让自己忙碌起来,貌似挺充实的。一段时间后,发现没有取得什么成绩,越努力越失败,于是陷入迷茫。“你看看,我都这么努力了,怎么还是老样子。” 渐渐开始怀疑自己,继而消沉,甚至萎靡不振。

其实闲着并不可怕,闲着也是一种享受,能够保持闲着也是一种能力,可怕的是,我们觉得是在虚度时光,盲目地给安排了一些无关紧要的事情, 反而为自己努力而感动的不要不要的。

请不要让自己只是看起来很努力,因为结果不会陪你演戏.要让别人羡慕,太容易了,适当装一下就可以了,但要让自己羡慕自己,就有点难了。

image.png

真正的努力,不是比谁花的时间多,看上去谁更加努力,而是能否找到合适自己的方法,然后多思考,多总结,摸索一套适合自己的学习方法。

忙碌的时候也要注意劳逸结合,一味的埋头工作如同老牛拉犁一样,人的体能是有限的,大脑也是需要休息,超负荷的工作只能降低工作效率,很难产生事半功倍的结果。适当的放松下,喝杯水,让身心放松下来,或许有意外的收获。

当前你感到迷茫吗?

有很多人对现在的工作感到很没意思,因为当前的工作,完全是实现业务,技术上没有任何提高。在这种状态下就会感到迷茫,特别是一想到将来这种迷茫感就更强烈了。

与其说迷茫还不如说是担忧,随着时间的推移,自己的技术又没有长进,所以感觉忧心忡忡。

这里分为二种人:

混日子,过一天算一天这一种的我就不过多讨论了,没有意义。我也碰到过很多这样的同事,此类程序员已经废啦。

想提高自己的技术,往架构师方向努力。

架构师的定义?

个人觉得架构师需要具有以下几特点:

知识广度:需要知道主流技术为什么诞生,能解决什么问题?如果同一种业务用不用的技术来实现,会有什么哪些优缺点?比如:流行的ORM框架Mybatis 和 hibernate ,他们之间的优缺点是什么?要有清晰的认识会能在技术造型时做出正确的决定。

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

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

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

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

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

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

研究过至少一种以web框架的源码,如springmvc ,struts等。

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

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

如何更高效的学习?

很多人不知道该怎么去学习架构师所需的知识,大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。

说说自己提升学习效率的心得,其实非常简单:体系化的学习。

跟很多人一样,刚毕业时我觉得作为程序员,只要努力,加上少许天赋便可以获得一些成绩。

工作一段时间后,对自己和其他人的认识也越来越清晰,逐渐的发现程序员之间的差距或许比人和猴子之间的差距还大,接受这个事实这让我郁闷了很久。

再过一段时间,发现自己已经能够客观的评价自己的能力,也意识到了距离并不是那么重要,只要想办法跑的更快,就足够了。

快速成为架构师的学习路线

以下五大知识体系是我从业多年总结出来的经验,都是当前最主流的技术。想学习这些技术的朋友可以加群:810589193免费获取思维导图交流学习,探讨技术,提升自己。希望能够帮助大家全面、科学地建立自己的技术体系和技术认知!

一、分布式架构体系

分布式怎么来的。传统的电信、银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正也不缺钱,IBM小型机,大型机,采购了堆硬件。

总结一下,首先要了解分布式原理,然后对应着每个功能区找业界内成熟的产品来实时。互联网行业,基本都有开源的产品供你选择。

下图是我总结的分布式的技术攻克点:

分布式1.jpg

二、微服务架构

微服务(Microservice)这个概念是2012年出现的,作为加快Web和移动应用程序开发进程的一种方法,2014年开始受到各方的关注,而2015年,可以说是微服务的元年;

微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的。

下图是我总结的微服务的技术要点:

三、阅读源码、分析源码

程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这种怪状,真要追究起来,怪不得程序员这个群体本身 —— 它是两个原因造成的。

我们所有的教育和培训都在强调怎么写代码,并没有教大家如何读代码,你周围最强的那个工程师的开发水平的上限就是你的上限。

下图是作为程序员最需要了解的源码体系:

源码框架1.jpg

四、工具的使用

工欲善其事必先利其器,工具对Java程序员的重要性不言而喻现在有很多库、实用工具和程序任Java开发人员选择。下图列出的工具都是程序员必不可少的工具

五、性能优化

性能优化,简而言之,就是在不影响系统运行正确性的前提下,使之运行地更快,完成特定功能所需的时间更短。性能问题永远是永恒的主题之一,而优化则更需要技巧。

总结:

但最重要也最核心的,是时刻拥抱变化的心态和勇气。行业变化与技术发展日新月异,时刻拥抱变化,是任何一位优秀互联网人必备的品质之一。

以上就是我总结出来的这些年的知识路线,中途也有了解过其他的技术,但是最后还是坚持下来走Java这条路,想要学习提升的可以加群:810-589-193一起探讨技术,学习,提升自己,免费获取更多相关学习资料,觉得小编这个分享对大家有帮助可以转发分享,希望这些知识点可以帮助在这个行业发展的朋友和伙伴们,把有限的时间,真正放在学习和前进上。

转载于:https://blog.51cto.com/14214335/2385119

月薪80k阿里架构师:给迷茫的JAVA一些中肯建议(附学习路线图)相关推荐

  1. 一位阿里架构师给每个程序员的小建议

    1 想清楚,写清楚,说清楚,才是真正的清楚! 2 多花点时间沟通清楚需求,才能把握正确方向! 3 修复需求错误的成本是代码错误的几十倍! 4 程序员最大的坏习惯就是:急于动手写代码! 5 提高开发效率 ...

  2. 分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)

    2019独角兽企业重金招聘Python工程师标准>>> 如何更高效的学习? 1.架构师应不应该写代码 总的来说,架构师和程序员在某些方面上有点像产品经理和用户的关系,大部分程序员并不 ...

  3. 进阶阿里架构师:算法、编程语言、数据库、架构设计!书单推荐!

    阿里架构师必读书单 数据结构与算法:算法.算法导论等. 编程语言:java编程思想.java核心技术等 模式与设计:设计模式.代码重构.深入理解java虚拟机 数据库:mysql优化.oracle.r ...

  4. java 转化为utc的时间_我6年时间成长为阿里Java架构师,你呢(附学习路线图)...

    前言 我用了6年的时间成为阿里架构师,一步一步走到了现在,中途也想过转换行业,也去了解过别人领域比较好的技术.也想过要转其他的语言,但是最后还是坚持下来走Java这条路,希望我的经历可以帮助到后来的人 ...

  5. 高性能mysql_「高性能MySQL」十年阿里架构师推荐,这份高性能MySQL文档送给你

    MySQL MySQL的概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方 ...

  6. 【十年磨一剑】我们能从阿里架构师的身上学到什么?

    前言 做技术的,一定不能放弃技术.在精进技术的同时完善其他方面的能力,十年如一日.不忘初心,方得始终. 正文 本文是看到阿里巴巴系统架构师黄勇的采访记录有感而发,如有侵权,请联系我.下面就一起来看看阿 ...

  7. 阿里架构师开源《Kotlin入门教程指南》+《高级Kotlin强化实战》

    对于有Java基础的程序员来说,Kotlin是一门非常容易上手的编程语言,也是一门必须掌握的编程语言.Java代码在运行前需要编译生成一种特殊的class文件,然后Java虚拟机会识别并解释这些cla ...

  8. 前阿里架构师钟华,最新分享:中台战略驱动企业生产力生产关系再变革

    点击"技术领导力"关注∆  每天早上8:30推送 来源| 2019第三届互联网架构峰会   分享人| 钟华 整理| 技术领导力(ID:jishulingdaoli) 前阿里架构师钟 ...

  9. 【转载】阿里架构师告诉你一套能成为Java架构师的体系是什么样的

    JAVA架构演变之路 2017-12-17 14:25:11 架构师是一个充满挑战的职业,知识面的宽窄往往决定着一个架构师的架构能力 知识面的宽广对于一名出色的架构师来说是必不可少的技能,也许很多人对 ...

最新文章

  1. 如何用Python和BERT做中文文本二元分类?| 程序员硬核评测
  2. 第二步 (仅供参考) sencha touch + PhoneGap(cordova 2.9 及其以下版本) 使用 adt eclipse进行打包...
  3. 传奇落幕!杰克·韦尔奇给管理者的10句箴言,句句经典!
  4. 设计模式的七大设计原则:其三:依赖倒转原则
  5. Tensorflow安装错误ERROR: Cannot uninstall ‘wrapt‘.
  6. 查看进程占用内存cpu信息,Linux命令—TOP
  7. word拼写检查自定义词典下载_取消或开启Word拼写检查和语法(去掉红波浪线)...
  8. blos硬盘启动台式计算机,最新戴尔台式机bios设置硬盘启动图解
  9. 矩阵平方差公式成立条件的探讨
  10. 北邮通信博士万字长文,带你深入了解 4G/5G 区别!
  11. 小程序发布成功后搜索不到怎么办?
  12. ceph (luminous 版) primary affinity 管理
  13. excel的sumif()函数和sumifs()函数
  14. 解决Number of partitions scanned (=2001) on table ‘tablexx‘ exceeds limit (=2000)
  15. 快手适合在美妆行业做广告投放吗?快手广告如何计费?
  16. html5 图灵完备,css图灵完备
  17. JavaScript案例之电影院电子选票
  18. Mac解决OSError : dlopen() : Library not loaded 问题
  19. android 网易新闻 详情页面实现,Android实现网易新闻客户端首页效果
  20. idea 远程debug调试

热门文章

  1. GhostXP_SP2电脑公司特别版_v7.8[修正版]
  2. LTE系统名词解释及上下行过程
  3. 扇贝python课程怎么样知乎_扇贝真好用
  4. 风水学上八种住宅要避忌
  5. JSP网上鞋子商城网站
  6. 【zz北邮人】[经历][完稿]cs硕士妹子找工作经历【阿里人搜等互联网】
  7. Go语言 数据库编程
  8. 【暑假复习】【搜索】POJ3009:Curling 2.0
  9. Linux紧急救援模式(Centos7)
  10. cadence SPB16.6原理图库(.olb)集合的库内容列表1