面试上位机程序员,三个面试全中!挑了一个工资最高的,过几天就要去上班了!这也是让我比较意外的一个结果,我没想到不到一个星期能够接到三家公司的面试邀请,更加没想到的是三个都能全中!而且,这三家公司面试时问的问题几乎都是一样的,一方面是为了吹一下,另一方面是为了给大家面试做个参考(主要是为了吹)!

打开网易新闻 查看更多图片

第一个问题是作为上位机程序员,平时都用哪些通讯协议,这也是唯一的技术问题。

这个问题我一般都回答Socket,作为上位机程序员,一般来说接触到的最多的通讯协议就是Socket协议,以Socket协议展开来说又分为Modbus协议、WebSocket协议和MQTT协议。

这里主要考的是对于通讯协议的掌握情况,再展开来说,就是对于硬件以及和其他系统的对接熟练度!

比如常见的和PLC通讯、和数据采集卡的通讯、和MES系统的通讯,其他的像和相机、扫码器、继电器等常见的硬件通讯。

基本上,问到了可以准确回答出什么样的硬件一般采用的是什么通讯协议,一般面试官就知道你的水平了!

剩下的,像和MES对接以及类似MQTT协议(消息队列类工具、框架)这种问题,主要考虑的是你对系统的熟练度以及如何处理第三方消息。

最后我补充道,现在做上位机基本上所接触到的通讯协议无非就是这几种,万变不离其宗!

第二个个问题其实也是基于通讯的,但是我得单独摘出来说,那就是三家都问了我会不会对接AGV机器人!

这个问题我很坦诚,是没有对接过,但是我也要感谢之前帮助过我的一个朋友程总,他也是做相关产品的,之前想要招我做机器视觉上位机开发,但是因为种种原因没有合作成,却让我知道了AGV机器人开发其实并不难!

如果没有跟程总讨论过,那么我可能直接回答两个字“不会”,那么可能这三家面试都会失败!

虽然,我没有对接过AGV机器人,但是我在面试时都拿了程总说了事,告诉他们我专门咨询过我的一个朋友,他告诉我并不难!

尤其是在面试其中一家的时候,有幸这家公司的老板带我看了下他们的下位机系统以及AGV厂商提供的机械臂SDK调用示例,看了以后我更加觉得不难了!

其实,只要按照SDK文档以及调用示例,真的不觉得AGV难!因为SDK已经封装好了函数,我们直接通过算法结果去传参调用即可!

至少我是这么回答的!

我只是拿AGV机器人做一个例子,想告诉大家的是,遇到自己不会的,千万不要只说不会,在告知对方自己没有接触过相关的东西时,一定要做下补充表示自己遇到不会的东西一定会积极去学习,也乐于学习。

因为工控行业,不管是做设备还是做软件,所需要接触到的硬件和第三方平台是非常多的,我们很容易就会遇到过之前没有接触过的硬件和系统。

因此,“不会”显然不是面试官想要的回答,而“不会但乐于学”才是面试官想要的回答!

第三个问题就是对于标准产品和非标产品有什么理解!

涉及到这个问题,我总是感触颇深,我一般的回答是非标产品现在大多数公司做得都很艰难,如果有机会、有实力最好还是往标准化产品上面做。可是,以目前的行业情况来看,非标产品(这里是指非标设备和非标软件)的市场规模仍然巨大,也不能盲目追求标准化,而是在不断的业务积累中找寻共同的解决方案,然后寻求标准化。

但还是那句话,目前国内大部分做设备的、上位机的,还是以非标为主。

第四个问题是关于工作态度的,一般是问我当产品出现问题时我的应对方法。

讲这个问题时需要事先说明下行业背景,不管是做非标设备、上位机还是做标准设备、上位机,员工需要面临的问题就是是否能够急客户之所急和急公司之所急。

工控行业的程序员和其他行业的程序员略有不同,在产品出现问题的时候一定要第一时间帮客户解决问题,其他的什么都不要讲!

这也是很多人觉得工控行业的程序员特别累的原因之一!

公司最怕的就是当产品出现问题的时候员工会撂挑子或者拒绝加班等情况,这种情况是绝对不被允许的!

但是,也不能说工控行业的程序员就没有人格,我的回答是,当公司产品出现问题的时候,首先我不会拒绝解决问题,但是,解决问题的速度取决于公司各个部门的协调,如果公司提供的资源无法让我快速地解决问题,那我也无能为力,因此,我希望公司能够在产品出现问题时给我提供帮助!

总结

基本上,面试的问题就这几点,通过这三家面试的情况,可以看出来目前至少在招聘上位机程序员的时候,“八股文”问题很少问到,问的问题都很接地气,以实际解决公司业务为主,很务实!

这也是我能面试三家都面试成功的原因之一吧,因为我面试的时候讲的话都很实在,工控行业讲得恰恰就是实在。

需要注意的是,在面试完成后,有两家公司当场就给了Offer,这是让我最意外的,另外一家公司规模比较大,省四强,因为需要走各种流程,过了两天才给了我结果!

这可能也从侧面说明了,虽然IT环境现在比较萧条,但工控行业现在的确比较缺人!