华为软件笔试主要考察以下几个方面:
软件基础题:
这部分题目大约占50题,主要涉及软件工程知识、黑盒测试、软件测试流程、数据库SQL语言、二叉树中序遍历、数据类型在内存中的存储情况、面向对象的含义、队列、栈、堆等。此外,还会有程序填空题,例如二叉树先序遍历。
数据结构编程题:
题目要求根据给定的数据,设计算法并写出程序,通常涉及降序排列(如冒泡排序)。
数据库题:
这部分主要是问答题,包括SQL语言查询和关系数据库相关知识。
算法与编程:
涉及基本数据结构(如数组、链表、栈、队列、哈希表、集合、树、图等)、常见算法(如排序、查找、动态规划、贪心算法、回溯法等)、字符串操作、链表操作、二叉树遍历、图遍历、最短路径问题、最大子序列问题、最长公共子序列问题、背包问题等。此外,还会考察编程语言的基本语法、数据类型、控制结构、函数、类等概念,以及常用库和API的使用。
计算机基础知识:
包括操作系统(如进程、线程、内存管理、文件系统、进程间通信、死锁等)、计算机网络(如OSI七层模型、TCP/IP协议栈、IP地址、子网划分、路由协议、HTTP协议、DNS、网络安全等)、计算机组成原理(如数据表示、运算器、控制器、存储器、输入输出设备、指令系统、总线、中断等)。
软件工程及项目管理:
考察内容可能包括软件开发生命周期、版本控制系统(如Git)、调试与单元测试、软件测试安排、软件需求工件和迭代安排等。
逻辑思维:
包括逻辑分析、逻辑推理和思维能力等。
英语:
包括词汇、语法、语音、语义等。
数学:
包括数学分析、线性代数、概率论、数论等。
建议考生针对上述知识点进行系统复习,特别是数据结构和算法部分,因为这些是编程和软件测试的核心。同时,注意练习编程题,提高解题速度和准确性。在面试中,可以提前准备一些项目经验和问题解答,以便在面试中能够清晰、准确地表达自己的观点和解决方案。