阅读更多

15顶
0踩

非技术

原创新闻 飞行的架构师和奔跑的程序员

2016-02-18 10:54 by 副主编 mengyidan1988 评论(4) 有5815人浏览
原文地址:http://blog.csdn.net/mindfloating/article/details/50682201
关于程序员和架构师的讨论很多,我想从不同的角度说下。

寻路

当我刚进入软件行业成为一名程序员时,我的理想就是成为一名架构师。架构师这个词的英文叫 Architect,原意是建筑师,因为软件行业参照借鉴了很多建筑行业的概念,所以就借用这个词。我是在学校读书时知道架构师这个名词的,当时很多软件方面的书都是翻译过来的,现在也不知道是谁最早把 Architect 翻译成架构师的了。总之从那时起,架构师这个名词对于我这个还刚准备走出校门的学生来说就特别高大遥远,自然当成了最初的一个职业目标。

可惜,我进入第一家公司后,这是一个家民营 IT 服务企业,我发现居然没有架构师这个职位。我所在的一个几十人团队里,本科刚毕业的是助理工程师,硕士刚毕业的是初级工程师,然后是中级,高级工程师。再往上就变成了项目经理、这个团队就是一个项目经理,下面有几个高工,然后一堆初级和助理工程师。让我颇为失望的是,我当时明显觉得未来我的职业发展目标并不是当时团队项目经理所处的方向。不过一想我离架构师这个目标还早,当时估计最快也要十年吧,先把程序写熟再说,我也不太可能在这里干十年,以后换个就好了。

实际,一年后我就换了个公司,入职后又失望了,发现还是没有架构师这个职位。不仅没有架构师职位,连工程师都不分初、中、高级了,全是软件工程师,再上面是组长、科长、部长,然后就是总经理。科长、部长这类职位是国营性质的,而经理这类职位更像民营公司性质的,这就是一家正在从国营向公司制转型的公司,所以职位也很奇特的混合着。我当时也是想还早,先专注好眼前的事,写好程序做好事情,至于有没有架构师这个职位将来再说。

在这里工程师虽说不分级,但团队里也有一位大家口中的牛人,姓陈,大家称呼陈总,实际并没有承担任何管理职责。工作了十多年了,专注于 IBM AIX 和 HP UX 小型机以及 Oracle 数据库调优。我们那时经常长期出差在客户现场开发、实施,支持上线等,陈总一般不出差。他出现的时候一般都是我快把数据库搞挂的时候,然后就来现场救火,分析磁阵 IO,抓 SQL 调优什么的(当时应用系统都是围绕数据库为中心的)。通过从底向上来发现性能瓶颈,再建议程序优化,当时我觉得他最符合我对架构师这一角色的一些想象,但又总觉得还差点啥,当时是说不上来。总之当时我是很期盼看到一个真正的架构师是怎样的,他们是如何工作的?

在第二家公司工作了几年后,工作了已快 5 年了,我还是没有找到答案,而且感觉走程序员技术发展道路在当前的公司碰到了瓶颈。再次跳槽后,我想之前民营和具有国营性质的公司都没有架构师职位,而且这个名词来自国外,那么外企应该会有吧?尝试去面试过几个外企,不幸的是英语口语太差都没有通过面试,而我那段时间也从广州搬回成都。老实说成都当时的程序员就业环境比广州差不少,工作找的有些郁闷,就干脆休息了半年,好好想想清楚下个五年我该何去何从?

也正是在这赋闲的半年,我突然发现原来除了国企、民营 IT 服务(外包)企业和外企之外,还有一类公司和它们很不一样。这就是互联网公司,而可惜的是成都当时几乎没有任何互联网公司在这边有研发。而正在我等待的时间里,一家新兴快速成长的互联网电商公司正好在成都设立研发中心,时机正好也就加入进去。

奔跑

进了互联网公司后,不仅有了架构师职位还有架构师团队,有了方向又可以放心的作一名程序发力狂奔。不停的写程序,优化代码,追求更优更简洁的代码,重构了一遍又一遍,解决一个又一个问题。我曾在以前的文章中将程序员具体和代码相关的工作比作剑术,修炼代码技能类似练剑的过程。很多程序员梦想着有一天能成为一代高手,面对敌人,抽刀拔剑,刹那间交击,归剑入鞘,敌人倒下。就像线上系统突然出现大问题,你打开电脑,查了几行日志,敲下几行代码,分分钟系统恢复。

