漫谈程序员系列:一张图道尽程序员的出路

2023-05-16

    《推背图》相传由唐太宗时期的司天监李淳风和袁天罡合著(此两人其实是超级武学高手,参见小椴的《开唐》),推算大唐以后中国两千多年的国运盛衰,在中国七大预言书中居首,是当之无愧的中国第一预言奇书。

    我最喜爱的当代小说作家之一格非也有一篇小说以《推背图》为名,很好看。

    说真的,本文和推背图没有一毛钱关系,唯一的关系就是大家都占个图字。

    --------------正文分割线---------------

    最近在琢磨程序员到底路在何方,经过不断的自虐和代入,终于在迷雾森林中得图一张,看之豁然开朗。独乐乐不如众乐乐,share了:


                                 图1 程序员职业路线图

    

术语表

    图1中使用了很多术语,这里先做解释,只有我们大家都说同一种语言,沟通才会顺畅。

  • 程序员:撰写代码,生产软件,辅助提高社会生产率的脑力劳动者。据说喝的是咖啡,抽的是烟,产的是代码。他们是计算机诞生后才逐渐兴起的一个群体,鱼龙混杂,有高飞天上的白富美,也有低到尘埃里的矮矬穷,总之虽一类而九流具足。
  • 初级工程师:入门程序员,怀揣着IT行业多金的遐想进入了IT江湖,开始了练级打怪求升级的游戏之路。
  • 中级工程师:经过几年的打拼,有一定的拷贝、粘贴功底,掌握了太祖长拳或罗汉掌之类的一技之长,打字速度变快了,双眼变得稍稍有些迷人了,对零壹世界有了比初级工程师更深刻的认识。
  • 高级工程师:拷贝、粘贴之术出神入化,又习得搭积木和沙滩上盖大楼的绝技,还能像江湖郎中一样给病入膏肓的代码开药了。
  • 架构师:坚信技术可以让人牛X,抵制了各种旁门左道的火辣诱惑,闭关多年,终于一生二、二生三、三生万物了,能够坐而论道、指手画脚了,觉得自己形神具备有仙人之资,偶尔来个仙人指路挺爽。
  • 技术专家:看过各种江湖流派,最终在某条羊肠小道之上月黑风高之夜顿悟辟邪剑法,从而成为一代旁门高手,在自己的领域里无人能及。
  • CTO:史上最强的技术流?不一定。不过有一点高度是肯定的:会当凌绝顶,一览众山小。正统的CTO专门研究各种武技,寻求能在未来的江湖中克敌制胜的秘辛。国内江湖乱象纷呈,很多CTO其实在打杂做管理。
  • 小组组长:这并不是一个正式的头衔,在《江湖异闻录》中,小组组长被掌门委以突袭带头人的角色,只因为他有带头大哥的潜力,能激发大家的战斗力。虽然没有掌握绩效考评之类的绝杀技,不过也是通往管理之路的必经过程。
  • 项目组长:管的事儿有点儿多了,要带人,要带项目,要和产品经理搞好关系,通常也得和小分队的成员不分你我,总之什么都干,干的是项目经理的活,只是没有名分。没关系,等带好一个项目,又有项目经理的缺时就可以顶上去了。
  • 项目经理:这是一个正式的打杂的,终于有了名分了。
  • 高级项目经理:又叫项目群经理。他搬了把凳子以便让自己站得更高,能够看清楚纷乱的江湖里多个项目的情况,通常需要协调这个协调那个,找项目经理谈谈话,抚慰一下项目经理或项目组长委屈的心,有时也会被来自上面的压力压得喘不过气来。
  • 部门(项目)总监:So,不知道要说什么了,开始管各种事儿了,评估项目开发过程,拟定考评、绩效、职级等各种制度,或者今天跑这个项目聊聊天,明天跑那个项目聊聊天,后者自己左右互搏和自己聊聊天,看起来闲人一个。

    就这么多吧,其它的也不想说了。因为我们要讨论的是程序员的出路……

