有个学生问我,优秀的程序员思维应该是什么样的?
讲道理,这个东西解释起来有点麻烦
但是我又觉得这是一个非常有意义的问题,因为很少有前端会认真去思考它
给大家讲一个案例
我们前端经常会用到的点击事件
常规的视觉里,点击就是鼠标按一下,
onclick 的存在,让许多初学者也认为点击就是按一下
btn.onclick = function() {}
但是在程序员视角里,点击一下其实没这么简单
我们至少要关注他经历的三个步骤:按下,持续时间,按起
你如果忽略一个细节,可能解决问题的能力就会弱上一分
比如许多人常常会忽略的一个步骤就是按下之后的持续时间,
我们脑袋里面没有持续时间这个概念
于是,新手程序员往往会对轻触、双击、长按事件束手无策
有没有?
因为在你的脑海中,点击事件被简化成为了 onclick,于是与他相似,但是又有那么一点差别的功能实现起来就没什么头绪了,你看不到他们的相似性
但是如果你关注了持续时间,那么这些操作实现起来就跟点击一下一样简单
这就是差别
当然我们还可以继续扩展
因为按下这个事件,也是被简化之后的结果,
我们至少还应该关注按下时的位置信息,这是精准描述你按下的不可或缺的条件
但是我们在使用的过程中,这个位置信息也被简化了
因为缺乏对于位置信息的关注,新人朋友就会对拖拽一头雾水
视差效果的实现也是一个难题
拖控件来完成网页的布局也不知道应该怎么搞
玩过英雄联盟的同学都应该知道,许多技能都是指向性的,因此,你要释放这个技能,如果只是点一下,就不行,就必须得配合另外一个条件来指定该技能释放的方向
在PC端比较好做到
但是在手机端,没有了鼠标和键盘,又应该怎么做呢?
我相信一定有人不知道如何实现
但是,他的实现过程跟点击一样简单
在技能位置按下 -> 移动 -> 在合适的位置按起
我这样简单的表述,不知道能不能为大家提供一点灵感?
总的来说,优秀的程序员都具备创造者思维,看问题更偏向于接近事物的本质,与此同时,他们具备更强的学习能力和解决问题的能力。
不过可惜的是,由于种种原因,前端程序员容易陷入使用者思维,他们在自我成长的过程中,会走更多的弯路,更难以突破瓶颈,甚至会给人一种,前端程序员不像是程序员的感觉