文章

平行世界中的某互联网厂实习回忆录

平行世界中的某互联网厂实习回忆录

平行世界,虚拟时间,虚拟地点,虚拟公司,请不要对号入座

福利与工作环境

L 型工位,带两个柜子和人体工学椅,工位间的隔板很高,环境很不错。不过对于有些不太幸运的实习生,正式工位不够,就只能在走廊里架一个临时桌子当工位。

每个楼层分 A、B、C 区,只有 B 区有会议室,其他都是工位。会议室有各种规模的,几人到100多人。事实上,如果是谈具体的工作,那么十人左右的会议室完全足够了。100多人的大会议室大多都是部门层面去做总结,或者是谈未来的方向,或是评优,不是具体的事项。平常会议室还是挺紧张的,如果要去快速做一下对齐, A、B、C 区都有休息区可以快速聊一下。

食堂饭菜种类很多,早饭夜宵免费,午饭和晚饭付费,但每个工作日有20餐补。每天午饭后发免费水果或酸奶,周末食堂不开。

学校和户口都不在公司所在城市的话,会有租房补贴,1600

对于正式员工如果租房每月能提两千的公积金。如果是买房就能全部提出来。

公司旁边有一块软件园公共的绿地,明天吃完午饭可以去逛一圈,也可以上顶楼跑道走一走,或者健身房,不过健身房在平常人算比较多,周末基本上没什么人。

时间表

弹性工作制,不打卡,一般要求是十点以前到工位,七点后下班。然而虽然不打卡,实际上刷脸进入公司的时候就自动“打卡”了,如果长期十点之后来,主管还会收到邮件提醒这位员工“上班有点晚”。

中午大概是12点左右出去吃饭,然后午休到下午2点(除非这个时间段有人找你去开会)。晚饭6点去吃,然后休息到7点。

由于晚上九点(或者九点半)之后同事才陆陆续续离开,我一般9点写完日报回家。我走的时候我们组的几个正式工大概率都还没有走。和我同期的两个实习生由于想蹭10点以后的免费打车,10点以后才离开。对于正式工来说,赶项目的时候,晚上11点半仍然还在工位上干活

可预期的加班,在节假日前向经理发出申请邮件并抄送所在的团队邮件组,邮件内容写清楚加班内容和紧急程度

入职6个月以内同学,每日下班前需要邮件发送日报(理论上是转正前都要写,实际写了一两个月就不写了)。若有当天被分配的任务,需要选择该任务条目并添加进展情况说明,及任务完成情况百分比的更新,以及明日的工作计划;希望的日报不仅仅是单纯的工作项目记录,有任何想法意见和打算,都可以在日报里体现。

公司每周的工作总结和计划通过OKR周报制度来进行,进行一周工作总结和下周工作计划的安排,个人OKR周报一般周四下班前完成,如因特殊情况完成不了,提前跟经理同步,并告之预计最晚完成的时间。重点Topic OKR周报汇总最晚周四下班前完成进展更新(具体由各个方向leader确认)

周末双休,周末公司基本没人。

有句话这么说,双休是休息,单休只是让你活着。

我实习所在团队由于下班普遍偏晚,较难做到生活和工作的平衡。主管有一个孩子,但是每天晚上9点多下班回家之后孩子可能都已经睡了,因此平常还要请一个保姆。主管在有孩子之前,周末还可能加班,有孩子之后周末已经坚决不处理任何工作的事情了。

我们小组一周会开一个周会。主要向主管汇报一下工作,大家对齐一下,然后定下一周的工作安排。没有每日站会,因为主要由两个大头兵负责工作,两个人都明白对方在做什么事情,其他要么是实习要么是新来的校招同学,都是他们两个人来分配工作。

每个季度团建吃饭。

每年、季度或者其他周期会定okr,就是目标和达成目标的关键节点。目标是定在正式员工上的,实习生头上没有明确的目标,辅助正式工完成就行。换句话说就是完成mentor的任务就行。

