学习的艺术

近来陆续有收到一些小伙伴的私信,让我感到意外的是,提到最多的问题不是关于技术,而是学习方法。很多人在这方面都遇到了困惑:比如不知道要学些什么;学了又不知道要怎么用等。

其中一位同学小 L ,她去年毕业后在一家头部互联网企业做测试开发工程师。这一年里她还是比较努力的,每天都投入 1~2 小时在学习上,但自我感觉没有明显成长。和 小 L 聊了半个小时之后,我也大概明白问题出在哪里,因此今天就把我的经验做个整理和分享,希望对处于迷茫中的你能够有所启发。

大部分新人在入行的时候,一般会采用这样的学习方式:先了解测试行业经常用到的技术或工具(比如 Selenium),而后上网搜索技术文档或购买相关书籍,接着就跟随资料开始学习。前面这些过程都很顺利,但到了真正需要投入实践的时候,发现自己脑中仍然是一片空白,不知该从哪入手。

遇到这个问题的主要原因还是学习习惯没有从“学生思维模式”转变过来:学校中的学习方式是理论先于实践,而社会上的学习方式是实践先于理论(注意这里指的是顺序关系,而不是重要性)。在学校中学习理论是为了培养我们的认识,而社会中认知是实践积累到一定程度后一点就透的东西,这是两者的不同之处。

举个例子,对一个刚接触性能测试的同学而言,即使听过全链路压测、流量模型、高可用架构,TA 也无法理解为什么要做这些事情,充其量只能明白字面含义。但当 TA 在该领域有较多的实践时,即便没有正式学习过这些技术,看到它们的描述也能理解到大差不离。同样原因,我不太推荐积累不足的测试人参加一些质量大会,除了让你以为它在“圈钱”之外,得不到什么有价值的沉淀。

那什么才是较好的学习方式?

我们可以把学习看成是作画,通过“点->线->面->体”的模式,来逐步构建我们的知识体系。需要强调的是,这里的每一步都需要日常积累,由量变转为质变,且每个阶段均不可跨越。比如下图是网上经常被拿来调侃的一幅图,跟新手的学习方式就很类似,期望第四步能直接进阶到第五步,中间的细节又不知要如何填充。像小 L 的情况就是过早追求“体系化”学习,又严重缺乏实践经验支撑,以致空有理论不会应用。图片

那如何开始“点”的学习?

我们千万不要把它当成一件很刻意的事情。比如看到大家都在谈自动化,不管自己工作中用不用得到,先买本书看看。这么做的后果是:要么枯燥无味坚持不下去,要么过目即忘白白浪费时间。知识点的积累,一定是贯穿在日常的工作细节中的

比如接口测试,可以接触到的知识点就有:DNS 解析、HTTP 状态码和请求方法、JSON 和 XML 格式、Cookie 和 Session 等等。我们必须要注意平时遇到的这些技术细节的积累,并通过单点去做进一步的牵引。很多人在第一步就已经出现问题,没有重视这种积累,而是反过来去做“规划式”的学习,自然是效率又低、效果又差。

那如何通过“点”去抓到“线”和“面”?

以 Web 测试为例,测试需要验证页面在不同浏览器下的兼容性,我们可以得到一个知识点:“同样一套代码在不同浏览器下的表现是不一样的”;经过一段时间的尝试和总结,我们发现一般兼容问题会出现在两个方面:脚本和样式,所以之后的兼容性测试会着重关注元素交互和展示界面,由此我们也将点串成了一条线;紧接着我们好奇为什么各个浏览器有差异,学习后得知是由于产商对标准实现不一致引起,甚至知道有区别的地方会在哪里,如此又形成了一个知识面;我们积累的所有知识面,最终就构成属于我们自己的知识体系。

这个过程必然是漫长而痛苦的,我们要有足够的心理准备。首先可以给自己设定适当的“短期反馈”,以维持自己的动力;其次可以和其他小伙伴结成学习小组,互相监督、鼓励。我也分享下我坚持了数年的日程表,与各位共勉:

图片

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/206787.html

联系我们
联系我们
分享本页
返回顶部