作为一个码农的悲哀:我是架构师,而你不是

一般来说技术团队的金字塔顶尖往往是技术最牛的人做架构师(或TL)。所以架构师在广大码农中的占比大概平均不到 20%。而架构师也可以分为初级、中级、高级,江湖上真正高水平的架构师就更少了。


 

什么是架构师?

架构师是一个角色,定义角色其实是定义职责,架构师的职责是:识别并定义问题,创建、选择或调整架构,从而找到最优的方案,解决问题。

这其实也是架构师做事的一般套路:定义问题→确定架构→提出方案→落地拿结果。这四步中,越是前面的步骤,越是重要,越是抽象,也越是困难,越能体现架构师的功力。

架构师常说,我的架构解决了什么问题,这里的问题不是一般性的问题,而是特指马克思哲学中的矛盾。问题就是事物的矛盾。哪里有没有解决的矛盾,哪里就有问题。任何事物都是作为矛盾统一体而存在的,矛盾是事物发展的源泉和动力。架构师要定义和解决的问题,就是特定领域中的矛盾,解决了矛盾,就得到了发展,取得了收益。


 

有一种悲哀,叫做码农的悲哀。在现实生活中,80%码农干上许多年,还是做不了架构师,正在辛苦工作的程序员们,你有没有下面几种感觉?

①我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。

②我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,Swoft用的人最近比较多啊,听说最近Swoole比较火,还有微服务,听说PHP又更新了……

③我发现虽然我工作5年了,除了不停的Coding写业务代码,Ctrl+c和Ctrl+V更熟练了,但编码水平并没有提高,还是一个普通程序员,但有人已经做到架构师了。

④工作好几年了,想跳槽换个高薪工作,结果面试的考官都问了一些什么数据结构,什么垃圾回收,什么并发架构、协程编程之类的东西,虽然看过,但是平时用不着,看了也忘记了,回答不上来,结果面试官说我基础太差……

如果有以上问题,那么你绝对进入学习误区走了弯路;如果我们要成为架构师,我们自己要面临的三大问题:

a.找准定位:我是谁、我在哪里?

b.怎样做好架构师:我要做什么?

c.如何搭建架构师知识体系:我该怎么做?

如果你想要往架构师的方向发展的话,那或许你可以看一下我分享给你的这份进阶路线图,主要针对1到5年及以内的PHP开发人员,里面的技术包涵了PHP高并发、分布式、Swoole协程编程、微服务、框架内核、高性能等技术,这些也是目前中大型互联网企业比较常用的技术,那么来详细看看。


 

一:常见模式与框架

学习PHP技术体系,设计模式,流行的框架

常见的设计模式,编码必备

Laravel、ThinkPHP开发必不可少的最新框架

YII、Symfony4.1核心源码剖析


 

二:微服务架构与性能优化

业务体系越来越复杂,协程编程,PHP并发编程、MySQL底层优化是架构升级的必经之路,PHP性能优化和微服务相关的技术有哪些呢?

Tars分布式RPC框架

Swoft微服务框架

服务器性能优化

算法与数据结构


 

三:工程化与分布式架构

任何脱离细节的PPT架构师都是耍流氓,向上能运筹帷幄,向下能解决一线开发问题,PHP架构师需深入工程化、高并发,高可用,海量数据,没有分布式的架构知识肯定是玩不转的:

Linux操作/shell脚本编程

docker容器/自动化部署

分布式缓存/消息中间件

分布式架构原理/高并发分流


 

能掌握以上技术这些人必然具备在技术上独当一面的能力并且清楚自己未来的发展方向,从一个Coder逐步走向CTO或是架构师,成为项目组中不可或缺的人物。


 

那么以上专题内容该怎么学习?

如果你想以编程语言立生,建议你先学习C语言打好基础。C语言是一门通用计算机编程语言,是面向过程的语言,其语法结构及其严谨,且应用十分广泛。而且只要将C语言研究透彻了的话,学习其他语言就会轻松很多。

如果你也想成为程序员,想要快速掌握编程,这里为你分享一个C语言/C++学习企鹅圈子

里面有资深专业软件开发工程师,在线解答你的所有疑惑~C语言入门“so easy”

资料包含:编程入门、游戏编程、课程设计、黑客等。

原文地址:https://www.cnblogs.com/mu-ge/p/13859084.html