面试常见问题

1、你遇到过最有挑战的技术问题

这类问题开放性比较强,考核程序员的综合能力和表达能力。对技术问题的解构和分析,解决思路、方法,还有解决后的思考。

这类问题隐式的问了三个问题:What?How?Why?

What,就是遇到的问题是什么。

How,How就是你怎么解决的,包括怎么定位问题,怎么分析问题,怎么获取解决的方法,用了哪些工具,库以及知识点,怎么用等

Why,为什么这么做(解决问题),考核对技术的理解程度,以及对解决方案和工具选型和取舍的思考

万能“挑战问题”答案模版

我(最近的一个时间)在做(怎样的一个产品/程序),这个产品/程序的目的是(帮助用户完成什么事),其中有一个(什么模块),为了实现(什么功能),用到了(什么技术),但是(遇到了什么挑战/难点/bug),我通过(怎样的手段)定位问题所在,问题出现的原因是(简要的点到技术点的描述),我在(至少两个资料来源)上找到了参考,最后基于(怎样的决策标准)决定采用(何种解决方法),运用了(哪种技术),最后成功解决了问题/实现了功能,结果是这个产品/程序(对用户,系统,性能,可用性,资源等产生了何种正面的影响)。下一步,我认为我应该研究(何种更先进的方式),进一步(怎样让产品/程序做得更好)。