技术职称每半年评定一次。由技术委员会负责,原则上不能跨级授予,主要依据个人专业能力、做出的贡献,按照职称标准、分专业细则进行评定。是对工程师成长情况、团队梯队建设的一次综合考察,其中技术因素是最主要的,但是评价体系里面还包括我们团队的其他价值的体现:是否能够长期稳定输出、是否乐于参与团队建设和信息共享、项目的贡献,等等。

年终述职,包括技术&业务贡献对业绩目标产生的影响(关键支撑事宜包含技术和业务,以及对业务指标或技术指标的变化影响)、技术的影响力(对团队内部和外部同学的影响,其他也包括不限于技术文章、专利、论文)、哪些方面取得了显著的进展,有哪些可复制经验?(关键战略路径、经营效率、MA、组织协同等方向)、哪些方面进展不好?根本原因是什么?后续改进举措及协同需求?

软件工程质量

代码的价值在于实现想法,不在于干净的代码本身。理性看待代码质量,优先完成目标,而不是扣着代码细节不放。

新人入职的一个误区是:由于什么都不懂,就倾向于扣代码质量细节。建议先补补业务吧。

对于代码评审等基本要求见网页

对于实习生/入职的新同学写的代码,刚开始会需要 mentor 一行一行看,做代码审查,看了四五次没有什么大问题之后以后就会看的略微松一点

开发不规范的情况也有,我 mentor 和我聊过,之前接触到一个代码库因为代码变得越来越难读,最后整个代码库变得不可维护。

我实习期间接触到的项目中,也有我看上去不太合理的做法:

  • 我们是 QA,那么谁来做我们的QA呢?QA 去做开发,并没有一个角色去保证开发质量
  • 直接在生产环境里面做开发
  • 直接迁移数据库改字段
  • 懒得维护单元测试。因为写的是Python,就直接在main方法里面测试一下,然后再把main方法里面的东西删掉
  • 对于一个刚起步的项目来说,主要的负责干活的大头兵可能就两人,虽然公司要求必须代码评审,对于没有高工介入的情况下,两个同级的大头兵可能并不会详细地看对方每行代码,互相+2完事

mentor 觉得问题不算特别大:

  • 作为QA,开发的服务不直接面对上亿的用户,而是服务开发人员的,用户规模不算很大
  • 公司机器有些紧张
  • 这项服务还没有彻底的开发完毕,以后会去做生产环境和开发测试环境的分离(后面确实实现了)

考虑的核心是:

  • 不能出严重 bug,包括拖累工期或是线上事故的 bug
  • 对于质量的追求不能影响到项目进度

只要做到这两点就行,可以自己权衡

招聘

HC(Headcount)、LC(Labor Cost)双管控双判断。招聘需求系统中可以查看剩余HC情况。每个部门的hc(head count,人头数)都是上面规定下来的,一般来说有人离职了才会招新的人进来。当然hc可以变,但是得主管和上面的人去辩论,再招人是一件必要的事情。

高级别候选人由第三方背调公司进行背调,其他级别候选人由Recruiter进行基本背景调查。

简历处理是有时效性的,一般简历在同一个流程中超过 5 个工作日未处理就会被系统自动淘汰,需要手动将简历进行状态转移。统一解锁时间点:每天凌晨0点,每个时间点判断锁定时间是否超过5个工作日,若超出则解锁。其中,异常锁定指没有真实的招聘需求或人选无意向的情况下,通过各种不合理的操作持续锁定简历,造成简历资源浪费的行为,包括多次安排自己面试、安排远期面试、多次取消面试、连环转移

实习生的名额可能会更灵活些。我所在的组可能是整个业务线团队或者业务线QA团队共享的,主管只需要和其他同级的一些人去battle,分多少个名额过来就行。

一般来说实习生有名额都是招满的,因为实习生的成本不大。相对来说正式工的成本会大一些,所以就算有了hc也不会一定招满。不过在找实习的时候也会考虑,如果要发租房补贴(学校和户口都不在公司的城市),那么这个实习生相比其他实习生成本也会大一些。

