论程序员的自我修养——我在阿里干了十年开发

简介: 究竟是努力重要,还是选择重要?资深阿里技术人毕玄师兄有着自己的见解。

究竟是努力重要,还是选择重要?资深阿里技术人毕玄师兄有着自己的见解。

毕玄,阿里巴巴基础设施事业群负责人,资深技术专家。打造了阿里目前使用最为广泛的核心中间件之一的服务框架;设计并带领团队实现了阿里技术发展史上具有里程碑意义的异地多活。

文章不长,但值得品味。师兄的文风就和他的代码一样,简洁洗练。

1

2007年年底,我入职阿里。工作十年,我看到了各种各样的程序员,也看到了各种各样的成长路线,说说自己的一些观点吧。

第一阶段:拓展视野,择一深入

作为技术人员,在刚起步阶段时,首先需要拓宽自己的技术宽度,对自己所做的项目/产品所涉及的方方面面的技术都应该有所了解。

另外就是学习工程化,让自己真正具备开发商业软件的能力。

在工程化和知识宽度达到一定阶段后,根据自己的兴趣和工作内容有所选择,主要是加强在某一领域的技术深度。

第二阶段:自我评估,选择方向
在技术深度达到了一定阶段后,需要对自己做出一个判断,就是更适合偏业务方向,还是偏基础技术方向发展。

偏业务方向的技术人员,我认为做的好的表现是:

1、对业务发展的未来有一定的预判,有商业敏感意识;

2、能对复杂的业务进行合理的抽象;

3、在系统的设计上能对未来业务的变化有一定的预留处理。

偏基础方向的技术人员,我认为做的好的表现是:

1、能结合业务的发展趋势对基础技术的方向有一定的预判,避免业务发展受到基础技术的拖累;

2、对业界的技术发展方向有自己的认知和判断;

3、在对应的基础技术领域有不错的技术深度。

同学们可以结合自身特质以及当前情况,做出一个选择,重点发展。

第三阶段:再进一步,你需要的是…

再往更高阶走的同学,通常就会出现一种新的角色,就是成为团队leader。


做为一个技术团队的leader,无论是业务的还是基础技术的,在技术能力上还是不能差的,尤其是判断力。

另外,作为一个团队leader,就意味着承担了团队方向的判断的职责。一个团队的方向基本会直接影响到团队所有成员的未来,以及所支持的业务的发展状况。

对于团队leader,我觉得最重要的能力就在方向的判断上,然后是根据方向的判断的组织建设(团队搭建,人才识别、培养、招募等)能力。


如果不是往leader方向,那基本就是往架构师方向为多。

作为架构师,除了至少一两个领域的深度外,对广度的要求非常高。无论是业务架构师,还是基础方向的架构师,领域的知识宽度是非常重要的,意味着能做多大范围的事。

还有同样就是判断能力,判断能力会体现在架构师在做设计时如何判断重点,在有限的资源和时间情况下如何做取舍,对未来如何让铺垫,以及对事情的技术控制能力。

一个好的架构师在技术风险的控制能力上必须是非常强的,例如一个强大的基础领域的架构师,应该是可以很好的控制跨多个专业技术领域的技术演进。

除了以上两类,还有一种是往专业技术深度领域方向走,例如内核、JVM等,这些领域是真正的需要非常深的技术功底才能hold住。还会有其他例如转型往业务产品方向等发展的就不在此展开了。

总结:兴趣是最强的自驱

总而言之,我觉得在整个成长过程中,兴趣是最为关键的。

“Follow your heart” 非常重要,只有在足够的兴趣或梦想的情况下才能产生很强的自驱,没有足够的自驱我觉得在技术领域基本上是不可能走到高阶的。

除兴趣外,自身的优势也要判断清楚,每个不同的方向,我自己认为还是需要一定的天分的,而所谓的天分我觉得就是对个人优势的判断。

1

师兄说,兴趣和梦想是他成长中最强的自驱力

阿里巴巴的故事,

也是从一群年轻人长城上的梦想开始

在很难的时候,

是什么支撑着你逆风飞翔?

原文发布时间为:2018-12-07
本文作者: 橙子
本文来自云栖社区合作伙伴“ 阿里味儿”,了解相关信息可以关注“ 阿里味儿”。

相关文章
|
存储 NoSQL 安全
【C++调试】深入探索C++调试:从DWARF到堆栈解析
【C++调试】深入探索C++调试:从DWARF到堆栈解析
665 1
|
开发者 知识图谱
免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式
今天,阿里技术公布一波阿里P8、P9技术大牛的思维模型,将他们的思维模式呈现出来。你可以在阿里资深专家职业生涯的真切感悟中,找到应对危机的最佳方法。《阿里工程师的自我修养》现已正式公开,可免费下载阅读。
136152 1
免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式
|
弹性计算 网络协议 存储
10分钟幻兽帕鲁服务器搭建保姆级教程
幻兽帕鲁最近非常火。有些小伙伴可能不喜欢跟陌生人一起玩,那么你可以搭建一个专有服务器和朋友一起联机游戏。自己搭建服务器不仅更私密,还能自定义游戏里的一些选项,比如调整工作速度倍率、经验获取倍率等。 这篇教程将引导你在10分钟左右快速完成幻兽帕鲁服务器的搭建。
4104 5
|
6月前
|
前端开发 Java Maven
Spring 和 Spring Boot 之间的比较
本文对比了标准Spring框架与Spring Boot的区别,重点分析两者在模块使用(如MVC、Security)上的差异。Spring提供全面的Java开发基础设施支持,包含依赖注入和多种开箱即用的模块;而Spring Boot作为Spring的扩展,通过自动配置、嵌入式服务器等功能简化开发流程。文章还探讨了两者的Maven依赖、Mvc配置、模板引擎配置、启动方式及打包部署等方面的异同,展示了Spring Boot如何通过减少样板代码和配置提升开发效率。总结指出,Spring Boot是Spring的增强版,使应用开发、测试与部署更加便捷高效。
806 11
|
7月前
|
存储 机器学习/深度学习 人工智能
Elasticsearch:使用阿里云 AI 服务进行向量化和重新排名
本文介绍了如何将阿里云 AI 功能与 Elasticsearch 集成,以提高语义搜索的相关性。
432 0
|
10月前
|
数据采集 数据可视化 前端开发
怎么通过API获取电竞赛事实时数据
选择合适的电竞数据API是开发电竞应用的关键。主流API包括OP.GG、Liquipedia、Stratz、Riot Games和熊猫比分,涵盖LOL、DOTA2等游戏的实时数据。注册并获取API密钥后,需仔细阅读文档,了解资源、请求方法、必需参数及响应格式。编写代码调用API时,注意优化请求频率,避免封禁。最后,通过Web界面或可视化工具展示数据,如React/D3.js、Tableau等。示例代码展示了如何使用熊猫比分API获取即将开始的比赛信息。
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
安全 API
详解StringBuilder和StringBuffer(区别,使用方法,含源码讲解)
详解StringBuilder和StringBuffer(区别,使用方法,含源码讲解)
449 0
|
开发框架 负载均衡 监控
既然有了HTTP,为什么还要RPC?
既然有了HTTP,为什么还要RPC?
|
运维 网络协议 Linux
Linux系统之查看进程监听端口方法
Linux系统之查看进程监听端口方法
750 0