0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员的职业发展路径

工程师人生 来源:工程师吴畏 2019-07-19 17:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作为程序员,我们应该如何去规划好自己的职业道路?

作为程序员群体的一员,我发现身边很多同学都非常的踏实,虽然这是一个很好的素质,但我们除了踏实做事以外,也需要多抬头看看路。才能让自己在职业道路上走的更稳更长久。

身边很多同学都知道去追求升职加薪,但却很少去考虑一个完整的职业规划,很少去考虑自己的职业目标。对于以后自己是去做 技术管理?还是做 技术架构?又或者是干脆转行?很少去思考。

因此,今天我就来跟大家简单聊一聊程序员的职业发展路径。

一、先看看各技术层级的要求?

在聊程序员的发展之前,我们先看一下常见的互联网公司技术团队里,程序员这职业的等级是怎么划分的?

一般分为以下几个级别,再往上可能就是技术专家或者首席技术官了。

初级工程师

中级工程师

高级工程师

资深工程师/架构师

下面继续看一下每个级别的素质要求是什么?

初级工程师

初级工程师主要是指刚毕业的,职场上的技术新人。通常这类人会有一定的专业理论知识,所以也能够比较快的学习公司的常用框架、工具和开发技术。能够在上级/导师的指导下,理解相关的业务知识。

能够按照研发需求完成部分模块和功能的开发,能够在别人的指导下解决研发中遇到的问题。

中级工程师

中级工程师是大多数三到五年程序员所处的水平。中级工程师必须要能够独立承担开发任务,并且能够独立负责某个模块或小系统。

能够根据自己的历史经验和学习能力,独立解决日常工作中遇到的技术问题。

高级工程师

高级工程师,一般是混迹多年,且有一定技术积累的程序员,有一套自己的开发方法。对于高级工程师要求能快速的理解业务、够独立负责一个中大型系统,且在工作中需具备指导他人的能力,属于团队骨干,在团队中有一定的技术影响力。

资深工程师/架构师

程序员到了资深的级别之后,其实在职业上可以分为两个发展方向。

一个是继续往技术深度上钻研,在某个技术领域内有一定的深度和影响力,我们称为资深工程师。

还有另一个方向就是往技术的广度上发展,除自身技术线以外,对周边相关技术也有一定的研究和理解,能够站在更高的维度上去俯视项目里的技术结构,业务理解能力也很强,根据不同业务,设计出不同的技术方案,这一类我们称为架构师。

上面虽然从企业的用人视角来列举了不同技术层级应具备的要求,但还是不够具体,不太方便量化和评估,因此,我们可以根据上面的要求,总结出一套对程序员的评估方法,主要分为三个方面:

通用素质:

用来评估程序员的通用素质水平。比如 系统思维能力、沟通表达能力、经验开放意识、严谨性、组织能力、影响力等。

知识技能:

用来评估程序员的知识和技术水平。比如 编程语言、安全、框架应用、系统设计等能力。

业务能力:

这个主要用来评估程序员的业务理解能力、业务建模能力等。

二、有哪些基础技能是都必须具备的?

在知道了程序员各不同层级的能力模型后,我们再来看一下有哪些基础的技术能力是不同层级都应该具备的,是程序员技术水平的基石:

数据结构

数据结构是基础中的基础。有些人觉得数据结构的知识貌似在实际工作中用到很少,反而在面试中问的多,所以就认为这个东西不实用。殊不知数据结构是我们编码的根本。只不过我们平时用的框架工具多了,很多都被封装好了,大家直接调用即可,导致大家对这一块儿渐渐忽略了。但是只有真正理解了数据结构,我们才能写出有质量的代码。

常用的数据结构有:数组、链表、堆栈、队列、树、二叉树、图等。

常用算法

算法是每一个程序员都绕不开的话题。但算法跟数据结构一样也是编程的灵魂,是真正区别出不同程序员编程水平的地方,每个技术人都应该学好。

数据存储

存储是每个项目的必须环节。以数据库举例,有关系型的数据库,还有NoSQL数据库等,另外还有文件存储系统。这些在做项目中都可能遇到,所以需要熟练掌握其原理和用法。

编程规范