由经理指定经验丰富的同学,作为新人导师,使其快速融入项目工作,培养重点包括:

  • 项目流程:项目开发应遵循的全部流程,主要是icafe的使用、项目通报、上线事宜、组间和部门合作与沟通等。
  • 技能培训:工程开发常用技术等培训。
  • 工作指导:辅导和协助新人解决工作沟通,团队协作等问题。
  • 成长规划:辅导新人规划个人成长计划,并及时跟进和沟通。

会谈制度:建议导师和新人每1~2周沟通一次,回顾学习和工作的进展、问题、提出改进建议等,兼顾学习重点、职业技能、项目目标、流程规范、工作习惯、计划性与执行力等,及时调整工作方式。

交接工作的一般流程:

  1. 定下交接时间,
  2. 交接方组织一次串讲,
  3. 接受方再组织一次串讲,
  4. 交接方先带接受方跟进一次项目,
  5. 后接受方主导交接方辅助完成一次项目跟进

HR 自身的 kpi/okr:A、B、C、D评级占比为1:4:3:2,BG内根据评分降序排序进行评级,不同评级的 HR 得到的招聘平台付费道具数量不同

  • A平台: 评分=简历查看40%+主动下载简历量30%+主动搜索20%+登录天数10
  • B平台: 评分=简历处理40%+hr沟通30%+登录天数20%+职位刷新10%
  • C平台:评分=总达成50%+总沟通30%+总查看*20%(总达成:获取简历+联系方式总沟通:主动沟通+回复数总查看:查看在线简历数)
  • D平台: 评分=简历浏览量30%+简历下载量30%+企业反馈处理人数30%+登录天数10%
  • E平台: 评分=处理简历*30%+搜索次数30%+立即沟通20%+活跃天数10%+索要电话10%

学生到工程师的转变

在大厂中,名校出身的学生并不少见,甚至专业第一名也不稀缺。在理想的招聘环境里,能力无疑是最重要的,其他因素次之。然而,部分 HR 为图方便(另一方面是简历太多了),会直接筛除非名校学生的简历。实际上,学习成绩差但技术能力很强的人在团队中是有的,技术能力与学习成绩并非直接划等号。

学校和公司的评价指标存在差异。公司需要的是能够解决实际问题、技术能力强的人。而学校主要看综合学习成绩,意味着要学好所有课程,包括政治、英语等各类科目,但这些和技术水平没啥关系,此外,很多奖学金与个人的能力或技术关联不大,比如文艺奖学金、学生工作奖学金。

我们都只知道在学校里卷卷卷。我们觉得只要能在学校里卷赢了,在社会上就能找到一份能给自己带来价值的工作。但实际上,由于公司和学校人才观的差异,不管一个人在学校里混的多么好,工作中多半还是一个普普通通的打工人,做着普普通通的工作。

这个问题短期内难以解决。因为学校的目标不只是为工厂或公司培养人才,还期望学生全面发展,只是其中很多方面的发展在公司的实际需求中用不上,这本质上是一种价值观的差异。学校面临的问题是,到底是培养德智体美劳全面发展的人,还是培养符合公司和社会需求的人?前者太脱离实际,后者太功利,应该是两者的权衡。工作中对德行的要求并非要达到极高的标准,与之相比,技术能力自然是越强越好。

在工作中,既有来自名校且成绩好的人,也有来自非名校且成绩不好的人,而后者中不少人技术能力比较强。有趣的是,来自名校且成绩好的学生在工作中往往更 “卷”,他们会拿出更多个人时间去完成任务。这其实是把在学校的竞争模式直接照搬到了工作中,认为只要比别人投入更多时间和精力,就能把事情做好。

然而,另一些人对待工作可能秉持另一种态度:只要把工作做到位,做得像样就可以了,不会让工作过度占用自己的精力和时间,也许会把更多时间留给自己的生活。

