“职业程序员” 不必那么 “职业” 还得 “行业”

  我刚工作时,怎么也搞不清楚为什么求职信息里要有 “行业” 的选项,还要有 “职业” 的选项,很多时候 “行业” 和 “职业” 还是重叠的,比如行业是 “软件开发”,职业是 “软件工程师”,这不是一回事?过了好些年,这个谜团才真正解开。

  好玩的是,我本来以为只有自己不清楚这个问题,慢慢才发现不是这样。工作的时间长了,不少年轻的朋友们和我聊工作的问题,我发现不少人对自己职业生涯的困惑,都来源于对 “行业” 和 “职业” 的理解。看来,值得为这个问题写篇文章,谈谈我的看法。

  • 所谓 “行业”,通常是就公司而言的,指的是公司业务所在的领域。比如 “运输”、“零售”、“电商” 等等。
  • 所谓 “职业”,通常是就个人而言的,指的是个人所从事的具体工作。比如 “货车司机”、“营业员”、“平面设计” 等等。

  以上的例子看起来很简单,但生活中时常会发生混淆。因为行业与职业既不互斥也不重叠,每个人既有自己的职业也有自己的行业,而且职业和行业的名称还有可能非常相似。行业有 “软件开发”,职业也有 “软件开发”,两者还是有区别的。如果行业是 “软件开发”,往往指的是这个人所在的公司负责开发和销售软件产品;如果职业是 “软件开发”,往往指这个人自己就在编码开发软件。延伸开来说,软件公司里不只有开发软件的人,还有测试、财务、行政、销售等等各种职业。做软件开发的人也不一定在软件公司,电商、科研等等行业的公司里也需要这种职业。

  搞清楚了行业和职业的大致关系,就可以来谈职业生涯了。

  基本上,任何一份工作能给人的新鲜感都不会超过 6 个月,之后就只是简单重复的劳动。从公司的角度来说这是合理的安排,熟练工效率最高最保险。从个人角度来说很可能就不满意了,有心人总会想着自我提升。可是,力气该花在哪里呢?时间是有限的,谁都不想白花工夫。

  这时候,行业和职业代表了发展的两个方向。选择行业,就要拓展自己知识的广度,去接触上下游的人,了解整盘生意、整个业务链是怎么玩的。选择职业,就要加深自己技能的熟练程度,寻找比自己更专业的人和资料,加以学习。

  通常我们说的 “向专家学习”,其实是没有明确方向的,因为专家既有行业专家,也有职业专家。假设你在一家在线商店做程序开发,那么你的行业是电子商务,职业是程序员。

  选择行业作为发展方向,就应当侧重了解以下问题:电商的应用有哪些特点,在系统的选型和使用上有哪些讲究,哪些问题适合使用什么框架和中间件解决……

  选择职业作为发展方向,就需要侧重了解以下问题:现有的编程语言和框架有什么功能,什么特性,系统有哪些技术指标各表示什么意思,系统大概会出什么问题应当怎么解决……

  注意上面我说的是 “侧重”,极度 “偏科” 的组合是没有市场的。仅仅关心行业而不能动手就只能夸夸其谈,仅仅关心职业而不了解背景和规矩同样寸步难行。所以,大多数职业通常都对行业知识和职业技能有入门要求。但是,个人在成长时应当如何选择方向,把重心放在行业知识上还是职业能力上,很多人未必清楚这个问题。

  可以肯定的是,至少相当多的程序员选择的是 “职业”。无论什么行业的程序员,大家愿意愿意争论什么语言好、什么框架好之类的问题,把自己定位为 “中立” 的技术人员,所谓 “中立”,指的就是 “和具体问题无关,与具体领域无关”。这种职业生涯的选择,美其名曰 “职业程序员”。

  但是这种 “职业程序员” 工作起来往往会有很多问题。

  典型表现之一就是业务人员常常会大喊 “你怎么连这个都不懂,这不应该要我说啊”,因为他们确实 “不懂”——我见过不少开发仓储系统的程序员真的不理解什么是库龄,也搞不懂标品和库存的区别等等 “入门问题”;

  典型表现之二就是我经常在面试时遇到来自完全不同行业的程序员,对要应聘的行业没有理解也不做功课,看到 “程序员(开发工程师)” 就直接投简历了。你问他 “NoSQL 和 SQL 有什么区别” 通常还能答上来,问他 “电商、SNS 的什么特性决定了它们要大量用到 NoSQL”,往往就答不上来了。如果再问问他之前行业的典型问题对应着软件科学里的什么模型,能答上来的人就更少了。不过很多 “职业程序员” 觉得这不是问题,本来就不必操心这些问题嘛。

  现实的结果是,大量的 “职业” 程序员更适合去做 “纯” 开发,虽然这个职业已经 “人才济济” 了;而 “行业” 程序员奇缺,在许多行业有大量公司需要开发 “不求高精尖,只求稳定能用” 的系统,愿意付出高薪招募有足够行业知识、开发技能相对一般的程序员,却长期一无所获。我相信不少程序员弃 “行业” 而选 “职业” 并不是有意识的选择,但这种 “无意识” 的代价有时大到让人叹息。

  为什么会这样?我觉得有两方面原因。

  一方面,软件开发本身已经足够成熟,对于纯软件领域的许多经典问题,已经有相当成熟的解决方案,形形色色的各种语言、框架、组件已经相当可靠了,不那么靠谱的程序员也可以拿来直接使用。换句话说,“纯” 软件开发已经有相当多的积累,要想做出成绩的门槛已经很高。

  另一方面,软件如何解决各种现实问题,其实一直没有经典的方案。软件最早是解决科学计算和银行问题的,走的是理论先行的路子(还记得 Codd 的经典论文吧),之后软件开始试图解决其它各种领域的问题,这时候就只能实践先行了。这些领域(行业)之前的经验和规范如何移植到软件的世界中,其中哪些值得保留,哪些需要更新或放弃,大量此类问题都还在摸索(移动互联网兴起以后更是如此,因为新兴场景和问题成倍增长)。

  在这种情况下,行业知识的价值更高也就不难理解了。如果有两个程序员,甲的职业技能更强,用一个月时间把仓储管理系统的响应速度提高了 100%,乙的行业知识更多,用一个月时间把仓储管理系统的准确率提高了 40%,出货速度提高了 20%。对如今电商行业的大多数公司来说,谁的价值更高,恐怕是不言而喻的——其实对于这种现象,温伯格在《成为技术领导》里给过一个模型:不要算加法,算乘法。如果你花了 90% 的精力在职业上,10% 的精力在行业上,总分是 0.09,如果精力分配是 60%:40%,总分是 0.24。数值或许不那么准确,但总的趋势是对的。

  或许有人会说,偏向 “行业” 是有风险的,万一行业不景气了怎么办?还是靠 “职业” 的硬本事吃饭更有底气。这种担心其实是不必要的。

  首先选择行业不是要撞大运,不是终身契约;

  其次选择行业未必意味着你要完全放弃职业技能,你或许只需要把时刻紧追最新技术的精力用来了解行业已有的经验就好;

  最后,如果你技术过硬又能深入了解两三个行业,那就是 “领域专家” 了,领域专家可是比只会夸夸其谈的 “咨询顾问” 吃香得多。