程序员的路在何方

    图1中框起来的,是程序员的主旋律。

    程序员,专业人士也,与瓦工、木匠、发型师、保洁员等类似,不过是社会万千分工之一种,没什么高大上,也没什么矮矬穷,只不过时代大潮中被滚滚洪流裹夹着前进的一群人而已,所谓泯然众人矣,就是说的这个。

    So,该说什么啦?

你怎么混进来的

    不忘初衷。

    不忘初心。

    你是不是忘了当初为什么要干这个?

    那就想想吧。有好处。

    有的人是为了程序员的高薪

    有的人是想要一份体面稳定的工作而已,别出差

    有的人是过来打酱油的早抱定了过两年就走的心

    有的人想了解这个世界,试试看自己合不合适

    有的人就喜欢计算机的世界,如鱼得水

    有的人觉得这个行当既专业又神秘,感觉倍儿棒

    有的人喜欢挑战,因为软件开发每一刻都有战斗的感觉,各种问题纷至沓来

    有的人就喜欢不断学习新技术,为技术而生,而没有哪个行业像这个一样时刻都要学习

    有的人喜欢这个行当的成就感,持续不断的小刺激总让人高潮不断

    有的人渴望有自己的软件作品

    有的人想用软件改变世界

    有的人觉得这是一片净土,罕见尔虞我诈,不必江海寄余生

    有的人觉得这行门槛低,谁都可以来搞两下

    有的人是来发动战争的,攻破别人的防线感觉很爽

    有的人是冲着 IT 界牛人半数都出柜这一点来的

    ……

    总之各种理由都有,你也一定有自己的那一个。对吧,你自己的。

将来去哪儿

    迪克牛仔的《三万英尺》:

要飞向哪里  能飞向哪里

愚笨的问题

我浮在天空里

自由的很无力

    前几天在朋友家翻看米兰昆德拉的《不能承受的生命之轻》,里面开篇对轻与重的辩论,很有意思,好像和我们也有一点关系,感兴趣的可以读读,这本书是倒退十来年那个时候小资必读。


    你今天的选择,决定了明天的路。

    那些来打酱油的,明天就走了。比如我原来有个同事,干了一阵子,来找我辞职,说准备回家搞民间金融去了。后来还在QQ上联系过我,据说搞得还不错,问我要不要投资。

    有些人听说IT行业薪资高,巴巴地进来了,可是干了两三年,工资还是三两千,只好失望的走了。其实除非你有经天纬地之才,没有一开始就高薪的道理。先做事,后有钱。先想钱,钱难来。做程序员搞开发大抵是酱紫的。听说有个哥们跳到了华为,天天晚上十一二点的搞,有一天他终于不慎抱恙,晚上九点多回去了,被整个组的人鄙视;可是华为熬过三年,钱多多的,年终奖和分红抵得上你一年的工资。关键是,你熬得住吗?你媳妇熬得住吗?

    有一段时间我觉得心不够静,买了几本佛经想受点熏陶,读了《金刚经》、《坛经》、《心经》、《地藏经》,不过都没读完。后来在一个同事的工位上看到她贴了一个即时贴:

    观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄。舍利子,色不异空,空不异色,色即是空,空即是色,受想行识,亦复如是。舍利子,是诸法空相,不生不灭,不垢不净,不增不减。是故空中无色,无受想行识,无眼耳鼻舌身意,无色声香味触法,无眼界,乃至无意识界。无无明,亦无无明尽,乃至无老死,亦无老死尽。无苦集灭道,无智亦无得。以无所得故,菩提萨埵,依般若波罗蜜多故,心无挂碍,无挂碍故,无有恐怖,远离颠倒梦想,究竟涅槃。……

    原来心不净的人可真多呀,好吧,我不是一个人在战斗,太欣慰了。

    我看到女同事贴的这段《心经》中的文字没多久,她离开了公司。再后来我到书店闲逛,发现摆在显眼处的都是什么这个禅师、那个道长、某个灵修、西方冥想者出的拯救大家心灵的菩提书,也有很多国内的心理作家写的鸡汤,多得很呢真是。我这才意识到,原来我们都有病,药不能停啊。

    扯远了吧。

    我想说的是,作为程序员,心态决定你的将来。你自己怎么看待你所从事的工作,你是享受它、厌烦它、无所谓、爱恨交加……这些决定了你将在这条路上走多远。

    我们生活在一张社会关系网中,因为别人能够看到你你才存在,这是《作为意识与表象的世界》,你看到的人、别人看到的你,都只是作为观察者的那个人想看到的,而非真实的人。虽然真实的人客观存在,但没有人能看到这样一个真实的、完整的人,包括你自己。

    你看到你想看到的,他看到他想看到的,张三看到张三想看到的,李四看到李四想看到的……周围一圈人对你的意识构造了社会化关系中的你,但那只是你的一小部分。仅此而已。如果别人不知道你,你就不存在。为了存在,你就要在别人面前出现,这就是“存在感”。

    所以现在很多人在刷微信、微博、博客、论坛、陌陌,都是在刷存在感。当然也包括我自己。

    让别人知道你,你才存在。你只有留下点让别人难以忘怀的东西,你才因这些东西而存在。

    如果想明白了这个道理,一个真正热爱技术的程序员,想在这个行当里干点儿事情的哥们姐们,就不会去在意别人说什么“软件开发是青春饭”、“程序员平均寿命低于普通人”、“程序员群体社会地位低下不如鸡”、“过了30就要另谋出路”之类的话。作为一个与其它行业没有什么差别的行业,仅仅是分工不同而已,为什么有这么多说法呢?众说纷纭,都是杂音。有用的话不这样,大音希声。其实黄小琥在《没那么简单》这首歌里也说了:

