普通程序员通向架构师的最佳路径?

简介:

互联网的蓬勃发展,让无数的「屌丝」程序员在一夜之间,仿佛都变成了「香饽饽」。但是,没有几个做开发的同学真的想做一辈子「码农」,很多同学都希望当上CTO,最终迎娶「白富美」,从此过上幸福美满的生活。

诚然,CTO 的路不是那么好走的,而其中最重要的先决条件就是你要先成为一名优秀的架构师,那么普通程序员如何才能成为架构师呢?让我们听听移动开发精英群里,这些国内顶级的大牛怎么说!本文系 OneAPM 市场部王鹏整理。

普通程序员通向架构师的最佳路径?
三生社群副总裁,ThinkPHP核心开发者罗飞总结:

程序员可能的发展路线是什么?

先说说这张图,它几乎表示出了一个程序员可能走的所有职业路线。 当我们刚开始还是个初级开发的时候只能把自己变成高级,开发者才能有更多的选择。你可以选择管理线、专家线或者小老板线。(图有四个象限,x轴代表金钱, y轴代表时间。)

我们学习知识的路线是: 技术->技术+管理->技术+管理+商业。但是随着阶段不一样,我们学习的知识也有不同,刚开始我们只做开发,只需要学习技术知识就行了,后面我们做到了管理职位,不仅要懂技术还要学习管理知识,然后我们想要成为CTOCEO或小老板,必须得学习一些商业知识才行。

想成为架构师,你需要经历3个阶段的磨练!

从技术上来讲,要成为高级工程师或架构师,我认为可能需要经历3个阶段: 实现->借鉴->优化。

第一个阶段: 实现

在这阶段我们只在乎功能的实现,不会考虑性能优化,我们会觉得一些功能不会做,一些功能自己没做,我们只要实现了功能,就觉得很有成就感。在这个阶段中,我们要多去做事,没做过的就去做。要注意培养自己的全面能力,前端、后端、服务器等要去接触。其实,这个阶段就好比人类的居住环境,原始人的时候只考虑实现遮风避雨就行了,不考虑住得舒不舒服,所以找个山洞住就可以了。

第二个阶段:借鉴

当我们觉得基本所有功能自己都能实现的时候,我们会遇到自己的第一个瓶颈,这时候不要自满,要发现那只是自己的第一个瓶颈而已。其实,我们每个人自己的提升空间还很大,这时候建议大家多借鉴别人的东西,看一些开源程序的代码,其实读别人的程序能学到很多东西。或许有人认为别人能实现的自己也能实现,不屑于看别人的东西,但这显然阻碍了自己进步的空间!

美国一位大师Matt Zandstra说过这样一句话:“我们正在努力开发的功能,或许已经被其他程序员实现过无数次,我们怎么不借鉴他们的,而是把重心放在自己特有的业务逻辑上呢?”这个阶段我还是拿人类居住环境来做比喻:人类在一定阶段后, 好像能借鉴鸟搭鸟窝的形式,自己能“搭建”茅草屋了。

第三个阶段:优化

当我们功能都能实现了,也借鉴了许多别人的东西时候,借鉴阶段也是有瓶颈的,当我们看了一两年开源代码后, 再看新的程序,已经看不出新的编程思想了,感觉编程思想都是以前看过的。这个时候,我们的重心会想着怎么优化我们的代码:

我们会考虑代码的可读性、安全性、可扩展性。这时候建议大家可以看一些设计模式、编程思想、安全方面的书。 我说的这三个阶段可能属于从初级程序员到高级程序员的阶段,离真正的架构师可能还有点距离,因为真正很牛的架构师还会理解公司业务需求,能知道什么阶段用什么技术!这是非常重要的。

经典语录分享:

唐巧:我的观点是,程序员能够成长为架构师,不仅要靠自己的努力,很大程度上也依赖于机遇。淘宝的系统经历过10次重写,每次都面临新的挑战,这些参与其中的每个人都得到了亲自的锻炼和成长,这也是他们赶上了好时候:电子商务和淘宝的快速发展。

在这波人过了之后,现在的新人如果想在电商系统上有所深入的成长,再想成为架构师就很难了,因为他们无法深入理解这些设计原理,为什么这样设计能够避免各种“坑”?

当然,移动开发领域正经历快速变革和发展的时期,这几年做移动开发的人,可以看到这个系统的演进过程,他们很可能成为移动开发专家。他们也有机会去设计一些非常基础的、有挑战的系统,来解决现在移动开发中遇到的问题。总的来说,就是找准趋势,顺势而为,才可能在技术上接触到挑战和机会,单纯的努力可能不一定有效果。

冯军:我觉得架构师不在于掌握多少前沿的技术语言和牛逼的技术,而是在于对业务和技术发展的理解,能站在公司的角度,明确在不同的阶段用不同的技术架构,能够快速支持业务的发展,保障平台的稳健。

而且,架构师的技术栈会多元化,因为架构师不仅仅要做好技术(技术不仅仅是包含于开发层面,还有前端构建,运维,测试等领域),还要理解业务,不懂业务的架构师不是一名好架构师。当然,架构也不是设计出来的,而是伴随着项目的发展一步步不断演进出来的。**

