真不值!技术大神,却只是阿里P6...

阅读本文大概需要5分钟。

昨天在知乎上看到一个程序员发展的好问题:

40786a7071a2b7e48dbeaccf9dc8ff6e.png

死月是前端领域一个比较知名的IP,之前在大搜车带领整个node团队,出过书写过技术专栏,在业内享有比较高的知名度。

认识死月的同学都对他评价非常高,甚至在这个帖子下面一个阿里P8都站出来认为阿里P6级别是委屈了死月同学:

42364fb7318b745e60f00935c6c5da82.png

之所以说这是个好问题,因为它太有共性了。不光是死月同学,我身边带过的下属、认识的朋友就有不少技术特别牛逼,但在公司级别和待遇一直上不去。

成为高级程序员之后,很多人就止步于此,一直得不到提拔和晋升。

今天分享下我对这个问题的看法:

首先技术这个维度做到高级程序员,差距就不会有太显著了。

如果排除阿里内部不公平的可能性(或许也可能是这个原因),可能死月是欠缺在其他技能上了。

比如:沟通表达能力、产品业务洞察力、资源协调整合能力、向上管理能力、技术认知及前瞻性等等。

对程序员来说,高级程序员意味着掌握了下面这些技能:


b3aa96437074220939cba18fc259d803.png

阿里P6+就是高级程序员,而P7是技术专家。那技术专家和高级程序员究竟还有哪些距离呢?

我想举一个个人的例子来说明这个问题:

18年我放弃几个大厂P8+ Offer选择加入了某独角兽公司,担任技术VP和创新事业部总经理。上任的第一件事就是参与重构整个公司的架构,深入了解了下,我们首先把公司当时的架构画出来了,简单点说就是个大泥球架构:

c5f13ffd145a243b0d23a2cb81bd7d65.png


这家公司的数据库是单库模式,一张表就有几百个字段,简直搞死人。

当时公司已经惨到只要改一个功能就得测试2周的悲惨境地,线上出一个故障技术团队更是惶惶不可终日。

耗时2周我们才完成第一步:深入了解了这个大泥球和对应支撑的业务。

接下来耗时1个月,采用ddd领域设计:

fab5d9b8864a7ae162c7dd5ca111f034.png

在充分了解业务之后,基于领域模型,我们做了对业务的拆解:

6541c15968b4c3185746f88026a4a8b3.png


接下来我们最终确定了新架构的六大关键元素:

  • 前端业务模块

  • 支撑业务模块

  • 核心业务模块

  • 中台服务模块

  • 平台服务模块

  • 基础架构模块

基于领域模型的拆解,我们还确定了六大关键元素之间的并列、包含、支撑关系。

然后我们设计出了新的架构:

b92d0c60fe7452f571107a7b5dda1135.png

以上,是我们确定的公司的新的技术架构图,紧接着团队攻坚3个月,按照架构图的设想重构了公司的技术框架。

重构完成后,公司的程序员们再也不用为了一个bug拔光自己的胡子了。

而要完成这么一个大工程,技术能力只是最底层的,更关键的就是:产品业务能力、向上管理、技术之外的软实力、资源协调能力、领导力等等。

在成为高级程序员之后,决定你技术生涯的,更重要的不再只是技术,而是各种软技能和你本身的性格。

关于以上几点,简单给点建议:

1.产品业务能力

程序员需要具备产品业务能力吗?尤其对一心走技术专家路线的人来说,大概率会有这个疑问。

我认为是需要的,因为技术本身只是工具,只有和合适的产品业务结合才能创造真正的价值。

这意味着理解产品业务就非常重要了,拿我在那家独角兽公司的例子来说,如果不对公司业务了如指掌,如何做好架构拆解和技术选型呢?

事实上,大厂的技术专家也都是业务精通者,只有这样才能真正用技术驱动业务。

2.技术之外的软实力

比如你沟通能力很强,比如你就是很会讲(甚至很会写PPT),向上管理能力很强,能够获得更多资源,把一些事情做成,这都是软实力。

再比如你的周报月报写的就是比别人漂亮,清楚的用数据表达了成绩,讲清楚了卡点和重点。

