Q&A:
是否有新人訓練?
A:2~3個月的新人訓練,會有學習資料跟同仁一對一請教。
軟體工程師組成?
A:資料
組:寫爬蟲整理資料。服務組:寫web api,處理大量客戶request,後端。
進入第二階段:
寫爬蟲的project,考慮後回覆婉拒。
面試問答
解釋deadlock
Deadlock 意思是系統中存在一組process 陷入互相等待對方所擁有的資源的情況,造成所有的process 無法往下執行,使得CPU 利用度大幅降低
Recursion可能會出現什麼錯誤 要注意什麼?
有可能出現stack overflow!
解釋race condition,如何防止?
在shared memory的情況下,如果沒有對共享變數進行synchronization機制,共享變數的最終結果會因為process的交錯執行順序不同而導致不同的可能結果。
由「CPU」著手利用「Disable Interrupt」,在process對共享變數存取前,先進行Disable Interrupt,直到共享變數存取完成後再Enable Interrupt,如此可以確保CPU不會被其他process插隊,共享變數存取可以一氣呵成地執行完成。
由「Data」著手利用「Critical section Design」,Process的共享變數存取的code區段稱為critical section,利用程式控制互斥存取,在任何時間點只有一個process可以在他自己的critical section裡面活動,即可防止Race condition。
解釋stack overflow?
C 語言中的「參數、函數返回點、區域變數、框架指標」等資料,被儲存在堆疊段中,這個區段會隨著函數呼叫的層次數目而增長或縮短。如果這個區段成長過頭,導致堆疊段覆蓋到堆積段的空間時,就被稱為堆疊溢位 (Stack Overflow),這種情況通常是因為程式進行遞回呼叫,卻又沒有正確判斷終止條件,導致遞迴層數過多所產生的錯誤情況。
面試建議
面試官蠻友善的,他們希望面試者是真的了解這家公司在做什麼再來決定接受offer。
個人是因為還有其他offer所以在第二階段要做爬蟲project的時候就婉拒了繼續面試的機會。如對這部分有興趣的人也可以試試。
解鎖 939 字完整內容
52 人已看過