程序员职业生涯规划 之最终篇_程序员工作行动计划-程序员宅基地

       

程序员职业生涯规划 之最终篇

 之前我们分析了程序员职业生涯中可以选择的几个发展方向:项目经理、系统分析员、产品经理、软件测试工程师和系统架构师,当我们发现未来充满了这么多种可能后,又重新对程序员产生了梦想,但我相信好多人心里还是在打鼓,那就是“怎么才能走到我们梦想的职位?”本文会对以往的分析进行总结并提供一些重要的职业信息,值得思考一下,以便有所准备。

      我们都知道程序员可以向经理或团队领导发展。但很多程序员不明白经理这个职位的期望和工作要求。当然,我们都有经理,但怎样才能成为经理呢?要具备什么素质?中层管理者和一个高级程序员之间有什么区别?让我们来看看一个初级程序员成长到顶级CTO的潜在职业之路。

      很多程序员都会直观的从收入上来观察他们的职业之路,薪资代表着成就和社会对于个人的满足,下面一张图表示的是程序员的各个职位的平均工资。注意在垂直水平上,一些人可能拿着两倍或者三倍于别人的工资(像是银行,贸易等行业)。所以这些数字仅代表了一个平均水平,并不全面。

一、初级程序员

(1)0-3年工作经验(一般是刚从大学毕业),会写简单的脚本

(2)初步了解整个应用程序的生命周期

(3)初步了解数据库和应用程序的服务(队列,缓存等)

(4)不需了解复杂的应用中的每一个部分

当你刚刚踏入程序员的行列中来的时候,可能会感到畏缩和烦恼。会时常感觉到自己资历尚浅,惊讶为什么别人可以写出这么大而复杂的程序。看看其他的高级程序员,你觉得自己做着跟他们相同的工作。但是区别就在于初级程序员缺乏经验。即使是学习最快、最聪明的初级程序员,也没有接触到足够多的代码和边界情况,以胜任高级程序员的工作。在软件开发方面, 软件设计模式也是一种智慧。虽然在这方面可以阅读相关的书籍,但还是需要写足够多的代码,将错误尽可能地暴漏出来,真正理解软件设计模式的价值。

二、高级程序员

  • 至少四年工作经验
  • 能写较复杂的程序
  • 深入理解整个应用程序的生命周期
  • 掌握数据库和应用服务(队列,缓存等)
  • 要了解应用程序的每一个方面

称职的高级程序员非常擅长构建大型程序。担任高级程序员占了程序员生涯的大部分。事实上,如果你不喜欢管理的工作而仅仅喜欢写代码,可以一直做一个高级程序员。高级程序员可以作为一个过渡,一旦掌握了足够的技术,那么很可能就有能力担任一家技术创业公司的创始人或者CTO了。作为一个创始人或者CTO,写代码的就会就少了,更多的是需要处理事务的技巧。但是深入理解技术非常有必要,是做好这份工作必不可少的部分。

三、团队领导或架构师

(1)七年以上开发经验

(2)掌握高级程序员必备的技术

(3)团队领导:向架构师过渡

(4)架构师:没有更高的技术方面的职位

七年程序员职业生涯已经能够使一个程序员的技术能力足够精进,如果你想从事更具挑战性的职位,那么可以考虑一下做架构师,这是技术方面最顶峰的职位。架构师有时候也写代码,但大多数时间他们在设计复杂的系统,然后交给由初级和高级程序员们组成团队来实现。架构师的工作就是,利用他技术方面的智慧以及多年的经验(学习程序的模式和反模式),来为软件项目创建合适的架构。有新的需求的时候,软件架构师需要对项目选择正确的方向,并估算应用程序的规模。

四、中层领导

  • 通常包含经理和负责人等职位(开发经理,项目经理,产品经理)
  • 做发人员的老板(例如人事工作)
  • 向高级主管汇报工作

管理人员通常向工程师发展。他们的方向很多:如果你喜欢接触开发团队,并对细节感兴趣,那么可以选择产品经理,做你的伙伴们的盟友;如果你对产品特性和增强其性能着迷,那么做一个产品经理是最好的选择。

