为什么?
1、架构师的职位比较少
相比于开发人员的数量,架构师的职位相对较少。在一个项目中,通常只需要一个架构师,甚至不需要架构师来设计和指导整个系统的架构,很多时候,一个高级开发就能完成一个简单系统的架构设计工作。
但是每个项目都需要大量的开发人员来实现具体的功能。因此,架构师的职位数量有限,导致只有少部分开发人员能够晋升为架构师。
就我工作过的几个公司来说,基本上都没有一个完整的架构师角色,当然,这可能也跟我一直在做业务开发有关。
2、转行的码农
许多码农是通过转行、培训或自学等非系统性的方式进入编程行业的。
如果你在大厂,可能对这个还没感觉,但是如果你在中小公司,这个感受会特别明显。
什么行业都能转码农!
流水间工人转码农、保险销售转码农、餐厅服务员转码等等,什么行业转码农的都有。
这些人可能缺乏系统的计算机科学知识和软件工程的基础,对于架构设计的要求可能存在一定的难度。
架构师需要具备宽广的知识面和深厚的技术功底,能够综合考虑系统的可扩展性、性能、安全性等方面,这对于非系统性学习的码农来说可能是一个挑战。
当然,这里也不是说转行的码农就当不了架构师,而是说这部分人需要付出比常人更多的努力和更大的机遇,才能当上架构师。
3、缺乏架构师培养机会
在国内的许多公司和大部分程序员来说,缺乏成为架构师的培养机会。
许多公司更注重短期的项目交付和业务需求,对于长期的系统架构规划和培养架构师的投入相对较少。
大部分公司可能都是面试造火箭,工作拧螺丝,天天 CRUD 混日子,怎么可能成为架构师。
另外,很少有公司重视架构,都是先怼业务上去,今天提需求,明天上线,哪有时间给你设计架构?
大部分程序员可能在日常工作中只关注具体的开发任务,缺乏接触和参与到系统架构设计的机会。这使得他们无法在实践中积累架构设计的经验和技能。
怎么做?
要成为一名优秀的架构师,除了具备广泛的技术知识和深厚的经验外,还需要有系统的学习和实践机会。对于那些希望成为架构师的开发人员,他们可以通过以下方式提升自己的能力:
1、深入学习计算机科学和软件工程的基础知识,包括数据结构、算法、操作系统、网络等方面的知识。
2、学习和掌握不同的架构模式和设计原则,如分层架构、微服务架构、事件驱动架构等。
3、参与大型项目或复杂系统的开发,争取接触到系统架构设计的机会,并积极参与其中。
4、阅读相关的技术书籍和博客,关注行业的最新动态和趋势,不断更新自己的知识和技能。
5、参加技术交流活动、研讨会和培训课程,与其他架构师进行交流和学习。
6、关注前沿技术,深入思考后面的原理和使用场景,并结合自己的工作内容,通过头脑沙盘的方式演练自己的能力。
总结一下,成为一名优秀的架构师需要具备广泛知识和经验,而且需要有机会接触和参与到系统架构设计的实践中。
所以,架构师可能是一个能力与机遇匹配的结果,不是你有能力就能当架构师的。