背景

先说下背景吧,我是2019年毕业的本科生,985非科班,而且是和计算机专业八杆子打不着的那种非科班。大二的时候打球认识了我们学校一个计算机专业的学生,听他说互联网现在薪资好高,写代码特别有意思,于是开始跟着他学了一些写代码的知识。我之所以说是“写代码的知识”而不是计算机知识,是因为我当时是直接上手学Java Web那一套东西,什么数据结构、操作系统、计算机网、数据库完全没看直接就开始搞“xxx管理系统”这种玩具项目了,写出来的代码现在看来不堪入目,想想也挺有趣。学得感觉差不多了的时候就开始投实习简历,大三机缘巧合之下进入了广州的一家互联网公司实习。可以说是运气很好了,以我当时的水平,今年再去投这家公司的实习估计一面都过不去。

后来也算是有了大半年后端开发实习经历吧,这家公司也给我发了校招offer。我借着这段实习经历,秋招又陆续拿到了几个互联网公司的offer。后来因为前女友保研到了北京的缘故,我选择了一家大厂的测试开发offer,去了北京。

测开的工作体验

入职以后,发现测开要学的东西还是不少的。Docker、Jenkins、Python、CI/CD啥的。不过干了一阵我就发现,就算是在一家号称技术驱动的大厂,测试开发工程师这个岗位的工作内容还是以业务测试为主。我终于理解各路测开JD上那句“热爱质量保障工作”是啥意思了:所谓测试开发,保障质量是根本,“点点点”是保障质量的重要手段,开发能力也是保障质量必不可少的,但本质上讲,测试开发工程师的开发部分,也是为了测试。

因为有些东西单纯靠点点点很难高效测好,所以需要具备一定的开发能力;因为维护一套稳定的测试环境,能更好地测试,所以需要熟悉Docker和Linux脚本;因为持续集成、自动化测试能更高效地回归已有功能,所以需要懂python脚本和Jenkins;因为测试需要复现问题,定位到是谁的Bug,所以需要熟悉查日志、Linux命令。测试开发工程师,本质上就是一个测试的岗位。很多应届生都在问哪哪哪的测试开发,开发部分占多少比例,我觉得这个问题没有意义,因为测开的目的是保障质量,是测试,如果你所在的业务,点点点能更高效保障质量,那你的工作就是点点点为主,如果写代码写测试工具能更好地保障质量,那你的工作写代码的成分就会多一些。点点点和开发测试工具都只是手段,本质上都是为了测试,如果你本身就不喜欢测试,不喜欢那种费尽心思找到一个Bug的感觉,那你就不适合测开这个岗位。

真诚地告诉各位想投测试开发岗位应届生:各路测开JD里的那一句“热爱质量保障工作”,可能是整个JD里最真实的一句话。建议认真思考下自己符不符合这句话。

转开发的准备

大概在今年2月左右吧,我实在是厌恶了每天高强度的业务测试工作,因为我本质上不是一个喜欢质量保障的人。于是产生了转行的想法,我当时有两个打算,一个是转产品经理,一个是转后端开发。转产品经理这个打算在三四月的时候就彻底取消了,因为我发现以我的背景,别说什么大厂小厂了,想拿到一个正常点的产品经理offer都是不可能的事情。所以,我的出路就确定了:转后端开发。

因为我有过一段互联网公司的后端开发实习经历,而且还是985+大厂出身,所以简历还算比较好写,简历关也好过。接下来就是准备面试了。因为疫情的缘故,春节那段时间没什么聚会,我刚好就利用了这段时间,把leetcode hot100、剑指offer的算法题从头到尾过了一遍。因为前年秋招的时候刷过,所以这个并没有花费我多少时间。春节假期剩下的时间,我把实习时候的做的项目仔仔细细总结了一遍,涉及到的技术也都再认真复习了一遍。然后是选语言,虽然我是写Java出身的,但已经快一年没碰过Java了,而且Java要准备的东西太多了,所以我选择了平时工作刷题用到的Python。后来发现招Python后端开发的公司太少了,于是又速成了一下Golang,花半个多月的时间用Go撸了一个小项目,开始投Go的岗位,当然这是后话了。春节过后就开始边投简历边学习啦。

