看懂程序员

“程序员”、“程序猿/媛”、“攻城狮”、“码农”都是对从事计算机编程这个行业人员的一种称呼,也有的专称计算机编程行业中从事软件开发工作的人员的一种称呼,前者计算机编程行业包含后者软件开发人员。

百度百科的解释是:“程序员是从事程序开发、程序维护的基层工作人员。

得益于互联网的高速发展,让这个行业光鲜亮丽地展示在大众的面前。

“高薪”、“技术人才”、“996”、“007”、“35岁危机”、“互联网”,“内卷”这些关键词或多或少都是从这个行业或者关联行业中而来。

程序员编程

程序员这个行业是什么样的?

程序员的工作都是在做什么?

程序员到底是一个怎样的群体?

程序员都会秃头吗?

程序员到底会不会修电脑呢?

带着这些问题,一起给大家解开程序员的真相。

大众的误解

每个人现在都在享受互联网带来的红利,小到生活购物、聊天,大到国民级的12306。每天我们都要接触各种各样的系统、网站、小程序、APP(后文统称为“应用”)。

12306官网

这些应用都是程序员开发(“做”)出来的,程序员的工作就是开发、更新升级这些应用。

大家生活中接触到的每一个应用后面可能就是一家互联网公司,当然现在头部的互联网企业会同时拥有多款爆火的应用。比如大家常说的头条系,它就有今日头条、抖音等多款国民级应用。

这样的互联网公司都会有自己的技术团队,这个技术团队就是程序员所在的部门。

根据应用的用户量级,部门内的程序员会有多有少。有的公司技术部门可能几千上万人开发、更新升级无数个应用,也有的公司技术部门可能几个人专心维护几个应用。技术部门的程序员多少完全取决于应用的用户量级和应用的复杂程度。比如,我之前待过一家创业公司,技术部门(称为技术小组更贴切)只有 2 个人,所有的开发工作都是我们两个人干,没有明确的分工和界限。也待过一家成熟的互联网公司,其中我所在的技术小组(技术部门内有多个技术小组)有十几个程序员,我们分工明确,各自只负责各自的方向,最后大家工作拼起来就是整个应用。

从我个人经验来看,在越大(人数多)的技术部门,程序员个体更像是流水线上的一个工人,只负责自己那一部分工作,可代替性很高,所以大家也戏称为“代码农民工”,简称“码农”。相反在越小的团队,每一位程序员的可代替性越低,价值也更大,可以涉猎的技术面也越广。

上面提到的规模大的技术部门分工会很明确,彼此界限清晰。这是因为在技术部门内部有多种细分,有的公司会根据不同的业务细分为不同的技术团队,也有的公司会根据不同的应用细分为不同的技术团队,还有的公司根据程序员的分工职责细分为不同的技术团队。

比如今日头条的技术根据业务可能分为“商业变现技术团队”、“用户体验技术团队”等等,前者的业务是为了给公司变现而提出各种应用的更新升级需求、后者则是根据用户使用应用的体验来提出各种应用的更新升级需求。根据应用细分的技术团队比如“Web技术团队”、“APP技术团队”,前者是负责浏览器端的应用开发,后者负责手机上的APP开发。根据程序员分工的则可以分为如“前端开发团队”、“后端开发团队”、“Android开发团队”、“IOS开发团队”等等,每一个团队代表程序员的一个细分工种。

而对于程序员来说,他们自己就是某个团队中的一员。

对于外行人员来说,看似程序员是“技术人才”、“高科技人员”、“高薪职业”,但是大多数程序员自己知道自己就是流水线上工人。之所以被外界人员给予很高的评价和看似“无所不能”,其实是大众对于这个行业知之甚少。

程序员这个行业可能和你所在的行业是一样的,能力也分高级、中级、初级,也需要积累经验一步步晋升,也需要团队配合一起完成更大的工作任务。维修工的工具可能是扳手、螺丝,程序员的工具可能是电脑、平板。高级技工很少,同样高级程序员也是少数。

