探索職涯系列 2024 年 第一站 實體面試

2024 第二季面試 第一站 : 專案 ? 產品 ?

Table of Cotents

引言#

回顧我五年的工程師生涯,每段經歷都有其獨特的任務和挑戰,讓我在不斷成長和學習中積累了豐富的經驗。接下來又是下一段經歷的準備期,希望藉由撰寫此篇章能夠從準備其中更認識自己,找到下個目標。

實體面試#

很榮幸獲得了一間位於大安區人數約為10人公司的面試邀約。公司正在發展自有產品,找新職員的目的是擴編。產品內容是專門為土木工程營造石設計的管理系統,相當有趣。我本是土木系出身,同學大多在營造廠擔任主任等職位。因此理解工地要做系統化管理的困難度。困難點在於營造業雖有一定的流程,但會因應工地的條件去做變化,執行方向就會不同,沒有一定流程,對系統化而言是種挑戰。

實體面試流程#

  1. 自我/作品介紹 (技術主管)

    面試者準備相關資料,面試時與技術主管介紹,途中會問一些問題,多是每個經歷的技術提問。

  2. 技術考試

    此部分會寫在技術考試

  3. 人資面談

    上份工作離職理由、為什麼選擇面試此份工作、期待薪資。

技術考試#

  • 提出需求,立即設計出符合需求的資料庫結構

  • C# LINQ

  • JavaScript Event Loop

技術概念回顧#

此部分僅針對筆者當下技術上不夠清楚部分,進行釐清。

Bit flag#

Q : 如果今天要設計一個權限系統,你會如何設計 ?
筆者 :
面試流程 drawio

Q : 如果這個 Permission 只能儲存一筆 user 的權限資料要如何改 ?
筆者 : 可以開 4個 prop, 例如 canReadstatus (bit)

Q : 如果只用一個 prop 能不能做到 ?
筆者 : 用數字代表大於 等於 ?

Ans : 你有聽過 C# Flag enums ?

什麼是 Flag enums ?#

假設現在我們有四個權限,分別是讀、寫、執行、分享。
如果用 Boolean 概念看,如下所示

執行 分享 二進位值
1 0 0 0 8
0 1 0 0 4

這些數值可以轉為二進位,再用 C# 比較概念去撰寫以下程式碼,進而判斷權限,是不是很簡潔呢 ?

1
Permissions readWrite = Permissions.Read | Permissions.Write; // 1100 = 12

參考資料 : C#: 位元旗標 (Bit flag) 與列舉

MSSQL DateTime 資料型別#

C# LINQ 延遲載入#

JavaScript Event Loop, Promise, microtask & macrotask#

個人回饋#

待補