`
Java高级架构师
  • 浏览: 11123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

蚂蚁金服技术专家分享:如何在三年内快速成长为一名技术专家

阅读更多
工作前三年是职业生涯中成长最快的几年,在这段时间里你会充满激情,做事专注,也容易养成良好的习惯。在我们公司有些同学在前三年中就快速成为某一个领域的技术专家,有些同学也可能止步不前。本文和大家一起探讨下如何在三年内快速成长为一名技术专家。
 
学习方法
  • 1:掌握良好的学习心态
  • 2:掌握系统化的学习方法
  • 3:知识如何内化成能力
  • 4:广度和深度的选择
实战技巧
  • 1:你需要学会的编码习惯
  • 2:在业务团队做开发如何成长
掌握良好的学习心态
空杯心态
首先要有空杯的学习心态,而不是傲娇自满,故步自封,空杯子才可以装下更多的东西。首先要学会取百家之长,带着欣赏的眼光看团队的同事或学校的同学,欣赏每位同事或同学的优点,然后吸取他们的优点,每个同事都有其擅长的能力,比如有的同事技术能力强,那么可以观察下他如何学习的(或者找他请教学习方法),有的同学擅长解决线上问题,那么观察他是如何解决线上问题的,解决思路是什么?如果他解决不了时,他是如何寻求帮助。有的同学擅长使用IDE或MAC的快捷键,那么可以向他学习提高工作效率。有的同学能快速理解业务知识,观察他是如何做到的,自己如何达到他的程度。沟通能力,解决问题能力以及规划能力都可以向同事学习。
挑战权威
从书上看到一个知识点,或者从别人那里听到一个知识点,一定要去挑战和质疑这个知识点的正确性,否则学到的知识点可能是错误的。先用逻辑思维推测下,再实战检测下,一定要记住实践是检验真理的唯一标准。比如同事说这个SQL加这个索引是最快的,首先要思考同事的结论是如何得出的,是靠历史经验还是测试过,如果我们没有经验,就加上这个索引跑下SQL,看看执行计划和执行时间,再换下其他索引试试会不会更快。依次类推,并发一定比串行快吗?无锁一定比加锁快吗? 很多结论都是在特定的场景下才会产生的,一定要自己亲手实践验证下。
坚持学习
有的同学可能工作了五年,但是学习的时间可能一年都不到。学技术不能急于求成,只要学习方法正确,量变一定会引起质变。我在大学刚学JAVA时,怎么都学不会,但是坚持学习了几个月,每天看张老师的JAVA视频教学,买书按照书里的代码一行一行的敲代码,白天睡觉,晚上学习和写代码,写到宿舍关灯时就去避风塘呆一晚上,早上6点钟回宿舍睡觉,学到一定时间后,突然恍然大悟,才入了门。
在工作中,我曾经花了一个月的时间学习AOP的实现原理,学习了各种方式来实现AOP的原理,并写了几种实现方式的代码,虽然花的时间很多,但是到现在仍记忆犹新,对于排查问题和学习其他知识都非常有帮助。
要做到坚持学习,学习的环境非常重要。如果你想学,但是又不在学习状态,可以考虑换个学习环境,我经常会去星巴克看书和学习。我听说有的同事会周末抽一天去大学教师上自习。
把事做精
对自己要求越高,进步越快。要有强烈的把事情做完美的心态,我刚开始工作的时候,总是快而不精,做事做的不够细致,总希望快速拿出结果证明自己,但是反而证明不了什么,技术能力也得不到提升,缺少技术亮点,在团队中也没什么影响力,后面就开始锻炼一次就把事情做对的心态和方法。我观察过,很多人都擅长快速做事情,但是把事情做好做精致的人会比较少,但是结果却是**在精益求精的路上才会快速提高自己的能力**。比如用100行代码实现的功能,思考下是否可以用10行来实现,以便于降低运维成本,提高下次的编码效率。引用GUAVA等类库,提取公共方法,和使用JDK8新特性等。系统的方法压测过后,单机只能承受1700QPS,可以思考和实践能否优化下程序提高QPS,减少服务器数量。
把事情做精,一定是要强迫自己多花心思多花时间在这件事情上。有位技术牛人给我分享了一个心得,我觉得说的非常好,老板给你布置了一个任务,**你要花百分之150的精力做到100分,这样在老板那里你就能拿到80分或者60分**。
掌握系统化的学习方法
如果学习到的知识不成体系,那么遇到问题时就会非常难解决。有些同学会出现这些情况,比如编码时遇到问题百度搜索,如果百度上找不到答案,这个问题就解决不了。再比如,在开发中要用到某个技术点,就学习下API,程序调通后就不再深入研究,浅尝辄止,如果程序遇到其他问题也不知道如何解决。
以上情况我认为叫**点状学习**。遇到一个问题,解决一个问题,需要一项技术,学习一项技术。那么如何由点到面,由面到体,形成系统化学习呢。
首先要确定学习的知识领域,需要达成的学习目标,针对目标制定学习计划,就像你要写一本书一样,先把目录写出来,然后根据目录上的知识点逐步去学习,最后把这些知识点关联起来,形成一个系统化的知识体系。学习的时候,可以制定一个计划,以周为单位,比如第一周学什么,第二周学什么。
比如我最近在学习人工智能,学习步骤是:
  • 1: 高数基础知识:线性代数,微积分和统计学。最近在打德州扑克时,我也会用统计学里的知识计算下输赢的概率。
  • 2: 人工智能基础:买几本书人工智能的基础书籍,如《机器学习基础教程》《Python机器学习》
  • 3:框架:TensorFlow等。
  • 4:实战:在工作中找到一个应用场景,把学到的知识运用进去。
知识如何内化成能力
作家格拉德威尔在《异类》一书中指出,1万小时的锤炼是任何人从平凡变成世界级大师的必要条件。1万小时有多久?每天学习10小时,需要大约三年。但是很多人都工作了五年甚至更长,但是为什么成为世界级大师的却非常少。读者可以先自己思考下这个问题。接下来谈谈我的看法。
成长必须经历一个步骤,就是把知识内化成能力。**知识是用脑记住的,能力是用手练习出来的**。在工作的几年里,我们可能看过很多书,听过很多技术讲座和视频,但是通过听和看只是让你能记住这些知识,这些知识还不能转换成你的能力。
听和看只是第一步,更重要的是实践,通过刻意练习把听到和看到的知识内化成你的能力。
刻意练习,就是有目的的练习,先规划好,再去练习。首先给自己定一个目标,目标可以有效的引导你学习,然后使用3F练习法:
  • 1: 专注(Focus),专注在眼前的任务上,在学习过程中保持专注,可以尝试使用番茄工作法。
  • 2:反馈(Feedback),意识到自己的不足,学习完之后进行反思,思考下自己哪些方面不足,为什么不足,
  • 3: 修正(Fix),改进自己的不足。
不停的练习和思考可以改变大脑结构,大脑像肌肉一样,挑战越大,影响越大,学习更高效,并且也会产生突破性。
广度和深度的选择
技术人员的学习路径有两个维度,深度和广度。很多程序员都有这个疑问,是先深后广,还是先广后深呢?
通过这么多年的学习和思考,我的建议先深后广,因为当技术学到一定深度后,就会有触类旁通的能力,自己掌握的广度也自然有了深度。但是在实际学习过程中,深度和广度相互穿插着学习,比如学习并发编程时,首先学习JDK源码,然后学进去之后,开始看JVM源码,最后看CPU架构,在技术点逐渐深度研究的过程中,广度也得到了完善。
所以无论哪种学习方式,学习态度才是最重要的,在广度学习的时候有深入研究的态度就能达到一定的深度,在深度学习的时候,主动学习相关的技术点,广度也得到拓宽。
你需要学会的编码习惯
程序员应该学会通过技术的手段来提高效率。几个常用的手段是使用工具,快捷键和编写脚本。
  • 1. 使用各种工具
技术人员电脑尽量用MAC,使用命令行效率一定比在1024*1024像素中找一个10*10像素的按钮更快。IDE用IDEA,比Eclipse更智能。命令行工具用iTerm和IDEA里的Terminal。写文章用MAC的客户端工具MacDown,左边编写,右边展示,比Word等工具方便快速很多。有时候我还会用按键精灵里配置脚本需要解决工作问题,比如通过点击我们的系统,来执行任务。这样的工具很多,只要能提高工作效率的工具,大家都可以尝试使用。
  • 2. 使用快捷键
MAC,IDEA和Eclipse有很多快捷键都要学会使用,比如在MAC命令行中通过idea .快速打开工程,通过open . 快速的打开文件夹,把IDEA里通过快捷键把一段代码抽成一个单独的方法,快速生成getter setter方法。
  • 3. 用脚本写工具
当我们用人工的方式做一件重复性很强的事情,首先要考虑使用工具来帮我们自动完成,如果没有类似工具,可以自己写个脚本来实现,这样除了能快速解决问题,还能提高自己的技术能力。
比如,我经常要在两个maven仓库发布jar包,我就写了个脚本来实现jar包的发布,deploy.sh代码如下:
蚂蚁金服技术专家分享:如何在三年内快速成长为一名技术专家
在业务团队做开发如何成长
我一直在业务团队中做开发,在业务团队最主要的提高的能力是业务抽象和架构能力,通过业务场景,不断思考如何通过合理的架构和业务抽象能快速支持业务,降低运维成本。同时在这个过程中锻炼技术能力,比如写一些技术框架来快速支持业务,做到技术驱动业务。
可配置化的方式支持业务
设计业务的领域模型,把不随着业务逻辑变化的领域模型做成系统能力,把随着业务逻辑变化功能,做成可配置化,上一个新业务,通过配置的方式或少量开发就能支持。
在做客户后台功能时,由于需要展示的数据种类非常多,每种数据展示可能需要花费几天的时间,所以设计了一个通用的技术框架,实现了通过配置化的方式展示各种数据。
写框架解决业务问题
我在上家公司经常做一些CRUD的业务功能,我就自己开发了一个快速做CRUD的框架jdbcutil,通过配置实体生成SQL语句,实现了子类只要继承父类,就自动拥有CRUD的能力。后面还写过生成CRUD页面代码的程序。
目前我们团队在做的TITAN框架通过模块化开发的方式,解决易变的业务系统在多人开发时遇到的问题。
技术驱动业务
在业务团队,一定要不断的思考如何利用技术来支持快速支持业务,配置化是一种思路,但是有些功能配置复杂度比较高,配置加验证的工作量,可能需要一个星期的时间,那么能不能减少人工配置,实现系统自动化配置,于是可以研究下人工智能,通过人工智能的方式实现,系统告诉人需要配置哪些东西,然后交给人来进行确认,这样可以大大减少人工成本,更快的支持业务。
很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:629740746,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
分享到:
评论

相关推荐

    蚂蚁金服商业报告

    蚂蚁金服的前身是支付宝,自2004年成立以来,经过多年的快速发展,已经成为全球领先的第三方在线支付公司,其业务涵盖支付、理财、信贷、保险等多个领域。 蚂蚁金服依托于阿里巴巴集团所构建的商业生态圈,形成了一...

    蚂蚁金服组件库分享

    蚂蚁金服组件库分享是一个专为Axure设计的元件库,包含了丰富的UI组件,旨在提升产品原型设计的效率和质量。这个组件库是蚂蚁金服团队为了满足其内部设计需求而创建的,现在已被广大用户体验设计师和产品经理所采用...

    蚂蚁金服原型设计

    “蚂蚁金服原型设计”这一主题,暗示了这款工具在金融科技创新领域的广泛使用。作为阿里巴巴集团的重要组成部分,蚂蚁金服以其先进的金融科技解决方案闻名于世,其产品设计自然也是精益求精。该压缩包中的“Ant UX....

    信息技术行业周报:关注蚂蚁金服上市对金融科技板块的积极影响.pdf

    10. 信息技术行业的影响:蚂蚁金服作为金融科技的领军企业,其上市被视为对整个信息技术行业的正面影响,尤其是对金融科技板块的积极影响,可能会刺激行业内的其他公司股价和市场活力。 11. 投资者需要注意的信息:...

    蚂蚁金服deepinsight.pptx

    在 2009 年,蚂蚁金服的数据分析还处于手工报表阶段,使用 Oracle 和 3T 数据进行报表分析。但是,这种方式存在很多问题,如数据量小、分析周期长、学习成本高等。 农耕时代(简单工具) 2012 年,蚂蚁金服开始...

    2018年蚂蚁金服金融大脑赛题分享

    2018年蚂蚁金服金融大脑赛题分享

    蚂蚁金服 P6 面试分享.txt

    蚂蚁金服面试分享 第一面10.4(电话面试) 1.自我介绍 2.项目情况: 1> 选择最为熟悉的一到两个项目说明,提及该项目中的难点问题,以及如何针对该项目的开展 2> 为什么做这个项目(避免被动安排这个话题) 3> 解释...

    蚂蚁金服文本匹配竞赛训练数据

    此次的"蚂蚁金服文本匹配竞赛训练数据"就是对这一技术应用的体现,旨在通过机器学习的方式提升文本匹配的准确性和效率。 训练数据集包括两个CSV文件:`atec_nlp_sim_train_add.csv`和`atec_nlp_sim_train.csv`,...

    银行业金融科技专题报告:蚂蚁金服,见证蚂蚁成为大象之路-20200828-新时代证券-26页.pdf

    蚂蚁金服的快速成长得益于其对金融科技创新的不懈追求,以及与传统金融机构的深度融合。 蚂蚁金服的业务版图涵盖了支付、消费金融、供应链金融和金融科技等多个领域,形成了强大的金融生态系统。支付宝作为其支付...

    蚂蚁金服面试分享.txt

    蚂蚁金服面试题,一面、二面、三面的整体问的问题。

    解密万亿独角兽——蚂蚁金服企业案例研究.pdf

    蚂蚁金服,一个估值达1600亿美元的金融科技公司,其企业案例为我们提供了丰富的学习素材。在分析蚂蚁金服的企业案例时,我们可以从以下角度展开知识点的提炼: 一、蚂蚁金服公司概述 1. 发展背景:蚂蚁金服最初是由...

    蚂蚁金服金融源码-蚂蚁财富投资理财源码-基于FastAdminf 框架.zip

    本资源是蚂蚁金服旗下蚂蚁财富平台投资理财应用的源代码,它揭示了金融科技领域的开发实践与核心技术,为开发者提供了深入理解金融业务与技术结合的宝贵机会。源码基于FastAdmin框架,这是一个广泛使用的PHP后台开发...

    蚂蚁金服体验技术部出品Ant Design设计规范.zip

    Ant Design,源自蚂蚁金服体验技术部,是一款面向企业级产品的高质量前端设计框架。它不仅提供了丰富的UI组件,还强调了一套完整的设计理念和规范,旨在提升产品的用户体验和开发效率。本文将深入探讨Ant Design的...

    金融科技系列报告:解构蚂蚁金服,扬帆起航-20200722-国海证券-13页.pdf

    【蚂蚁金服】是金融科技领域的巨头,自2004年支付宝成立以来,它已发展成为一个包含多重业务和技术的综合平台。蚂蚁金服的核心优势在于其自带的庞大流量和深厚的技术底蕴,这使得它能够不断创新并引领行业发展。 1....

    消费金融视角下互联网金融的发展路径——以蚂蚁金服发展路径为例.pdf

    在互联网金融视角下,消费金融的创新服务模式,如蚂蚁金服的余额宝、花呗、借呗等产品,为消费者提供了便捷的金融服务,同时也为互联网企业带来了巨大的流量和盈利空间。 蚂蚁金服是阿里巴巴集团旗下的金融控股公司...

    蚂蚁金服webUIAxure元件库

    蚂蚁金服设计的WebUI,Axure元件库资源,进入Axure导入元件库即可使用

    蚂蚁金服开放平台 - 文档中心1

    在数字支付日益普及的今天,蚂蚁金服开放平台为整个支付生态系统的构建提供了有力的技术支撑。文档中心作为其中的核心部分,确保了开发者能够快速准确地接入蚂蚁金服的支付能力,为消费者和商家创造价值。通过不断...

    SDCC2016大数据&架构峰会·杭州站ppt+蚂蚁金服大规模分布式事务实践和开源介绍

    在SDCC2016大数据&架构峰会上,聚焦的主题之一是"蚂蚁金服的大规模分布式事务实践和开源介绍"。这场峰会在杭州举行,聚集了众多IT领域的专家和技术爱好者,共同探讨大数据处理和复杂系统架构的最新趋势。以下是基于...

    2019阿里投资者日-蚂蚁金服——全球领先的科技金融公司-2019.9-30页.pdf

    在2019年的阿里巴巴投资者日活动中,蚂蚁金服被定位为全球领先的科技金融(TechFin)公司,以其强大的数字化支付和金融服务在全球范围内展现出显著影响力。蚂蚁金服的业务核心由三个增长支柱组成,即支付宝、全球化...

Global site tag (gtag.js) - Google Analytics