以上这些都是技术之外的软实力,可别小瞧这些,关键时刻它们能加速你的发展。

3.输出&贡献

输出换个词是贡献,就是你用技术能力、产品业务能力做出来的事情。

输出的大小取决于自身和环境,很多人往往重视自身却忽略环境的影响。

简单点说,如果你一开始就在微信团队,哪怕你就是做了一个小模块,可能也输出巨大,反之你要是在一个失败的团队,哪怕是架构师,输出也会被公司认定为非常有限。

成为高级程序员之后,大家要学会选择环境,这里面就是思考和选择的力量了。

另外还有几点技能对程序员发展比较关键,比如向上管理、领导力、沟通表达能力等,这些关键点在前几天分享过一篇,感兴趣的朋友可以看看:雷总:我也想做高级工程师 !

今天就分享这么多了,程序员的职场之路并不平坦,希望我的每一个程序员读者都能在职场一马平川。

98676138d0a62ecc3ad6ecee75300880.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291069.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之如何快速查看电脑内存大小

1、问题 linux之如何快速查看电脑内存大小 2、解决办法 vim /proc/meminfo 3、结果展示

有趣的时间

人的数字造型 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body> <embed width"160" height"70" allowscriptaccess"never…

为什么启动hbase shell后,创建按create 'test', 'cf'失败?

2019独角兽企业重金招聘Python工程师标准>>> 答&#xff1a;是hostname的问题。 sudo gedit /etc/localhosts 将你的主机名改为127.0.0.1 即可。 转载于:https://my.oschina.net/u/923087/blog/290592

mini2440:最简单的嵌入式linux驱动程序模块,mini2440:最简单的嵌入式Linux驱动程序模块 解决找不到mini2440……sample...

原文&#xff1a;http://myswirl.blog.163.com/blog/static/5131864220109143331356/注意&#xff1a;开发Arm平台的驱动&#xff0c;需要Arm平台的源码树&#xff1b;注意&#xff1a;ARM平台的linux内核源码需要先编译&#xff0c;否则无法编译驱动&#xff1b;第一种方式&am…

机器学习-tensorflow

为什么80%的码农都做不了架构师&#xff1f;>>> 例子1 先从helloworld开始: tubuntu:~$ python Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2 Type "help", "copyright", "credits" or "license&qu…

C# 多个异步方法的异常处理

、如果调用两个异步方法&#xff0c;每个都会抛出异常&#xff0c;该如何处理呢 ? 在下面的示例中&#xff0c;第一个 ThrowAfter 方法被调用&#xff0c;2s 后抛出异常(含消息 first)。该方法结束后&#xff0c;另一个 ThrowAfter 方法也被调用&#xff0c;1s 后也抛出异常。…

linux解pdf隐写工具,Linux版PDF解密工具PDFDecryptionTool-Deepin-amd64.deb下载

PDF解密工具PDFDecryptionTool的deb安装包提供下载了&#xff0c;可用在Deepin 20.2等Linux发行版中。该工具用于解除PDF文件的所有者权限的密码&#xff0c;解除编辑、复制等限制。另外&#xff0c;PDFDecryptionToolWin.py为Windows版本&#xff0c;针对Windows优化了下UI&am…

Mysql中explain命令查看语句执行概况

Mysql中可以使用explain命令查看查询语句的执行方式&#xff0c;使用方法举例&#xff1a;explain 查询语句 例如&#xff1a;explain select * from user_info 几个重要的字段说明&#xff1a; table&#xff1a;此次查询操作是关联哪张数据表 type&#xff1a;连接查询操作类…

Android之java.lang.UnsatisfiedLinkError(Failed to register native method ***callMethod1())解决办法

1、问题 Failed to register native method com.example.chenyu.test.JniClient.callMethod1() java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/com.example.chenyu.test-2/lib/arm/libFirstJni.so" 如下图 2、解决办法 原因:…

代码段编辑器SnippetEditor 2.1

1.选择程序版本 2.可以创建文件夹 3.新建片段 4.给片段取名 5.双击进行编辑 6.点击保存 7.直接使用 转载于:https://www.cnblogs.com/shiworkyue/p/3844993.html