好吧,实际这也就在电影里能有,随着系统规模的扩大,程序员需要解决的问题和解决问题的方式完全不同。以前看过一篇文章说,进入大规模分布式时代,局部的代码优化已不是最重要的,不像二十年前硬件制约了软件的规模。更重要的是程序之间的协作方式,沟通路径的简洁清晰性。

一个好的程序员当然能写一手好代码,在我学习写程序的前七八年里,业余时间做了一些练习性质的项目。在 Github 之前的时代,Google 还能访问,在 Google Code 上维护了应该不止十万行的业余之作。后来 Github 兴起后迁移过来,不断练习重构优化维护自己的专属工具库,删减了很多冗余代码又新增了不少,目前还剩下几万行。这个过程持续了七年,基本每年重构优化一次,在 Github 持续 commit 时间最长有 118 天(最近看到有人连击 365 天的,真心佩服)。如今过去两年再回头看曾经的代码,不能说觉得完美到不能再优化了,只是觉得继续下去于我剑术精进终究有限,而更大的价值如今已不再局部的优化上。

此时我已在团队承担总体的系统设计工作,专注于局部代码优化其实是在驱动细节而非本质。资深程序员出身的架构师,单兵作战能力都是极强的,就像《进击的巨人》中的利威尔兵长,具备单挑巨人的能力。可当你面对成群结队的巨人来袭时,个人单挑能力的作用始终有限。这时从程序员到架构师不仅仅是一个名称的变化,有时它也意味着技能和视角的转变。在地上飞奔了七八年的程序员,在面对成群的巨人袭来时,深深的感觉到,杀光巨人不应是目的,真正的目的是到达彼岸。选择合适的路径,坚定的前行,清除或绕过挡道的巨人,到达目的地。

飞行

资深的程序员,每天大部分时间和代码打交道,当需要转变为架构师时,却有一个障碍,借用一句台词来说:
引用
汝今剑术已成 ,而道心未明,唯不能斩绝与代码之情。

开发功能,解决 bug,优化代码,这是一个资深程序员的拿手技能,也是地面作战的基本技能。而一个架构师还需要掌握其他维度的技能,也许就像一个立体机动装置,让你能在需要时飞在空中看清全局,也能落地发起凌厉一击。多了一个空中的维度,过去在地面练到精熟的剑术,飞在空中还有效么,这需要时间去学习,适应新维度的技巧。

这不是一个容易掌握的技能,这正是我曾经写过的从一个点到另一个点连成线的技能升级,需要一个升维的学习过程。所以很多讨论架构师到底还要不要写代码这事儿的,我思考后的结论是,需要拔剑时就拔剑,而无需在意如果每天不拔剑是不是剑就锈住了?当剑术精进后总觉得每次拔剑就要杀人(只处理难题),其实有时拔剑也可以只是切菜(挡路的小问题),只要有助于达到目标。就像《火星救援》里的马克为了回家便要去种土豆,只要开始,解决一个问题,解决下一个问题,解决下下个问题,等解决了足够的问题,就能回家了。飞在空中的架构师就是要在高处看清都有哪些挡在回家路上的必要问题,落地成为进击的程序员们将其一一斩杀。

如今问我,还出剑么?剑还在手,该出就出。那么还练剑么?练,练空中出剑,术还未成,但道心已明。
来自: CSDN博客
15
0
评论 共 4 条 请登录后发表评论
4 楼 我会是微博 2016-02-20 15:02
文武双全
3 楼 java_workblog 2016-02-20 10:28
谢谢前辈的教导.
2 楼 飞天奔月 2016-02-19 13:28
我也喜欢 火星救援 的那句经典台词


