知乎/回答
2 分钟什么事情是你当了程序员才知道的?
当了程序员最大的感受,就是当你真正进入行业,会发现实际工作和在学校里学习完全是两回事。
实际工作中,代码量只是整个软件工程中很小的一部分。花在写代码上的时间可能只占20%,更多的时间是在做设计、测试、部署、运维,以及最重要的:跟人沟通。
Conway's Law(康威定律)说组织的架构决定了系统的架构。当你真正进入行业,就会发现这个定律处处都在发生。比如为什么某个功能看起来那么简单,实现起来却要经过五六个团队的协调?因为这个功能涉及到的系统分别由这些团队维护。为什么有的代码写得那么奇怪?因为当时的组织结构就是这样设计的。
在真实的项目中,魔鬼都在细节里。提到过一个例子:同样是处理日期这个参数,在不同的函数和任务中可能有完全不同的含义。有时是数据ETL任务发生的时间,有时是实际数据的时间。这种细微的差别可能导致整个系统的数据错开一天。
最后一点,也是最重要的,就是对于"简单"这个词的理解彻底改变了。真正的高手不是把简单的事情做复杂,而是把复杂的事情做简单。我有个实践,第一个版本一定要简单,能少做一样东西就少做一样,因为上线后你会遇到无数意想不到的问题。
作为程序员,你会慢慢意识到,写代码不是目的,解决问题才是。而解决问题的最好方式,往往不是写更多的代码,而是找到一个更简单的方案。
