程序员后期,架构师发展路线!

640?wx_fmt=jpeg

作者:zollty,资深程序员和架构师,私底下是个爱折腾的技术极客,架构师社区合伙人!

我总结了3个阶段。

640?wx_fmt=png
先说一下各个阶段的感受:
1、系统架构阶段
系统架构实际上包括了 业务功能架构 和 技术功能架构。
业务上,其实有点接近于产品,但是有些问题是与技术强相关的,产品不懂技术,他的设计就存在问题或者隐患,这时候,一个技术功底好的又有丰富业务系统开发经验的人,就能将这些功能设计得更好。这就是我说的“业务功能架构”。
而技术架构,与开发功能、写代码,都息息相关,特别是在系统整体框架层面,以及开发重难点功能的时候,好的技术手段、算法,能够开发出更好的功能实现,包括可维护性、性能、稳定性、用户体验等等方面。
这个阶段,我经历特别多,大概有3年半的时间(但算上加班时间,相当于5年以上时间),不一一细讲。总之,这个阶段负责了很多个的项目,包括框架、代码,重难点功能的实现等。
系统架构师的能力,决定了做出来的系统的好坏和质量。

2、框架和中间件架构阶段
这个阶段,不直接面向具体项目,更多的是针对工具、框架和中间件层面,针对技术难点,站在技术专家的角度思考和设计。
这个阶段的架构师,眼里都是技术细节,以及框架和中间件的代码设计,基本上可以说是完美主义者,对平台设计有非常大的追求。亦或是,捣鼓各种技术和工具,不停测试、对比,整天安装这样、安装那样,不是运维,胜过运维。
在这个阶段,对技术的要求近乎苛刻,而且还要跨多个技术领域(后端、前端、运维、网络...),所以面临的挑战很大,要学习的新东西也太多太多。一直到今天,我在这个方面也不敢说做得多好,只能说,算是熟手了,见多识广了,有信心了,再复杂、再高端的东西,我不怕了,但是如果要做到业界一流水准,还是相当困难的。
这个阶段,要做的事情,全都是和技术相关的,举几个例子吧:
  • 负责公司基础框架及组件选型及维护、二次开发
  • 分布式存储的选型、推广、运维支持
  • 容器云平台的搭建、优化和推广
  • 监控平台的设计和搭建
  • Kafka、Redis的多机房数据同步方案
  • ……
做到这个阶段,通常会被称为“高级架构”、“大架构”,做的事情往往能反映出公司的技术水平。但不是人人都能做这些事情,即便是非常有天赋的工程师,在这个阶段也需要长时间的沉淀,才能称之为专业架构。
所以说,很多公司,在这方面是很不专业的,甚至没有全职的架构师来牵头做这些事情。

3、公司总体架构阶段
这个阶段,更多的是方法论和策略,决策以及沟通,跟踪执行。在这个阶段,眼中没有技术细节。眼中有的,是整个公司,整个研发团队的效率和质量。一切都是围绕研发团队来的,要给研发团队指引正确的方向。
比如说,用什么工具,用什么框架,用什么技术,流程怎么设计,规范怎么设计,遇到问题怎么解决,怎么提高效率,怎么避免风险。不是每件事情,都得你亲自去做,但是你得有一个正确的方向和长远的眼光,去指引和决策。
其实最难的是,技术、规范和流程的推广和落地实施,因为这些事情,可能涉及到很多部门、很多人,有的时候会遇到利益冲突,有的时候遇到特殊情况,有的时候遇到某些团队只顾眼前。这个时候,需要一定策略和技巧的。

总结:
  1. 作为一个系统架构师,系统没设计好,是你的责任;
  2. 作为一个基础技术架构师,基础组件/框架/中间件有问题,是你的责任;
  3. 作为一个公司总体架构师,研发团队效率低、风险高,是你的责任。

个人经验:
  1. 中小型的项目,系统是很好控制的;
  2. 基础框架/中间件,难度可能比较大,但是如果技术能力强,也能hold得住;
  3. 面对整个研发体系的团队,各种人各种事,不太好控制,需要策略,需要转变技术思维。