就好比切一个苹果给别人吃。一个人把苹果切成几块给别人,事情就完成了;而另一个人在苹果上雕花。最终苹果都是被吃掉,获取的营养也一样,但是后者好看一点

有句话叫 “强者不抱怨环境”,但我不是强者,我就要抱怨环境,毕竟很多时候环境是被那些强者破坏的。我不希望周围的人只是为了 “卷” 而 “卷”。如果能在上班时间高效地完成工作,为什么还要加班呢?如果一件事情已经实现了其价值,为什么还要花费额外时间去优化那些报告或其他细枝末节的内容呢?

再啰嗦几句,在学校里,成绩好的学生大致可分为两类。

  • 一类人完全遵循学校的要求,一门心思把成绩搞好,争取拿到所有奖学金,不太考虑这些与自己未来的发展是否有关
  • 另一类人则把学校提供的资源当作实现自己目标的工具或台阶,只专注于自己想做的事,目标达到了就不再花时间

比如,若目标是保研,那保证成绩足够好就行,奖学金能拿则拿,拿不到也无所谓,他们更愿意把时间花在自己感兴趣的技术学习上,我可能属于后者,已经带有一些现实主义的色彩。我们觉得学校的某些活动,比如文艺活动、歌唱比赛等,没什么实际用处,很难从中获得成就感,也难以体会到那种纯粹属于学生时代的感动。

有时候,我挺羡慕前者。他们无论参加什么活动都能有所感触,开心地投入其中,并且觉得这些活动都很有意义。就像鲁迅说的,有些人在一个大房子里睡觉,一些人睡着睡着就死去了,但他们是幸福的;另一些人醒来了,却很痛苦,因为他们怎么也逃不出这个大房子。这时就面临一个问题:那些醒来的人要不要把睡着的幸福的人叫醒呢?我在想,如果所有人都醒不来,依旧无法逃出这所房子,或者即便叫醒一部分人,也还是逃不出去,那不妨继续睡下去吧。

我不知道自己是何时变得如此现实和功利,不再有曾经那种单纯的想法。但我又想,如果人生的终极目标是获得快乐和幸福,那么从小事上获得的快乐和幸福,同样也是快乐和幸福。为什么非要为难自己,历经诸多波折去追求所谓更大的幸福呢?

晋升与团队组织

  • 正式校招进来一般是技术三级,社招进来有的是第四级
  • 如果之前有来实习过,或许可以一年之后升技术四级,如果没有,两年升技术四级。晚的可能要三年才能升技术四级
  • 快的话三年升技术五级
  • 对于实习生来说,mentor 可能是技术五级,主管是技术六级,主管的上级为管理序列,再上级为公司总监级别
  • 管理序列可能会有技术高工(技术八级或以上)作为搭档
  • 团队基本上没有35岁以上的工程师,除了管理序列或者团队大Boss

我所在的小组:两个技术五级(包括我的 mentor),带两个新校招的同学,再加我实习生

主管大概带40个人左右(几个小组),主管的+1带100人左右,再上一级总监带400到500人。基本上总监就不和我们坐在一块办公了,平常也见不到。

我们团队的工作还算比较核心,需要测试业务线的一些核心逻辑,所以基本是没有外包的。

主管对于底层大头兵的价值是,能理解底层不同大头兵的想法;能向上级汇报这些想法并通过好的想法创造价值;能挡住上层的压力,为底层干活的人营造一个好的工作氛围;能考虑手下每个大头兵的职业发展,能根据能力指派员工并创造最大价值;这里的价值不仅是主管有业绩,员工也能通过最适合的活得到业绩。

对于主管来说,考虑的往往是一个项目的投入和产出,包括:这个项目需要投入多少人力?产出和指标怎么定?怎么向上级汇报和讲故事?此外,承压的往往也是主管,项目干得怎么样直接负责。