感觉快乐就忙东忙西 

感觉累了就放空自己 

别人说的话  随便听一听  自己作决定 

不想拥有太多情绪 

    当然你也可以认为我通篇都是P话,真没关系。

程序员的两条主要通道

    看图1很明白了,程序员有两条主要的职业通道:技术和管理。
    在中国有个很不好的传统:学而优则仕。
    如果你在一个单位干技术干了很多年,还当不上领导,就会被人瞧不起。这也是很多人干开发干了几年后,正当年富力强生产力旺盛的时候脱离技术通道的原因。因为领导大部分都是这么一个套路:“干得好?行,带人吧。带得好?行,升经理吧……”所以,很多原本可以成为技术大牛的人,就这么被拐走了。
    也有一些专注搞技术的开发人员,就要走技术通道。
    有个哥们儿,做 CMS ,前台后台都能搞,领导让他带三个人,让他当项目经理,他不乐意,说我自己干就行了,管别人净浪费时间。领导好说歹说把他绑在了项目经理的位置上,结果他不管那几个小伙伴,也不安排工作给人家,人家来问他这个怎么干,他就说你不用管了,我来干。最后呢,一个人干了80%以上的活儿,其它几个人闲得蛋疼。再后来呢,领导不住地找这哥们儿谈话,教育他怎么做项目经理……再后来这哥们儿就离职了……
    “学而优则仕”还有一个非常不好的地方:普遍认为当领导的薪水要比高技术的高。这也是很多本来有灵气的开发人员想走管理路线的原因。我想干技术啊,可你们看不起我,不给我那么多钱,周围人也这么看,我没法老这么干下去。
    其实如果你不在意这种周围的看法,做技术未尝不是一条幸福的路。

跳出三界外

    前面我提到有同事搞金融去了,还有别的故事。
    我原来有个同事,程序很厉害,是公司的高级工程师,后来不干了,开便利店去了。
    前几天有个朋友说他找了个合伙人包了点儿地在搞有机农业,种菜……
    有个阿媛在淘宝上卖内衣,后来把工作辞了……
    有个阿猿开了家咖啡馆,名字就叫程序员咖啡……
    这都是跳出三界外的故事。其实也很平常,你的选择,你做主。如果你觉得这个行当不是人待的地方,再也不要受这罪了,那就走吧。如果一份工作带给你的痛苦比欢乐多很多,确实没有留恋的必要。真的,你肯定是走错了路。
    我在看《高效程序员的45个习惯》时,第一章里引用了一句土耳其谚语,写在下面,送给诸位,也送给我自己。
    不管路走了多远,错了就要重新返回。


