阿里感悟(二十)-如何判断一个人是否聪明
最近在面试实习生,对实习生的基本要求是扎实的基础能力和优秀的学习能力,更高的要求是要有实战能力。
基础能力和实战能力都很好判断,问技术题目,看看学生有没有做出什么程序。但是如何鉴别一个学生有优秀的学习能力呢?我认为优秀的学习能力的人一定具备两个特性聪明和勤奋。
那么问题来了,如何寻找一个聪明的人?知乎上说聪明就是 能够用最短的路径去解决问题
- 所以你需要知道,解决这个问题有哪些途径。
- 你需要了解,每一条途径的方式和成本。
- 最后,你需要能够在所有路径中,用最短时间做出最优的选择。
(摘选自知乎)
总结下,聪明的人会通过勤奋训练掌握更多的信息量,通过思考找到最优解。自己也和前同事一起沟通总结了几点,聪明的人一定具备以下几点
- 掌握系统化的学习方法
有哪些学习方法?这些学习方法你觉得哪一种最好?如何系统化的学习一门技术?如何选择技术书?学习过哪些技术网站?
优秀的学习者知道系统化的学习知识,知道学习讲究方式方法,而不是遇到问题再查百度。知道实践的重要性,见之不若知之,知之不若行之,比如把书上的例子都在IDE里执行一遍,你会发现理论和实战还是有点差别的。
- 研究技术而不是使用技术
学习技术能否把握住技术的核心,是停留在用技术上,还是会去主动研究技术,比如Java应该学习垃圾回收机制,多线程和类加载机制等,J2EE开发应该学习HTTP和TCP协议,Spring主要学习IOC和AOP。更优秀的是创造技术而不是消费技术,比如创造一致性Hash协议。
- 逻辑思维能力强
通过问一些开放性的问题,看看同学的解题思路,比如如何计算长江的长度,如何计算埃及金字塔的高度,如何设计一架飞机能装满撒哈拉沙漠的沙子。
最后我也会问候选人,怎么判断一个人是否聪明?
原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 阿里感悟(二十)-如何判断一个人是否聪明
我到觉得,您上述的种种特质并不能代表一个人聪明,更多的是代表一个受过良好教育的、有足够内驱力的人。
真正聪明的程序员,应该是一个能较快解决问题的人,给他分配个任务,就算不了解这个项目中的很多技术,不了解业务逻辑,也能有个清晰的框架,各种百度解决问题,最后在规定时间内完成任务。
完成任务的同时,也就对所用的技术有个差不多的了解了,之后才是进一步深入的过程。
聪明的程序员能较快解决问题没错。问题是如何通过电话问几个问题就能判断他是真正聪明的程序员呢?