如何让自己有机会成为一名架构师?
还记得当初第一次写个人简历时,技能那一栏里写的经常是熟练掌握某某技能,“精通”这两个字是绝对不敢写的。工作一段时间之后,角色从工程师转变为架构师,工作内容也从编码为主转换为需求沟通、系统重构、模块拆解、性能优化、代码审查、技术探索和文档输出。虽然工作内容看似丰富,但是因为没有经历过大厂的洗礼,时常会思考一个问题:作为架构师,我合格吗?
把握向优秀人才学习的机会
2020年初,看到极客大学上线了一个新的培训课程《架构师训练营》,毫不犹豫的就报名了。能够跟着李智慧老师这样优秀的技术人学习,是你去了大厂,也不一定能有的学习机会。
李智慧老师眼中的架构师
可以看的出来,想要成为一名合格的架构师,它的要求还是非常高的。下面我就根据训练营中的内容并结合个人经验,总结一下有哪些途径可以帮助你成为一名架构师。
哪些途径可以帮助你成为一名架构师?
1、成为团队中最靠谱的开发者
任何一名架构师,都是先从一名普通的开发者成长起来的。
评价一个开发者靠谱不靠谱,有以下几个要点可以衡量:
开发任务的tasking做的怎么样?预估的工时与实际完成时间是否偏差不大?
交付的代码是否满足用户需求?
交付的代码是否符合SOLID原则?
2、技术上不仅要追求深度、更要追求广度
一个人如果想要在某项技术上达到一定的深度,至少需要两个条件:1、投入的时间是否足够 2、是否有足够的场景应用这项技术,验证自己的理解。
所以,当具备这两个条件时,就尽量往深度的方向去研究。如果不具备,也不用紧张,因为对于架构师而言,广度更为重要,而且学习成本更低。
在追求广度的道路上,我认为可以按照以下几点来进行:
每个人的精力都是有限的,要尽量了解社区活跃度高的技术
确定要了解的技术之后,尽可能的阅读所有官方文档并练习官方demo
总结该技术为什么出现、解决了什么问题、是如何实现的、与其他同类技术有何不同?
3、提高学习效率
近些年,技术的发展速度越来越快,新概念层出不穷。在这个信息爆炸的年代,如果不想办法提高自己的学习效率,迟早会陷入越学越多,越学越累的情况。
提高学习效率,个人觉得有两点:
提高鉴别劣质学习资料的能力,减少学习时间的浪费
多读一些帮助提高学习能力的书籍,比如《刻意练习》、《程序员修炼之道》、《学习之道》
4、代码重构能力
作为一名程序员,日常接触最多的事情就是编码了。编码的质量自然是有好有坏,所以重构这件事情,会经常出现在你的工作当中。而作为一名架构师,你需要经常review其他人的代码,这个时候如何去识别代码中的坏味道、如何进行重构,已经是一件日常的工作了。
重构的能力是需要培养和练习的,这里我推荐大家阅读《重构:改善代码既有设计》、《clean code》、《测试驱动开发》这三本书,可以帮助大家构建重构的能力。
5、建立产品思维
不管你在哪一家公司就职,首先要明确一点:公司是要盈利的,如果公司倒了,那你就要换一个地方做架构师了。所以我个人认为一个合格的架构师,不应该一味的追求技术的创新,而是应该合理的利用好新的技术,帮助公司实现更好的产品。
我们可以通过以下几点,帮助自己建立产品思维:
多站在产品的角度思考问题,不是每一次遇到一座大山,我们都要想办法跨过去。有时候通过巧妙的需求设计,可以为产品带来更好的用户体验、更稳定的系统以及更少的bug。
了解产品的未来规划,在思考技术实现时永远要考虑未来的可扩展性、可维护性。
6、建模能力
软件架构设计是基于方法论的,课程中特别提到了IBM的4+1视图模型。架构师在实际工作中可以通过UML建模来实现4+1视图模型,从而表达自己的软件架构。
那么,为什么建模能力如此重要呢?
首先,这是因为绝大部分稍有规模的软件,都不是由一个人开发的。因此如何让团队了解产品目标,掌握领域知识,熟悉系统架构设计,良好的进行协作,直接影响了项目的结果。通过实现不同的模型图,可以很好的帮助完成这一工作。
其次,不同的人群对于产品的关注点是不同的,掌握良好的建模能力可以帮助自己在其他场合赢得更多的掌声(比如向老板汇报)。
最后,时刻提醒自己
评论