时间: 2024-11-17 12:19:04

“职业程序员” 不必那么 “职业” 还得 “行业”的相关文章

“ 职业程序员 ” 不必那么 “ 职业 ”

“ 职业程序员 ” 不必那么 “ 职业 ” 编者按:本文作者余晟,文章首法于其微信公众号“余晟以为” (微信号: yurii-says),欢迎交流探讨,授权 36 氪发布. 我刚工作时,怎么也搞不清楚为什么求职信息里要有 “行业” 的选项,还要有 “职业” 的选项,很多时候 “行业” 和 “职业” 还是重叠的,比如行业是 “软件开发”,职业是 “软件工程师”,这不是一回事?过了好些年,这个谜团 才真正解开. 好玩的是,我本来以为只有自己不清楚这个问题,慢慢才发现不是这 样.工作的时间 长了,不少

<转>职业程序员不必那么“职业”

本文作者余晟,文章首法于其微信公众号“余晟以为”(微信号:yurii-says) 本文转载于http://www.codeceo.com/article/occupation-programmer.html 我刚工作时,怎么也搞不清楚为什么求职信息里要有 “行业” 的选项,还要有 “职业” 的选项,很多时候 “行业” 和 “职业” 还是重叠的,比如行业是 “软件开发”,职业是 “软件工程师”,这不是一回事?过了好些年,这个谜团才真正解开. 好玩的是,我本来以为只有自己不清楚这个问题,慢慢才发现不

《程序员必读的职业规划书》书摘及感想

