今天帮同学当了“人机交互”课助教的苦力,我以前一直很鄙视这种“文档驱动”的课的,课上光讲各种XX原则,再看些天花乱坠的视频,最后还是以设计文档为主力。学院主打软工类的课程,还被戏谑“文档学院” =_=
Knowing is not enough, we must apply.
Willing is not enough, we must do.
这两句话好像是Bruce Lee说的。在我们09级之后,学院这方面略有改善。今年人机交互的作业是基于自己以往做过的项目,对交互方面做改进。八成的小组都做的是Web项目,于是他们又撞我枪口了,想忽悠我no way
我想了下他们的一些特征,归了归类,以人为镜,也是对自己的反思。
关于忽悠
我一直佩服实验室一博士的交际能力,忽悠时一点都不虚,能把没有的说已经有了。要忽悠首先你要心理素质好,还要靠经验,尽量往客户方面靠。就像买鞋,不是你多大脚买多大鞋,而是他多大鞋你就多大脚。还有忽悠成功的重要因素这方面你知道的要比客户知道的多的多。
回到人机交互作业,大部分人做的都是web页面上的改进,我专做前端也有一段时间了。我跟他们说不是的地方,居然还有人要狡辩想忽悠我,真是too young了。
关于框架和插件
超过一半的小组都用了Bootstrap大法,卧槽真是热!做前端用用框架和插件很正常,但至少要保证插件之间的兼容,至少改改画风,不能看起来像两个格格不入的系统风格。有人跟我狡辩说“什么什么插件用了后什么什么地方会出问题”,我说“不是插件的问题,是你不会”。这也反映了他们对插件的过于依赖,而且在一知半解的情况下的过于依赖。
我后来跟一位同学交流了下,我说刚上来时用框架用插件确实能减少很多工作量,但是你要知道每样东西的适合之处和不适合之处,你要知道它好在哪里。之后你就要学学它们背后的理念,学会扩展它们,甚至可以依样画葫芦做一个类似的插件。
什么是交互的改进
也许是学院从大一到大三都强调的是后端编程,根深蒂固的Java习惯,好多学生不知道交互上要改进什么。有人就以为是功能上的改进,又加功能,或者是把功能的后台处理更好些。也有人以为就是改改外观。要么就是他们偷懒,不然这门课真成“政治课”了。于是我就有了奇葩的评分标准:看表单验证,看消息的弹框,看分页,看站内搜索,看用户输入是否简单,还有最重要的是看整体布局和色调是否像一个完整的系统。
还有一点感触是,作业毕竟是作业,怎么简单怎么来,直接一个alert
,直接一个<input type="date">
…… 想想我大三的时候也是这样的>_< 当然也有厉害的人,做的看起来真像一个可以发布的产品了。
前端的误区
前端 ≠ 写网页的
前端 ≠ CSS框架 + jQuery + 杂七杂八插件 + w3school手册
前端既是最容易的,又是最不容易的。
这句话不是哪抄的,是我自己的真实感受。前端门槛低,三件套(HTML+CSS+JS)在w3school上三天就能速成,而且还有Bootstrap、Metro UI等框架组件的存在,再配合jQuery,从零开始半个月就能搞个逼格十足的网站出来。再加上前端固有的“开源”特性,不会的地方可以依样画葫芦。所以前端是最容易的。
但如果只停留在“二十一天精通XXX”的程度,永远也入不了门。框架一直在变,永远被它牵着鼻子走,没有自己的理解是不行的。看过有位博主说“前端不仅仅是实现页面,前端工程师的职责是运用合理的方法让开发变得高效,让用户体验最佳”。这里说的就是软件工程、体系结构、设计模式,以及人机交互里的东西,而这些课正是我大软院的主线。我们应该把那些一套套的模型和原则渗透到实际的项目操作中去,而不是把那些课当成“政治课”去背。
我与前端
想到我自己到大三才刚碰web项目(之前都是大软院标配的Java客户端),也是从最最基础的开始看,边看边做。大三暑假在外面小作坊实习的时候,老板都是按功能分工的,修改一个功能从数据库改表开始,然后一直做到界面。每回都是把底下的逻辑理清楚了,最后纠结在界面上,一个按钮一个编辑区域一个Ajax都要折腾好久。当时就知道w3school手册,有问题就百度,别人好好的,到我这里都出问题,对知识都一知半解,老板还一个劲儿的催。
说到底当时的各种不顺都是因为没有静下心系统地学过web。对技术上的浮躁和浅尝辄止的心,又让我想换别的玩了。后来与前端的结缘是本科毕设时,分工就按前后端分,因为后端选择的语言我不会,所以我就挑了前端 =_= 那时知道了Bootstrap神奇的存在,熟练了jQuery大法的常见操作,麻麻再也不用担心我做web了……
但亲爱的那并不是爱情
渐渐明白只会用用插件,终究是个没有灵魂的躯壳。后来认真的看了看CSS中的一些定义,试图像机器一样去理解一些常见的CSS规则。再静下心看了些原生javascript的知识,理解其语言机制,可以更好的用好jQuery这把刀。
最后推荐几本书
最近在学习JavaScript框架设计 真的好难>_<
还有好多路要走,阶段性记录下,以激励自己继续前行。