前言:
手撕代码可以体现真实的基础实例,原因是因为学习的三步骤,基础知识的掌握,自己可以构思很多的思维导图,自己可以使用代码表达出来;就如:Task Is Cheap Show Me The Code,程序员就很直接;
1、你觉得手撕代码是程序员的基本功吗?
是的。
我认为手撕代码是程序员的基本功,这个不仅仅大厂的基本功,也是程序员应该掌握的;
手撕代码的好处就是对原理深入的理解,不仅从理论层面,也在代码技巧上有自己的熟练运用;
代码的简洁易懂,遵循编程的范式以及最佳的实践,具体的可以参考阿里巴巴的代码规范(JAVA开发规范嵩山版);
深入理解底层的逻辑,在面对不同的使用场景肯定是不一样的,比如说线程安全的字符串操作类StringBuild与StringBuffer是不一样的等等;
善于学习和探索新的技术,跟上技术的发展潮流,比如说JAVA8与JAVA7有很多不同的写法等;
2、为什么会用“手撕代码”来考验程序员能力?
这个有很多的原因:时间的原因、实际掌握的编码思想、解决问题的实力等等
如果快速的检查程序员的能力,手写代码是立竿见影的;
比如说大厂就会使用该方式来进行面试,不同的算法题目,使用不同的算法,解决实际问题的时候,就能检查程序员短时间内来解决问题的能力;代码里面就包含了程序员的思想;是不是考虑时间复杂度、空间复杂度的问题等等;
3、你知道哪些常见的手撕代码的题目?
这个可以参考阿里巴巴的面试宝典,里面有很多有意思的算法小题目;
“Tom爱吃巧克力”,如何才能保证吃到最多的巧克力,在钱固定的情况下,每次都买最便宜的巧克力,可以考虑贪心算法;
“Bob的花束”,使用模拟的方式来查看所有的花束;以及送花的过程等等;