刚看了<程序员必读的职业规划书>的一部分,作为一个马上要走入职场的新人觉得特别受启发,很多模糊的东西变得清晰 一.书摘 这四个象限分别描述了不同的挣钱方式,这里我们从程序员的角度来进行解读. E象限(帮别人挣钱) E象限是雇员象限,一般来讲,我们刚工作时都在这个象限里边.这里是风险最低的地方,只要你准时上下班别用SQL把公司的数据库Drop掉,基本都能每月领到应得的银子. 程序员的世界是靠实力说话的(真好),所以如果你刚开始工作,那么你刚刚进入成长期,不顾一切的学好用好各种技术就行,不要想太多

Java程序员面试体会,还没找到工作的“猿猿们”看过来!

类似的话题,我大约在几个月前跟大家聊过.这一次,我要根据这段时间的体会,再给大家整理一下. 今天,很轻松地拿到了神州数码的offer.虽然工资不是特别高,虽然很多人一毕业就能进入这样的公司,但是对我这个半路出家的大专生来说,能进去纯属意外. 今天的面试,谈到了以前我接过一些私单,项目经理问我,那你现在还有没有做私活的想法?我说,彻底没有!他问我,为什么?我说,这几年,虽然做私活挣了一些钱,但我损失的远远不止那点钱.那些重复.繁琐,很难有技术水平提升的工作,占用了我大部份的业余时间,如果这些时间用

经验:程序员10大职业生存技巧

  摘要: 随着敏捷开发.开发运营和分布式版本控制系统的愈渐流行,开发的重心逐渐从个人能力向小组合作转移 英文原文:Ten career tips every egocentric programmer should hear 翻译作者:– 蒋丽丽    如果你想在众多程序员中脱颖而出,下面这个现象是值得你深思的:随着敏捷开发.开发运营和分布式版本控制系统的愈渐流行,开发的重心逐渐从个人能力向小组合作转移. 在大多数情况下,团队.部门和个人会自行解决问题,团队负责人对最后的项目结果能做的很有限.

程序员10大职业生存技巧(转载)

如果你想在众多程序员中脱颖而出,下面这个现象是值得你深思的:随着敏捷开发.开发运营和分布式版本控制系统的愈渐流行,开发的重心逐渐从个人能力向小组合作转移. 在大多数情况下,团队.部门和个人会自行解决问题,团队负责人对最后的项目结果能做的很有限. 本文中所有技巧的中心思想和主题就是“不要庸庸碌碌,要为自己而活”.好了,坚持和学习下面这十大职业技巧,它们会是你乘风破浪的航船,带你到达成功的彼岸. 1. 你是最棒的 要相信自己是最棒的程序员,充满自信.随着时间的推移,你的崇拜者会越来越多.别担心会出洋

程序员的人生职业规划

很多大公司的工作氛围是这样的:每天上班来打卡,然后坐在自己的工位上开始做事,很少和同事有交流,公司为了减少同事之间的交流甚至在工位之间用板子隔开,即使和同事交流也只谈工作的事情:公司没事的时候很闲,大公司养人,没事做时能让你闲半年, 在闲的时候和同事交流更少,每天只是上班打卡,然后虚度一天,下班打卡走人.这样的工作方式是以工资驱动的, 大公司认为,只要把工资给足了,就不会有人轻易的走,为了防止人走,他们还可能会押人半个月工资. 这是过去的工作方式,不是未来的工作方式, 这样的工作方式60.70后

程序员必读的职业规划书之摘要

之前读了这本书是因为勺勺的推荐我才看的,勺勺是我在北京实习的老师,我心中崇拜的大神,之前就已经把文章写好了,但是公司老没网,于是就用word保存了,现在复制出来,为了防止我以后忘记,摘要如下: 1.使用价值: 对技术人员来讲,遇到问题后能迅速分析问题,定位问题,给出解决方案,最终搞定问题的能力. 2.供需: 合理选择市场抓住机会,做好职业规划,即使薪资低,能够到好的公司工作都值得,因为你的能力和交换价值会提升,对以后高薪有帮助. 3.信息透明度 学会在短时间内获得大量的机会,这样才能做选择而不是

程序员如何规划职业路线?

社区中并不缺少有关软件工程师职业发展的文章,甚至可以说是泛滥.很多人都能在这个话题上说两句,三五年工作经验的编程老鸟也好,架构师也好,技术 VP 也好,CTO 也好,都有各自的看法与实践经验.没有哪一套方法是适用于所有人的,这一套软件工程师职业发展纲要,也不过是在你踽踽前行的路上,迷茫时可用来参考借鉴.你的核心竞争力,永远是你的自身实力.切记! 一.专业技能学习捷径 1.爱上你的编码神器 众所周知,软件工程师要做的工作就是写代码,准确地说,你的目标应该是写出满足业务需求并且无法找出 Bug 的代