上午,我正在干活。办公通讯软件弹了几条消息,通过右下角预览框可以看到,是那位刚进组差不多一个月的同事发来的。他想问我他的代码有没有问题,让我帮忙看下Log。我有点急躁,因为我正在忙。而且,一个月了,他还没有学会如何自己看log解决问题。我很想直接拒绝他,不是说我不乐于助人。而是我明白,我每帮他一次,他就少了一次宝贵的自我成长的机会。
一年前,我也是个刚入行的菜鸟,而且是从一个和芯片验证毫不相干的工作转行过来。最开始的时期是最难的,基础太差,也不好意思问别人,因为我能隐约感觉到我问出的问题会很愚蠢。而且我是社招的,不像毕业生那样被当作未来之星培养和包容。于是,遇到不会的问题我都会先网上搜索,找内部资料学习,尽量避免问那种稍微查一查就能解决的问题。但尽管如此也需要请教别人,那段时间我会经常请教我的组长。他是面试我的人,也因此我对他有一种天然的好感,就像小鸟会把睁眼看到的第一个人当作妈妈,他也是我在这家公司认识的第一个人。但我的组长太忙了,以至于有时候我早上问他问题,下午他才有时间给我解答。但他人真的很好,我的另一个同事说,他向他组长请教问题,他组长会给个大方向,但不会给详细的解决步骤。而我的组长甚至会亲自操作我的电脑,让我亲眼看到他发现问题和解决问题的过程,即使当时我没看懂,留下的操作记录也可以让我慢慢消化。也正因此,我对组长产生了依赖心理,一有问题就忍不住找他解决。终于,有次我问了个无关紧要但又很难以解决的问题,而他当时正在赶deadline,他在给我帮我看到一半的时候拒绝再看下去,并对我说:
“xx,你要有些紧迫感了,干这行你不能连这个都不会。”
除此之外,他还说了些别的话暗示我不要老是麻烦他,要自己有钻研精神。我当时羞愧难当。深刻意识到自己的无知给别人带来了麻烦,而且他当时是站在我工位旁边说的,当时办公室很安静,估计好几排之外的同事都听到了。
这次经历可以说是刻骨铭心,因为我突然惊醒,我竟然没有一次完全独立解决问题的经历,一次都没有,或多或少都要请教一下别人,而debug能力,是验证工程师最基本最核心的能力啊。从那以后,我开始尝试独立解决问题,从遇到的第一个验证环境bug着手,我要死磕到底,谁都不问,寻找一切可以寻找的线索,log,波形,review test sequence,利用一切可以利用的方法,对比,控制变量,假设,推演,搜索一切可以搜索的开放资料,goggle,技术论坛,内部培训资料。终于,我独自解决了那个bug,尽管这个bug对于项目无足轻重,但对于我,一名菜鸟验证工程师来说,是有里程碑意义的。从那以后,我感觉有越来越对味儿了,伴随着一次次解决bug带来的成就感,我的独立思考能力,解决问题能力逐渐增强了。
而且我发现,提问的过程也是解答的过程。大多数情况下,你能问出一个问题,说明你其实连问题是什么都没搞清楚。假如你在问别人之前先向自己复述一遍问题,你会发现很多时候你要问的问题很愚蠢,甚至都不能称之为一个问题。这个时候如果你重新梳理问题,会发现你把之前的问题转化成一个更细化更具体的问题,也可以称之为离root cause更近的答案。最终,你要么自己就解决了这个问题,要么会问出一个很有水平的问题,有水平到解答这个问题的人会把这次解答当成交流而不是帮忙。
有点扯远了。Call back第一段,我没有直接拒绝那个同事,而是给他指了个大方向(忽然觉得我有点像另一个同事描述的他组长)。
也call back下标题,总结两个对初级验证工程师或许有用的小tips:
- 要有一次完全独立的debug经历,非常痛苦,但非常有用,
- 问别人问题之前,先问问自己,提问的过程也是解答的过程。