从外包点点点5K到字节16k,非科班毕业也能成功
Posted 普通网友
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从外包点点点5K到字节16k,非科班毕业也能成功相关的知识,希望对你有一定的参考价值。
16年毕业出来找工作,从小就比较喜欢计算机,大学报的也是计算机专业,奈何分数不过关,被调剂到偏门专业,在学校就有自己学测试(没人教,只能从简单的入手),学的一知半解的。
毕业后,知道自己的专业几斤几两,果断选择转行,捡起“软件测试”,在家里待了半年,天天上网查资料,找大佬,从白天到晚上,不是在学就是在学的路上,从测试理论到实战操作,大大小小的问题,在群里前辈的帮助下,总是能很快解决。慢慢的,测试方法,用例设计,web测试,app测试,接口测试。虽然离技术大牛还差很远,但是找一份初级测试工程师的工作应该完全没有问题。
第一份工作去的外包公司,但是有些外包公司给人的体验真的一言难尽
- 感觉进入外包公司会低人一等,总感觉自己是个外人,无法融入甲方公司!
- 另外感受不到归属感(过节什么的,甲方公司员工都有礼物,但你没有感觉格格不入!)
- 那些说外包公司不靠谱,是因为一旦甲方不喜欢你,可以随时与你的公司谈话,换一个人入场,而你可能会调往其他公司继续外包出去或者把你留在公司内部等待机会也或者把你开除,而这些都不会给你补偿。
在外包公司越待越觉得压抑,于是暗下决心,准备“向上”发展
学习Python,当有一门语言基础后,学习一些自动化测试框架,接口自动化,最终通过自动化来实现我们做回归测试或者冒烟测试的主要功能,以此减少我们的工作量,提高工作效率。
学有所成之后,果断跳槽,现已拿到字节的offer。
学习的路程是痛苦又快乐着的,现在从事测试行业近5年了,月薪16K
对于自学软件测试,其中的辛酸我是深有体会吗,所以我分享一下这些年来,我对测试行业技术上的一些归纳和总结,希望能帮助到有心在技术这条道路上一路走到底的朋友!
第一阶段:前置基础知识 可掌握的核心能力:
-
熟悉计算机相关概念;
-
掌握基础的测试理论;
-
熟练掌握html常用标签和语法规范;
-
掌握使用CSS定义网页样式;
-
掌握js的基本用法;
第二阶段:Linux和数据库 可掌握的核心能力:
-
掌握Linux操作系统按照和配置;
-
熟练掌握Linux常用命令;
-
掌握数据库增删改查操作;
-
熟悉数据库索引、视图、事务、常见函数等高级功能;
-
掌握Redis的string类型、hash类型、set类型、list类型等基本类型和操作;
第三阶段:测试基础 可掌握的核心能力:
-
掌握测试的基本概念和测试常见分类;
-
熟练掌握黑盒测试用例设计方法,进行功能测试用例设计;
-
熟练掌握缺陷报告的编写;
-
熟悉测试管理工具禅道和JIRA的使用
-
掌握项目测试流程;
-
掌握Web项目功能测试分析和用例编写;
-
熟悉测试计划,测试方案,测试报告的核心内容
-
掌握功能测试与数据库的关系
-
掌握Fiddler工具的使用
第四阶段:编程+数据结构可掌握的核心能力:
-
掌握Python基础语法, 具备基础的编程能力;
-
建立编程思维以及面向对象程序设计思想。
第五阶段:web自动化可掌握的核心能力:
-
能够熟练搭建Web自动化测试环境;
-
熟练掌握元素的定位方法和元素操作;
-
掌握鼠标键盘操作及HTML特殊元素的处理;
-
掌握使用UnitTest管理自动化测试的脚本;
-
熟练掌握PO模式的设计思想,并能够对页面进行封装;
-
掌握数据驱动的实现方式;
-
掌握日志的相关概念,以及日志的收集处理;
-
掌握在实际的项目中如何灵活运用自动化的相关技术。
第六阶段:移动端自动化 可掌握的核心能力:
-
掌握移动端APP测试特性;
-
能够熟练搭建移动自动化测试环境;
-
熟悉appium的工作原理;
-
熟练掌握ADB工具的使用;
-
熟练掌握元素的定位方法、元素操作和手势操作;
-
掌握单元测试框架pytest的使用;
-
掌握YAML数据读写;
-
掌握使用allure生成测试报告;
-
熟练掌握PO模式的设计思想;
-
掌握数据驱动的实现方式;
-
掌握Git的使用方式;
-
掌握Jenkins持续集成的环境配置;
-
掌握在实际的项目中如何灵活运用移动自动化的相关技术
最后为大家准备一份配套的学习资源
有需要资料的朋友可以关注公众号:软件测试大白,免费获取!包括,软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助……
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。
1年6 个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天
开篇介绍
个人背景:
不说太多废话,但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校,算是科班出身,毕业后就进了一家外包公司做开发,当然不是阿里的外包,具体什么公司就不透露了,在外包一呆就呆了整整2年多,直到现在才从外包离开,如今拿到阿里的offer准备入职了。
阐述原因:
在外包公司的两年里,作为一名菜鸡,确实非常合格,技术没什么长进,眼见也没有提升,没规划没未来,让人实在焦虑,之所以开始改变自己也是家庭发生了变故,才让自己开始思考人生。身边很多人感叹过,能从外包逆袭,算是传奇,所以今天想要分享一下个人的经历,希望能够鼓励到一些与我有相似经历的同行。
注意:这次面试过程比较长,内容繁多,在文章中我基本上简述了,文章里的面试题完整版和我个人的总结方法经验(面试学习和刷题笔记),都整理有PDF完整版,有需要的可以看文末获取。
阿里巴巴Java岗面试题分享
——一顾阿里一面被怼(未知部门)
阿里巴巴未知部门一面(问的问题让我感觉是偏金融的部门,面试官很严肃,现在想想都有些后怕)
- 自我介绍
- 开源项目贡献过代码么?(回答没有,很尴尬)
- 之前在部门做什么?简单介绍一下业务吧,内部有哪些系统,作何交互过程说一下
- Dubbo踩过哪些坑?分别是怎么解决的?(我答了异常处理时业务异常捕获的问题,自定义了一个异常拦截器)
- 说下你对线程安全的理解
- 事务有哪些特性?
- 怎么理解原子性?
- 讲一下乐观锁和悲观锁的区别,这两种锁在Java和MySQL分别是怎么实现的?
- HashMap为什么不是线程安全的?怎么让HashMap变得线程安全?两者的区别是什么?
- jdk1.8对ConcurrentHashMap做了哪些优化?为什么这样优化?
- redis主从机制了解么?怎么实现的?
- 有过GC调优的经历么?(有点虚,答得不是很好)
- List,Map,Set三个接口存取元素时,各有什么特点?
- TreeMap和TreeSet在排序时如何比较元素?Collection工具类中的sort()方法如何比较元素?
- Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行 它们有什么区别?
- 线程的sleep()方法和yield()方法有什么区别?
- 当一个线程进入一个对象的synchronized方法A之后 其他线程是否可进入此对象的synchronized方法b?
- 请说出与线程同步以及线程调度相关的方法
- synchroized关键字的用法?
- 启动一个线程是调用run()还是start()方法?
- 有什么想问的么?
——二顾阿里二面惨败(菜鸟网络)
阿里巴巴菜鸟网络一面:
- 先来了个自我介绍
- 然后介绍了自己简历里写到的一个比较熟悉的项目(询问了项目的细节及具体的实现)
- 接着面试官开始针对项目进行提问:(1)高并发的情况下,Kafka消费到第一条记录,在下沉服务处理好,但由于网络抖动没有正确返回给上层,上层服务再次调用服务,怎么样保证只处理一次请求?(我答了分布式锁,介绍实现)(2)有自己用Redis实现过吗?说说看
- 介绍一下Redis的zset实现(回答的根据skiplist+hashtable和多级索引的方式实现)
- 介绍一下B树。(自己拓展开来回答,讲到了B+树的区别,聚簇索引和非聚簇索引,为什么B+树更矮胖,如何确定B树的阶等。)
- 如果是普通索引,如何查找到对应的数据?
- hashmap如何扩容的?讲transfer方法和resize方法。为什么容量是2的指数次幂?
- 介绍一下悲观锁和乐观锁。
- 介绍一下线程池(介绍几个参数以及几种常见的线程池,各自的阻塞队列)
- 几个参数之间的关系?
- 介绍一下jvm内存分区和垃圾回收机制?
- 如何确定eden区的对象何时进入老年代?当线上监控中心的新生代和老年代哪个区域发生垃圾回收,表示此时比较危险?
- Spring的两大特性?Springboot如何实现自动装配的?aop在项目中用过吗?怎么用的?底层是如何实现的?介绍一下动态代理。jdk原生的动态代理和cglib的动态代理有什么区别?
- spark和flink的区别?(简历没写flink,但之前有spark任务,就勉强回答了一下)。
- 有没有发生数据倾斜的情况?如何解决的?怎么观察spark任务的执行情况?
- 有了解过apollo吗?
- 了解CAP原则吗,介绍一下?
- 你有什么要问我的吗?
阿里巴巴菜鸟网络二面:
- 自我介绍,这次着重介绍自己的项目经历和项目总结。
- 介绍项目,我刚说第一个就被面试官打断了,感觉要开始怼我,直接问有没有更亮点的项目。然后我介绍了另一个比较难的项目,讲了一些业务背景以及使用到的技术栈,不知道为什么面试官没有拓展开继续问下去了。
- 网络协议有哪些?
- 讲讲ThreadLocal的作用,是否线程安全?
- 进程间的通信
- TreeMap讲解,里面有什么属性,entry里有什么属性?
- Java里有哪些是不需要加锁的同步方法?
- 行锁和表锁的区别、场景
- 组合索引的使用,eg. (a, b, c)索引,where a=x;where b=x;where a=x and b=x;哪个能使用索引?
- ArrayList和linkedlist的区别?
- 有哪些集合类是线程安全的?
- 算法:(1)排好序的数组,找2个数的和为M的所有组合;(2)大数据下,找出出现频率topK的ip
- 上家公司的研发部门有哪些组?大致的工作内容是什么?一个组多少人?你在什么组?负责什么?
- 离开上家公司后,在看什么书?学习什么技术?(回答在研究Dubbo和MySQL,还看了一些底层实现的东西)
- 截止目前,你自己感觉面试表现怎么样?
- 你有没有要问我的?
面试总结及建议
每一次Java面试,其实都是一次学习机会,是对自己技术知识栈的梳理、考核、复盘。我们应该抱着学习的态度,认真对待,找到自己比较薄弱的环节,尽快去查漏补缺学习巩固。对于面试来说,其实也没有太多的技巧可言,面试官主要看重的就是个人能力,无非就是两个方面:
- 技术广度
- 技术深度
外包CRUD屌丝,是怎样逆袭的?
外包出身的我,究竟有多么菜,多么屌丝呢?还在外包的我,面试时被问到什么是成员变量,我是什么都不知道,相信这种程度大家应该有所感受了。
那作为一个外包CRUD屌丝,我是怎么做到逆袭的呢?
注意:下文主要是我个人的总结方法经验(面试学习和刷题笔记),都整理有PDF完整版,有需要的可以私信我「成长」免费分享给你。
01 梳理知识体系,学会查漏补缺
关于知识体系的梳理,我个人主要分为以下5个部分,有针对性的,将这5个部分逐步击破,那么搞定面试是基本没什么问题了。
- 并发编程:多线程,高并发,CAS,锁,容器,线程池底层
- 性能调优:Mysql,IO及网络调优,算法调优,JVM
- Spring全家桶:Spring,SpringMVC,MyBatis,IOC,AOP 缓存数据库:Redis,mongoDB,MySQL
- 分布式&微服务:SpringBoot,SpringCloud,docker,maven
02 根据要点,逐个击破(根据大纲内容来进行复习)
1.并发编程(核心技术笔记)
- Java多线程技能
- 对象及变量的并发访问
- 线程间通信
- Lock的使用
- 定时器Timer
- 单例模式与多线程
- 拾遇增补
K8s学习指南
k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,推动了微服务架构等热门技术的普及和落地,正在如火如荼的发展。
点击免费领取我的学习笔记:学习视频+大厂面试真题+微服务+MySQL+Java+Redis+算法+网络+Linux+Spring全家桶+JVM+学习笔记图
Spring Cloud微服务实战
SpringCloudAlbaba笔记
redis深度笔记:核心原理和应用实践.
珍藏版Mybatis:入门+配置信息+印射+缓存+整合Spring+面试
MySQL性能调优与架构设计解析文档
Nginx实战
ElasticSearch学习笔记
1000道互联网Java.工程师面试题
点击免费领取我的学习笔记:学习视频+大厂面试真题+微服务+MySQL+Java+Redis+算法+网络+Linux+Spring全家桶+JVM+学习笔记图
以上是关于从外包点点点5K到字节16k,非科班毕业也能成功的主要内容,如果未能解决你的问题,请参考以下文章
1年6 个月13天,从外包到拿下阿里offer,没想到屌丝也能有今天
上岸16K,薪资翻倍,在华为外包做测试是一种什么样的体验····
162天,我从腾讯外包月薪5K到转岗正式员工月薪15K,究竟经历了什么?
从腾讯外包月薪5K到转岗正式员工月薪15K,这178天的心酸只有自己知道...