-----------分割线-------------------

参与我的知乎Live专题——程序员的成长课,如何收获你想要的职场——,投自己自己的认知,学习精进的方法,成长为自己想要的样子,告别混日子。


更多精彩文章,关注我的微信订阅号“程序视界”,第一时间阅读。

    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

漫谈程序员系列:一张图道尽程序员的出路 的相关文章

  • 关于中值滤波算法,以及C语言实现

    1 什么是中值滤波 xff1f p p p style line height 28px margin top 0px margin bottom 10px padding top 0px padding bottom 0px color
  • (重)python:subprocess模块之Popen方法简介,管道机制(stdout\stdin\stderr)实现shell命令执行

    subprocess是Python 2 4中新增的一个模块 xff0c 它允许你生成新的进程 xff0c 连接到它们的 input output error 管道 xff0c 并获取它们的返回 xff08 状态 xff09 码 本文主要举例
  • 图像分辨率和图像大小的计算

    一 BMP位图 1 一个实际例子 xff0c 选择一个24位深度的225 225位图 xff0c 由于24位位图是真彩色 xff0c 没有颜色表这一样 xff0c 所以 其文件大小为152 154字节 xff0c 则 152 154 61
  • 关于 *i++与 ++*i

    一直都不知道 i 43 43 与 43 43 i有什么区别 xff0c 也不知道该怎么用 xff0c 今天特地研究了一下 看下面一段代码 xff1a include lt iostream gt include lt string gt u
  • sql语句中select……as的用法

    as 可理解为 xff1a 用作 当成 xff0c 作为 xff1b 一般是重命名列名或者表名 1 例如有表table xff0c 列 column 1 column 2 你可以写成 select column 1 as 列1 column
  • C++中virtual(虚函数)的用法

    在面向对象的C 43 43 语言中 xff0c 虚函数 xff08 virtual function xff09 是一个非常重要的概念 因为它充分体现了面向对象思想中的继承和多态性这两大特性 xff0c 在 C 43 43 语言里应用极广
  • 关于32位系统中int、float、short、double等占多少个字节

    我用VC编译的 xff0c 测试了一下 xff0c 代码如下 xff1a include 34 iostream 34 using namespace std int main cout lt lt sizeof char lt lt en
  • C语言中关于int、long int、long long 的区别

    1 关于int 和 long int xff08 1 xff09 在VC下没有区别 两种类型均用4个字节存放数据 xff08 2 xff09 VC是后出的编译器 xff0c 之前有很多早期的C编译器 xff0c 在早期编译器下long in
  • arp a命令的通俗解释

    ARP A 查询系统中缓存的ARP表 ARP表用来维护IP地址与MAC地址的一一对应 比方说 xff0c 某推拿室总有30名服务员 xff0c 为了方便管理 xff0c 服务员都编了号 xff0c 由01编到30 客人们都只记得服务员的编号
  • sqlite模糊查询与分页

    sqlite模糊查询与分页 64 param queryWords 要查询的关键词 xff08 中英文都可以 xff09 64 param curItem 当前查询到的item 所在位置 64 param sizeRequest 每次请求查
  • 设计模式-回调函数和观察者模式

    Android的框架中有非常多的地方使用了回调的模式 xff0c 例如Activity的生命周期 xff0c 按钮的点击事件等 下面是回调的基本模型 xff1a java view plain copy public class A pri
  • QT之表格控件

    目录 一 xff1a 表格控件 1 QTableWidget表格的创建 1 QTableWidgetItem单元格 2 表格的信号和槽 3 代码引例 1 在 h文件中定义 2 在main文件中创建并实现 4 结果演示 GIF 一 xff1a
  • sequlize统一格式化时间

    数据查出来的数据格式 xff0c 如图 xff1a 自动格式化时间 xff0c 需要在数据库配置上加上 dateStrings true
  • Node 微信支付 “由于商家传入的H5交易参数有误 该笔交易暂时无法完成 请联系商家解决”

    之前稳定运行一段时间的微信H5支付 xff0c 突然报错 xff1a 由于商家传入的H5交易参数有误 该笔交易暂时无法完成 请联系商家解决 经过多方排查 xff0c 最终确定是微信下单的ip传递有误 上传的ip为 127 0 0 1 xff
  • css data:image/svg+xml 不显示

    原因 xff1a 新版chrome不支持 需要改成 23 如 xff1a test span class token punctuation span content url span class token punctuation spa
  • border-image属性分析

    border image是CSS3的一个属性 xff0c 由于比较复杂 xff0c 总是处于一知半解的状态 xff0c 今天下定决心 xff0c 花时间整理了一下 xff0c 供大家共勉和学习 border image的用处 没用borde
  • 纯CSS绘制箭头

    这几天研究别人的网站 xff0c 发现别人的箭头居然是用纯CSS写的 瞬间觉得高大上 细细研究其中的原理 xff0c 发现其实也很简单 CSS绘制三角形 绘制箭头 xff0c 首先应该懂得如何用纯CSS绘制三角形 我们先做一个宽高为0 xf
  • 如何更新npm至最新版本

    去年曾遇到过执行npm某项命令时提示要求更高版本的npm xff0c 当时百度解决了 xff0c 今天又再次遇到该问题 现记下来 xff0c 以供以后参考 命令行运行 xff1a span class hljs built in npm s

