技术面试时如何回答能让面试官眼前一亮

原创 嵌入式软件实战派 2023-09-14 08:30
话说“金九银十”,这个时候很多人蠢蠢欲动,在找工作。
我做技术面试好多年了,接下来,聊聊这个技术面试的话题。
我们从一个问题入手吧。
:MCU开发的C语言中,全局变量和局部变量有什么区别?
问题简单吧,很多小伙伴想都不用想就直接说了,头头是道。
回答最多的是:
全局变量是定义在全局区的,可以被不同函数使用;局部变量是定义在函数内部的使用的是栈的资源,只能被这一个函数使用。
没毛病,但是我会多问一句,还有呢?
先抛开这个具体的技术问题,先换个角度思考下。
这是技术面试,面试官的需求是想招一个技术好的,例如知识面广的,专业有深度的,经验丰富的人。而应聘者,是想要拿到这个offer,尽量要高点工资等等。
各有所需,契合点就在这个面试问题上。面试官想要听到更有深度更有积累的答案;而应聘者,应该尽可能地展现自己的才能。
完美的面试,无非就是面试者从容自信地展示自己丰富的知识技能和项目经验,尽最大程度地展现自己的优点,而这些优点等正是招聘方很需要的。
所以,问题简单,不能简单地回答。如果简单地回答表面上的知识点,并不能说这个人差,但看不出优秀。
如何回答面试官的问题,首先你要站在面试官的角度思考下,他想要什么样的人。
也许你说你不知道他想招什么样的,但是你应该知道一个软件团队更应该需要什么样的人,例如:
1. 级别低一点的,可以做设计,写代码思路清晰的;
2. 稍微经验多点的,设计有一套方法的,解决bug效率很高的;
3. 再高一点,有创新的方法,很够很大程度提高工作效率,给公司带来更高效益的。
如此等等,技术牛逼,还有一个共同的要求:思维敏捷,思路清晰,善于总结和表达。
这个很重要,毕竟是一个团队干活,沟通汇报就占用很多时间。一个思路清晰,表达能力强的人,工作效率很高的。
那么,回到问题本身,要怎么回答呢?
怎么从这个问题,表达出“清晰有条理,知识积累丰富,技术有深度的效果”呢?
不妨从以下几个点来回答:
1. 从存储分配来看,mcu一般有ROM(或flash)和RAM存储空间,代码和常量数据一般是存放于ROM空间的,而变量等是在RAM空间的;(不要觉得这种回答多余或简单,好多人分不清ROM和RAM的区别)
——这里展现出你对MCU存储空间的理解
2. 从数据段来看,这个RAM有很多种用途分类一般有data段,bss段,还有stack和heap等等,其中全局变量一般定义在data或bss段,那data段是存放有初始化值的变量,bss段是存放未初始化或者初始化值为0的变量,而局部变量在stack空间;
——这里展现出你对链接脚本的数据段的理解
3. 从初始化阶段来看,MCU在启动的时候,一般在main函数之前,会对RAM空间清零初始化(防止一些MCU的ECC报错问题),然后就对data段数据进行赋值初始化,具体怎样一个过程呢,例如greenhills环境的,有个_start的库函数做这个事情,ARM核芯片使用的Keil或者NXP的S32DS环境的,有专门一个初始化data和bss段函数,而stack空间又分有原始裸机环境的stack和RTOS的stack,在启动OS之前,局部变量用的是裸机的stack空间,那以后用的是OS的stack;
——这一点充分表达了你对MCU启动的熟悉程度和知识积累
4. 从变量的寿命周期和使用范围看,全局变量从MCU启动main之后就可以使用,一直可以持续到关机,而局部变量一般存在于一个函数之内,在函数被调用的时候创建,函数退出的时候销毁,当然静态局部变量除外,还有些情况是,不同编译器,有可能局部变量用的是普通寄存器,而不是栈空间;
——这一点展现出了你对变量定义比较深入的理解,甚至对变量的调试也很熟悉
5. 从使用的注意事项看,全局变量可以被不同函数使用,可以用来传递一些信息,特别是传递一些buffer数据处理,很方便,而局部变量,只局限于函数内,占用栈空间,不适合定义很大空间,谨防栈溢出的情况,也不能用于异步函数传数据,特别是传数组指针等;
——这体现出你对变量使用的经验总结
6. 从架构设计来看,全局变量虽好,共享数据需要注意多线程多任务问题,需要做互斥保护,另外,一个代码使用过多的全局变量,容易让代码耦合性变高,不利于维护,而局部变量虽然局限在函数内部,但独立性较好,而且在可重入函数设计上比较友好,在架构设计上应当充分考虑各种因素,不能一概而论,有时候静态变量更有利于模块化,解决耦合性高的问题,当然要根据实际情况而定。
——这体现了你在架构在代码设计上的思考
当然,还可以在其他方面继续发挥。
以上的这些回答,不仅思路清晰,有条不紊,同时还展现出应聘者的知识储备和丰富的经验积累。
如果面试官觉得满意或对你的回答很感兴趣,会顺着你回答的几个点跟你深入探讨。这里你就可以引导他跟你聊点你擅长的内容,在面试桌上掌握主动权。
试问,能从各个角落展示你的才能的人,哪个面试官不爱呢?
如果这个文章能对你有帮助,请点个赞👍🏻点个在看,感谢!
关注公众号“嵌入式软件实战派”,我给你分享更多面试知识和技巧。

