这篇开始之前,想问大家几个问题
- 为什么你的网盘资料那么多,总是学不会?
- 为什么你总是说学的自动化测试用不上?
- 为什么你总是说没时间,大家都是24h,你的时间去哪儿了?
我认为对于大多数人来说,缺乏的并不是学习资料而是学习能力。我用的是能力,不是说学习方法,也没有说知识体系,因为你没有这个能力,根本驾驭不了方法,也构建不了知识体系;今天聊得这部分内容不会教你具体的测试技能,但有可能会帮你从巨大的认知黑洞中捞出来。
关于上述的三个问题你需要思考的是你能达到目标的前置条件或者说底层逻辑。
1.为什么你的网盘资料那么多,总是学不会?
网盘资料很多,第一件事情不是按部就班学习,而是能够快速的全局的浏览,把没用的,残缺的,各种培训机构的引流资料删除,如果你这一步不做,每次都是从头开始学习,学习到关键点就会出现信息缺失,这不仅仅浪费时间,多遇到几次还会严重打击你学习的信心,你觉得如获至宝的资料实则是毒资料,如果你的网盘资料多达几百G甚至更多,我可以说,你能学会的可能性很小了,但是你潜意识里会认为,只要我网盘里有这个资料,有时间看技能跟谁一样厉害,不仅不能帮助你提升还会增加你的拖延症,可谓是毒上加毒。
2.为什么你总是说学的自动化测试用不上?
你有没有自动化需求提取的能力。很多小伙伴说,我们公司用的平台,不需要自己写代码。这件事情本质是你对技术的掌握根本没到应用级别或者对测试的理解还比较表皮。对于业务测试的重复老劳动其实很多,并不是一个平台就可以去解决所有的问题。在一些开源帖子中,看到很多小伙伴自己去封装各种中间件的链接去补充测试,在一些项目里,自己写了很多脚本造数,清理数据,商品池筛选等,这些定制化的业务并非通用的工具就能做的很完善,只要深入挖掘,还是有很多实践的机会。如果你的自动化技能本身还达不到即插即用,把自己框在pytest,selenium操作方法里,这是远远不够的。而且当你的知识没达到应用级别,自己也提取不到需求时,你还会发现你学啥忘啥,根本记不住。
3.为什么总是说没时间,大家都是24h,你时间去哪儿了?
对一件事情没时间,本质上是你认为这件事情不重要,其次是不会利用碎片化时间。
对于第一点不用多说,你觉得一件事情对你不重要,甚至还要耗费你精力,短期内也不会有回报,不愿意投入时间也是人的本能反应,但本能归本能,人要想变得更优秀,本身就是在改变本能。
第二个是碎片化时间利用,你说每天固定几点到几点学习,你又不是学生,为啥会给你整段的时间去学习,这个时候你不是用时间导向,而是用结果导向,比如某工具开发,某知识点学习,必须在几点前完成,无论是碎片时间还是有整段时间都要搞定。而不是说我计划几点到几点完成什么事情,当遇到其他事情插入时,原来的时间又被刷掉了。也有人说每天都在开会,你要先想一下跟你关联的重要程度,会议里大部分时间都跟你有关吗?有时候你想爬上另一座高峰,前提是你先下山。
我从我个人成长角度来聊如何构建知识体系和做事逻辑。
所以学习之前先想清楚一个问题,什么是学习能力,学习能力可以认为是知识体系+做事逻辑,绝大多数人只看到知识本身,但看不到也想不到逻辑,逻辑对照上文你可以认为是整理网盘资料的逻辑,提取需求的逻辑,安排时间的逻辑。比如你说你会自动化,但你没有结果,领导不会说你不会写自动化,但可能会说你能力不够,落地不了。本质上是因为你逻辑这块缺失,直接导致你没有实际产出,也间接导致你的知识体系本身并不完善。逻辑就是让你能够把东西和问题联系起来,并有助于构建知识体系。
知识体系如何构建?
举个例子,你看一本如果都是从第一张循序渐进开始开,其实是比较难得,容易陷入某一段里面,也没法产生联系。如果要掌握一本书,建议你先看目录,先了解知识大网包含的内容,对每一章节的知识有了层次,这样会让你事半功倍。我们有时候发现有的人学习起来特别快,但并不一定是智商一定比你高,而是他找到了进入这个领域的脉络图。
写博客/公众号
看的东西做笔记,走马观花很容易忘记也不能深入掌握知识,笔记可以整理出要点和知识盲点,把笔记放在博客或者公众号上,有利于互动反馈,如果有更多的赞赏会让你更有动力做这件事情,促使你更快速的提升。
场景式学习、面对问题学习
挖掘问题或者需求的能力,讲心里话,如果一个同学入行三五年,他还是认为他工作中没有自动化需求,我是觉得他可能已经废了,这样的同学不管是知识体系和逻辑都不会很好;有的同学学Python,每次都从列表,字典开始学,至于工作中怎么用还是一头雾水,比如我在jira上根据项目或者owner去统计bug的数量,首先这个需求是我自己提取出来的,是我职责内的需求,其次我实现了这个需求我对Python中的字典又有了进一步的理解,通过这样的学习方式你也会获得职场给更多的正向反馈,如果你心里还是等待领导部署任务,带着你学习,梦还是早点醒吧。
逻辑怎么构建?
最核心的要素就是实践+复盘,实践跟怎么学习是一脉相承的,复盘会帮助你找到每次实践的缺陷和修正你的思考方式以及经验补充。在这个过程中,从别人身上汲取营养也是很重要的,最好不要过度使用别人的的时间。
举一个我看到的例子:应用刚启动连数据库比较慢,怎么排查?
- 通过tcpdump来分析网络包,看网络包的时间戳和网络包的内容,然后找到了具体卡在了哪里。
- 性能测试/DBA可能会通过show processlist 看具体连接在做什么,比如看到这些连接状态是 authentication 状态,这个状态是创建连接的时候MySQL需要反查IP、域名这里比较耗时,通过配置参数 skip-name-resolve 跳过去就好了。
- 如果是MySQL的老司机,一上来就知道连接慢的话跟 skip-name-resolve 关系最大。
在我眼里这三种方式都解决了问题,最后一种最快但是纯靠积累和经验,换个问题也许就不灵了;第一种方式是最牛逼和通用的,只需要最少的知识就把问题解决了。
那时候我还是职场菜鸟,我不会轻易去打搅他问他,每次碰到问题我尽量让他在我的电脑上来操作,解决后我再自己复盘,通过history调出他的所有操作记录,看他在我的电脑上操作啥了再去搜索查看,然后一个个去学习分析他每个动作,去想他为什么搜这个关键字,复盘完还有不懂的再到他面前跟他面对面的讨论他为什么要这么做,知道他这么做的知识和逻辑是什么。