我一开始投都是小厂,找面试感觉。面了几家后发现,虽然是社招,但由于我非科班+转行,面试还是以计算机基础知识的考察为主。我在操作系统、网络之类的基础知识上的掌握还是欠缺了很多。于是我开始学习这方面的知识。由于我是在职跳槽,而且我们公司工作强度还是很大的,我没有时间从头到尾把《现代操作系统》《TCP/IP协议详解》《Unix网络编程》之类的书从头到尾过一遍。所以我选择的方法是直接在网上看面经,面经上考到的相关知识点都搜出多篇博文或者查书,综合对比来记忆理解。简单来说就是面向面经学习。

这段时间可以说是我工作以来最辛苦的一段时间,在日常平均10点下班的情况下,还要回家马上开始学习,平均每天学到凌晨两三点吧,然后还要抽出时间去面试。所以还是和各位应届生啰嗦一句,入行需谨慎。

面试

两三个月的时间里前前后后面了十几家公司吧,也拿到了一些offer。因为我那段时间实在是太累了,所以很多面经都没有总结

图森未来:

一面:

两道算法题。一道是方程求根;一道是李抠肆舞。两道都是先说思路再写,做出来后还有follow-up。

二面:

1.python的装饰器、functools.wraps的原理、atexit、多种方法实现单例模式。

2.一道sql题,出个场景写sql,怎么加索引,加了之后的执行过程。

3.DNS协议的解析过程。

4.TCP的三次握手。

剩下的忘了,肯定不止这些。

三面:

深挖实习项目,问题没啥代表性。

图森的整个招聘体验是我这两个月以来遇到的最好的,最后HR还会给你面试官的反馈,可以说是很良心了。

快手:

一面:

1.Flask的context、threadlocal。

2.docker的namespace和cgroup、cmd和entrypoint的区别。

3.TCP的三次握手。

4.僵尸进程和孤儿进程。

5.RPC服务的概念,RPC服务一般都怎么做序列化?怎么处理传输层的字节流?

6.散列表、哈希算法,如何处理哈希冲突。

7.反转链表。

8.利口妖凌武

二面:

纯写题。

1.利口妖尔巴

2.利口尔妖武,不能用优先队列做。

3.具体忘了,一道图的题,很像剑指offer里面的岛屿最大面积,反正我用BFS做出来面试官说OK。

三面:

1.原地对链表排序。

2.一个系统设计,排名系统。各种表怎么设计,应该怎么加缓存啥的。讨论了很久。

3.聊了下我现在做的业务,以及面试官介绍自己部门的业务。

快手的面试感觉很注重计算机基础和算法题,项目一点都没问。

音娱时光:

一面:

1.反转链表

2.Z字打印二叉树

3.python的dict 底层是什么 哈希算法

4.python的垃圾回收机制

5.https加密过程 客户端如何识别服务端的证书?比如服务端A发送服务端B的证书?

6.http2 了解么?

7.get和post有什么区别?put和post有什么区别?幂等性是什么?为什么put有幂等性,post没有?

8.tcp的三次握手 作用 流量控制 滑动窗口 如何理解tcp是基于字节流的

9.url请求到服务端返回的全过程。

二面:

1.多叉树的第n层 层次遍历

2.递归太深会怎样?答栈溢出。为什么会栈溢出?python函数中的临时变量存在哪?那很深的时候,用循环会怎样呢?为什么不会栈溢出?

3.什么是阻塞?

4.装饰器是什么?装饰器中的变量是放在哪的呢?

5.cookie和session,session是在哪的呢?sessionid是怎么拿到,怎么查的呢?

三面:

1.反转数字,不能把数字变成字符串。

2.一些基础题吧,我忘了。

音娱时光这家公司给我的面试体验也是比较好的。上网搜了下,是一家A轮创业公司,做日本直播产品的,也做出了一些成绩。

滴滴:

一面:

1.四次挥手 time_wait怎么产生 有什么危害

2.进程间通信 匿名管道和命名管道的区别