然而大多数人的选择是开发经理。这是个非常经典的职位,要求平衡项目经理和产品经理的需求和开发团队的性格之间的矛盾。这个职位对人事处理和化解矛盾的技能要求较高,要经常做出退让。

五、高层领导

(1)VP,CTO 或CEO

(2)是中层领导的老板(例如 负责人事)

(3)向另一个高层领导或者董事会报告

高层领导负责管理中层领导。然而经理通常是不需要管理的,他们需要的是指导。中层领导需要知道高层领导的方向并跟进,不会得到非常具体的指示。高层领导的工作是,做重要的决定,并激励工作人员紧跟决策,增加对工作目标的信心。

你在这条路上走得越远,写代码的机会就越少。到达顶峰的时候,做的都是人事方面的工作了。中层领导依然能在核心技术方方面体验到乐趣,但是对于高层领导,就 必须把所有的时间花在人事上:激励员工,领导,指定策略。如果你写代码,也只能是不重要的项目(除非你是比尔盖茨,但大多数人不是比尔,他是个极端的特 例)。

结论

今天,程序员的选择是丰富多彩的。而且对于程序员的职业要求比历史上任何时候都要高。对程序猿来说这是一个好的时代。但是任何时候规划你的职业都不算晚。希望本文能排得上用场,给你一些指导和精神食粮。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wojiaoguchenghuanye/article/details/49895217

智能推荐

苹果开发者账号(公司级)和邓白氏编码(D-U-N-S)申请记录(2015.06)_legal entity name d-u-n-s庐 number-程序员宅基地

文章浏览阅读3.5w次。图文记录苹果开发者账号(公司级)和邓白氏编码(D-U-N-S)申请流水过程申请于2015.05-06份,算是较新的版本,有需要可以参考下_legal entity name d-u-n-s庐 number

【持续更新,后面带JavaWeb案例】IDEA2023创建JavaWeb项目的方法以及JavaWeb实现购物车案例_idea2023社区版提供web开发吗-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏8次。哎呀我的妈妈咪呀,我来讲讲我为啥要写这篇文章。我tm之前用IDEA写Java 电脑项目习惯了,创建项目的时候就直接 新建项目,然后Java > Maven啥的,弄一大堆,然后写好页面和Servlet之后运行tomcat之后,用localhost:8080/项目名称/servlet名直接是找不到资源,搞我心态搞了现在tmb一个月,现在我总算明白了,那个初始模板可能有些插件/模块啥的自己不知道引用哪些,所以先开始总是报红,然后在web.xml里面写也tmd爆红,我真是服了!_idea2023社区版提供web开发吗

黑盒测试简介以及方法简介_一个循环条件为≤时,却错误写成<,用哪种测试方法能够找到这个错误-程序员宅基地

文章浏览阅读2w次,点赞9次,收藏49次。引言:黑盒测试是从软件的外部对软件实施测试,也常形容为闭着眼睛测试。在接下来的学习中将介绍几种常用的黑盒测试方法,其中包括等价类划分、边界值分析、决策表测试等。1. 等价类划分测试等价类划分是一种典型的黑盒测试方法,该方法完全不考虑程序的内部结构,只根据对软件的要求和说明,即需求规格说明,把程序输入域划分成若干个部分,然后从每个部分中选取少数有代表性的数据作_一个循环条件为≤时,却错误写成<,用哪种测试方法能够找到这个错误

对等复制中的冲突检测-程序员宅基地

文章浏览阅读227次。通过对等事务复制可以在拓扑中的任何节点插入、更新或删除数据并将数据更改传播到其他节点。由于可在任何节点上更改数据,因此在不同节点上进行的数据更改可能会相互冲突。如果在多个节点上修改了某一行,则将该行传播给其他节点时可能会导致冲突..._对等冲突检测错误

PHP图片推荐系统python-flask-django-nodejs-程序员宅基地

文章浏览阅读839次,点赞5次,收藏18次。由于互联网技术的快速发展,使得各部门都是以数字化、信息化、无纸化的发展趋势,随着趋势的发展,各种决策系统、辅助系统也应运而生,其中,图片推荐系统就是其中的重要组成部分。