一个小组的负责人其实对于底层大头兵的影响很大,很多时候环境和氛围都是主管一念之间的事情:要不要把上面的压力转移到底层的员工?要不要把目标定得激进一些?要不要狠抓考勤,狠抓绩效?

跳槽有去苏州中国电信国企的。也有跳槽小红书的,然而小红书的工作压力比这里还大。兜兜转转又回来了,当然跳槽回来职级上升了,工资也加了

业务观察

大组承担的需求,大概是月级需求5k,活跃代码库5k,天级变更1w,服务模块4k,由100多位 QA 来承担,每个人的肩上的压力还是有的。

业务线的测试开发工作中,整个服务是由几十个不同组件搭建起来的,每一个组件都需要 QA 分人力来值周。对于一个组件,QA 往往有几个人负责,每一周轮流分配主值周和副值周。没轮到值周就主要做开发工作。对于一些资历较老或是工作量没那么多的员工来说,还会参与多个模块的 QA 工作。

我们业务线的测试基本上脱离了点点点,都是开发流水线去做测试的,因此测试的学习成本比较高,可能需要学习2~3个月之后才能去接具体的测试的要求,也因此不会让实习生去做测试值周,两三个月可能人都跑了。

负责值周时,理论上讲,只要是开发今天提单的,必须今天给他测试完。不存在一个时间期限,例如过了晚上10点就明天再测试。不测会被投诉。当然如果特别晚,例如11点之后提的单,可以借口说已经睡觉了,第二天boss来找人,可能也只是象征性的找一下,他也能理解晚上11点不做测试。

很多时候项目经理可能会把上线日期定在周一,隐含的意思是,不仅开发要加班,对应的QA也要加班。

有的时候测试是无奈的,因为有时开发并不会按照测试的要求来,如果不走严谨的测试流程,不管是开发或者测试在事故后都会被问责。如果开发觉得QA非常严格或是态度不好又能投诉。有的时候测试是半强制半威胁半恳求地去让开发去走那些严格的流程。

未来的软件测试是怎么样的?应该是以数据为核心的。我们说需要两个月以上才能去接手一个服务模块的测试,这两个月在做些什么事情?其实就是把资深 QA 脑子里的知识和经验传授到新人脑子里。

现在测试团队想做无人值守,就是把测试时人工具体注意的点用规则来替换,达到无需 QA 测试就通过流水线的效果。文档和规则都是把资深 QA 脑子里的知识和经验固定下来的方式,但是文档和规则还是需要资深 QA 来维护,那有没有更好的方法呢?

如果我们能把资深 QA 脑子里的知识和经验交给大模型,而且大模型能从当前的测试反馈中不断完善自己的知识库,那么大模型最终将拥有所有业务线模块的所有测试经验,换句话说它就是一个超级 QA,拥有每个资深 QA 的经验。

想法很好,如何落地?在 2024 年,业务如何与 AI 以及大模型结合还在一个探索的时期,每个人对于大模型技术的了解和期待不同,这里一定会出现 AI 融合业务的早期阵痛,我也看到了一些乱象。我个人对算法相关的工作,哪怕只是简单的调研,都抱着谨慎态度。我认为,一个人需要具备足够的背景知识和算法相关知识,才能洞察一个算法背后的本质(insight)。如果只是拿来一个算法直接使用,却不加以分析,不去探究其中的本质,那么这个算法就仅仅只是一个工具、一个程序包而已。要是使用后效果很好,那也只是运气好罢了,因为对其本质缺乏了解,就没有理由认为它理应效果好,也无法从科学、理论的角度去分析结果。

价值与理想

人常常会面临这样的困惑:是应该去做对的事,还是做自己喜欢做的事呢?究竟什么才是对的事?从小到大,父母亲朋好友看过的影视作品都在告诉我们,我们应该要找一个体面的工作,买一个不错的房子,开一辆不错的车,再找一个不错的对象结婚,我们就能到达幸福的终点。但这条定律不适合所有人