3.http 长连接 http怎么解决沾包问题 thrift怎么解决沾包问题

4.统计日志文件中502的次数

5.手机号用mysql中的什么数据类型

6.B+树的叶子结点存什么

7.sql慢查询

8.微服务的理解

9.分析 sql语句的时间

二面:

我不知道二面马上接着一面开始,导致我面完回去开会了。等HR打电话给我的时候,面试官已经等了一会了,深入问了下四次挥手time_wait,我不咋会,面了二十分钟左右就结束了。

木瓜移动:

进去先写一套笔试题,一共是三道:

1.有一个表,只有一个字段队名,四条数据abcd。假设abcd分别代表四只足球队,写一条sql,结果是四只球队之间的对阵。

2.shell脚本,输出一个日志文件第五行出现次数最多的五个第五行的内容。

3.算法题,编辑距离。

一面:

1.讨论上面三道题目

4.IO模型、进程间通信

5.问项目 反射是什么

6.mysql建索引的原则

7.新建一个索引会发生什么

8.https加密过程

9.list和数组什么区别

一面完后就是HR面,问了下薪资,然后告诉我二面面试官请假了,如果有二面的话会安排视频面试。然后就没有然后了。

网易游戏:

一面:

1.如何测试rpc服务的并发量。python的多线程可以么?python有GIL,为什么多线程还生效?

2.Thrift有什么优缺点。

3.dict的底层实现。

4.shell :统计今天的日志的个数

5.shell:统计某某和

6.TCP的拥塞控制算法

7.TCP的滑动窗口协议,滑动窗口的大小是如何计算出来的?

8.进程的内存管理、内存分布

9.python的迭代器和生成器,有什么区别和特性

10.python装饰器、有参数的装饰器和没参数的装饰器有什么区别

11.python里is和==的区别?a=1,b=1,a is b是啥?python会缓存什么?

12.python的垃圾回收机制。除了引用计数还有什么?

13.python源码读过吗?

14.内存中堆和栈的区别?临时变量放哪?

15.线程同步一个进程的什么?

16.阻塞是啥?send recv 阻塞非阻塞的区别?阻塞的线程占用CPU吗?为什么vim一个超大的文件CPU会卡?

17.起几个线程死循环 cpu会爆吗?

18.epoll和select?epoll 边缘触发。

19.链表找环的入口

20.省份定位ip

21.64只球队找到最强的,找前二强的,前k强的。

不止这些,两个面试官内容非常多。还有的我忘了。

二面:

两道算法题吧,都是动态规划的。具体的我忘了。

网易游戏的面试非常有难度,对基础知识都是不断深挖问到你不会为止。

还有几家ihandy、Face++、虎牙直播、伴鱼、smartx啥的,面试内容我基本上彻底忘了,要不就是搞混了,就不发了。


如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论,

咱们下期见!答案获取方式:已赞 已评 已关~

学习更多知识与技巧,关注与私信博主(03)