HUAWEI nova 青春版闪速快充,让追剧不再断电

笔者是一个对追剧到极致要求的人&#xff0c;每每有好看的影剧出来&#xff0c;都迫不及待想要一次看个够本。但是事与愿违&#xff0c;手机总是很不争气&#xff0c;虽然电池续航能力不算太差&#xff0c;但是对于我们这种追剧重症患者来说是完全不够的&#xff0c;每次出门还…

飞信linux下载文件,OpenFetion(飞信for Linux)

这是OpenFetion(飞信for Linux)&#xff0c;openfetion是使用GTK 编写的基于libofetion的用户界面。软件功能程序简洁轻快&#xff0c;界面美观&#xff0c;支持libofetion当前提供的所有功能。软件优势它是目前GNU/Linux平台上最优秀的飞信客户端程序&#xff0c;也是基于libo…

免费开源Blazor在线Ico转换工具

1. 功能效果演示 仓库地址&#xff1a;IcoTool[1]在线演示地址&#xff1a;https://tool.dotnet9.com/ico[2]演示下文件上传、转换结果&#xff1a;通过该工具及代码&#xff0c;能了解到&#xff1a;使用Blazor怎么上传文件到服务器(Blazor Server)。怎么从服务器下载文件。如…

【02】CC - 有意义的命名

为什么80%的码农都做不了架构师&#xff1f;>>> 1、提防使用不同之处较小的名称 XYZControllerForEfficientHandlingOfStrings 与 XYZControllerForEfficientStorageOfStrings 在IDE下&#xff0c;都有自动补全&#xff0c;这种细微的差别&#xff0c;容易补全错&a…

linux7 语言包,Centos 7中文语言包的安装及中文支持

1、修改配置文件etc/locale.confLANG"zh_CN.UTF-8"2、查看更改后的系统语言变量[root5c46832b5c01 ~]# localelocale: Cannot set LC_CTYPE to default locale: No such file or directorylocale: Cannot set LC_MESSAGES to default locale: No such file or direct…

如何在构建docker镜像时执行SonarQube扫描.NET Core应用

前言SonarQube是一款静态代码质量分析工具&#xff0c;它常用于检测代码中的Bug、漏洞和代码异味&#xff0c;并且能够集成在IDE、Jenkins、Git等服务中&#xff0c;方便随时查看代码质量分析报告。一般情况下&#xff0c;我们在Jenkins管道中配置SonarQube&#xff0c;在编译过…

Win10系列:VC++ Direct3D模板介绍1

Visual Studio为开发Direct3D应用程序提供了便捷的模版&#xff0c;读者可以不必手动去新建Direct3D中所使用到的基础资源&#xff0c;而只需专注于图形的绘制。本小节主要为读者介绍这个模版中用于绘制图形的主要函数及其功能&#xff0c;为了能让读者更为清楚地了解如何使用此…

linux+arch系统下载,Linux

大小&#xff1a; 695MB更新时间&#xff1a;2021-02-04适用电脑&#xff1a;系统盘大于20G超过1GMHz的处理器最佳64位处理器Arch Linux是一份独立开发的、为i686优化的Linux发行&#xff0c;它面向高级Linux用户。它使用自行开发的包管理器pacman来为最新的应用软件提供 更新升…

Android---AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作

AlarmManager的使用机制有的称呼为全局定时器&#xff0c;有的称呼为闹钟。通过对它的使用&#xff0c;个人觉得叫全局定时器比较合适&#xff0c;其实它的作用和Timer有点相似。都有两种相似的用法&#xff1a;&#xff08;1&#xff09;在指定时长后执行某项操作&#xff08;…

C# 实例解释面向对象编程中的里氏替换原则

在面向对象编程中&#xff0c;SOLID 是五个设计原则的首字母缩写&#xff0c;旨在使软件设计更易于理解、灵活和可维护。这些原则是由美国软件工程师和讲师罗伯特C马丁(Robert Cecil Martin)提出的许多原则的子集&#xff0c;在他2000年的论文《设计原则与设计模式》中首次提出…