产品的核心价值最终体现到为用户带来的价值,你不仅仅需要搞清楚用户现在要什么,还要搞清楚他们可能或者将要什么。
比如:
-
有人总是让你去查日志记录,用来确定数据的正确性。其实他是需要一个可视化查询界面。
-
实际上去观看用户使用系统的时候,会发现用户并不按照程序员的思维去使用系统。(偶然的机会,我也看到了用户使用我开发的系统的时候,修改密码->看到输入框->直接输入几个数字->修改失败->看到输入框隔壁的提示(至少8位非纯数字密码)->输入多几位数字->注意到非纯数字->修改成功),实际上提示信息一直存在,只是一直被忽略。我开始想笑,直到用户多次错误之后,就该开始思考了,怎样避免这种情况?(最近在Don’t make think 找到部分答案)
如何学习?
-
培训。参加培训或分享内容。参加培训可以扩展知识面,实际工作经验的分享也能避免工作上遇到的一些坑。但是这种分享是短暂的,如果不能自己后续将培训的内容吃透。那也仅仅是知道有这么个东西,却不会用。自己分享,则是更高的要求,要求彻底弄懂分享的内容,要求用最简洁的方式将内容表达出来,要求看大量的参考资料(包括翻译英文资料)让分享的内容更有深度,要求有实际的实践(分享内容的价值,让其他人能更快上手)
-
读书。毕业一个多月,唯一坚持下来的是读书。读完书后写下摘录和自己当时的想法,之后基本上每天都会去翻上一翻。当有人问你读了什么书的时候,你可以想起这本书到底讲了什么并且将简介描述出来。任何学习方式都取代不了读书,书在一定的程度上保证了知识的正确性,当然也有时效性。当然现在再用10年前的网页设计估计就太挫了,设计和解决方案也要跟上时代。书,是系统的学习,从入门、深入到原理,都有完整的概念,而不是零碎的信息。
-
善用网络和工具,善于搜索和过滤。除非你走在技术的最前沿,不然你遇到的大部分绝对是大多数人遇到的。网络就是一部融汇了问题和答案的百科全书,要做的是如何快捷地解决问题,检索信息。
比如:学习angularJS
检索->官网->引导->API->深入原理
->视频教程->学习实践案例
->博客->其他人总结的最佳实践和遇到的问题(参考总结出适合解决问题的最佳方案)
->stackoverflow.com->解决你遇到的问题
->直接看示例代码或源码
->实践(好代码是不断迭代,不断重构,不断修改完善出来的)