“技能”!=“解决问题”
计算机人机交互领域的科学家 Bill Buxton 作于1995 年
Bill 说技能的反面是 ”Problem Solving” – “解决问题”, 这个听起来有点绕,我们看看IT 人士熟悉的一个例子吧。
一个IT 专业的大学生来面试, 简历上写“技能: 精通 Visual Studio C# 编程”。于是面试官请他实际用VS IDE 写一段程序 (冒泡排序)。一个“不精通”的面试者的编程过程实际上就是一个“解决问题”的过程。例如:
· 嗯, 怎么开始一个C# 的命令行程序呢?
· 定义数组是怎么弄的? 是“int [] arr”还是“int arr[]”, 还是 ArrayList,还是 Array
。哦, 我平时都是上网查的. 哦, 我不知道还有 MSDN 网站。 · 嗯, 为什么编译没过呢, 哦, 这里少一个分号。
· 嗯, 怎么设断点? 怎么定义命令行参数? 额, 我要查一查…
你发现他把时间都花在“解决 (低层次) 问题”上了, 你想考察的“算法技能”、“C# 程序设计技能” 都无暇顾及。注意, 这是在他认为非常精通的编程工具和编程语言中出现这样的问题。你要这样的员工么?
那怎么提高技能呢?
答案很简单, 通过不断的练习, 把那些低层次的问题都解决了, 变成不用经过大脑的自动操作, 然后才有时间和脑力来解决较高层次的问题。
从科研,或者理论的高度上说, 所有的“技能”都能总结成简单的”已经知道怎么做了”。
例如:
下围棋怎么做?每一步都占据全局价值最大的一点, 直到终局, 即可获胜。
打乒乓球怎么做?把对手打过来的球都打回去, 直到对手的球出界或下网, 即可获胜。
而这,应该是不正确的吧。
参考链接:https://www.cnblogs.com/xinz/archive/2011/08/07/2129751.html