技术编程人员成长的 9 个段位

更新日期: 2020-01-31阅读: 1.8k标签: 编程

很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己 10 多年的从业经验,总结了技术人员成长的 9 个段位,希望对大家的职业生涯,有所帮助。


第一段

刚接触编程的时候,会觉得这是个很神奇东西,平淡的英文字母,再加上标点符号,竟然可以有这么大魔力。会觉得编程是很有自豪感的事情,因为在我们看来,它就是在创造,用这些跳动的字符,创造我们想要的效果。

我当时第一次看到编程的时候,就是这种感觉,我也不知道它是什么,如何做到的,但是就是感觉这很神奇,是一种不懂但是觉得很酷的感觉,然后就会着迷,开始想学。


第二段

开始学编程的选择,是没有选择的,因为什么都不懂,可能最先从哪里看到的,就模仿学什么,然后就走上了编程之路。

我最先接触的语言是 Pascal 语言,当时我不知道它是什么,只知道它叫这个名字。这门语言是在高中的时候,计算机书本上的,我学了一些,与其说是学,还不如是记,因为我没有练过,没有运行过。


第三段

走上了编程之路后,学习得方式主要看语法,这个是为了入门,但是并不太知道为什么会这样,但是能用,能模仿,这时候算是入门了。

入门后,会迫不及待的,使用实验各种效果,而且这些结果可能都不是自己写出来的,因为入门了,环境可以搭建,会运行,就会从很多地方拷贝一些代码,运行试试,然后感受成功后的自豪感。

我真正做出来东西的语言是 VB,可以通过拖动生成界面,然后再填充需要的逻辑代码,就可以实现一些功能,比如 MP3 后缀名处理,html 转 TXT,那时候主要的目的,还是满足自己的需要,可以做一些酷的东西,并不是真的把它当成一门用于工作的技能系统的学习它,但是即使这样,已经够我在同学面前自豪了。


第四段

真正的在走向工作之前,这时候的学习,就开始系统性,毕竟要决定靠这个谋生了。这时候我们会看一些实战类的书籍,比如如何做网站,通过什么框架,用到哪些数据库、服务器等等,这时候基本上已经走向正路了。

但是这个时候,我们只是会用阶段,大部分人还不知道为什么,比如 Spring 框架,我们知道这么配置可以用,可以 IoC 反转,但是不知道怎么实现的,原理是什么。

这个时候最大的特点就是,给分配的工作都能做,不太会的,也可以通过 Google、百度解决,大不了拷贝别人的一份,改改即可。

不管怎么样,现在已经初步具备框架系统体系了,可以谋生了。


第五段

随着工作时间的加长,经验的增加,你会渐渐的发展,很多常用的知识,自己只会用,但是并不懂,比如内存的分配,类的加载顺序,IoC 的原理等等。

这时候大概是工作 2 年左右,如果快的话,可能会在工作第一年就意识到。这时候你会刻意的去买了一些讲解基础类的书籍,比如以前从来没有认真读完的《Thinking In Java》又开始重读了,并且读的很仔细,还会配合例子测试一下,俨然像一个刚入门的,但是你知道你很清楚你缺少的是什么,想从中学到什么。

然后你可能还会尝试买一些比较深入的书籍,比如讲解原理的,高级特性分析得等等,这时候你会逐步的在你现在的这门语言开始深入,要跨过不光会用,还要懂为什么的阶段,这个阶段是孤独的,因为大部分都是语言特性、原理的学习。

跨过去,就是鱼跃龙门,过不去,就是一个重复的螺丝钉。


第六段

恭喜你能来到这个阶段,你不光会用,还知道原理。这个时候可能你已经工作 3 年以上了,这时候你开始独立负责一些项目,设计都是你来做。这时候对你的考验不光是编程语言本身了,你还会考虑如何让你的项目具备更好的扩展性,如何提高性能,如何和数据库、服务器、缓存等配合,设计出更好的系统。

这时候你可能开始看设计模式,也会研究数据库的优化,可能还会对 Nginx 研究,以便更好的使用。

这时候的主要特征,就是抽象能力、复用能力、组件化、模块化的提升,同时可以和编程周边(数据库、服务器等)进行更好的协调和搭配,以完成自己的项目设计。

这就是成为高级工程师之路。


第七段

现在你来了第 7 段,这一段是资深工程师,是第 6 段的加强,并不会有质的突破。

在这个阶段,你会对抽象、架构的理解更深。开始积累更多的模块,形成一个 SDK 或者一个微服务,你开始深入研究安全,并发,监控。如果你是服务端,你可能会考虑服务双活甚至多活,考虑网关等等。

并且你可能已经开始跨多个端了解业务和架构设计,比如服务端和前端的分离,服务端和终端的协作,开始逐步的从全局(不限于自己的技术栈)思考问题、设计系统。

这个阶段,就是第 6 段的继续深入,积累,扩展,然后积累到可以突破到架构师。


第八段

现在你终于突破到架构师了,你的眼界不在局限在你的技术栈,其他的语言你可能不懂,但是你知道如何使用他们,甚至你自己开始学习另外一门语言。

你设计的系统,不会只考虑自己的技术栈,你可能会选择更合适的技术栈来实现。

你会跨语言、技术栈思考问题,并且可以提出好的方案,比如负责的一个项目,横跨服务端、Android、iOS 和前端,你会通盘考虑,兼顾各个技术栈,协调大家完成这个项目。

