背景:
面試者: 王某(以下簡稱我) 嵌入式行業剛入門 10年工作經歷 從事方向為:gps、bd導航,物聯網,車聯網方向
面試官:前華為員工 3年工作經驗,現為1 創業公司嵌入式部門leader,公司已獲得風投注資500w rmb,產品方向為物聯網和小眾市場產品。
面試地點:陝西某眾創空間
職位:高階嵌入式工程師
以下開始介紹這次的面試經過:
慣例:首先是hr人員上場,填寫標準制式的**,填寫完成後,一般都是自我介紹下,這裡不再累述,幹過幾個公司,為什麼離職,對本公司的了解,然後就是期望的薪資什麼的。
完了就給了乙份筆試題:時間30分鐘,30分鐘完成後通知hr,面試題如下:
對於乙個剛畢業或者的工作2-3年的人來說,做筆試題可以檢驗處他的基本水平,但是超過5年的人很反感做筆試題,除非這個公司在業界很知名或者是外企。
正確答案沒有查證:
以下是我的理解:
填空題1:
wlile()語句裡邊首先是個賦值語句,然後是判斷,迴圈裡邊是位址增加。
分析考察 = 和 == 區別答案 a
2:二維陣列定義和asiic碼的知識
答案 c 二維陣列定義 b 0x38 是字元『8』的asiic碼
這個題當時考慮了半天還是打錯了,快到時間的時候在試題背面畫了類似的圖,由於時間關係最後沒修改答案正確答案
*(u32 *) (0x20000123)= 0x11223344;
*(u32 *) (0x20000123)&0xff;
44.簡答題:
1.考察程式設計能力,程式設計習慣。對應程式設計題,在試題的背面只是寫出了函式名 形參, 返回引數,具體內容未寫,由於時間原因一般情況下 不做程式設計題
2.嵌入式經典的16個問題裡邊的 ,在題上用筆畫出了有問題的地方,沒形參,沒返回值,不能用printf函式,其他的沒深究貌似浮點那也有問題。
3.io輸入輸出有8中模式,對於乙個常用stm32的人來說,8種模式用全的很少吧,浮空輸入,模擬輸入,上拉,下拉輸入,od ,pp,剩下的2個是複合型的沒用過也就沒記,模擬iic的問題 ,用開漏方式,外接上拉電阻。
4.不做描述
基本在20分鐘就做完了上邊那些,就剩那個程式設計和填空的3的1,2不確定,無聊就在試題背面畫了下大概。
30分鐘時間到,通知hr試題答完,技術下來面試;
面試官過來,正式開始面試環節,禮貌性的問候和自我介紹,然後我就說了今天大家就是相互**,相互交流,學習,面試官就說(沒介紹自己,負責什麼的):把你的工作經歷介紹下,做了哪些專案,大概介紹下。
我:什麼時候畢業,畢業後在那個公司做了哪些專案,產品,產品應用方向,主要技術,外設,負責那部分,實現什麼樣的功能。下來來說重點部分,有幾個產品是使用stm32開發的,用c語言編寫,不過有時會把c寫成c++的形式,可能是我表述的不是很清楚,就給他用linux的驅動舉例,諮詢他是否會linux,他的回答是肯定的,在linux所有去驅動只要實現read, weitr ,ioctrl,對應的裝置只用去呼叫就行了,說白了就是c 實現物件導向的思想。給各位看下例項吧:
typedef struct
void (*init) (void);
u8 (*geticinfo) (ic_memory_info* info);
u8 (*erasesector)(u16sectorno);
u8 (*prog) (u8* data, u16 sectorno);
u8 (*program)(u8* data, u16sectorno);
u8 (*read) (u8* data, u16 sectorno);
u8 (*protect)(u32 data);
}device_ic_st;
extern const device_ic_st stm32;
關於c、c++我問了面試官乙個最基本的問題結構體和類的區別,答案是資料。
這是唯一的一次我和面試官的互動。
下來就聊到stm32開發中會用上位機開發一些測試程式,講了下什麼情況下會測測試程式,開發環境,他問了下會qt沒,我回答是用mfc,qt不會,然後就聊到了上位機下位機之間的通訊,和通訊協議,我在試題的背面寫了我常用的協議格式,格式如下:
包頭len
cmddat[n]
chk包尾
第乙個問題出現了:包頭是怎麼實現的,由於這個問題過於簡單沒有回答,只是回答你只要能根據你定義的協議八資料解析出來就行了,一般情況下包頭包尾根據自己常用的寫個定義就行了,如果不知道怎麼定義,我強烈鄙視(aa 55, 「bs」 )都行,只要能解析,資料不出錯即可。
然後就說下如果沒有包頭 包尾的話是modbus協議,第乙個為位址(0-255)並用中文說明是工業現場的通訊協議
下邊的是在工作中定義的一條訊息
主單元位址
功能碼暫存器位址
資料crc16校驗
1位元組 [fah]
1位元組[06h]
2位元組(佔)2位元組
2位元組第二個問題:介紹下什麼是modbus協議,我就大概介紹了下常用的01 03 06 10命令,單個的讀寫和多個的讀寫方式這個只是根據平時用到的做了個簡介,當然不全對,只是個大概。看著對方胸有成竹的樣子認為遇到行家了。modbus協議我也就用了幾個產品
第三個問題:應用場合 震驚 前邊都說了工業現場的通訊協議,然後有重複了一遍。
第四個問題:他們的穩定性是怎麼保證的,modbus 80年代就開始用的,是比較好的乙個協議,協議解析除了不出問題的話,一般出問題的後我們的處理辦法就是重發,收到反饋為止
關於協議的穩定問題我反問了你們是怎麼做,我們交流下,這個來回了3個,人家說這個是我問你的問題,你先回答,好吧誰讓我面試者呢,就講了重發機制,常用的2種方法一種是週期的重發,週期間隔相等,另外一種就是根據定義延長間隔時間重發,同時本地儲存資料
引出了問題五:
本地怎麼儲存資訊,資料內容加時間戳,並在上邊的那個自定義協議上畫出時間戳部分字段
引出了問題六:
本地怎麼儲存,一般情況下,存flash,對於要求比較高的資料直接存鐵電。連線成功後打包上傳,falsh的容量可以根據理論值進行計算常用的是8mb 16mb 32mb 64mb 不差錢的可以用更大(也可以用sd tf卡儲存,沒提 害怕有引出其他問題)
問題七:
如果1s一次的資料怎麼處理,一般是按照一頁進行儲存。
問題到這基本就完了,然後面試官就說了怎麼針對我有敵意啊,讓你講個modbus,你就當我沒接觸過用最短的時間給我講明白,我說我只能給你大概講下,如果要細講的我抽出半天的時間給你講解,工業現場的通訊協議你也要問題用在什麼場合,不是很明白嗎,用在工業,不是我理解有問題,就是我智商有問題,然後就我們就沒有必要在進行溝通了,就overl .
總結:作為技術人員,我也面試過很多應聘者,大家之間是一種平等的交流,相互學習,相互**,通過簡歷對他做的東西有個大概的認識,能讓來面試的基本都是從事過相關的工作或者相近的工作,通過有針對性的提問對面試者的技能又個大概的認知。如果面試人員的簡歷中出像類似的產品會進行細緻的了解。對於面試人員的回答如果有異議也會給出一些解答和分析。
在以上的交流,不應該算做交流只能算作提問,發現面試官給人一種高高在上的感覺,面試的人員就是來面試,在回答的過程中有感興趣或者不知道的就進行深究,完全不知道他要面試的這個崗位的目的。作為乙個高階崗位,一般是要看面試者的基本的技能水平,處理問題,解決問題的能力,對產品的規劃,把握,對開發進度的控制。人員的協調,處理能力。
在上邊的提問中並沒有完全體現出來。
附某公司高階工程師要求:
記又一次面試失敗的經歷
一次又一次面試的失敗,讓自己一度懷疑自己的能力,認真想想是自己學的不夠紮實,把書從頭翻了很多遍,以為很厲害了。但是昨天去面試,才發現面試官總會問道你薄弱的環節,這個問題可能你知道答案,但是面試官換了一種方式問,我就不知道了,歸根到底還是用的太少,面試官的話就是need more practice。怎...
記一次面試經歷
今早七點半的巴士從中山趕到廣州面試php開發助理,以前面的都是十來人 幾十人的小公司,不少還是培訓公司,坑的一逼!這次的公司不錯,比較正規,好歹上百人了,只是筆試題做得一般,題目有的雖有學過,但忘了,好吧!這就是沒準備充分的緣故!下面羅列下我還記得的題目 有些漏了就沒辦法了 之後hr面試聊了下,雖然...
一次失敗的面試經歷
昨天久違的去參加了一次.net core 後端開發的面試,由於和之前的面試經歷差異較大,所以記錄下來讓自己警惕一些。回到面試的話題,筆試完了,進入第一步技術面試,面試官是個看上去很年輕的小夥子,上來翻閱了我的簡歷和筆試題大體翻閱了一下,除了告訴了我泛型排序以外,問了我兩個問題 1 net frame...