程序员的工作之所以被看似“光鲜亮丽”,都是互联网高速发展的结果,尤其是头部互联网公司的错觉影响。老牌互联网企业BAT(百度、阿里、腾讯)规模大,有自己的办公楼,开放式的办公环境,几百种美食的食堂,高额薪水的待遇,股权激励,还有各种福利加持,让外界错认为互联网公司都是这样的,程序员享受的待遇都是这样的。其实外界看到的模样可能只有这个行业中1%的人能遇到,大部分程序员可能也是被这些假象“骗”进这一行的。

程序员的工作之所以被看似高薪,实则背后也都是血汗钱。互联网公司大都聚集在一线城市的核心区写字楼和产业园,办公环境确实很高大上,但一线城市意味着高消费,互联网公司则代表着加班,无休止的加班。用拿到的高薪除以工作时间,时薪可能和一线城市的一个普通工人差不了多少。

程序员这个行业是被外界误解的一个行业,和大多数行业一样,程序员本身也很普通,大部分程序员也是一颗螺丝钉,而且还有使用年限(“35岁危机”)。

流水线上的程序员

把程序员比做流水线上的一员确实很贴切,一个产品的开发和升级更新在大多数公司经历的是这样的一条流水线:

1、产品经理提出需求产品岗位的同事经过调研之后告诉整个流水线上的人,我们要做啥、为啥要做、具体分几步实现,期望啥时候用户可以使用。

2、美工设计:根据产品经理想要的内容进行交互设计,通俗来讲就是大家看到的每一个应用长什么样,滑动之后是什么效果,点击之后会出现什么,都是美工的同事她们说了算。她们会用设计软件(大家最熟悉的PS就是设计软件之一)或者画笔(平板+手写笔)描绘出来应用最后是啥样貌。

3、程序员开发根据产品经理说的产品每个功能的逻辑和美工交付的交互设计图进行开发(写代码),简单来说就是美工提供的是二维的图画,程序员将二维的图画开发成用户可以使用的三维可交互的功能(一个应用有很多功能,比如抖音有登录的功能、有点赞的功能等等)。

4、测试人员测试针对程序员开发出来的功能,测试岗位的人员会对产品经理所说的功能逻辑和美工画出来的交互逻辑进行逐条验证看是否符合产品经理和美工的要求。当然高级的测试团队还会对程序员开发的代码进行一些测试验证,看看是否符合程序员所说的。期间出现不符合预期的内容,就会由程序员去修改直到符合各方预期。

5、运维上线:运维人员将程序员开发的代码放到服务器(专门用来跑程序员代码的高配置电脑)上,然后进行一系列的初始化、安全、防护配置,大家就可以正常使用这些应用了。

一些小的技术团队或者公司,可能一人分饰几角。一个人既是产品经理又是美工(现实情况中也有美工转行做产品经理的,很少一部分产品经理转行做美工的),程序员、测试人员和运维人员也可能是都是程序员自己。这都取决于公司和技术团队的大小,也受应用大小影响。

程序员流水线

按照上面的流水线来说,程序员要打交道的上游是产品经理和美工、下游是测试和运维,属于流水线中间的关键节点,要沟通的人最多,被骂的也自然最多。

程序员和上游的产品经理 battle 功能逻辑合不合理,和美工沟通一下设计的细节对不对。比如产品经理要求登录后弹出一句“欢迎光临”给用户看,程序员觉着这句话太傻了,就需要双方大战一场,谁取胜就谁说了算。美工一般很少需要 battle,最多的是一些设计图上的细节不清晰需要补充一下。但是如果产品经理要实现一个五彩斑斓的黑,美工就会找产品经理去battle了。

程序员对于下游的测试人员更多的可能是“鄙视”。因为测试人员相当于质检岗位,每天的核心工作就是给程序员找问题,另外整个行业大环境中的测试人员普遍是能力相较于程序员可能偏低一些,导致程序员的优越感就此产生了。

程序员遇到bug

