我为何总是喜欢且必须是一个人写程序

原文

我为何总是喜欢且必须是一个人写程序,这里面有两个命题,一个是喜欢,另一个是且必须。先解释下喜欢吧。

我喜欢一个人写程序,这可能是由于我想操控一切的心思,又或者是别的原因造成的。如果是我一个人写一个程序,我需要考虑到程序的每个方面,拿SMM开发来说,我一个人负责客户端,后端,服务器架设,UI设计,此外宣传公关和产品设计也是我一个人做。我同我自己交流根本不需要任何时间,因而我可以很快速的联动调整某些需求,例如某个设计在数据库中没法设计出来,那我可以设计其它的字段来补充这项失误,同时我可以让UI布局上扬长避短:尽量将用户的注意力转向其他设计而让他们忽略我做不出来的这项设计,在与用户沟通的时候也能通过巧言将一些失误规避掉。我不需要和任何人扯皮,也不需要向任何人解释,一切都是在我一个人的脑子里完成的,比和他人合作的效率来得更快(这可能和我的社交心理问题有关,我不善于交流,因此我尽量避免交流,同时对交流中的那些繁文缛节深恶痛绝)。再例如,一个东西在设计上很复杂,且在用户眼中无足轻重,那么我可以直接砍掉这项设计而无需过问任何人。

我个人的开发习惯是从“看不见”向“看得见”设计和书写,每个部分单元测试,最后再联合调试。我之前尝试过其他一些开发方式,例如先写界面再写功能,但是最终的结果是自己将大把的精力耗散在界面设计上而没有任何气力去实现功能,这也是我为什么经历了一段时间的“命令行大好き”的原因。如果你看过某动漫:食戟之灵,里面的厨师每场比赛之后将视对手战力消耗一部分气力,对手越强大,战后越虚弱。那么我基本上就是这样一个人,写界面耗去了我大部分的气力,在很长一段时间中无法集中精力完成代码部分最终失去了对这个项目的兴趣,然后便是抛弃这个项目。正因为我这种反人类(与正常开发不同的)的开发方式,让我和很多人合不来开发。

再来解释一下必须吧。

想到游戏你第一个会想到什么,是否是你曾在游戏中取得的一系列宏伟成就?他们给你带来了什么?带来的是荣耀,是快乐。可以说:玩游戏是为了快乐,如果你不能在游戏过程中感受快乐,那么这种游戏就没有意义。带来痛苦的游戏将毫无意义(我指的是爽游,不是那些哲理性,教育性游戏)。如果我玩Minecraft,一下午都在痛苦的建筑某项东西,那我会直接放弃,因为在这样东西上我得不到快乐与成就。

我写程序也是为了快乐。有人曾说,毁掉一首音乐最好的方法是将它作为起床闹铃,毁掉自己最热爱事物的方式是将其作为工作。先不管这话有没有道理,就我个人而言,将一件事作为工作,工作本身就是辛苦的,那么此事也必将成为你的心理负担,有人说如果你本身喜欢这份职业呢?这不可能,如果一个热爱编程的员工,每天被一个沙雕上司安排各种无理的工作过要求,我想他自己也会崩溃,一项工作是否快乐绝不仅仅取决于你是否喜爱,还有很多变化的因素需要考虑。这也是我为何我选择了微电子科学与工程作为我大学所学专业,而不是我已经喜爱了6年的计算机/软件工程。

因为我写程序是为了快乐,因而决定了我的程序也是随我心而动的,写的代码量也是忽高忽低的。完全不适合企业或者团队合作做工。但是我也并非不通情达理之人,如果我需要参与某些团队合作,我也会全力以赴,但是无外乎的结果只有两种:1、中途过载;2、写完了但是需要花上非常非常多的时间(1年)来让自己恢复状态。在有团队合作的情况下,由于我个人性格的原因,我不愿意拖别人后腿,我不希望成为别人的累赘,更不希望别人看到我失误的一面。所以我的神经高度紧张,一天的工作可能会让我有10天的疲劳感。举凡,几日之前的设计SMM v2 UI,出Demo的时候,2天的编码让我感觉我和过了两年一样。

我本就是CS/SE泥腿子出身,专业知识自然比不上那些专业出身之人,更不可能在编写速率上胜过他们,达到配合工作的速度,因此我极力避免参与团队合作。没有匹配的技术实力算是“必须”的根本原因吧。

总而言之,我喜欢且必须是一个人写程序,而且这种情况也将持续很长时间。可笑的是这个寒假过去,我就要参加一个所谓的大创,在我们组里面,我被以*精通*程序而被邀(被膜拜),我真不知道到时候我能写出什么屎代码,更不可能知道我会不会就此累到一休到底。

后记1

2020年2月25日

最近闲来无聊看了《白箱》,大概是第一季的后半部分(12集之后),介绍了女主升职担任制作经理的故事,围绕着《第三飞行少女队》动画化的制作而进行。虽然没看完,但是从看了部分的来说,感觉最复杂的部分就是各种讨论和传达会议,以及应付因为回复时间不及时导致的返工问题。我不认为这可以被精简,因为这是制作中的必要一环。仔细想一想,会议是让一个人的思想被大家理解和认识,而返工问题究其原因也是原作者的思想无法被传达到制作人的手上。倘若,我说的是倘若,倘若这些都是一个人做的,那么这些会议和返工也就没有存在的必要了,因为不存在我传达我自己和我不知道我自己的问题。当然,现实中一个人绝无可能完成如此大量的工作,这也是人类之所以为人类,团队协作的重要性。

不过如果在某些小项目开发上,一个人搞确实要比多个人搞效率要高。我当时看的时候也确实是那么想的。因为去恳求一个人有时是那么困难,我也不善于和别人交际。为了一个小功能,需要向某些大牛点头哈腰。我做不到。所以我才嫉妒那些拥有我不拥有技能的人(只限计算机领域),我的解决方案里从来只有学习他们擅长的领域然后超越他,而不是与他寻求合作。老实说,我的眼里一丝丝的合作都没有,一想到某一天需要向他们恳求,需要向他们下跪,需要向他们妥协,我就恨得咬牙切齿,我痛恨这种人,虽然并不是所有人都是这种人,但是在我眼里除了背叛就是甩锅,不如让自己完全掌握这项技能,让他们自生自灭。我是这么自私地想着。。。

后记2

2020年8月29日

被群友反复浏览了这篇垃圾,做一点必要的补充在这里。我不合作开发的原因大致有如下几点:

  • 不想被差遣,也不想在被限制时限的情况下工作。
  • 我觉得这个项目没有意义,我不想开发,或者我自己有更好的想法但是现有代码与我想法出入太大不如自己开写。
  • 担心自己写的代码垃圾,拖后腿,或者对自己根本不熟悉且没有空余时间学习的项目霸王硬上弓。

大概就那么几点吧。