从码农到架构师,如何才能成长为技术领导者呢?

江聪德


从事软件开发16个年头了,也是从最开始什么都不懂,到现在都什么都懂些,而且有了自己深耕、擅长的领域,我认为成为架构师不是不可能的、甚至都不是什么难事,直接从我自己成长历程来说吧。

最开始工作时候,自认不是什么聪明人,但性格开朗、对于新知识有强烈好奇心,刚开始工作也不是太忙,因为公司重要的工作也不会让菜鸟来做。偏偏自己总是喜欢毛遂自荐、主动请缨来做事情,搞不定的就加班加点找资料、跟前辈请教,过程中发现基础知识薄弱,就把当时公司附近华储和大松书店关于Java的书利用吃饭空暇、周末时间都看过不止一遍,知识跟工作实践相结合、加上自己研究工作相关的新技术,慢慢的2年后技术相对优势开始体现出来了,在自己工作第一年下半年就开始负责项目,第二年就开始带新人,带新人的过程中,教学相长。项目是最好的老师,项目开发实战中爬过很多坑,慢慢开始有意识把知识、技能形成体系,不再盲目扩展知识面、开始聚焦,同时对工具、文档分类整理,当时公司的技术框架由自己负责来完善,过程中也是收益匪浅。

后来总是做项目开发、现场开发,技术没有太大成长空间,因公司特殊性质也没有太好的发展空间,自己又很喜欢技术、想去做产品,但是公司没有做产品的氛围、整体运营模式也不是产品和技术型公司,当然这些是后来才慢慢想清楚的,当时只是想去看看外面的世界怎样做的。于是去了另外一个专门做产品和技术创业型公司,在研发部1年多后,然后参与研发部、技术部联合主导的产品方案验证项目,对如何做产品、如何做产品验证有了清晰的认知,跟研发部同事相互学习过程中,也弥补很多的短板。后来自己想了解产品的价值是如何呈现的,也应公司调整作为技术经理转技术售前,参与个别项目的售前。由于创业公司靠谱商机其实蛮少的,很多都是老大自己亲自出马搞定,期间也跟老大一起出去做过售前,也独自做过售前,但是相对来说机会偏少,坐冷板凳的时间很多,工作时间相对宽裕,自己对开发平台、流程平台、服务总线、门户平台做了很多研究,下班以及周末时间做开源,写出开发平台的框架、流程平台的框架,其中,流程平台就是采用开发平台来开发,过程中对开发平台进行验证和消缺。曾经试图把自己研发的开发平台、流程平台用于公司,但公司聚焦主要只做服务总线,我这边研究的东西跟公司现有的产品、架构体系存在冲突,只做边角料,而且自己已经不在研发部了,如果强推的话,有不务正业之嫌。

2010年末希望有更多的机会夯实技术、学习产品方案,去了当时业界还是比较出名的平台类公司,在区域中心做高级技术顾问、技术总监,负责售前、大项目交付工作,期间做了大量的售前工作,而且在负责的项目中主推ESB + Portal + 扩展开发的产品组合,收到了很好的效果,甚至在全公司内部推广该模式,期间跟研发人员多次沟通交互,也学习很多东西,对 ESB服务总线、门户平台Portal从方案层面、实施落地层面都有了深刻认知。但产品固有的缺陷不能快速满足项目的实施需要,就开始在项目中做扩展开发来满足需求,追求更多的灵活性,在两个项目结束后发现基本上已经把核心和大部分框架功能都重写了。2013年区域中心发生很大的变化,需要赴京去工作,家人强烈反对,最后2013年提出离职。