薛伟:程序员在基于本位模块开发上,应该多想想支撑业务及整体需求,多考虑支撑业务问题的实际解决,以及突破所辖模块及端的协作兄弟的换位技术思考。只要多实践,多务实解决切实问题,就能自然发展成为架构师,所有技术架构思维其实都是相通的。

Sama:这个世界上最重要的是人,我们索要学习的也都是人创造的。所以跟随大师和领会大师的意图也非常重要,试想一下你有关注过大师的社交号或者社区吗?大师的作品有没有详细研究过?有没有每天坚持用谷歌查看现在世界上任何与架构有关的文章?有没有遇到问题去学习背后的原理?如果你做到了,就说明你已经在架构师的路上了!

还有一点就是工具集,架构师的工具集都是精心对比研究过的,因为在架构师眼里效率是至上的。正如「王牌特工」里师傅带给徒弟的特工「武器库」一样!

富丽饼干:没有完美的架构,只有最适合需求的架构!架构师更要理解需求,理解产品方向和产品经理的思维,一味追求技术上完美的架构,最后很容易做成空中楼阁,百度腾讯都很强调架构师对产品的理解和产品经理的沟通能力。

陈驰远:在技术方面,我觉得架构师首先得了解自己做的业务,业务上有规划,能找到现阶段最适合解决业务上问题的方案,并且对之后的发展有概念和对策。同时,保持对业界技术的关注,知道如何使用新技术解放生产力。永远只有最合适业务的架构!

此外,借力也很关键,架构师得有一定的人脉,遇到自己不擅长的问题,能找到擅长问题的牛人,向他们学习,可以少走很多弯路!

伍星:架构师的成长离不开平台的发展。小平台很难造就优秀架构师,架构师都是在瓶颈和崩溃中成长的!

李帅:基础扎实,多思考,多实践!而且每个人的情况都不太一样,需要因人而异,但最根本的就是对编程的热爱以及对美的思考!(貌似已经提升到哲学的范畴了!)

牛逼的人都是自学成才的,别指望有人能把你教成大牛!(送给所有阅读本文的程序员同学)

目录
相关文章
|
3月前
|
程序员 数据安全/隐私保护
架构人生,体魄同行:程序员的健康密码解析
架构人生,体魄同行:程序员的健康密码解析
67 0
|
8月前
|
架构师 安全 Java
年薪120W的架构师简历你见过吗?java程序员该如何达到?
第一个问题是,“大多数Java开发人员都在哪里,我们中有多少人?”我们回答了这个问题,把我们能得到的最准确的信息结合起来,然后推断出我们认为是一个受过良好教育的猜测。
|
8月前
|
开发框架 架构师 Java
Java程序员不掌握SpringBoot怎么进大厂,阿里架构师推荐实战文档
Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起时,还未得到普及使用。相比于以往的一些开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮。使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,从某种意义上,可以说是解放了程序员的劳动,而且一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标。本书就是本着提高开发效率,增强.系统性能,促进新技术的普及使用这一目的而写的。
|
9月前
|
架构师 程序员
硅谷技术总监用300小时带你从程序员直接成为架构师,真不是盖的
前言 相信,有许多小伙伴已经做了程序员一两年或者三年了,甚至有些已经快五年了,但是还没有迈进架构师这个门,不知道如何成为架构师。 程序员之间的能力差异在哪里?如果是学技术,大家可以阅读同样的书籍和网络文章,为什么还会造成最终专业能力的差异?我认为有三点。
|
4月前
|
数据管理 程序员 人工智能
后台数据管理系统 - 项目架构设计【黑马程序员】
后台数据管理系统 - 项目架构设计【黑马程序员】
148 0
后台数据管理系统 - 项目架构设计【黑马程序员】
|
5月前
|
开发框架 架构师 Java
Java程序员不掌握SpringBoot怎么进大厂,阿里架构师推荐实战文档
Spring Boot作为Java编程语言的一个全新开发框架,在国内外才刚刚兴起时,还未得到普及使用。
|
5月前
|
安全 数据挖掘 程序员
程序员必读 | 《业务架构解构与实践》
程序员必读 | 《业务架构解构与实践》
232 0
|
6月前
|
架构师 Java 程序员
GitHub标星百万的程序员转架构之路,竟被阿里用作内部晋升参考
架构师是很多程序员的奋斗目标,也可以说是职场生涯的一个重要选择方向,今天我就跟大家聊一聊如何从一个程序员成长为一个架构师。
|
8月前
|
存储 缓存 架构师
程序员架构修炼:架构设计概要,业务、应用、技术、数据架构
架构设计 在架构设计过程中,我们会根据需要做出不同的架构设计,而在设计时需要涉及一定的架构设计核心要素。
|
8月前
|
NoSQL 测试技术 API
从程序员到架构师开发运维场景实战篇:一人一套测试环境
一人一套测试环境 本篇开始讲第16次架构经历:一人一套测试环境。同样,先介绍业务场景。 业务场景:测试环境何时能释放出来使用 当时,公司的基础设施使用的是虚拟机,而且还未迁移到容器。