【回馈牛客】测开学习路线——1_项目和编程语言

序言

本来下一个想更阿里Lazada面经的,但有牛油想了解测开学习路线,那我就先更一下吧,面经先放放,大家别急
我将从项目、编程语言、数据结构、数据库、计算机网络、操作系统、Linux常用命令、软件测试知识、智力题等方面详细介绍。
我本来想详细给大家写出答案的,后来想了想会有弊端:
1、会让我的面经成为八股文(哈哈哈,估计也没啥人看),不利于大家的深入学习,毕竟学习是不断学习积累的过程,不是我的一篇面经能解决的
2、我的答案不是标准,也不是权威
综上,大家按照我的知识点去准备可以覆盖到大厂80%左右测开基础知识的提问,而剩下的20%,就要大家边面试边自己拓宽自己的知识图谱了
大家按照我的知识点和提示搜索答案和总结即可,俗话说“耳听千遍不如手过一遍”,边整理边打字也有助于学习。
下面是我学习时整理的知识图谱

项目经验

  • 建议大家一定要有拿得出手的项目经验、比赛经历、实习经历,不然简历关不好过、其次前40分钟面试官就只能深挖基础知识,容易无聊
  • 没有上述经验,实在不行可以课设来凑,但一定要深化技术栈
  • 介绍项目和实习时,可以采用按照 项目名称、我的身份、项目背景、我负责工作、成果 的顺序来介绍
  • 项目介绍需要提前准备,提前熟悉你做过的项目,防止介绍的时候磕磕绊绊、而且对于自己负责工作的技术栈要特别熟悉,要会一些底层。

编程语言

楼主熟悉C++,了解PY,JAVA
建议大家【熟悉掌握】C++/JAVA,【了解】Python/Golang即可,其他多多益善
解释以下几点:

  1. 【熟悉掌握】C++/JAVA掌握比开发要求低一些,是指所有基础知识都要掌握,部分底层需要知道,但并发编程可以不了解(是加分项)
  2. 为什么【熟悉掌握】是C++/JAVA呢?首先C++由面向对象的思想,如果你对其了解,那么学其他语言就很容易了。
    其次JAVA是大部分大厂开发的主流语言,有的大厂也用JAVA编写测试用例(如京东)。只有熟悉了解至少一门高级语言,哪怕你没有其他语言经验,也能强有力的说服面试官你能学会目前岗位的其他语言
  3. 【了解】Python。从面试官了解到,目前主流编写测试用例还是py,但测试用的py比较简单,了解多线程编程更好(面试被问到过)
  4. 【了解】Golang,这是针对字节加的,毕竟字节今年招的人挺多,也是大火。字节开发主要是golang,编写测试用例有时候可能需要你大致看懂对应源码来定位问题。

因为我比较熟悉C++,所以详细给大家罗列C++知识点(有时间可以看 C++primer)


  • c++机制
  1. C++与C的区别
  2. 内存覆盖怎么回事?(频率低)
  3. 内存泄漏有哪几种情况以及如何解决
    情况:在类的构造和析构函数中未成对使用new/delete操作符;使用了野指针(未初始化的指针/指针所指地址已被释放/指针操作超越了作用域);未正确清除嵌套的对象指针等
    解决:使用智能指针(shared_ptr、weak_ptr、unique_ptr)
  4. C++与Java的区别
    执行速度、是否面向过程、指针、是否多继承、GC垃圾回收机制、是否可重载等
  5. 内存的分配方式
    静态分配、栈区分配、堆区分配
  6. 内存分配有哪些区
    堆、栈、常量区、全局区、代码区
  7. 内存分配中堆和栈的区别
    管理方式、空间大小、碎片、生长方向、分配效率
  8. C++11的新特性你知道哪些,用过哪些
    auto
    nullptr和NULL的区别
    智能指针
    并发编程
  9. c++编译过程

  • 面向过程

1.*指针/&引用的区别
内存、sizeof后大小、初始化、指向是否可变、++含义、是否有多级
2.const/define区别
定义数据类型、安全性检查、是否可调试
3.typedef/define区别
用法、所在处理过程
4.sizeof/strlen的区别
5.内存对齐是怎么回事
6.extern的作用
7.struct(c++)与class区别
默认成员权限、默认继承权限、内存
8.c++和c中的struct的区别
图片说明
9.sizeof、strlen、size、length区别
10.函数模板 template 用法
11.new/delete与malloc/free的区别
12.++i,i++的区别和源码
13.#include<>和#include""的区别


  • 面向对象

1.三大特性
封装、继承、多态
2.执行构造函数/析构函数的顺序
3.重载和重写的区别
4.虚函数介绍一下
虚函数表
5.多态方式
动态多态、静态多态
6.纯虚函数使用方法
7.C++中拷贝赋值函数的形参能否进行值传递


  • 容器STL

1.map/set的底层实现和区别
2.unordered_map/unorder_set底层
3.vector/list区别
4.迭代器用法


建议大家上面的知识点大家应该都掌握,其他的知识点不是说一定不会问,大家可以边面试,边总结,没事多啃啃c++primer,夯实语言基础。

牛客里C++工程师的面经总结大家也可以互为补充的看,我当时也是有看牛客总结

大家可以关注后续,我尽快更

最后,祝大家新年快乐呀!

#学习路径##测试开发工程师##面经#
全部评论
楼主能分享一下知识图谱吗?
点赞 回复
分享
发布于 2021-02-27 16:00
lz好人 会持续关注您的更新的!!!!一定要继续些啊
点赞 回复
分享
发布于 2021-03-01 20:56
阿里巴巴
校招火热招聘中
官网直投
楼主很强,多谢分享,一定好好学习哈哈,成为你的粉丝啦
点赞 回复
分享
发布于 2021-03-06 17:16
请问日常工作中需要做很多业务测试的工作吗?
点赞 回复
分享
发布于 2021-03-06 23:13
楼主你的项目是什么内容的呀
点赞 回复
分享
发布于 2022-03-25 10:45

相关推荐

22 159 评论
分享
牛客网
牛客企业服务