蓝战非你认为什么是自由?自由不一定是你得到了什么,或者是你到达何处,是无论结局如何,做你自己喜欢的事情便是自由。勇敢迈出第一步,追逐自己内心的梦想,便是自由。

一个死胖子为什么那么喜欢户外运动,又爬山又徒步,去这又去那,其实是在逃避,逃避什么呢?逃避焦虑。现在互联网焦虑太多了,包括你身边的人都给你的焦虑太多了。人生其实跟爬山一样,不是一场比赛。快跟慢,你路上的风景都是一样的,它不是一场比赛,你不需要比谁优秀,你不需要比谁更牛逼,你只需要今天比昨天开心,今天想办法让明天开心。所以,蓝战非希望大家每天过得开开心心。

我们要跳出一个恶循环。当你遇到困难时,其实大部分情况就是遇到了恶循环,你必须想尽办法破壁,把恶循环给跳出去,生活就会慢慢的变好

在社会的普遍认知里,成王败寇的道理似乎通行各处。如果一个人没有能力去做那些被认为是对的事,即便他去做自己喜欢的事,也很难得到别人的认可。相反,若一个人有能力去做对的事,同时又选择去做自己喜欢的事,旁人可能会觉得他是个有目标、有追求、想法独特的人。

打个比方,一个中专生找不到工作,也不管父母,只顾自己去画画,这种情况下,别人可能会看不起他。但从另一个角度看,如果是一个伟人名家去画画,做自己喜欢的事,人们可能就会觉得这个人很有个性。

其实,遵循伦理道德去做事是有价值的,做自己喜欢的事同样也有价值,价值本身并没有高低贵贱之分。只是因为人们存在偏见,才对这两类事情区别对待。所以,不必太在意他人的目光。

人应该具备三种东西:梦想、理想以及目标。

  • 梦想是远远超出个人当前能力的事情,可能是当前能力的 1000% 甚至 10000%,往往需要穷尽一生去追求,它是一个人的终极目标
  • 理想大概是个人当前能力的 200%,经过十年左右的努力有可能实现
  • 目标更具现实性,通常是个人当前能力的 100% 或者略超出一点,如 105%,并且在半年到一年的时间内就能够达成

帮助人类殖民火星,对于很多人来说可能是遥不可及的梦想。不过对于马斯克来说,或许就属于理想范畴

我和一起实习的同学聊过这样一个话题:到底是从什么时候开始,我们丢掉了儿时的梦想和理想,把找份好工作、挣些钱、维持职位稳定不被裁掉当成了唯一目标?又是什么时候,我们丧失了追求梦想和理想的能力与机会?

那些已经被生活磨平棱角、被社会 “驯化” 得老实的人,可能会觉得这种对梦想和理想的执着很幼稚,认为所谓的梦想与理想,终究不过是热血青年的一厢情愿。然而,换个角度看,那些依然怀揣梦想和理想的人,同样会觉得这些失去梦想和理想的人不可理喻,因为他们明明还有追求梦想和理想的能力与机会,这种可能性并非为零。

我觉得一个人越晚失去自己的梦想、理想,越晚失去童心,越晚失去自己的棱角,就越幸运。我认为自己仍然拥有梦想和理想,尽管实现的概率不是很大,但我觉得自己还有机会去尝试。

价值感该从何处追寻呢?有句话是这样说的:一个世界有你,一个世界没有你,让这两个世界之间的差距最大,是一个人最大的目标。也就是说,一个人所从事的工作能直接或间接影响的人数,体现了这份工作的价值。

在QA岗位上,我直接影响了模型方向的开发人员和代码质量,间接影响了使用服务的每一个用户。只不过在大厂中,单个人的价值并没有那么突出,大家都是螺丝钉,一起保证公司庞大机器的运作。

我问了一些同事,假设开发了一些工具,这些工具帮助研发人员将开发和上线时间缩短了很多,比如缩短了 30% 甚至 50%。我问他们:“当看到这些数据时,会因为缩短了研发时间流程、提高了效率而感到非常有成就感和价值感吗?”一些人的回答是,他们可能只对写在自己绩效上的事情感到开心。虽然领导们可能很关注这些数字,但对于普通员工而言,很难从单纯的冰冷的数字中获得成就感和温暖。

心态

在一次工作讨论中,有人曾问我是不是一个悲观主义者。听到这个问题时,我当时有点恍惚,之后认真思考了这个问题。我觉得自己首先是一个现实主义者,同时带有一些悲观的倾向。

很多时候,我考虑一件事情,首先会思考它的理想状态是怎样的,接着会去想它最差能做成什么样,然后再去分析导致它变成最差情况的众多原因中,风险最大的是哪一个。我认为,只有通过修复一个又一个风险点,这件事情的价值才会在我心中慢慢提升。与之不同的是,一些非常乐观的人可能会先想着这件事情最好能干成什么样子,然后思考哪些因素能让它达到最佳效果,进而去做这些事情。总的来说,如果有两件事,一件是修复风险,一件是挖掘潜力以提升效果,我可能会选择前者。

有句话是 “做正确的事,而不是做容易的事”,但对我而言,如何定义一件事是正确的呢?在我看来,修复风险可能是相对更正确的事情。不过,这样做也有不好的结果,那就是可能总会盯着事情不好的地方,只看到一件事情的缺点。当我发现一件事情缺点很少、成功概率很大的时候,我可能会非常激动且兴奋地去补齐这些剩余的缺点。当我找出所有导致事情劣化的原因并将其补齐后,这件事失败的概率可能就会小很多,我对它的重视程度也会更高。

但换个角度,如果一件事情缺陷很多,相比于祈祷奇迹发生,我可能更多地会去质疑这件事的合理性。至少现在,我可能还是一个有点追求完美的人,希望写出来的程序、做出来的项目在经过评估接近完美之后再向外发布。然而,在实际工作中,无论是接触公司内部的项目,还是和其他同学交流时,我发现很多时候并非追求完美,而是只要能用就行,就直接交给用户使用了。很多时候,看到一个存在很多缺陷的项目磕磕绊绊地运行,我自己都会质疑它到底是怎么成功的。

虽然我追求完美,但我也明白,很多时候现实条件不允许等所有基础条件全部集齐之后再去做事。万一有些条件一辈子都无法达成,那这件事就不做了吗?这时就涉及到另一种思考 —— 试错成本。我要考虑自己有多大的承担错误或风险的能力。我感觉自己现在的试错成本还比较小,在做了一个错误的人生选择之后,我可能还有补救的机会。所以在这段时间,我可能会去尝试更多的事情。

一路走来,我常常思考自己最大的动力是什么,我想应该是好奇心。通常人们做选择时,会权衡诸多因素,比如参考别人的评价,或者依据自己的经验来预估一件事能否做好。但对我而言,在综合思考、听取他人意见之后,最终促使我去做一件事的原因往往是我对它感兴趣,它对我来说是未知的,我想要去探索。

想做什么,就先去做,不必太在意别人的看法。即便有 1000 个人说一件事不好,那也是别人的意见,不是自己的感受

这其实和我之前提到的现实主义是两个方向。好奇心驱使我去尝试新事物、探寻未知;而现实主义则在我面对不完美的事情时,让我去考虑事情最坏的结果,使我保持冷静。

草台班子

“世界就是一个草台班子”,这句话已经被无数次证实。在实习的时候,我见证了许多 “草台班子” 的现象。一方面,我感到幸运。因为这意味着我不需要成为一个无比完美的人,也能为社会做出贡献。大家都是 “草台班子” 里的一员,做着差不多的工作就行。但另一方面,我很不喜欢自己也处于 “草台班子” 这种状态。如果要让环境好一点,团队好一点,那至少我自己不能是一个 “草台班子”。而且,如果我想要真正加入一个完美、不像 “草台班子” 的团队,首先自己得具备相应的能力和素质,不能是 “草台班子” 式的人。

假如世界的运行必须有个精密化的流程,完全不能出差错,那当其中某个环节出问题时,这个世界就会崩坏了。因此,能在草台班子机制下也能运行的世界才能存活更久。 我们都知道越是精密的仪器越容易出故障,就是这个道理。内在要求高了,自身稳定性就会降低。在恶劣环境中能存活的不是高等生物,而是那些低等的单细胞生物。

从事情的发展来看,事情的运转很多时候不可能始终沿着一条正确的直线前进,更多的是只能在众多边界限制下曲折前行。当其在某个方向过于偏执导致弊大于利时,就会开始被纠错到另一个方向。事情偶尔走偏没事,重要的是长期看在朝向逐渐合理的方向发展前行

饭得一口口吃,世界也是一点点慢慢的在运转中进化。很多事只要大家能勉强接受就可以了,很多东西最开始能用就行。如同你现在回头去看以前的电话,会不会觉得这也能行?往前推20年,那是中国造可能是三寨代名词,现在早已成顶尖制造了。 很多时候你只有先活下去才有进化的空间,很多事只有先做完才能有做好的条件。

杂记

在大厂的交流沟通成本是比较高的,如果整一个项目都由一个人单独去做,没有沟通成本,那可能一周就能干完;如果在大厂里面去做各种沟通协调和讨论,那么一周的事情可能会扩展到一个月或者一个半月。

如果不着急写代码,完全可以上午十点半来公司,然后去开个会,开个会开完之后回回邮件和消息就11点45分可以去吃午饭了。如果说中午没有人打扰,可以从12点一直休息到下午两点然后再开始正式的做一天的工作

对于一个有时间积累的大厂来说,除了面向广大普通用户的软件产品,也有很多面向开发者的内部的软件、产品、平台。这些只能内网访问的小平台,由于用户群体小(厂内人员),开发群体也很小(往往是一个小组),虽然功能有,但往往会因为缺乏维护、草台班子、排期借口而“很难用”。只能说,一个对所有产品负责任的团队是很难得的,一个对所有用户负责的开发者是很难得的,一个不断维护至最新的产品和文档是很难得的。

对于软件行业来说,技术迭代是比较快的,得不断学习。现在的普通的主管们,大概率在上学的时候都没接触AI、尤其是大模型这些名词,但是人在时代的大潮中,你不去学新技术,怎么向上级汇报?怎么和大头兵对齐项目细节?主管们也得不断去补AI、深度学习、大模型,并不断思考这些新技术对于业务发展的帮助。

重复造轮子似乎是不可避免的。想要复用轮子,部门与部门之间的“墙”必须打通,不仅是组织管理上的墙,还有公司文化的墙。底层干活的人需要有一些好的在线平台来知道类似的组在干些啥,以及需要有时间、精力、共享精神和实际奖励作为驱动,把自己部门干的事情发布到这样一些内部平台上。

说的再深入一点,办公室斗争似乎是不可避免的。虽然是在同一个公司里面,不同部门在遇到不可避免的利益冲突时,还是第一考虑自己的利益。

写文档的能力很重要。很多时候,人做的工作需要一些包装。真正有意义,价值极大的工作是很少的,大部分人都是有活干活,领份工资得了,干的活也没啥价值,工资也没多少,这是常态。不过,即使做的东西本质很简单,有时只要换个名字,换个包装,就能变得很高大上很有价值,只要上级满意,客户满意,公司挣到钱,大家满意就行。很多时候,大家都知道这是个什么东西,但是大家都不说,项目过得去就皆大欢喜。

在实习和工作的过程中,我越发觉得自己要学的东西太多了,而且都是自己真心想要学习的内容,涵盖技术、科研、外语、项目等诸多方面。有句话说得好,工作之后才明白,在学校里拥有大片可自由支配的学习时间是多么珍贵。

本文由作者按照 CC BY 4.0 进行授权