编程规范这个自然不必多说,也是最容易看出程序员水平的地方。虽然很多不规范的代码也能运行,但是作为一个有追求的程序员,理应按照一定的编程规范去管理好自己的代码。优秀的程序员始终要有个理念记在心中:代码的第一作用是给人读的,第二作用才是给机器使用。

开发平台

这里指的是程序员常用的编程语言、以及语言所在的生态和框架。以Java程序员举例,必须得深入了解Java的语言特性,以及Java这个语言平台的生态体系,同时熟练掌握Java的常用框架和主流方案,每一个语言都有这样的平台与生态。

安全

粗略可分为代码安全和运维安全。

代码安全指的是程序员在开发项目的时候,编写出来的代码应具备一定的安全性,例如 防止XSS跨站攻击、防止SQL注入等等。这些除了写代码的时候要注意,后期也可以通过单元测试、代码评审来发现风险。

运维安全是项目在生产环境下,部署的环境安全、资源隔离、运维操作规范、漏洞扫描等方面的安全工作。

三、如何打造属于自己的技术体系?

技术的成长是靠一步一步走出来的,不可能一口吃个胖子。既然上面聊了程序员在这条职业道路上应该具备的一些技能和素质。那这里就再补充一下如何去提高这些技能,如何去一步一步走出自己的技术体系。

这个部分也是学习了「 程序员进阶攻略 」后的深刻体会。这里我就借鉴《极客时间》中「 程序员进阶攻略 」专栏作者胡峰老师提出的“点-线-面”的成长原则,结合自己的思路跟大家聊一聊:

我们可以把学到的任何一个知识/技能都当做一个「 点 」。比如 我们刚接触计算机编程的时候学习了 数据结构、后来又学习了 Java基础,然后在工作中又学习了 框架Spring,然后根据项目需要又学习了 Linux、学习了 Hadoop、学习了 JavaScript,等等等等。

我们在初级阶段的时候,是在不断的学习各种知识技能,这些就像是天上的星星一样,一个一个的零散的知识点,它是不成体系的,我们需要用到什么就去学习什么。这些不成体系的知识点帮助我们完成了工作,但是它们又很容易被忘记,且一般都不够深入。

线

随着我们学到的「 点 」越来越多之后,就会发现里面有些「 点 」是有关联的,甚至是触类旁通的。那么这些「 点 」在我们的脑海中就可以慢慢的形成「 线 」被串起来。它是一个随着累积之后,自然而然的过程,当然也需要我们不断的去总结知识。

而有一部分知识点可能随着技术的变迁,没有合适的「 线 」去串联,也就慢慢的被我们所放弃。

「 线 」是由「 点 」汇聚而成。因此要想知识能够形成「 线 」,我们除了不断学习以外,还需要不断的找出知识技能的共性和规律。