随机推荐

  • .*? 和 .*的区别

    在看js代码的时候 xff0c 有时候会遇到 这样的写法 xff0c 那么连续两个限制符是什么意思呢 xff1f 我们先来回顾一下正则表达式的基本知识 基本语法 符号用法 匹配除 r n 之外的任何单个字符 要匹配包括 r n 在内的任何字
  • 微信清除缓存的两种方法

    网址清除 微信浏览器打开网址 http debugx5 qq com xff0c 勾选如下设置 xff1a 点击 清除 按钮即可 代码清除 如果是自己写的网页 xff0c 在调试阶段希望不要缓存 xff0c 可以在html页面的head中加
  • PHP时间戳和日期转换

    时间戳转日期 date date format timestamp format 必需 规定时间戳的格式 timestamp 可选 规定时间戳 默认是当前时间和日期 例如 xff1a date Y m d H i s 具体时间戳 Y xff
  • 微信H5支付:网络环境未能通过安全验证,请稍后再试

    最近在开发微信H5支付 xff0c 并且已应用到某个网站进行支付 但奇怪的是 xff0c 一模一样的支付代码 xff0c 换了一个网站 xff0c 竟不能支付了 出现如图错误提示 xff1a 百度一圈 xff0c 均是说IP传得不对 微信s
  • 如何比较字符串大小

    今天我分享的是如何比较字符串的大小 xff0c 希望大家看完能有深刻的理解 字符比较 xff08 character comparison xff09 是指按照字典次序对单个字符或字符串进行比较大小的操作 xff0c 一般都是以ASCII码
  • node异步用await和不用await的区别

    最近在用node写项目 新版node异步用的是async await这两个关键字 我们都知道 xff0c 一般这两个关键字要成对出现 但是 xff0c 笔者发现 xff0c 如果不需要等待返回值的话 xff0c await可以不加 那么aw
  • NtripShare Cloud差分数据共享云平台

    RTK差分数据共享猫已更新至1 6 2版本 xff0c APP运行十分稳定 高级版本服务器已升级至华为云 xff0c 独享10M带宽 xff0c 进一步降低数据延迟 近期准备升级普通版服务器 xff0c 升级后将停止对1 6 0版本之前的不
  • RTK差分共享猫APP后台系统已开源

    RTK差分共享猫APP后台系统开源 xff0c 开源地址https gitee com forgy NtripShareCatServer 后台系统基于GUNS 6 0 xff08 https gitee com stylefeng gun
  • RTK差分数据网络播发软件

    解决短基线范围内多台设备同时作业 xff0c CORS差分账号资源不足的问题 基于串口或模拟网络RTK请求 xff0c 将实时差分数据进行转发 xff0c 支持Ntrip协议 xff0c 支持市面所有网络RTK系统 个人作品 xff0c 不
  • STM32使用cubemx的uart空闲中断接收不定长度数据

    void USART3 IRQHandler void USER CODE BEGIN USART3 IRQn 0 USER CODE END USART3 IRQn 0 HAL UART IRQHandler amp huart3 USE
  • 基于ROS平台的移动机器人-8-使用Kinect2导航

    基于ROS平台的移动机器人 8 使用Kinect2导航 ready 终于到写最后一篇了 不是经常写博文的老司机果然伤不起 xff01 在这一篇教程就是利用KinectV2来导航啦 go 1 安装一下所需的包 xff08 1 xff09 cd
  • kali linux学习——安装WingIDE(libqt4-webkit软件依靠问题)

    kali linux 中安装wingide xff08 libqt4 webkit软件依靠问题 xff09 走过的坑缺失的libqt4 webkit成功安装WingIDE 走过的坑 在kali linux上利用命令 dpkg i wingi
  • 华为的OD,值得去吗?

    最近有不少小伙伴接到了华为OD的面试邀约 xff0c 但搞不清楚OD到底怎么回事儿 xff0c 要不要去 所以今天来说说华为的OD到底是怎么回事儿 xff0c 怎么判断是否值得去 1 华为的OD是怎么回事儿 OD xff0c 是Outsou
  • 第01课:技术成长的三阶段模型

    引言 作为整个系统课程的第一部分 xff0c 我想先跟大家分享的是如何选择技术方向 xff0c 我将结合技术成长的三阶段模型 xff0c 讨论在入行 构建技能树 技术转型 团队技术方案选型等常见场景中如何选择适合自己的技术 努力只有在方向正
  • 开篇词 | 程序员的成长课

    大家好 xff0c 我是安晓辉 xff0c 做过开发工程师 研发经理 技术总监等岗位 xff0c 现在自由职业 xff0c 专注写作和开发者生涯咨询 出版过 程序员的成长课 Qt Quick 核心编程 你好哇 xff0c 程序员 解忧程序员
  • const与define的区别

    1 define是预编译指令 xff0c const是普通变量的定义 xff0c define定义的宏是在预处理阶段展开的 xff0c 而const定义的只读变量是在编译运行阶段使用的 2 const定义的是变量 xff0c 而define
  • 如何摆脱CRUD等打杂状态,从事更高价值工作

    每个月都会有十来个来询者向我抱怨工作低端 xff0c 程序员说自己每天CRUD xff0c 重复 枯燥 没技术含量 xff0c 销售助理说自己天天搜集客户信息 打印资料 帮老大带饭 xff0c 繁琐 无聊 不重要 xff0c 他们都说自己整
  • Windows下Qt 5.2 for Android开发入门

    Qt 5 2 发布了 xff0c 支持 Android 平台 xff0c 太好了 之前公司项目 xff0c 为了移植一个依赖 Qt 的程序到安卓平台上 xff0c 我自己交叉编译了 Qt Embedded 4 5 2 xff0c 费了老大劲
  • Qt Quick 之 QML 与 C++ 混合编程详解

    Qt Quick 技术的引入 xff0c 使得你能够快速构建 UI xff0c 具有动画 各种绚丽效果的 UI 都不在话下 但它不是万能的 xff0c 也有很多局限性 xff0c 原来 Qt 的一些技术 xff0c 比如低阶的网络编程如 Q
  • 漫谈程序员系列:一张图道尽程序员的出路

    推背图 相传由唐太宗时期的司天监李淳风和袁天罡合著 xff08 此两人其实是超级武学高手 xff0c 参见小椴的 开唐 xff09 xff0c 推算大唐以后中国两千多年的国运盛衰 xff0c 在中国七大预言书中居首 xff0c 是当之无愧的