# 109 交大資工實務組 筆試共筆
:::info
**共編者**
- linzino7
- splitline https://github.com/splitline
- yiyu0x https://github.com/yiyu0x
- Killua4564
- ccapricorntw (Ptt)
:::
## 丙組
- Node.js 的出現有什麼很大的影響?他有什麼特色?
- 比較分析 React vs Vue or Angular or 你用過的前端框架
- 舉出一些你常用的網管工具
- 一個 function `int freq_mode(int a, int b, int c, int d)`,回傳其眾數出現的次數。例如 freq_mode(1, 3, 3, 4) 要回傳 2,因為 3 出現 2 次。求最優雅的解法?
- 實作演算法:給三維平面上的 n 個點,求一個球型能包住所有點,半徑必須小於最小半徑解的 2 倍,要是 O(n) 解。
- 實作演算法:找出陣列 `int A[n]` 第二小的數, O(n) 解,並證明所有可能的解都不可能比 Ω(n) 好
- memory allocation 太慢怎麼 debug?可以用什麼工具如何解決?
- IDS(Intrusion-detection system) 跟 AV(Anti virus)差在哪,各是檢查封包的什麼東西?為什麼很難擋住 APT ?
- 為什麼 hashing 在 linux kernel 那麼常見?
- 舉出一個你會實作的較複雜的演算法,並用 30 字簡介
- stack, queue 分別是啥(20字)?分別會用在什麼演算法?
- 開發 linux kernel 或 driver 時怎麼 debug?有辦法在不 recompile 的狀況下改變數然後重複執行測試嗎
- Android 手機有辦法搞 IP Spoofing 嗎?怎麼做?
- 如果想自己寫 C 程式幫家裡的 wifi router 加功能要怎麼做?
- 請問 GMM 和 K-means 的差別在哪裡?大致說明一下原理
- Server虛擬化有甚麼好處?你用過什麼server虛擬化工具?
- 描述以下加速方式並舉例 (有漏)
(a)SIMD (b)GPGPU (c\)FPGA (d)MPI
- 若你的程式以下環節效能不好,你會如何偵錯並解決?
(a)program bottleneck (b)cache miss (c\)locality issue
- DNS反射是一種攻擊手法,通常是利用大型DNS Server,將封包反射至目標電腦進行攻擊,請說明如何實作
- 說明Attention
- 寫程式的開發環境?有用 Github 多人協作的經驗嗎?有考過程式檢定嗎?幾小時幾題?
- 你負責的最屌的東西達成最屌的事是啥
## 丁組
### 資安
- CSRF 是什麼?如何防範
### mail
- Open relay 是什麼?
- SPF 作用
- IMAP, POP3 差異
- 如何防止垃圾郵件
- 畫出可擴展的 mail server 架構,並且以文字說明
- postfix table 使用過哪些
- Dovecot中userdb、passdb分別是什麼?
- 是否有管過G suite 、Line work?有什麼優點可以借鏡的?
- 追蹤Mail log 並且找出被退信的原因
### www
#### frontend
- promise 作用為何
- Ajax 什麼時候使用? 有什麼好處? 舉一個程式範例
- 如果網頁有大量資料要渲染,如何加速(可從前後端角度敘述)
- 闡述前端網頁模版使用經驗
#### css
- css selector 選取以下該行如何選取
```htmlembedded=
<head> /* hello, im here */
```
- css id class 優先權
- css `class="a b"` 優先權
- css important 優先權
#### backend
- 用過什麼Framwork?
- 什麼是Mvc ?
- 你做什麼專案用什麼技術? 目的是什麼?
- 資料庫 RMDB Nosql 比較優缺點是啥?
- OAuth2.0 Access token是什麼?
- GitLab 是什麼?有什麼特性?
### Linux/BSD
- 闡述你知道的 Linux 網路管理指令
- Linux 如何做系統備援
- freeBSD, openBSD, NetBSD, ZFS 講出優缺點
- 計中的主機有可能被學生惡意使用或是當跳板來攻擊他人主機?身為網管該如何防範,以及該如何偵測該行為
- 講出你知道的 Linux Distribution 版本以及特性
### DevOps
- 用過什麼CI/CD 軟體?
- K8s 中Pod service devlamnet node 什麼意思?
### 虛擬化
- docker 與 VM 差異
- 闡述你知道的 vm 種類以及特性
- 使用 k8s 或是 openshift 相關經驗
- Live migration ? 不同代cpu有什麼問題? 如何避免
### git/軟工
- git pull, git fetch 差異
- git 如何將刪除的 branch 找回
- 如何保持量好程式碼的品質
- 團隊合作開發經驗?擔任什麼角色
### switch
- vlan 使用以及切割經驗
## 戊組
- 給定 n 跟 L,求 L 最後會是啥
```python=
def f(n, L):
if n > 0:
L.append(n)
if n is odd:
n = n - 1
else:
n = n / 2
f(n, L)
```
- VM 跟 container 差異
- 題目給 192.0.2.96/19 這類的東西,求子網路 IP 遮罩範圍
- XSS 跟 SQL injection 是什麼?怎麼防禦?
- 分別解釋
- strong type
- weak type
- static type
- dynamic type
- 分別解釋
- Object Oriented Programming
- Functional Programming
- Concurrent Programming
- Concurrent Programming 為什麼比 Object Oriented Programming 好
- 你最常使用的 framework 是什麼?舉出三個,並說明你為什麼用它
- 使用任意三種語言達成下述功能:
讀入一檔案 `zero_one.in`,只包含 0, 1 兩種字元,輸出 0 和 1 哪個較多次(不會有同樣多次的情況)
- 何謂雲端運算?舉出三大雲端廠商,並比較各自差異。
- Microservice 是什麼
- DevOps 是什麼?有哪些相關的工具?
- SQL 將兩個 table 合併排序