編輯:關於Android編程
以下開始介紹這次的面試經過:
慣例:首先是HR人員上場,填寫標准制式的表格,填寫完成後,一般都是自我介紹下,這裡不再累述,干過幾個公司,為什麼離職,對本公司的了解,然後就是期望的薪資什麼的。
完了就給了一份筆試題:時間30分鐘,30分鐘完成後通知HR,面試題如下:
對於一個剛畢業或者的工作2-3年的人來說,做筆試題可以檢驗處他的基本水平,但是超過5年的人很反感做筆試題,除非這個公司在業界很知名或者是外企。
正確答案沒有查證:
以下是我的理解:
填空題1:
WLILE()語句裡邊首先是個賦值語句,然後是判斷,循環裡邊是地址增加。
分析考察 = 和 == 區別答案 A
2:
二維數組定義和ASIIC碼的知識
答案 C 二維數組定義B 0X38 是字符‘8’的ASIIC碼
3.:關於地址和值的考察 這個在嵌入式中大量用到,MCU的寄存器的定義就是這樣定義的,一般人不會注意這些東西,畢竟芯片商把這塊都給大家做好了,直接使用就行了
這個題當時考慮了半天還是打錯了,快到時間的時候在試題背面畫了類似的圖,由於時間關系最後沒修改答案正確答案
*(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
CMD
DAT[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 32MB64MB 不差錢的可以用更大(也可以用SD TF卡存儲,沒提 害怕有引出其他問題)
問題七:
如果1S一次的數據怎麼處理,一般是按照一頁進行存儲。
問題到這基本就完了,然後面試官就說了怎麼針對我有敵意啊,讓你講個MODBUS,你就當我沒接觸過用最短的時間給我講明白,我說我只能給你大概講下,如果要細講的我抽出半天的時間給你講解,工業現場的通訊協議你也要問題用在什麼場合,不是很明白嗎,用在工業,不是我理解有問題,就是我智商有問題,然後就我們就沒有必要在進行溝通了,就OVERL .
總結:
作為技術人員,我也面試過很多應聘者,大家之間是一種平等的交流,相互學習,相互探討,通過簡歷對他做的東西有個大概的認識,能讓來面試的基本都是從事過相關的工作或者相近的工作,通過有針對性的提問對面試者的技能又個大概的認知。如果面試人員的簡歷中出像類似的產品會進行細致的了解。對於面試人員的回答如果有異議也會給出一些解答和分析。
在以上的交流,不應該算做交流只能算作提問,發現面試官給人一種高高在上的感覺,面試的人員就是來面試,在回答的過程中有感興趣或者不知道的就進行深究,完全不知道他要面試的這個崗位的目的。作為一個高級崗位,一般是要看面試者的基本的技能水平,處理問題,解決問題的能力,對產品的規劃,把握,對開發進度的控制。人員的協調,處理能力。
在上邊的提問中並沒有完全體現出來。
附某公司高級工程師要求:
職位描述:
精通Android系統的軟件的開發,對ios系統也熟悉
開發和維護智能設備,並且能開發基於Android系統的智能設備的應用
有效帶領技術團隊,建立並完善公司各項研發規范及流程
對項目開發流程、質量、進度的規劃和控制管理。
負責系統架構設計、數據庫設計、業務邏輯、核心代碼等設計
帶領團隊完成移動端、PC端的開發任務
精通開發APP
SlidingDrawer隱藏屏外的內容,並允許用戶通過handle以顯示隱藏內容。它可以垂直或水平滑動,它有倆個View組成,其一是可以拖動的handle,其二是隱藏內
配置前gradle文件內容: 配置完成gradle文件內容: 接下來正式開始啦~一、打開配置頁面,按照一下順序操作,myconfig只是我隨意取得一個名字,可以根據自己喜
首先來看下我們實現的效果和360效果的對比:360手機助手效果演示本庫實現的效果(Icon來自360手機助手,侵刪)xml布局文件注:為了美觀,講每個Button的高度以
一、獲取屏幕寬高1、android界面簡單介紹要獲取屏幕寬高,我們可以先從android的界面構成了解 android的界面主要由三部分構成:1、狀態欄 2、標