我之前是转行过来的,没有任何计算机基础,我在转行的时候也对自己做了性格和职业分析。性格上,我还是比较喜欢琢磨,喜欢不断提高,能静的下心,吃苦;不太会说话,情商低,不够圆滑,玩小心思肯定玩不过别人。工作上,没有计算机基础,更没有代码基础;学习能力不错,爱看书,逻辑思维一般,总体上还是比较适合做技术。分析利弊后,决定转行,这就注定了我选择软件测试这条道路,是艰难又漫长的道路。
功能测试,没什么好说的,掌握基本的测试理论更多是经验的积累。有含金量的还是代码能力。于是,开始自学代码,往自动化方向走。
我是0基础,选择了python,python虽然比较好上手,但是直接看专业书籍还是有点难度,所以还是要一步步来。
1.选择python学习的教学视频,作为入门
我会在mooc上找课程,大概了解下课程的结构,在上下班路上听听几节课,培养兴趣,差不多有点感觉就可以开始看书。
2.选择书
我选的书是 机械工业出版社出版得 python学习手册 。这本书比较系统、专业,但是翻译不是特别好。
第一遍:大致看,总体看下主要是什么内容。大体结果是怎样的,哪些是难点。 1周
第二遍:细致看,每章节更细致些看,不懂的去查,不懂得做些标记,尽量弄懂,不能搞懂就跳过。跟着书边看边写代码 2周
第三遍:仔细看,每章节都仔细看,把之前不懂得弄懂,列出书每章节得结构,把知识串起来。跟着书边看边写代码 2-3周
第四遍和第五遍:查缺补漏,跟着书写代码,知识体系化 2-3周
3.做项目
看书是为了做项目。可以先做简单得搭一个自动化框架,我选了一个实践性比较强得书 虫师的web接口开发自动化测试。这书实践性比较强,也有代码,但是很多语法过时,框架不是特别完善,需要自己重写,这个不用很介意,毕竟可以提供一个的思路,刚开始学习,给一个很完善的框架,层次太高,自己也很难达到。我利用零散时间给手头上的项目搭自动化框架,代码都是一个个敲的,加上了很多自己的思考,进一步完善了代码。周围有同事说,有很多很完善的框架,不用自己手写。但是我不太认同,自己敲下来,提升很大,有很多自己的思考,这是别人无法给你的,最后搭好之后,我又去网上找了一些比较好的框架,基本上都是我搭的这个框架的拓展,再学别的框架,自己上手也比较快。【从看书到初步写好框架 3个月时间,后续完善都是一点点加,上班时间任务比较多,后期加班也比较多,留给我完善的时间很少。总之,从开始到尘埃落定总共6个月时间】
后期三个月比教忙,主要是我开始接手一个新项目,时间短,任务重,要写很多代码,还好能跟的上测试组长写代码,发现代码能力也越来越好,非常开心。工作就是这样,你努力了,就可以会争取到更多的机会,也会朝着你想要的方向走。在年轻的时候,学习东西最重要,如果你学不到东西,就该反思了,是不是自己懒了,还是工作不适合现在的你了。
我想转为测试开发,现在还远远不够,还有很远的路要走。后期打算按着开发的路子走,以开发的标准要求自己。一方面,多做项目,自己搭平台,做前后端;另一方面,拓展些大学计算机基础知识。理论知识是内功,写出代码是外功,只有深厚的内功,外功才上乘。
之前付费听了一个老师关于计算机学习的l课程,总结了以下计算机自学路线(我是用XMIND总结的,粘贴过来可能不是很明晰):
具体书目
一 数学
1.引导:数学之美
2.比较好的书
导学:漫画线性代数
普林斯顿微积分读本
导学:离散数学导学
离散数学及其应用
线性代数及其应用
二 计算机
(一) 从全局了解计算机
计算机概论
1.科普读物
人工智能:李开复
智能时代:吴军
2.专业书籍
计算机概论:Nell Dale
计算机科学概论:J.Glenn Brookshear
深入理解计算机系统:
(二) 数据结构与算法
学习路线
前提:
编程语言
离散数学
初步了解:
算法图解
算法基础
入门,打基础:
数据结构与算法
深入学习:
算法导论
算法
(三) 计算机组成原理
推荐书目与学习顺序
推荐教材
计算机组成与设计
计算机组成原理
计算机体系结构
计算机存储与外设
整体学习顺序
1.数字电路基础
2.计算机组成原理
3.操作系统
4.编译原理
计算机组成原理的学习顺序
1.编码
2.计算机储存与外设和计算机组成原理;或者计算机组成与设计
3.计算机体系结构
(四) 操作系统
专业书籍和经典教程
操作
C编程完成教材作业
掌握linux shell编程,玩转linux
使用Java/c#等开发网络或者多线程应用长须
使用工具完成相应实验
(五)计算机网络
学习前提:
编程语言:python/java/c
数据结构与算法
操作系统
学习途径
科普读物
专业教材
计算机网络教程
计算机网络
实践:
学会使用Wireshark等抓包工具
开发网络应用
关键弄明白的几个问题
1.计算机是如何连接的
2.数据是如何在计算机网络中传送的
3.网络系统该如何构建
目前,计算机网络接触的比较多,今后再做项目的同时有空优先看网络方面的书籍,然后再拓展。
再总结下工作上的小心得,适合各行各业:
1.相同的问题,问别人不能超过三遍,问之前反复备好功课,要问什么;
2.检查工作定位问题时,关注好每一个步骤,多尝试不同的方向;
3.及时总结,文字输出;
4.制定总目标,每个阶段都要有明确的目标,每天为目标努力;
5.谦虚,多向周围的人请教,多和别人讨论,知识的火花往往是在思想碰撞中产生的。
暂时这样,后期有进展再更,加油。
2021更新:
可以参考:https://www.nowcoder.com/tutorial/97/26809a591fe34d61aed14a0f53f24e49
【敏捷测试推荐书籍】
基础敏捷
《看板方法-科技企业渐进变革成功之道》
《用户故事与敏捷方法》
《用户故事地图》
《敏捷革命-Scrum》
《敏捷项目管理-从入门到精通实战指南》
《敏捷估算与规划》
《看板和Scrum -相得益彰》
《SCRUM敏捷项目管理》
《Agile Software Development:Principles, Patterns and Practices》
进阶拓展
《探索需求-设计前的质量》
《软件需求管理 -用例方法》
《NLP 教练式技术》
《Scrum精髓-敏捷转型指南》
《如何构建敏捷项目管理团队》
《敏捷软件需求-团队,项目群和企业级的精益需求实践》
《组织变革八步曲》(乔梁提过的变革)
《The Art of Agile Development》
《The Pragmatic Programmer:From Journeyman to Master》
敏捷工程
《解析极限编程》(XP)
《架构之美》
《重构-改善既有代码的设计》
《Devops实践指南 handbook》
《代码整洁之道》
《测试驱动开发》
《人月神话》
《人件》
devops:
《凤凰项目:一个IT运维的传奇故事》
《DevOps实践指南》
《敏捷无敌之DevOps时代》
《持续交付1.0》
《持续交付2.0》