如果你喜欢我的文章,请关注,并转发点赞在看,这是对我莫大的鼓励!

嵌入式软件实战派 专注嵌入式软件开发领域知识传授,包括C语言精粹,RTOS原理与使用,MCU驱动开发,AUTOSAR搭建,软件架构方法设计等。
评论
  • 2024年是很平淡的一年,能保住饭碗就是万幸了,公司业绩不好,跳槽又不敢跳,还有一个原因就是老板对我们这些员工还是很好的,碍于人情也不能在公司困难时去雪上加霜。在工作其间遇到的大问题没有,小问题还是有不少,这里就举一两个来说一下。第一个就是,先看下下面的这个封装,你能猜出它的引脚间距是多少吗?这种排线座比较常规的是0.6mm间距(即排线是0.3mm间距)的,而这个规格也是我们用得最多的,所以我们按惯性思维来看的话,就会认为这个座子就是0.6mm间距的,这样往往就不会去细看规格书了,所以这次的运气
    wuliangu 2025-01-21 00:15 181浏览
  • 嘿,咱来聊聊RISC-V MCU技术哈。 这RISC-V MCU技术呢,简单来说就是基于一个叫RISC-V的指令集架构做出的微控制器技术。RISC-V这个啊,2010年的时候,是加州大学伯克利分校的研究团队弄出来的,目的就是想搞个新的、开放的指令集架构,能跟上现代计算的需要。到了2015年,专门成立了个RISC-V基金会,让这个架构更标准,也更好地推广开了。这几年啊,这个RISC-V的生态系统发展得可快了,好多公司和机构都加入了RISC-V International,还推出了不少RISC-V
    丙丁先生 2025-01-21 12:10 111浏览
  •  万万没想到!科幻电影中的人形机器人,正在一步步走进我们人类的日常生活中来了。1月17日,乐聚将第100台全尺寸人形机器人交付北汽越野车,再次吹响了人形机器人疯狂进厂打工的号角。无独有尔,银河通用机器人作为一家成立不到两年时间的创业公司,在短短一年多时间内推出革命性的第一代产品Galbot G1,这是一款轮式、双臂、身体可折叠的人形机器人,得到了美团战投、经纬创投、IDG资本等众多投资方的认可。作为一家成立仅仅只有两年多时间的企业,智元机器人也把机器人从梦想带进了现实。2024年8月1
    刘旷 2025-01-21 11:15 360浏览
  • Ubuntu20.04默认情况下为root账号自动登录,本文介绍如何取消root账号自动登录,改为通过输入账号密码登录,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及Linux、Android等操作系统,接口丰富,开发评估快人一步!添加新账号1、使用adduser命令来添加新用户,用户名以industio为例,系统会提示设置密码以及其他信息,您可以根据需要填写或跳过,命令如下:root@id
    Industio_触觉智能 2025-01-17 14:14 121浏览
  • 本文介绍瑞芯微开发板/主板Android配置APK默认开启性能模式方法,开启性能模式后,APK的CPU使用优先级会有所提高。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。源码修改修改源码根目录下文件device/rockchip/rk3562/package_performance.xml并添加以下内容,注意"+"号为添加内容,"com.tencent.mm"为AP
    Industio_触觉智能 2025-01-17 14:09 161浏览
  • 现在为止,我们已经完成了Purple Pi OH主板的串口调试和部分配件的连接,接下来,让我们趁热打铁,完成剩余配件的连接!注:配件连接前请断开主板所有供电,避免敏感电路损坏!1.1 耳机接口主板有一路OTMP 标准四节耳机座J6,具备进行音频输出及录音功能,接入耳机后声音将优先从耳机输出,如下图所示:1.21.2 相机接口MIPI CSI 接口如上图所示,支持OV5648 和OV8858 摄像头模组。接入摄像头模组后,使用系统相机软件打开相机拍照和录像,如下图所示:1.3 以太网接口主板有一路
    Industio_触觉智能 2025-01-20 11:04 150浏览
  • 数字隔离芯片是一种实现电气隔离功能的集成电路,在工业自动化、汽车电子、光伏储能与电力通信等领域的电气系统中发挥着至关重要的作用。其不仅可令高、低压系统之间相互独立,提高低压系统的抗干扰能力,同时还可确保高、低压系统之间的安全交互,使系统稳定工作,并避免操作者遭受来自高压系统的电击伤害。典型数字隔离芯片的简化原理图值得一提的是,数字隔离芯片历经多年发展,其应用范围已十分广泛,凡涉及到在高、低压系统之间进行信号传输的场景中基本都需要应用到此种芯片。那么,电气工程师在进行电路设计时到底该如何评估选择一
    华普微HOPERF 2025-01-20 16:50 73浏览
  • 高速先生成员--黄刚这不马上就要过年了嘛,高速先生就不打算给大家上难度了,整一篇简单但很实用的文章给大伙瞧瞧好了。相信这个标题一出来,尤其对于PCB设计工程师来说,心就立马凉了半截。他们辛辛苦苦进行PCB的过孔设计,高速先生居然说设计多大的过孔他们不关心!另外估计这时候就跳出很多“挑刺”的粉丝了哈,因为翻看很多以往的文章,高速先生都表达了过孔孔径对高速性能的影响是很大的哦!咋滴,今天居然说孔径不关心了?别,别急哈,听高速先生在这篇文章中娓娓道来。首先还是要对各位设计工程师的设计表示肯定,毕竟像我
    一博科技 2025-01-21 16:17 95浏览
  •     IPC-2581是基于ODB++标准、结合PCB行业特点而指定的PCB加工文件规范。    IPC-2581旨在替代CAM350格式,成为PCB加工行业的新的工业规范。    有一些免费软件,可以查看(不可修改)IPC-2581数据文件。这些软件典型用途是工艺校核。    1. Vu2581        出品:Downstream     
    电子知识打边炉 2025-01-22 11:12 49浏览
  • 临近春节,各方社交及应酬也变得多起来了,甚至一月份就排满了各式约见。有的是关系好的专业朋友的周末“恳谈会”,基本是关于2025年经济预判的话题,以及如何稳定工作等话题;但更多的预约是来自几个客户老板及副总裁们的见面,他们为今年的经济预判与企业发展焦虑而来。在聊天过程中,我发现今年的聊天有个很有意思的“点”,挺多人尤其关心我到底是怎么成长成现在的多领域风格的,还能掌握一些经济趋势的分析能力,到底学过哪些专业、在企业管过哪些具体事情?单单就这个一个月内,我就重复了数次“为什么”,再辅以我上次写的:《
    牛言喵语 2025-01-22 17:10 30浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