你不光可能完成分配的任务,还能对现有的系统提出更多有建设性的建议,进行优化,改进,甚至提前积累我们业务需要的技术、平台、知识,为我们未来的使用和扩展做准备。

你还会熟悉业务,可能比其他更多的人对业务更熟悉,因为只有这样,才能设计出更适合业务的架构。

你会借助技术负责人的能力,帮你推动协调事情,让你的想法更好的开展和实现。

你的考虑角度,永远都是整个技术部门,而不是再局限在某个项目,某个组,某个技术栈。

那么恭喜你,现在你是一个合格的架构师了。


第九段

现在,到了第 9 段,现在可能你已经做了 10 年了,你发现,所有的一切技术,都是实现业务的工具。业务才是根本,技术是为业务服务的,如果买个系统就能达到目的,那么是不需要自己开发的。

这时候,你具备了再一次横向扩展的能力,可以横向到产品、市场、运营、设计、测试、运维等,这时候,你就不是一个单单的技术人了。

如果有一个称呼的话,可以是技术总监、技术 VP 等等。


总结

以上 9 段,是我结合自己 10 多年的从业经验,总结的技术人员成长的 9 段位,其中第 5 段是比较重要的,也是一个槛,第 6,7 段是一个积累的阶段,也是培养抽象、架构能力的阶段,这两个阶段,决定了你是否可以到第 8 段的架构师,所以第 8 段也是一个槛。

有些人,可能 5 年多就可以到第 8 段,但是可能需要 10 年才能到第 9 段,这是一个非常困难的过程,需要长期的积累,思想的蜕变,才能成长到第 9 段。

从第 6 段开始,你就不能只顾自己了,要更多的考虑协调、协作、体系、多角度。只有做的事情是让整个团队受益的,才能逐渐的突破第 7 段,进入第 8 段的架构师。

每一步,都踩实,多思考、多学习,在每个段位,都做一些超出这个段位的事情,很自然的就进入了下一个段位。


作者介绍

飞雪无情,随手记技术 VP,目前负责随手记的研发管理。10 余年从业经验,2011 年加入随手记,负责研发的团队管理和研发流程体系建设,支撑了随手记从 10 万到 3 亿规模用户的发展。著有《Android Gradle 权威指南》一书,微信公众号 flysnow_org,博客 www.flysnow.org,欢迎关注沟通交流。

原文 https://www.infoq.cn/article/mBH0V6mfMN1DfTLzY9D3

链接: https://fly63.com/article/detial/8041

程序员的笔记,编程写软件学到的 7 件事

如果你真的做出了一些东西,在面对那些令人眼花缭乱的理论知识,或是和你相似甚至比你做的更糟糕的人时大可不必谦虚。在一天结束之时,正是那些在战壕中的开发者——构建、测试和开发了代码的人,真正做了事情。

自学编程的六个技巧总结

这些事情可以帮助新手在他们漫长的旅程中学习编程。我知道我还有更多东西需要学习,并将继续学习如何永远地学习。最重要的事情说三遍,请继续,不要放弃,不要放弃,不要放弃。

谈谈Javascript异步代码优化

Javascript代码异步执行的场景,比如ajax的调用、定时器的使用等,在这样的场景下也经常会出现这样那样匪夷所思的bug或者糟糕的代码片段,那么处理好你的Javascript异步代码成为了异步编程至关重要的前提

编程到底难在哪里?

以买苹果为例说明程序员如何解决问题。程序员需要对问题进行透彻的分析,理清其涉及的所有细节,预测可能发生的所有意外与非意外的情况,列出解决方案的所有步骤,以及对解决方案进行尽量全面的测试。而这些正是我认为编程难的地方。

Blockly - 来自Google的可视化编程工具

Google Blockly 是一款基于Web的、开源的、可视化程序编辑器。你可以通过拖拽块的形式快速构建程序,而这些所拖拽的每个块就是组成程序的基本单元。可视化编程完成

我真是受够编程了

成为伟大的程序员,需要付出许多编程之外的努力。我们的大脑是有限的,每天要应付的问题复杂到足以让人精神崩溃。当工作不顺利时,多少都会有些冒名顶替症候群的感觉。

前端的编程软件哪些比较好用?

推荐8款最好用的前端开发工具供美工或者前端开发人员使用,当然若你是NB的全栈工程师也可以下载使用。Web前端开发最常见的编程软件有以下几种: 在前端开发中,有一个非常好用的工具,Visual Studio Code,简称VS code

如何保持学习编程的动力

学编程现在看起来挺简单,因为网上有丰富的各种资源。然而当你实际去学的时候就发现,还是很难!对我来说也一样。但从某天起,我决定认认真真学编程一年。后来又过了一年,又过了一年又一年……我好像有点感悟。

编程小技巧

命名最好遵循驼峰法和下划线法,并且要清楚的表达变量的意思。相对于驼峰法而言,我更喜欢下划线法。下划线法可以更清楚的看出这个变量表示的意思。比如aBigGreenBanana和一个a_big_green_banana。

CSS并不是真正的编程语言

每隔几个月就会出现一篇文章表明:CSS并不是真正的编程语言。以编程语言的标准来说,CSS过于困难。使用这门语言会很有创造性:事实确实如此,CSS不同于传统的编程,且具有缺陷,同任何标准化编程语言相比

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!