Now you can either accept that
你要么屈服
or you can get to work.
要么反抗
That's all it is.
就是这样
You just begin.
你只要开始
You do the math. You solve one problem
进行计算,解决一个问题
and you solve the next one,
解决下一个问题
and then the next.
解决下下个问题
And if you solve enough problems, you get to come home.
等解决了足够的问题,你就能回家了
1 楼 ivan19861025 2016-02-19 10:27
楼主文章写的好, 赞一个.

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 外企程序员常用英语单词

    飞行员;领航员 adj. 试点的 v. 驾驶;领航;试用 n. (Pilot)人名;(意、印)皮洛特;(法)皮洛 28, REDIS 重划学区系统(redistricting system) 29, expires [ɪk’spaɪəz] n. 到期;有效期 v. 期满;...

  • 从草根到百万年薪程序员的二十年风雨之路

    在写这篇文章之前,该用什么样的标题,我犹豫不定,草根?百万年薪程序员?会不会被人当成标题党。二十年来,我所见过的草根程序员很多,优秀的草根程序员...本文记录了我从高中毕业之后的学习和工作经历,希望可以...

  • 理解专业程序员

    铁文整理   理解专业程序员 Understanding the Professional ... 如果你是一个程序员,或是程序员的管理者,或者处于任何和程序员紧密相关的位置,这就是你该读的那本书

  • 从草根到百万年薪程序员的二十年风雨之路。

    文章目录1、不快乐的中学时期2、从五笔打字到Foxpro3、向广州出发4、前往上海滩5、再回广州6、初识C语言7、开始再学习8、我要创业9、再...程序员20、再再后来21、总结一下吧21.1、关于百万年薪21.2、学习的必备条件2...

  • 【转载】从草根到百万年薪程序员的二十年风雨之路

    百万年薪程序员?会不会被人当成标题党。二十年来,我所见过的草根程序员很多,优秀的草根程序员也不少。人与人之间的差别其实很小,很多人因为年少不懂事或其它的原因没有考上大学,但并不表示他的智商或能力有问题...

  • 程序员的思维修炼:开发认知潜能的九堂课

    个层次、人类大脑的运行机制、直觉和理性的利与弊、学习方法和实践经验的重要性、控制注意力的技巧,等等,可谓是一本程序员“素质教育”的微型百科全书。我非常支持一个白话版的“素质”定义:除了书本知识、硬性...

  • android安卓源码海量项目合集打包-1

    下载地址 最后更新共计113个分类5177套源码29.2 GB。 卷 新加卷 的文件夹 PATH 列表 卷序列号为 00000200 5E7A:7F30 F:. ├─前台界面 │ ├─3D标签云卡片热门 ...│ │ android 流式布局和热门标签.zip │ │ ...

  • 安全体系设计结构和设计原则_讨论软件体系结构的30条共同原则

    安全体系设计结构和设计原则 想象一下飞过的体系结构审查。 一位建筑师走进去,环顾四周,掩饰着自己的双筒望远镜。 他提供的评论通常过于笼统或脱离上下文。... 架构师应该策划而不是命令,塑造...

  • 现代软件工程讲义 1 软件工程概论

    几乎所有程序员都知道“数据结构+算法 = 程序 ” 这句名言。但是在实际的学习和工作中,也有不少人产生了疑问。例如: 1. 我写了二叉树的周游算法实现,在这里,二叉树是数据结构,周游的实现细节是算法。我写的...

  • 现代软件工程系列 软件 = 程序 + 软件工程

    软件随想: 软件 = 程序 + 软件工程 最近和几个同道谈论了一些程序,架构,软件的问题,大家身在此山中,绕来绕去,始终没有能有明确清晰的结论。我把一些想法写在这里,供专家指正。 几乎所有程序员都知道“程序 = ...

  • 实例谈面向对象编程(OOP)、工厂模式和重构

    为什么80%的码农都做不了架构师?>>> ...

  • 最新版仿天涯论坛系统源码带后台

    亲测正常使用版,代码精简,压缩包也小,程序运行速度更快,效率更高,服务器抗攻击能力更强 功能方面: 仿天涯论坛模板的免费论坛系统在功能方面也很强大!程序本身包含一个PC版网站和一个手机版网站 支持打包APP安装包,开放式PHP原生态模板在线编译,音频视频发布直接生成HTML5代码,能够适应各种界面浏览器

  • 三自由度机械臂神经网络自适应控制,径向基函数逼近动力学与未知反馈状态的高增益观测器应用,机械臂自适应神经网络控制,机械臂为三自由度,神经网络逼近系统的动力学和滞回非线性 利用径向基函数的神经网络近似

    三自由度机械臂神经网络自适应控制,径向基函数逼近动力学与未知反馈状态的高增益观测器应用,机械臂自适应神经网络控制,机械臂为三自由度,神经网络逼近系统的动力学和滞回非线性。 利用径向基函数的神经网络近似机器人的动力学。 对于系统状态未知的输出反馈,采用高增益观测器估计系统状态。 ,核心关键词:机械臂; 自适应神经网络控制; 三自由度; 神经网络逼近; 动力学; 滞回非线性; 径向基函数; 输出反馈; 高增益观测器。,基于神经网络的自适应控制:三自由度机械臂的滞回非线性动力学逼近研究

  • 《已调试》SpringBoot网上水果蔬菜商城系统(源码+sql).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

  • 西门子中央空调智能控制程序:标准化冷水机组运行,模糊控制开启与切换策略,自动均衡磨损与故障管理,西门子中央空调程序 冷水机组程序,标准化很好的程序,内部用的函数封装成标准块 采用模糊控制,根据需求

    西门子中央空调智能控制程序:标准化冷水机组运行,模糊控制开启与切换策略,自动均衡磨损与故障管理,西门子中央空调程序。 冷水机组程序,标准化很好的程序,内部用的函数封装成标准块。 采用模糊控制,根据需求及制冷量来确定开启冷水机组及冷冻泵,冷却泵的台数。 夏季开启冷水机组,冬季开启锅炉制热 均衡磨损(为了专利保护只可调用,):水泵均衡磨损,冷机均衡磨损,故障,时间到了自动切,根据需求自动启动停止水泵。 需要的老板滴滴中央空调程序。 冷水机组程序,标准化很好的程序, 注:内部用的函数封装成标准块。 可以直接调用,部分源文件有保护, ,西门子中央空调程序; 冷水机组程序; 模糊控制; 开启/关闭机制; 标准化; 函数封装; 均衡磨损; 自动切换; 保护源文件; 老板滴滴中央空调程序,西门子中央空调冷水机组标准化程序:智能控制与均衡磨损管理

  • 三相逆变器并联系统功率均分研究:VSG控制策略下的LCL滤波与预同步技术,多台三相逆变器并联(本模型为三台并联,市面上多为两台并联)matlab simulink仿真 功能:实现并联系统中各逆变器输

    三相逆变器并联系统功率均分研究:VSG控制策略下的LCL滤波与预同步技术,多台三相逆变器并联(本模型为三台并联,市面上多为两台并联)matlab simulink仿真。 功能:实现并联系统中各逆变器输出功率均分。 (有能力的话还可以研究下垂特性、功率指令以及静态功工作点三者之间的联系) 控制策略:VSG控制策略(同步机控制) 逆变器主电路:三相逆变器,LCL滤波电路,VSG控制模块。 VSG控制模块:定、转子方程,dq变,电压电流双闭环,预同步,pwm发生器。 ,基于VSG控制的LCL滤波三相逆变器并联系统仿真研究:多台逆变器功率均分与下垂特性分析

  • 2025年高级经济师笔试真题及答案.docx

    2025年高级经济师笔试真题及答案.docx

  • 三相维也纳整流器的双闭环控制仿真模型:电压PI与电流Bang Bang滞后控制器实现单位功率因数与低谐波运行,三相维也纳整流器的仿真模型 控制算法采用电压和电流双闭环控制 外部电压环路为PI控

    三相维也纳整流器的双闭环控制仿真模型:电压PI与电流Bang Bang滞后控制器实现单位功率因数与低谐波运行,三相维也纳整流器的仿真模型。 控制算法采用电压和电流双闭环控制。 外部电压环路为PI控制器,内部电流环路为bang bang滞后控制器。 网侧单位功率因数运行,电网电流谐波非常小。 ,三相维也纳整流器; 仿真模型; 电压和电流双闭环控制; PI控制器; bang bang滞后控制器; 网侧单位功率因数运行; 电流谐波。,三相维也纳整流器仿真模型:双闭环控制算法与网侧单位功率因数运行下的电流谐波优化

  • Java毕业设计-springboot-vue-旅游网站(源码+sql脚本+29页零基础部署图文详解+29页论文+11页答辩+环境工具+教程+视频+模板).zip

    资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:29页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于 B/S 网络结构,在 IDEA 中开发。服务端用 Java 并借 Spring Boot 框架搭建后台。前台采用支持 HTML5 的 VUE 框架。用 MySQL 存储数据,可靠性强。 能学到什么: 使用Spring Boot搭建后台。VUE 框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。

Global site tag (gtag.js) - Google Analytics