为什么很多程序员没有升级到架构师CSD

北京医治荨麻疹医院 http://baidianfeng.39.net/a_ht/210414/8846512.html

作者

泰斗贤若如

责编

Elle

对我们程序员来说,发展的途径要么是走管理岗,从开发升级到项目经理甚至是部门经理;要么走技术升级路线。不过在技术路线方面,无法升级到架构师的程序员不在少数。一方面,在不少公司的高级开发岗位上,无法让程序员实践甚至接触到架构师的技能,另一方面,有不少程序员甚至不清楚架构师所需要掌握的技能和升级途径。所以从结果上来看,至少有5成的程序员止步于“高级开发”的程度,这是非常令人可惜的。

我这几年一直努力地从高级开发升级到架构师,目前虽然职位上没达到,但好歹多少也能干些架构师方面的活了。在本文里,将结合我自身和其它一些程序员的经历,分析不少程序员无法升级到架构师的普遍原因,由此向大家展示从高级开发升级到架构师的难点,并在此基础上给出相关的升级建议。

很多程序员在日常工作里无法接触到架构师的技能

大多数的程序员能在工作中接触到高级开发的技术,所以从初级开发升级到高级开发,难度并不大,但架构师就不同了。

比如在外包公司里,程序员大多是做重复劳动,业务变了,但用到的技术还是增删改查。或者在一些规模比较小的公司,项目组出于成本和质量监控的考虑,也未必会让程序员从事架构方面的工作。哪怕在一些技术含量比较高的互联网公司,出于业务封装的角度,一些高并发高可用的实现往往被封装在方法里,程序员仅仅是通过调用方法实现功能,未必能在代码层面,显式地看到架构方面的技能。

接触不到相关技能,单靠看视频看资料积累起来的技能,在面试过程中往往会不堪一击,从而无法应聘架构师的岗位,这反过来制约了程序员向架构师发展的脚步。

我有时候在面试高级开发的时候,会深入问些架构方面的问题,比如我问,你们系统里,模块间的通讯用的是什么组件,不少高级开发甚至是一头雾水,或者在他们眼里,更多的是调用方法实现功能。

不少程序员往往会深挖单机版的技能

很多工作中得过且过的程序员,在实现的功能通过测试以后,或许就无所事事了,而且这类程序员不在少数,在小公司或外包公司里,这类程序员往往会更多,说实现的,他们的竞争力和从培训班里出来的程序员没什么两样,或许就更熟悉业务背景。

或者有些程序员虽然上进,但会深挖单机版的技术细节,比如我问String对象的==和equals方法有什么差别,或者,JVM虚拟机调优有哪些实践要点,此类回答他们会回答非常到位。这固然要比纯粹会写代码的程序员要好,但此类技能顶了天只能算高级开发的技能。如果在升级时过度追求这方面的技能,无异于缘木求鱼。

列举架构师平时要干的活,确实和高级开发有差距

上文是从客观和主观两个方面,讲述了架构师升级的难处,在讲述升级方法前,我们先来看下架构师究竟要干什么活,以此来明确努力的方向。

1、需要搭建高可用的框架,比如就拿最简单的搭建数据库服务来说,得考虑如果一台MySQL服务器宕了,如何保证业务切换到另外一台机器上。2、需要考虑高并发的因素,从这个点展开,架构师至少需要会用nginx,mycat,netty,redis之类的工具,以及考虑搭建实现负载均衡的集群。3、需要把设计好的架构部署上线,或者哪怕上线动作是由运维来做,但架构师至少要知道如何把nginx集群等组件部署上线的活,由此架构师需要了解必须的linux命令和脚本,以及了解jenkins之类的部署工具。4、上述技能不是简单会用即可,如果在开发部署和运行过程中由问题,架构师得负责解决。这就要求架构师不能仅仅靠看视频知道如何搭建系统,更得具备针对netty等组件的debug能力,还得能通过看日志,知道集群的运作情况,如果集群出了问题,还得知道如何快速解决。5、不能仅仅


转载请注明:http://www.aierlanlan.com/rzdk/2985.html