程序员除了和上下游同事之间的友好沟通交流外,剩下的就是团队内部协作一起写代码,将产品经理的想法变为现实。

精英还是屌丝

不知道其他行业是什么样?但是程序员这个行业有些奇怪,是个技术工种,但又不像其他技术工种一样个人经验的沉淀可以起到至关重要的作用。“35岁危机”很形象地解释了这一切,这个行业仿佛不需要程序员的经验积累,只需要能加班、肯加班就能解决一切问题。我想这个行业平均年龄可能永远过不了30岁,因为30岁以后的程序员都在考虑后路,准备或者即将准备转行干点别的了。如此恶性循环下去,让这个行业逐渐变成了青春饭。

程序员确实是个技术工种,因为他们用自己的技术(指程序员的一种能力)将产品带到了大众的面前。技术对于程序员来说技术就像是维修工的扳手、螺丝刀,但程序员所使用的技术比其他行业的工具更新速度要快很多。去年还在使用螺丝刀拧螺丝,今年就出现了电动螺丝刀,就需要去学习怎么使用电动螺丝刀,否则就会被这个追新的社会所抛弃。所以很多时候程序员仅有的那点下班的时间也都用来不断地学习更新自己的技术能力,程序员的学习能力都是被自己逼出来的。

程序员真的很忙,上班忙着工作,下班忙着学习。

代码没写完

程序员的技术能力和头发的浓密程度成正比?技术能力越高穿衣打扮越邋遢?

这些对程序员的固有认知都很片面,我身边的程序员有这种情况的都是自己的原因,因为工作原因导致的还没有遇到过。不过,程序员这个行业确实因为加班多、用脑多可能会导致身体机能下降,出现亚健康的现象。所以你见到的比较邋遢的程序员,其实他本身就比较邋遢,懒得搭理自己,和技术能力没半点关系。

程序员之间的沟通很直接,很少有弯弯绕绕的东西。因为在程序员的世界里,不是 1 就是0,不是 true 就是 false。上下游之间沟通可能会有争执,但都不是个人矛盾,只是不同意对方的观点而已。内部晋升也不存在名额限制,不存在位置的争夺。这样的工作环境和氛围让程序员们更专注于工作本身,沟通越来越直接,感性的东西逐渐减少。

程序员性格上很纯粹,直接。

二八原则,大部分互联网公司的程序员可能是上面所描述的那样,只是方便大家了解程序员这个行业,不可以一概全。像是一些硬件开发、底层开发的程序员所面对的就不是如此的流程和状态了,它们可能相对互联网公司的产品开发来说,更纯粹的接近程序员向往的状态。

程序员五年的状态

修不修电脑

这个问题有些复杂,主要是拿程序员和不同的对比对象来看,结论不太一致。

你说程序员不会修电脑吧,他们相较于普通大众,还是会修的或者会根据一些专有名词去搜索方法然后去维修。要说程序员会修电脑吧,他们相较于专业的IT人员来说,又是特别的业余,一是没有经验,二是缺乏常用工具。

为什么程序员相较于普通大众会修电脑,会了解一些专有名词,是因为对于本科专业是计算机学院的程序员来说,或多或少在大学的时候都折腾过电脑软硬件和各类相关的工具,动手能力都是没有问题的,大学课程设计上也有一些拓展的课程与之相关。所以大部分程序员是有维修电脑的动手能力的。

由于互联网的高速发展和程序员行业的发展,有不少非计算机专业出身的人转行到了程序员的行业,这部分程序员对于维修电脑就无能为力了。另外,大部分程序员工作后,都专注于写代码的软件工作了,像大学积累的那些硬件知识和动手能力都会逐渐丧失。

因此你的程序员朋友还真不一定会维修电脑,但可以给你一些他的建议帮助到你。

结尾

程序员也是一个普通的职业,并没有大家想象的那么光鲜亮丽,不过确实赶上了互联网发展的大潮,水涨船高。

展开阅读全文

页面更新:2024-03-13

标签:程序员   美工   团队   经理   人员   行业   工作   产品   技术   公司

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top