所以:
  1. 领导5个重点项目,可以培养一个系统架构师;
  2. 5年以上技术经验,兼3年以上框架/中间件相关经验,如果技术确实很好,可以成为技术架构师;
  3. 5年以上基层技术和管理经验,3个以上公司总体架构经验,有方法、有策略、有能力,可以成为技术总监;

重点解释:
多数人工作经验丰富后,可以成为系统架构师;
但是只有 少数人 能成为好的技术架构师,这个得看天分,就像有人数学随便能考140分一样;
只有经验丰富的技术架构师兼项目经理,才能成为好的技术总监。

引申出技术人员的一个疑问:未来该如何发展?
至少有四条路:
第一条路,钻研高精尖的技术,去一线大公司做事,尽量不要去二线城市、二流公司。年薪百万不是问题。
第二条路,做个系统架构师或项目经理,最好是在某一行业和业务领域深耕,成为技术业务专家,运气好的话可以做到部门经理、分子公司总经理。
第三条路,全面发展,从项目管理、技术架构做起,积累丰富的研发经验,进而成为技术主管、技术总监、部门经理、技术副总等,分管整个研发团队。
第四条路,突出的技术能力 + 敏锐的商业嗅觉,成为 独立开发者、创业者。

640?wx_fmt=jpeg

如有收获,点个在看,诚挚感谢640?wx_fmt=png

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

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

相关文章

YUV格式学习

转载自http://blog.csdn.net/searchsun/article/details/2443867 YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说法,针对它…

Flappy Bird游戏python完整源码

通过pygame实现当年风靡一时的flappy bird小游戏。 当前只设定了同样长度的管道,图片和声音文件自行导入。 效果如下: # -*- coding:utf-8 -*- """ 通过pygame实现曾风靡一时的flappybird游戏。 小鸟x坐标不变,画布左移实现…

【 .NET Core 3.0 】框架之九 || 依赖注入 与 IoC

本文有配套视频:https://www.bilibili.com/video/av58096866/?p5前言1、重要:如果你实现了解耦,也就是 api 层只引用了 IService 和 IRepository 的话,那每次修改 service 层,都需要清理解决方案,重新编译…

10月数据库排行:Microsoft SQL Server分数增加最多

DB-Engines 数据库流行度排行榜 10 月更新已发布,排名前二十如下:这期的数据比较有意思,到了这个月,Microsoft SQL Server 马上扭转局势,成了分数增长最多的一个,与上个月相比其增加了 9.66 分,…

VS Code 1.39 发布!Web 版 VS Code 是否离我们越来越近了?(文末彩蛋)

今天(北京时间 2019 年 10 月 10 日),微软发布了 Visual Studio Code 1.39 版本。此版本主要更新的内容包括:Source Control tree view - 可以通过列表或者树状图两种方式来展示被改变的文件。Toggle region folding keyboard sho…

二叉树分析(两点最大距离)

转载自:http://blog.csdn.net/lalor/article/details/7626678 http://blog.csdn.net/lalor/article/details/7618120 把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。写…

IT从业的迷思与破解之道(更新)

我只是单纯做技术的程序员,什么靠微信广告攒钱这些,跟我没有半毛钱关系,初衷很简单,只重视正三观的正确技术知识分享在这到处都是线上培训,付费知识的社群里,随便搜个词都有您想要的内容哪轮到我们。技术的…

graphcut 用于最优缝合先寻找_Image Stitching

Graphcut 求解最佳缝合线: 主要参照硕士学位论文《基于不同视点样图的图像修复》 Graphcut 主要参照: http://blog.csdn.net/zouxy09/article/details/8532111 Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于…

.netcore 开发的 iNeuOS 物联网平台部署在 Ubuntu 操作系统,无缝跨平台

1. 概述参见前两篇文章:《iNeuOS完全使用.netcore开发,主要为企业、集成商打造从网关、边缘应用、云端建设的物联网/工业互联网平台产品级解决方案。面向应用场景:(1)嵌入式硬件网关的开发和部署,形成自己…

