如何在面试中应对编程与算法面试?

举报
Tester_muller 发表于 2024/04/16 15:19:44 2024/04/16
【摘要】 在求职面试的过程中,编程能力也是面试官非常看重的一项能力。而对于编程这项能力主要的考察点也有三个维度: 初级:编程的基本功编程的基本功主要考察的编程语言的基本语法,原理知识,以及一些在编程过程中的常见问题与解决方案。比如,如果面试官考察:九九乘法表,那么就是考察你的编程的基本功。主要看你拿到一个简单的需求后,能否实现出来。如果面试官考察垃圾回收机制这些知识,那么考察的就是你对于编程语言特性的...

求职面试的过程中,编程能力也是面试官非常看重的一项能力。而对于编程这项能力主要的考察点也有三个维度:

初级:编程的基本功

编程的基本功主要考察的编程语言的基本语法,原理知识,以及一些在编程过程中的常见问题与解决方案。比如,如果面试官考察:九九乘法表,那么就是考察你的编程的基本功。主要看你拿到一个简单的需求后,能否实现出来。如果面试官考察垃圾回收机制这些知识,那么考察的就是你对于编程语言特性的理解。如果要是涉及到高级一点的元编程技巧,如果不理解这些知识,是无法完成的。如果面试官考察:深拷贝浅拷贝,这个场景其实在读写,修改一些嵌套结构的数据是非常常见的问题,那这个场景其实就是在考察你是否在编程过程中有发现一些问题,以及有掌握到对应的解决方案,包括多线程编程,都属于这类型问题。

高级:数据结构与算法

在具备比较扎实的编程基本功之后,就需要掌握数据结构与算法的知识。其实这门课是所有计算机相关专业同学的必修课,虽然对于测试工程师来说,我们常常吐槽它“面试造火箭,进去拧螺丝”。但是数据结构决定了你是否有一个更为扎实的编程基本功。以及我们不得不面对的现实问题,为了面试,也得冲! 自然在数据结构与算法中,我们也无需盲目学习,它也是有它自己的明确的学习路线和学习范围的。如果你的目标是中小厂,那么也要掌握一些较为基础的算法,比如冒泡排序,二分查找,快速排序等。如果你的目标是大厂,那么就要掌握更为深入的数据结构,比如线性表:链表、堆栈,非线性表:树、图等。

资深专家:设计模式

而如果能熟练掌握设计模式的用法,已经可以算作是一个测开的专家了。而设计模式的学习,通常是通过在开发各种工具或者平台过程中,是要时刻想着怎么让代码保持一个好的扩展性,可读性,可维护性。常用的设计模式通常有:工厂模式、单例模式、策略模式、装饰器模式等。

如何提升编程的基本功

对于大部分同学来说,我们首要完成的就是编程基本功的提升。如果没有一个好的编程基本功,代表在实际开发过程中,可能连一些简单的需求也无法完成。有一种极为科学的学习方法叫做 PDCA 循环学习法,以下为通过 PDCA 循环法学习 Python 的方式

**阶段 ** **描述 ** **对应学习方法 **
计划 (Plan) 设定目标和规划行动方案 制定 Python 一周的学习内容
执行 (Do) 实施计划,收集数据 通过教程或视频学习
检查 (Check) 分析数据,评估结果 通过练习验收学习结果
行动 (Act) 调整和改进行动,制定下一步计划 查漏补缺,并开启下个阶段的学习

在熟悉Python的基本语法之后,则需要完成一些比较大型的需求去验证自己的学习效果:

  • 开发一个简单的后端系统。
  • 开发自动化测试脚本的框架。

如果能在此过程中,不停的去补充自己的技能以及在项目中历练,在一年半载之后,就会发现自己的编程能力就能有质的飞跃和提升。再具备一些基本的开发经验后,就可以进一步挑战算法与设计模式的学习:

  • 开发像HttpRunner一样的测试框架。
  • 开发一个好用的测试平台。

在这个过程中,你会发现如果不用设计模式与算法,那么很多需求的实现会变的非常难以实现。不停的重构,是每个开发者的宿命。自然在千锤百炼之后,你也会朝着一个技术专家之路迈进。自然,千里之行始于足下,同时万事也是开头难。最后送大家马斯克的一段话,共勉!
image.png

image.png

社会的竞争其实并不需要你比所有人都强,绝大部分人都是非常懒的,几年都不会去学习,不会进步。所以你只要稍微努力一些,确保超过全社会60%的人;如果你干什么事都专注一点,就可以超过社会上80%的人;如果你愿意在一件事上高强度的深耕个3-5年,进全社会前10%并不难,甚至5%也没有多大难度。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。