十年磨一剑!工作10年,便一直把自己当作一柄剑来磨砺,现在很清晰的知道自己要做什么,虽然前途不清楚,但是很乐观。全民创业、大众创新时代来了,不能再磨了,开始了自己技术创业生涯。在创立公司之前用了三个月时间来闭关修炼,把积累的ESB服务总线、Portal门户平台、DP开发平台开发封装、包装,三个月快过完了时候刚好项目就来了,跟朋友的公司一起接了这一单,产品不要钱、只要一个验证机会,保住最低成本即可。然后现招人、培训项目人员,以前传帮带大量实践发挥起作用,以及基于平台来做项目快捷很多,在3个月后完成项目蓝图,收到款之后2014年初成立数通畅联,自己做CTO,也是老板,终于有一个立足点,虽然很小、很不起眼,但是公司成立之初已经有三款产品了。后来到了公司的发展阶段,考虑事情就更多了,从产品家族、产品体系、如何相互组合支撑、如何优化,如何在项目中以最佳方式落地、公司运营、市场营销、团队如何建设等。

经历这些公司、这些事,转眼已到不惑之年,我认为不管是哪个方向,只要往上走肯定能够进步,如果想要成为架构师,涉猎更多知识、专攻特定领域是必须;掌握良好学习、总结方法,以开放的心态,积极与人沟通交流、碰撞,尤其珍惜与高人交流的机会;坚持实践编码、提高技术能力、在过程中把握节奏、不要试图一口吃成胖子,一步一个脚印、闭环思维提高自己的短板。在正确的道路上、用正确的方法、把别人喝咖啡的时间都用来修炼,且过程中不断调整优化,那么上帝也挡不住你前进的步伐!


数通畅联


对于程序员来说,要想通过自己的努力一步一步成长为技术领导者,需要具备以下几个条件:

第一:扎实的基础知识。程序设计说到底就是个数学问题,所以要想在程序设计这条路上走得更远,一定要具备扎实的数学基础。另外在产业互联网发展的大背景下,软硬件结合将是一个重要的发展趋势,在这种情况下,物理知识对于程序员来说也是比较重要的。总之,基础知识的厚度往往能够决定程序员的成长高度。

第二:健全的知识结构。随着互联网的不断发展,众多技术的融合程度进一步提升,前后端开发的界限也在逐渐模糊,这就要求程序员具备健全的知识结构。程序员的知识结构既包括操作系统、计算机网络、数据库、算法设计、数据结构、编程语言等基础内容,也包括具体岗位的专业知识,比如大数据知识、物联网知识等等。

第三:较强的学习能力。学习能力对于程序员的职业发展来说是非常关键的,程序员不仅要通过岗位来提升自身的研发能力,也要有较强的自主学习能力,能通过自主学习完成一些新技术的掌握,同时能够把这些新技术应用到工作岗位中。自主学习能力是突破职场发展瓶颈的关键,所以培养自主学习能力是非常重要的。

第四:工作环境有研发氛围。工作岗位和工作环境对于程序员的提升有重要的影响,如果研发团队中有能力较强的技术负责人,那么对于程序员的成长来说会有巨大的帮助,也会形成一个比较好的研发氛围。在互联网科技领域,一个优秀的团队往往能人才倍出,其中一个关键因素就是有较好的研发氛围,程序员在这样的研发氛围中能够持续获得提高,并不断做出新的成果。

第五:善于交流并具备总结能力。交流对于程序员的成长来说也是比较关键的,互联网领域技术更迭速度比较快,通过有效的交流能够节省大量的学习时间,对于架构师来说更是如此。因此,要想成长为技术领导者,一定要培养自己的交流能力。

第六:对技术发展方向有自己的见解。技术领导者不仅要有较强的技术能力,也要具备一定的预见能力,能够对未来的技术发展方向做出自己的判断,同时能够形成一个较为完整的方案。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续在头条写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网方面的问题,也可以咨询我,谢谢!


IT人刘俊明


成为一个技术领导者,你只会某一个语言是肯定不行的。你需要至少掌握你们公司所使用的后端语言以及前端语言。

OK,你在技术上已经没有问题了,我们再来讨论如何成为一个技术领导。

要有通盘的技术方案制定<strong>能力。

比如后端技术选型,你可以确定用 Java 还是 Python 或者其他,并且对于技术选型后的结果,有充足的解决问题的能力。一般新手工程师没有能力自己搭建构架,这个时候需要你来搭建构架。

比如前段技术选型,大家争论是用 vue 还是 react ,你可以一锤定音,老子开发就用 jQuery!

要有解决任何技术难题的能力。