【社招】一年测开经验转后端开发经历。相关推荐

  1. 我为什么拒绝了一个5年测开经验的候选人

    某互联网大厂的测试开发岗位招聘时,收到一位 5 年测试开发经验的候选人,是南京大学软件学院的硕士,毕业后一直在国内的互联网巨头公司从事测试框架和工具平台的开发工作. 他简历中参与开发过的测试框架和工具 ...

  2. 百度秋招补录测开一面

    1.自我介绍 2.讲项目---巴拉巴拉一大堆,不知道面试官有没有听懂,他也没有问我 3.线上写代码,开始叫我写非递归方式的二叉树中序遍历,我说不会 4.继续叫我写快排,可是我对快排不是很熟悉,于是写冒 ...

  3. 10年测开经验面试35K公司后,吐血整理出高频面试题和答案!

    一:前言 在当今竞争激烈的职场环境中,拥有丰富的测试开发经验已成为众多企业青睐的重要条件之一.而在面试过程中,高频面试题更是能够考察应聘者的实际能力和知识水平.本文作者具备10年的测试开发经验,并通过 ...

  4. 新华三社招流程_【面试经验|校招】新华三/产品经理

    以下文章来源于偏执狂的猫,作者面经分享. 参加了新华三秋招产品经理面试,共三轮面试,群面-HR面-BOSS面,新华三的销售面试感觉难度还是有点大的,因为因为刷人比例很大.效率很高,走完面试很快就发of ...

  5. 八年测开经验面试28K公司后,吐血整理出高频面试题和答案

    如何测试纸杯呢? ❶ 参考点 测试用例设计 ❷ 面试命中率 80% ❸ 参考答案 功能性:用水杯装水看漏不漏:水能不能被喝到 安全性:杯子有没有毒或细菌 可靠性:杯子从不同高度落下的损坏程度 可移植性 ...

  6. 阿里10年测开经验分享-我的软件测试之路也并不是一帆风顺

    简单的先说一下,坐标西安,16届本科毕业,目前在跳槽,一共有面试了有5家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的有5家,另外2家失败的原因在于: 1.对于 ...

  7. 8年测开经验面试28K公司后,吐血整理出1000道高频面试题和答案

    1.python的数据类型有哪些 答:Python基本数据类型一般分为:数字.字符串.列表.元组.字典.集合这六种基本数据类型. 浮点型.复数类型.布尔型(布尔型就是只有两个值的整型).这几种数字类型 ...

  8. 2020网易社招面试题总结和经验分享

    前言 经过这么多场面试,我也总结出一些经验分享给大家并给出了相应的参考意见,需要的朋友可以参考下,希望大家面试顺利,拿到满意的offer! 1.不要妄自菲薄. 很多人觉得自己学校不好专业不对口,进不了 ...

  9. 没有5年测开经验,还真说不清Python生成器、迭代器、装饰器

    一.什么是生成器? 使用了yield函数 就被称之为生成器,生成器是一个返回迭代器的函数,说白了生成器就是迭代器,只能用于迭代操作. 不懂?没关系,下面就一个斐波那契数列为例来进行讲解: 依靠简单循环 ...

最新文章

  1. sql server 日期
  2. Java是如何实现自己的SPI机制的? JDK源码(一)
  3. visual studio installer正在提取文件_并非危言耸听,赶紧检查自己网盘内的私密文件...
  4. Ext JS学习第十六天 事件机制event(一)
  5. VMware 虚拟机 无法将Ethernet0连接到虚拟网络VMnet0 问题
  6. zabbix3.0安装过程记录
  7. QTableWidget去掉默认行号
  8. 网易云信启动“T服务”,为开发加速
  9. Java 截取反斜杠--java使用split拆分特殊字符
  10. mysql备份表恢复数据库_mysql备份恢复数据库据/表
  11. css中auto的用法
  12. 一起谈.NET技术,Silverlight 游戏开发小技巧:实现街霸4的选人界面
  13. Nginx学习笔记:基础
  14. 什么是SQL Server GETDATE()函数?
  15. Centos7安装Docker-1.9.1
  16. Atitit java的异常exception 结构Throwable类
  17. Unity3D | 经典小游戏Pacman
  18. 阿里云移动测试平台使用教程
  19. 【阶段二】Python数据分析Pandas工具使用07篇:探索性数据分析:数据的描述:数据的集中趋势
  20. python输入直角三角形的两直角边,求周长、面积和锐角度数

热门文章

  1. c6.nv9.info.php,com.apk 0% 的殺毒軟件(0/32) 報告發現病毒 - VirSCAN.org-線上防毒引擎掃描網站 v1.02 目前支援 47 款防毒引擎...
  2. java 网银支付收款接口_农行网上支付平台-商户接口编程指南-Java_Edition-V3.0.2.pdf...
  3. spring-boot-maven-plugin 报错,找不到
  4. 浏览器对css 伪类 hover的支持
  5. python下载图片代码并解析_Python爬取小姐姐图片代码_批量下载
  6. 2920集五福_2019集五福刮刮卡支付宝积分翻倍规则
  7. 雷·达里奥(Ray Dalio)的11条创业持久成功法则
  8. Javascript 笔记基础(一)
  9. 21:Integer Intervals
  10. 大数据企业,主要需要什么类型的人才?