按照前序遍历和中序遍历构建二叉树

转载自:http://blog.csdn.net/sbitswc/article/details/26433051 Given preorder and inorder traversal of a tree, construct the binary tree. Note: You may assume that duplicates do not exist in the tree. There is an example._______7______/ …

刷新:重新发现.NET与未来

是新朋友吗&#xff1f;记得先点蓝字关注我哦&#xff5e;微软在比尔盖茨手中创立并崛起, 成为PC互联网时代的霸主&#xff0c;很多70&#xff0c;80后都有MVP Edi Wang 的体验<“ 当时的微软对我来说就是神的存在。因为我认识电脑到使用电脑的一切几乎都离不开这家伟大的公…

合并区间

题目描述 给出一个区间的集合&#xff0c;请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2: 输入: [[1,4],[4,5]] 输出: [[1,5]] 解释: 区间 [1,4] 和 [4,5]…

程序员修神之路--设计一套RPC框架并非易事

菜菜哥&#xff0c;我最近终于把Socket通信调通了这么底层的东西你现在都会了&#xff0c;恭喜你离涨薪又进一步呀http协议不也是利用的Socket吗可以这么说&#xff0c;http协议是基于TCP协议的&#xff0c;底层的数据传输可以说是利用的socket既然Socket通信会了&#xff0c;那…

GPU Shader 编程基础

转载自&#xff1a;http://www.cnblogs.com/youthlion/archive/2012/12/07/2807919.html 几个基本概念&#xff1a; Vertex buffer&#xff1a;存储顶点的数组。当构成模型的所有顶点都放进vertex buffer后&#xff0c;就可以把vertex buffer送进GPU&#xff0c;然后GPU就可…

Azure pipeline 配置根据条件执行脚本

Azure pipeline 配置根据条件执行脚本Intro我的应用通过 azure pipeline 来做持续集成&#xff0c;之前已经介绍了根据不同分支去打包不同的package&#xff0c;具体的就不再这里详细介绍了&#xff0c;可以参考 Solution来看一下修改之后的 azure-pipelines.yaml 示例配置吧&a…

C# 8 新特性 - 可空引用类型

Nullable Reference Type.在写C#代码的时候&#xff0c;你可能经常会遇到这个错误&#xff1a; 但如果想避免NullReferenceException的发生&#xff0c;确实需要做很多麻烦的工作。 可空引用类型 Null Reference Type 所以&#xff0c;C# 8的可空引用类型就出现了。 C# 8可以让…

统计学习笔记(1) 监督学习概论(1)

原作品&#xff1a;The Elements of Statistical Learning Data Mining, Inference, and Prediction, Second Edition, by Trevor Hastie, Robert Tibshirani and Jerome Friedman An Introduction to Statistical Learning. by Gareth JamesDaniela WittenTrevor Hastie andR…

.NET Core 3.0之深入源码理解ObjectPool(一)

写在前面对象池是一种比较常用的提高系统性能的软件设计模式&#xff0c;它维护了一系列相关对象列表的容器对象&#xff0c;这些对象可以随时重复使用&#xff0c;对象池节省了频繁创建对象的开销。它使用取用/归还的操作模式&#xff0c;并重复执行这些操作。如下图所示&…

Deep Boltzmann Machines

转载自&#xff1a;http://blog.csdn.net/win_in_action/article/details/25333671 http://blog.csdn.net/zouxy09/article/details/8775518 深度神经网络&#xff08;Deep neural network&#xff09; 深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种…

.NET斗鱼直播弹幕客户端(下)

前言在上篇文章中&#xff0c;我们提到了如何使用 .NET连接斗鱼TV直播弹幕的基本操作。然而想要做得好&#xff0c;做得容易扩展&#xff0c;就需要做进一步的代码整理。本文将涉及以下内容&#xff1a;介绍如何使用 ReactiveExtensions&#xff08; Rx&#xff09;&#xff0c…