linux执行sh脚本时提示“没有那个文件或目录”_linux系统虚拟机中输入vars.sh显示未找到文件-程序员宅基地

文章浏览阅读1.9w次,点赞2次,收藏6次。在linux上使用bash XXX.sh执行脚本时,提示“for reading(No such file or directory)”。问题原因:因为操作系统是windows,在windows下编辑的脚本,所以有可能有不可见字符。脚本文件是DOS格式的即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.解决方法:可以有很多种办法看这个文件是DOS格式的还是U..._linux系统虚拟机中输入vars.sh显示未找到文件

随便推点

Python 中 float 计算精度问题_python float 精度-程序员宅基地

文章浏览阅读7.5k次,点赞3次,收藏12次。浮点数不能精确的表示十进制数,并且即使是最简单的数学运算也会产生误差。该错误是由于浮点数的存储方式引起的。_python float 精度

HT合泰单片机入门教程(第一章 HT单片机环境搭建)-程序员宅基地

文章浏览阅读1.3w次,点赞21次,收藏115次。HT合泰单片机入门教程系列文章目录前言一、合泰单片机的优势二、HT-IDE3000安装1.HT-IDE3000下载2.HT-IDE3000安装总结系列文章目录# 第一章 HT单片机环境搭建目录系列文章目录前言一、合泰单片机的优势二、HT-IDE3000安装1.HT-IDE3000下载2.HT-IDE3000安装总结前言工作已经很长一段时间,虽然还是菜鸟一只。但还是有点心得体会。写合泰单片机系列教程的原因:一、是为了记录自己学习过程和学习经历(ps:当初毕业进公司接触到的第一个就是为一款已_合泰单片机入门教程

Android之如何获取手机中所有的传感器_导出智能手机中的传感器数据-程序员宅基地

文章浏览阅读7.1k次。传感器是第二代智能手机的重要标志之一。可以毫不客气地说,现在市面上的Android手机和平板电脑(TV除外)都内置了传感器。否则很多游戏和应用就无法使用了。Android SDK支持的传感器并不是每一部Android设备都支持所有的传感器。大多数Android设备只支持一部分传感器。例如,方向传感器(电子罗盘)、重力传感器(屏幕翻转、赛车游戏等)。动作(Motion)传感器环境(E_导出智能手机中的传感器数据

基于R的ggplot2包画KEGG富集通路气泡图_KEGGdot_ggplot 高低通路kegg-程序员宅基地

文章浏览阅读6.4k次,点赞2次,收藏16次。背景**基于公司已给出的结果上做出调整(公司只给出了top10),画KEGG富集通路的气泡图,初始文件如下图代码演示> getwd() #显示工作目录> setwd() #如果上述显示不是想要的路径,可以新建一个文件夹然后设置成工作目录,方便一些原始文件以及结果图片的存放> install.packages("ggplot2",destdir="D:/RData/R-win-4.0.2/R-4.0.2/R-packages",lib="D:/RData/R-win-4.0.2_ggplot 高低通路kegg

Vue.js - 学习笔记 (一)_vue innerhtml $-程序员宅基地

文章浏览阅读2.3k次。简介实际上,所有的前台程序都可以分为View以及Model两个层次,Model层使用字面量以及JS特性创建数据模型,并搭载用户数据,View层则以用户友好的方式呈现Model层数据,并提供友好的交互方式。那么如何连接View和Model这两个层次呢?如果写过J2EE程序,那么最经典的连接方式就是MVC模式了,通过控制器进行View以及Model的交互。而另一种异军突起的方式,则是MVVM了,使_vue innerhtml $

深度学习人脸识别:InsightFace-REST 全方位解析-程序员宅基地

文章浏览阅读277次,点赞4次,收藏4次。深度学习人脸识别:InsightFace-REST 全方位解析项目地址:https://gitcode.com/SthPhoenix/InsightFace-RESTInsightFace-REST 是一个基于深度学习的人脸识别 RESTful API 服务,它提供了一个简洁而强大的接口,使得开发者能够轻松地在自己的应用中集成高精度的人脸检测、识别和属性分析功能。项目概述InsightFa...