# 面試
[TOC]
# 事前準備
* Resume
* PPT
* [LeetCode](https://leetcode.com/problemset/all/)
* [Linked List](https://leetcode.com/problemset/all/?search=linked%20list)
* 了解應徵的公司
* 該問什麼問題
* 主管
* 工作內容
* 工作時數
* 幫助新人適應環境的方式
* 工作方式(跟其他部門合作多嗎?接觸客戶的機會高嗎?)
* 內部工作氣氛(因為我喜歡大家為了同一個目標努力的感覺)
* 出差頻率
* 成員組成(年資、人數)
* 工作環境
* 工作位置
* 進去之後可能面臨的挑戰
* 針對你們想找的人而言我有哪些地方可能還要再加強
* 面試流程
* 人資
* 公司是否提供在職進修的機會
* 公司希望有哪些人格特質
* 社團
* 公司福利
* 公司假期
# 專業知識
* 論文相關
* [IMS, LTE, WiFi-calling Related Studies](https://hackmd.io/s/B1jppRREM)
* IPSec Replay Window
* 資工基礎
* OS
* [ThinkOS (Mutex, Condition Variable, Semaphore)](http://greenteapress.com/thinkos/thinkos.pdf)
* Producers and Consumers Problem with:
* Mutex ([Sample Code](https://github.com/AllenDowney/ThinkOS))
```c
pthread_mutex_t
pthread_mutex_init()
pthread_mutex_lock()
pthread_mutex_unlock()
```
* Condition Variables
```c
pthread_cond_t
pthread_cond_init()
pthread_cond_wait()
pthread_cond_signal()
```
* Semaphore
```c
sem_t
sem_init()
sem_wait()
sem_post()
```
* Semaphore Implementation
* Mutex & Conditional Variables
* Scheduling
* Synchronization
* Deadlock
* CA
* 2's Complement Conversion
* Float Number Expression
* Pipeline
* Memory
* Algo
* [Sorting](https://bitbucket.org/YaoYu-Li/job-related/src/master/Algo/sort.c)
* Insert Sort
* Select Sort
* Bubble Sort
* Quick Sort
* Merge Sort
* [CTF相關](https://drive.google.com/drive/folders/0B8jsDdfymb3cRUMzeGxWZk8yLVE?usp=sharing)
* BufferOverFlow
* GOTHijacking
* ROPchain
* Format String
* Heap Use After Free
* Heap Overflow
* 實作相關
* Mutex Implementation (Atomic Operation)[[Ref]](https://wirelessr.gitbooks.io/working-life/content/atomic_variable_in_user_space.html)
* Synchronize IO & Non-synchronize IO [[Ref1]](https://wirelessr.gitbooks.io/working-life/content/io_model.html)[[Ref2]](https://read01.com/7BGDd.html#.Wq_3-XWWZhE)
* [IPC Method Between Kernel And User Space](http://jamesgodzilla.blogspot.tw/2013/03/kernel-space-user-space.html)
* Filesystem (e.g., debugfs)
* Socket (e.g., netlink)
* Ioctl (e.g., apply filesystem as interface)
* System Call
* Signal
* 軟軔體相關
* [Interview Problems Review (易春木)](https://drive.google.com/open?id=1l2S2y9Mjesxb2JCXiznQcws30J3OVZav)
# 專案回顧
* Enable Seamless Wigig/Wifi Handovers in Tri-band Wireless Systems
* Idea
* QoS on Signal
* Seamless handover based on network layer
* Separate control and data plane and use more reliable link (WiFi) for control plane
# 實作回顧
* ICMP tunnel
* Raw ipv6 over ipv4 socket
* NP project codes
# 課程複習
* Protocol and Systems Design for Wireless Mobile Networks
* Security Issues In IMS
* SIP Session Information Leakage
* CS-based SMS is based on modem (hardware)
* IMS-based SMS is based on SIP (software)
* No Safety SMS Access Control on The Phone
* Android uses **SEND_SMS** permission to limit the capability of sending SMS for APPs
* IMS-based SMS service doesn't need the permission to send SMS but **Internet** permission only
* No Integrity Protection for SIP Information
* Spoofing SIP message is easy
* No Forged SMS Inspection
* There's no consistency check between SIP sender and SIP identity in IMS server
* Security Issues In VoLTE
* Signaling bearer can be abused to sent data packets
* Get higher priority of data sending
* Unlimited data transmission with non-charging
* DoS to other users on the P-GW
* Voice bearer can be interfered by sending data packets
* DoS to other users so users cannot hear each others when session is established
# 智力測驗問題集
* A水桶容量5公升,B水桶容量3公升,若要得4公升的水,何以可得
A裝滿到2公升給B,A剩2公升,倒到B,此時B為2公升,A裝滿,倒滿B,A即剩1公升
* 連續的日子裡,3天早上沒有下雨;5天下午沒有下雨;6天有下雨,沒有一天全天下雨,請問他最少觀察了幾天
8天
* [ABCDE*4=EDCBA;A不能為0,A≠B≠C≠D≠E,求ABCDE](http://www.morningrefresh.com/iq/daily/2014-03-26)
21978
* 從1數到100,喊到100的人獲勝,每一次最少喊一個數,最多喊七個數,先攻的人喊到幾時便保證必勝
4
* 一人拿一張百元鈔票到商店買了25元的東西,店主由於手頭沒有零錢,便拿這張百元鈔票到隔壁的小攤販那裡換了100元零錢,並找了那人75元零錢。那人拿著25元的東西和75元零錢走了。過了一會兒,隔壁小攤販找到店主,說剛才店主拿來換零錢的百元鈔票是假鈔。店主仔細一看,果然是假鈔。店主只好又拿了一張真的百元鈔票給小攤販。
200
* 用若干個砝碼組合出1~100公克,請問砝碼最少數量為幾個
1, 2, 4, 8, 16, 32, 64,共7個
# 專業知識問題集
* 使用store and forward原因
接收到完整封包後針對checksum進行檢查,轉發好的,丟棄壞的,因此傳輸叫可靠,但延遲時間也較長。
* NB與eNB差異
傳統NB是由RNC進行控制,而eNB並無獨立出來的控制元件,可降低延遲
* 為什麼需要QCI而不用一組QoS
QCI是用來描述bearer的指標,每個QCI值對應到一組描述bearer的參數,使用QCI而不直接以參數表示的其中一個原因是減少訊息交換的流量
* [為什麼TCP需要three-way-handshaking](https://networkengineering.stackexchange.com/questions/24068/why-do-we-need-a-3-way-handshake-why-not-just-2-way?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa)
主要原因是TCP的sequence number起始值為一random number,所以雙方需要互相交換此random number,又因為TCP是一個需要ACK來確認傳輸的機制,所以需要three-way-handshaking
# 人格特質問題集
* 用英文自我介紹
* 為什麼想轉到資工
* 當初在考大學的時候是因為指考進去的,指考就只能用分發的,把自己的志願從最高到最低往下排,所以就分到機械相關的科系,只是後來讀一讀發現好像不是那麼有興趣,所以讀的有點茫然,成績也很差,後來到大三的時候大家都在準備公司面試或研究所考試,就開始思考未來是不是真的要往這個沒興趣的領域繼續發展,突然想到大一的時候系上很多同學都轉往資工,於是就稍微跟他們了解了一下讀資工大概都在做些什麼事情,聽一聽發現還蠻有興趣的,就去報名補習班,也很幸運的考進交大資工所
* 遇過最難解的bug
* 在做WiFi/WiGig Handover的時候,遇過一個bug是跑測試的時候不會出現,實際執行handover的時候有時候會出現有時候不會出現的bug,就是有時候handover的時間會變得非常長,舉例來說,可能大部份情況下handover delay都大概落在3ms,但就是有時候會跑到100ms以上,一開始一直以為是程式問題,過程中找了很多人包含老師來討論,後來才發現原來是因為當handover時若另外一個link太久沒傳封包,handover過去之後他會先送ARP來確認對方的MAC address,最後也用static ARP table來確認這真的是造成問題的原因
* 人生中遇到最大的挫折
* 小時候有發現身體先天上有一些跟別人不一樣的地方,本來都不以為意,後來在兵役體檢時發現事情的嚴重性,有好幾天都吃不下飯睡不著覺,後來慢慢認清這件事情,慢慢體認其實只要照顧的好,先天的問題並不會嚴重到影響生活,就慢慢釋懷了
* 想過的任何有趣的事情
* 所有的動物都可能是比我們高智慧的生物,人類自以為是金字塔頂端的狀況只是表象
* 因為我不是其他人,所以我沒有辦法肯定其他人是不是跟我一樣的人,搞不好是機器人
* 有什麼優點
* 負責任且適應及學習的能力快,以轉進資工後本來老師希望因非本科所以應該專心準備課業到進實驗室後一兩個月的時間就願意讓我負責SmartCampus這個大計劃,代表實驗室去跟別的實驗室合作計劃,並於一年後發demo paper,且放心讓我出國去comference做paper的present
* 有什麼缺點
* 我是一個做自己有興趣的事情的時候就會非常投入的人,但也因為這樣有時候會因為一直思考更好的解決方法想到半夜睡不著而影響作息,或是因為投入而忽略家人或是女朋友,前一陣子準備幫老師發paper的時候也是因為這樣跟女朋友大吵一架
* 對加班的看法
* 基本上因為是做我喜歡做的事情,所以只要工作有需要,能加班我也是很能接受,像現在在實驗室常常都早八晚十,在趕deadline的時候,不回家的情形也常常發生,有時候假日也都會進實驗室
* 短期職涯規劃
* 由於是非本科系,所以短期目標是以學習為主,而且因為沒有家庭因素的影響,所以即使工作相對累也沒關係
* 面對與他人意見不合的處理方式
* 與他人意見不合時,首先會從對方的角度思考為什麼對方會有這些想法,再來就是比較自己的意見跟他人的想法比起來哪個比較好,如果對方的比較好,那就接受對方的意見,如果自己的比較好,就會先想辦法說服對方,說服成功當然就沒事了,如果說服失敗我就會想辦法快速的以實際的例子去讓對方接受
* 對工作的期望及目標
* 期望能在工作中得到一點成長,由於非本科系的關係,所以希望能在工作中學習到更多專業技能