「 面 」又是由「 线 」交织而成。这个时候我们对技能的认知就从一维上升到了二维。这个「 面 」就像一张技能地图一样,所有的知识技能都能在这张地图里面找到位置和关系。我们再学习新的知识的时候,也只不过是往这张地图里面添加一些锚点,每次添加,都会让这个知识更为牢固和深刻。这就是我们追求的每个人自己的技术体系图了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序员
    +关注

    关注

    4

    文章

    955

    浏览量

    30786
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    1024程序员日”系列活动至此划上了一个圆满句号。本届1024程序员节以“AI构建世界,智能引领未来”为主题,广邀技术大咖、产业领袖、企业代表与全球开发者齐聚星城
    的头像 发表于 10-27 18:59 428次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    开鸿智谷“以赛促学、以赛选才”|1024程序员节暨开源鸿蒙构建大会圆满落幕!

    10月24日,由开鸿智谷联合主办的长沙1024程序员节暨开源鸿蒙构建大会在长沙圆满落幕。本次活动以“湘聚长沙,共赴热AI”为主题,通过技术分享与实战竞赛相结合的方式,着力培养“开源鸿蒙+AI”领域
    的头像 发表于 10-27 17:58 474次阅读
    开鸿智谷“以赛促学、以赛选才”|1024<b class='flag-5'>程序员</b>节暨开源鸿蒙构建大会圆满落幕!

    跟老齐学Python:从入门到精通

    础的学习者介绍一门时下比较流行、并且用途比较广泛的编程语言,所以,本书读起来不晦涩,并且在其中穿插了很多貌似与Python 编程无关,但与学习者未来程序员职业生涯有关的内容。 获取完整文档资料可下载附件哦!!!! 如果内容有帮助可以关注、点赞、评论支持一下哦~
    发表于 06-03 16:10

    课程0元试听+项目案例免费领!618嵌入式/AI学习者狂欢!体系化课程 硬件学习套件,限时优惠!

    对于有理工科背景的学生/程序员来说,或对编程或硬件感兴趣的朋友,如果想转行或深耕技术领域,有两个方向非常值得选择:嵌入式开发和人工智能,也有人称为研发岗和算法岗。这两个方向不仅岗位多、薪资高、需求
    的头像 发表于 05-29 14:32 459次阅读
    课程0元试听+项目案例免费领!618嵌入式/AI学习者狂欢!体系化课程 硬件学习套件,限时优惠!

    程序设计与数据结构

    的地址)出发,采用推导的方式,深入浅出的分析了广大C程序员学习和开发中遇到的难点。 2. 从方法论的高度对C语言在数据结构和算法方面的应用进行了深入讲解和阐述。 3. 讲解了绝大多数C程序员开发
    发表于 05-13 16:45

    育匠才,强生态!深开鸿创新开源鸿蒙职业本科人才培养范式

    以“人工智能背景下职业本科高质量发展路径”为主题,汇聚了来自全国职业本科大学、高职院校、行业企业、科研机构的180余名代表参会。深开鸿CEO王成录博士,高级副总裁
    的头像 发表于 04-25 17:37 1289次阅读
    育匠才,强生态!深开鸿创新开源鸿蒙<b class='flag-5'>职业</b>本科人才培养范式

    如何在 树莓派 上编写和运行 C 语言程序

    ,一本很好的书是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。这本书对经验丰富的程序员和想学习C语
    的头像 发表于 03-25 09:28 940次阅读
    如何在 树莓派 上编写和运行 C 语言<b class='flag-5'>程序</b>?

    零基础入门:如何在树莓派上编写和运行Python程序

    是一种非常有用的编程语言,其语法易于阅读,允许程序员使用比汇编、C或Java等语言更少的代码行。Python编程语言最初实际上是作为Linux的脚本语言而开发的。Py
    的头像 发表于 03-25 09:27 1524次阅读
    零基础入门:如何在树莓派上编写和运行Python<b class='flag-5'>程序</b>?

    软通教育与合肥财经职业学院合力打造鸿蒙产业学院人才摇篮

    3月10日,软通教育与合肥财经职业学院共建鸿蒙(信创)产业学院签约仪式成功举行。安徽省教育厅(省委教育工委)原一级巡视、安徽省职业与成人教育协会会长解平,安徽省教育厅(省委教育工委)原二级巡视
    的头像 发表于 03-15 11:48 1101次阅读

    动态 | 芯森电子开展ISO45001职业健康安全管理体系培训

    在追求卓越与可持续发展的道路上,芯森电子始终将员工的健康与安全放在首位。为积极响应国际标准化组织(ISO)关于职业健康安全管理的最新要求,进一步提升企业安全管理水平,确保每一位工的身心健康,近日
    的头像 发表于 02-28 13:24 646次阅读
    动态 | 芯森电子开展ISO45001<b class='flag-5'>职业</b>健康安全管理体系培训

    嵌入式软件工程师就业好不好?

    和技能的积累,越老越吃香。 在传统程序员职业道路上,虽然35岁危机让许多人感到焦虑,但嵌入式软件工程师却凭借其独特的行业优势和职业发展前景,成为了越老越吃香的群体。 他们不仅在薪资待
    发表于 02-20 10:19

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现了全面升级。现在,它支持VS Code
    的头像 发表于 01-09 11:16 957次阅读

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 3次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    UCD3138A64/UCD3138128程序员手册

    电子发烧友网站提供《UCD3138A64/UCD3138128程序员手册.pdf》资料免费下载
    发表于 12-09 14:42 1次下载
    UCD3138A64/UCD3138128<b class='flag-5'>程序员</b>手册