方案定出来之后,开发团队中的成员并不一定都对你确定的技术选型了然于心,因此不可避免的会遇到各种开发问题。这时,你要有解决任何技术难题的能力。如果只会告诉开发人员,自己搜索去,肯定是不能胜任技术领导岗位的。

要有掌握解决问题方法的能力。

上面说了,你要能够解决问题。但是说实话,解决问题的能力并不是特别重要,因为你不可能全能全知。最重要的是掌握解决问题的方法的能力。注意,是方法,而不是具体的知识。

遇到了任何技术难点,你都有一套解决方法,利用你的方法,能够顺利的解决各种技术问题。

要有强大的学习能力。

一个刚刚走上技术领导岗位的人,可能会在很多方面都不是很了解。但是,随着时间的推移,你需要学习的内容会越来越多。比如,一开始你们的项目只是采用 java 开发,你只会 java 就可以了。但是此时公司交接过来一个php 的项目,你不会php,没关系,需要你再一天之内掌握php语言的基本开发。你必须掌握这个能力。

你会问,怎么可能?

是的,普通的开发者当然不可能,作为一个技术领导,这是必须的技能。而这重要的也是方法。只有当你掌握了多门语言之后,你才能掌握这种快速学习新语言新知识的能力。

最后,技术领导不好当,但是如果能够当上,并且胜任的话,你的技术提升是飞跃性的。比如我,用半个月的时间掌握了python语言,并用此开发了一套web基础框架。(我只是前端主管)

因为你再从事普通开发岗位的时候,根本不可能给你太多的时间去学习。而作为技术领导,你有充足的时间和资源来学习各种新的知识。因为,这就是你的工作。

以上文字只是我的个人观点,如果各位看官有不同的观点欢迎在评论区中留言讨论。


FungLeo


首先看到这个问题,自己有切身体会。也是一步一步走过来的。

1.首先是定位:定位不准可能走很多弯路,建议是后端为主,前端必会(可以不精通,但是公司有需要必须能顶替“前端的坑”),80%技术+20%管理(不建议过多管理)

2.每一个环节可能会花费很长的时间去突破,但是重要的必须是恒心


3.第三点:说下我的个人经历希望对你有所帮助。1-5年工作一直怀着管理的梦,但是还是以技术为主,之后转为架构师,有更多的时间去学习技术,后来受限于公司发展问题,离职跳槽,转为管理型 开发经理(兼架构师)的岗位,虽然开始已经管理,但是不会放弃技术,一直在不断的拓展自己(比如视频录课,写一些博文,帮助更多的人)。因为我们目标需要更长远些,CTO?公司创始人?不管怎么自己喜欢的就是最好的。

End:

有太多的话题要聊,如果感兴趣可以私聊,有些事三天三夜也讲不完,最后祝您早日成为技术领导者。加油!加油!


架构师速成记


每个公司,每个团队,甚至于每一个业务领域,都有一个技术领导者。专家,架构师,CTO等不同的级别,技术领导者就有不同水平。



你所见到的技术领导者,你心目中的技术领导者,又是怎样的呢?

我认为,技术领导者,具有以下本领:基础理论扎实,知识体系丰富,学习能力强,知识转换落地能力强,善于表达和交流,善于归纳和总结,善于指引和复盘。最闪亮的地方是,对旧技术有再生能力,对新技术有独到悟解。



如何才能成为技术领导者?又学又用,又用又学,把工作当作事业来做,拿出当年高考的拼劲,并持之以恒,坚持量变到质变。不要低估知识的力量,不要只会重复经验。很多人不看书不学习,一种经验重复很多年,最后只能平庸,最多充其量是一个团队的专家,但并不属于领域或行业专家。



谢谢大家。


嵌入式软件少帅


除了工作做好,最可能的路径是做多和想多。也就是先自己把自己任命为架构师,在工作的各方面以架构的角色去想去做,补齐自己的短板,抽出空余时间针对性学习以及免费劳动。


羊叔儿童编程


领先同行的创造力


伯俊软件


拿出高中那种学习干劲,拼命钻研几年后有可能


分享到:


相關文章: