答辩那天我们组十二个人,从早上八点半到下午一点。我排在第七个,进去之前手心全是汗。

PPT做了十六页,讲八分钟。真正难的是后面十分钟。

问题一:这个功能为什么是你做,不是现成的?

我做的是一个实验室设备预约系统。老师第一句就问:这种东西市面上不是有现成的吗,你的价值在哪。

我说:现成系统按通用流程设计,我们要按课题组排班,还要处理设备临时故障的改约,改不动。说完把改约的时序图翻出来讲了一遍。

后来想想,这个问题其实在问“你的需求是真的还是编的”。答得出来,说明你真的去访谈过。

问题二:这块代码是你写的吗?

老师指着我PPT里一段状态机,问为什么用状态机不用条件判断。

我说因为预约单有七个状态,用条件判断会嵌套四层,改一次要动五处,状态机把转移关系集中在一张表里。

追问:那张表在代码哪一行。我翻到了,他点点头。

问题三:如果用户量涨十倍呢

这个我没答好。我说可以加缓存、加索引,老师追问加在哪、为什么加那里,我卡住了,只能说这块我考虑得不够。

事后复盘:不会就是不会,硬编更糟。承认边界,比胡说八道强。

几个准备上的建议

  • PPT一页只讲一件事,图比字多
  • 把自己代码里最复杂的那个函数看三遍,老师大概率会问
  • 提前想好“哪里做得不好”,这个问题几乎必问

最后成绩是中。走出教室的时候腿是软的,但那十分钟比我写三个月代码学到的东西更集中。