程序员每天上班都在干什么?

咕咚 于 2025-07-17 发布

如大家所看到的,我平时在这里分享了很多 inBox 笔记相关的记录,但inBox 笔记从开始开发,就一直是我业余时间开发的,我的主业一直都是一个手机软件工程师,是一个地地道道的程序员。

尽管我周围大部分人都很了解程序员,对这个群体很熟悉,但是我想,关注我的公众号用户,其实自己的生活圈子里,周围的程序员少之又少,所以我想以自己的视角谈一下程序员的工作,他们每天都在干什么。

当然,程序员这个行业经过几十年的发展,已经发展出了各种细分领域,有前端程序员,后端程序员,还有算法工程师等等,分支玲琅满目,我只站在我一个手机客户端开发工程师的视角,去聊一下我们这块的日常的工作。

首先对于程序员的工作,耳熟能详的就是写代码。

是的,我们的工作简单说:就是根据产品需求,使用代码开发各种功能,这里我可以先简单说下在一个需求的常规生命周期。

一般的需求都是自顶向下,老板或者公司顶层确定要做什么后,产品经理会先根据老板的要求去给出具体的方案设计,方案设计敲定后,视觉、交互设计师会根据产品需求设计出对应的视角效果出来,效果没问题后,程序员就需要参照设计的设计效果,去用代码把效果实现,程序员实现后,需要给测试人员测试,测试没问题后,代码进行上线,老板最终看到了效果。

上面是一个抽象的说法,我举的具体的例子。

老板说我看到快手做了一个看视频赚钱的功能,我觉得不错,只需要少量的钱,就可以让用户把大量的时间留在我们 App 里,这个功能对于提升我们的人均停留时长特别有用,这个季度作为核心 KPI。

然后产品经理就需要围绕这个需求,去分析具体要怎么实现,比如看那些视频给奖励,看多少分钟给多少奖励,以及如何展示看视频倒计时等等, 这后面的逻辑非常复杂。

设计师则需要设计出具体的倒计时样式,以及点击以后的页面是什么样子,程序员在听取了产品经理具体要求以及分析设计师的 UI 效果后,就需要用代码把倒计时逻辑,奖励钱币的逻辑,页面展示的效果用代码实现了,代码实现后,还需要测试、上线,上线后,老板还要看具体的使用数据,等等。

可以看到程序员的工作只是其中一环,我们需要按照产品逻辑,用代码将逻辑实现完整,最终让用户可以用上这个功能。

但上面说的工作,仅仅是程序员的一部分工作,依我这么多年的工作经验,写代码的时间大部分时候只有 50% 不到,那么除了写代码,还在做什么。

其实从上面的例子也能看出来,程序员只是流水线中的一环,它不是独立的,在这个系统中,除了具体的编码工作,还有大量的沟通和交流工作需要做。

在产品设计完方案,UI 出完设计图后,程序员需要跟他们一起开会确认方案的合理性,以及潜在问题,即使到了开发代码阶段,还可能需要跟其他人沟通代码设计,到了测试阶段,还需要跟测试人员沟通测试时发现的问题等等。

另外,日常工作中让所有程序员最头痛的莫过于查线上问题。

开发的功能上线后,当安装包安装到实际用户的手机上后,程序可能因为不同版本覆盖、因为不同的机型、因为网络环境、因为资源缓存等等,最终反应到用户手机上,会发现某个按钮点不了、视频播不了、图片打不开等等,这时候就是出线上问题了,出问题后就要查问题,定位问题,这时候需要翻代码,阅读代码,然后不断调试、尝试复现问题,老板可能就在旁边一直等我们给结果,很痛苦。

相比日常写代码,查问题更考验一个程序员的水平,没人喜欢查线上问题,但是问题来了,就只能快速解决,并需要在工作中不断规避那些因为粗心、流程等因素导致的问题,以及学习如何快速定位问题。

图片 除此之外,程序员还有一项工作,写文档,这可能因人而异,我个人比较喜欢写文档,我会花不少时间把自己负责的技术细节用文档写下来,比如我负责的模块,我自己知道是怎么工作的,然后我会用文档写下来,这样一方面,后面我可能忘记当时怎么实现,直接看文档就好了,另一方面,其他人后面可能需要用到我写的模块,我就不需要跟他一对一具体聊,只需要给他文档地址,让他自己看就是了,这会大大提到工作沟通效率。

要说这个习惯,我一直都有,不过 21-23 在字节期间,公司本来就鼓励这种机制,所以我践行的更多,效果也更好。

以上,就是从一个手机客户端工程师的视角去看程序员的工作,不一定全,也会有一些偏面,就先说这么多。


今天写的有点多了,还找了几张图片,得一个小时多了,收工,今天的咚记就到这。


我是咕咚,一个软件工程师,独立开发者,inBox 笔记 作者,喜欢开发、喜欢篮球,更多介绍见 关于我以及我的公众号,每天我会在咚记中,分享自己的开发思考和日常感悟,欢迎关注。