# 「資訊科技產業專案設計」課程第3次作業 ## 職缺探索 ### [Google Software Engineer](https://www.google.com/about/careers/applications/jobs/results/137721392706527942-software-engineer-university-graduate-2025) :::spoiler JD - Minimum qualifications: 1. Bachelor's degree in Computer Science, related technical field, or equivalent practical experience. 2. Experience in computer science, data structures, algorithms, and software design. 3. Experience in Software Development and coding in a general purpose programming language. - Preferred qualifications: 1. Master's degree or PhD in Computer Science or a related technical field. 2. Experience programming in C, C++, Java, or Python. 3. Experience with Unix/Linux or Windows environments, distributed systems, machine learning, information retrieval, and TCP/IP. ::: #### 自身評估 :::success - 具有分散式系統相關知識與經驗 ::: :::danger - TCP/IP 僅有理論知識,無開發經驗 - 無大型系統開發經驗 ::: ### [瑞昱 資訊系統研發工程師](https://recruit.realtek.com/Job/JobDetail?jobid=1545) :::spoiler JD - 工作經驗 : 0 年 - 學歷要求 : 碩士 - 工作項目: 1. Develop and maintain IT systems(e.g. PLM, SCM and MES). 2. Execute projects to realize user and IT requests. 3. Survey and introduce new IT solutions. - 應徵條件: 1. Master degree majoring in IT, CE, CS or related major. 2. Familiar with Python/C#/JAVA programming and SQL skill. 3. Familiar with web application development. 4. Experience with PLM, SCM and MES is a plus. 5. Good accountability and communication. ::: #### 自身評估 :::success - 具有後端開發與SQL使用能力 - 具有網站開發經驗 ::: :::danger - 對於 PLM, SCM 等無實際經驗 ::: ### [群暉 Software Developer](https://career.synology.com/zh-tw/HQ/position/45) :::spoiler JD ### 部門介紹 資訊管理部門的系統開發小組以開發各式各樣的 Web Application 為主要任務,對外達到增加營收及產品曝光度,對內則增加同仁工作效率為目標 我們重視並希望透過這些系統提供給使用者流暢的體驗,使我們能在市場中脫穎而出 ### 職務說明 此職務為公司各類服務面向開發系統,包含但不限於以下這些項目:客戶關係管理系統、內容管理系統、金流付費串接、人力資源系統、生產管理與訂單物流系統等。需與 PM、前端工程師、設計師及需求單位進行跨部門溝通合作 您將與我們共同開發出高可用性、高擴展性且易於維護的服務,同時確保系統和資料的安全性 我們正在尋找能夠從不同領域引入新想法的工程師,擴大我們的開發團隊以打造更完善的系統服務 你將協助我們: - 以 OOP 和 MVC 概念來設計和開發與使用者互動的響應式網站服務 - 獨立使用後端框架開發系統,並規劃及實作 Database Schema 和 RESTful APIs - 與 DevOps 討論系統架構,並協助佈署和上線系統 - 與 QA 合作系統 debug 並修復問題 - 開發和維護能重複利用的開發模組 ### 職務需求 我們期待你具備: - 熟悉 PHP 或至少一種 OO 語言 - 熟悉 MySQL 或至少一種資料庫 - 獨立開發網站的能力, 會使用 MVC 架構或相關 framework - 與前端工程師討論 API 串接格式之實作經驗 - Git 版本控制系統使用經驗 - 個性認真、配合度高、溝通能力佳、企圖心強,並有強烈學習意願 ### 加分條件 - 熟悉 PHP (Laravel) - 熟悉 PostgreSQL - 有雲端服務 AWS/Azure/GCP 佈署系統經驗 - 有網站前端的開發知識 - 熟悉前端框架及 SPA 開發流程等 - 熟悉串接金流功能者 (E.g. Stripe, Paypal) ::: #### 自身評估 :::success - 有 RESTful API 開發經驗 - 具有 DB 使用能力 ::: :::danger - 無 SPA 開發經驗 - 無串接金流經驗 ::: ## 面試問答 > 🤴🏻 : interviewer > 👳🏻‍♀️ : interviewee 🤴🏻 : 請解釋一下 OO language 中,inherit 與 interface 的區別 👳🏻‍♀️ : inherit 指的是物件之間的關係。例如說 `Dog` 是一種 `Animal`,`Cat` 也是一種 `Animal`。兩種動物雖然不同,但都需要 `Animal.age` 這個屬性,所以兩者會 inherit `Animal`,讓他們擁有相同的屬性,而不需要 `Dog` 與 `Cat` 都重寫 `age` 在各自的 object 中。 interface 指的則是物件的行為。例如說 `Bird` is `Flyable`,`Dog` is not `Flyable`,所以 `Bird` 就會 implement `Flyable`。而 interface 只會定義需要 implement 的 method,而不會實作,換句話說,`Bird` 會在自己的 object 內實作 `Flyable` 所定義的相關 method。 🤴🏻 : 請簡單解釋一下分散式系統中的 CAP theorem 👳🏻‍♀️ : CAP 分別對應了「一致性(**C**onsistency)」、「可用性(**A**vailability)」、「分區容錯性(**P**artition tolerance)」,而這三個特性已被[證明](https://mwhittaker.github.io/blog/an_illustrated_proof_of_the_cap_theorem/)無法同時達成,所以需要作出 trade-off,但是我們不能保證網路永遠不會斷,所以 **P** 是無法被捨棄的。若是系統選擇 **CP**,則使用者發出請求時可能會因為資料沒有同步的關係導致請求**失敗**;若是系統選擇 **AP**,則使用者的請求總是可以取得資料,但不見得是最新的資料,犧牲了資料的**一致性**。 ## [Resume](https://drive.google.com/file/d/1e5Zeic6okoO9eKtbsEXmzQ3O4W25prAe/view?usp=sharing)