# [2025資訊科技產業專案設計第3次作業](https://hackmd.io/@sysprog/info2025-homework3)
### 1. [Google Software Engineering Intern, Summer 2026](https://www.google.com/about/careers/applications/jobs/results/95392037762671302-software-engineering-intern-summer-2026)
<details>
<summary>詳細敘述</summary>
Minimum qualifications:
- Currently pursuing a Bachelor’s, Master's, or PhD degree in Computer Science, or a related technical field.
- Experience in software development and coding in at least one general purpose programming language (e.g., Java, C, C++, Python, JavaScript, C#, Go, etc.).
Preferred qualifications:
- Knowledge of Unix/Linux environments, Machine Learning, Tensorflow, or embedded systems.
- Ability to showcase tech projects and participate in computer science-related extracurricular activities.
- Available to work full time for 10-12 weeks outside of university term time and to return to a degree program after completion of the internship.
Responsibilities:
- Apply knowledge gained in computer science courses to real-world problems.
- Analyze information and evaluate results to choose the best solution to effectively solve problems.
- Develop scripts to automate routine tasks.
- Create and support a productive and innovative team. Work with peers, managers, and teams.
</details>
### 自身匹配程度
> 對intern的要求不高,現階段的我可以嘗試看看
Minimum qualifications:
- 有各種語言(Java, C, C++, Python, C#)的開發經驗,可以參考github上的專案。
Preferred qualifications:
- 日常開發使用Linux,熟悉Linux基本指令及操作。
- 不了解ML、Tensorflow、 embedded systems,關於ML、Tensorflow有打算選修大學部的課程,embedded systems系少貌似沒有相關的課程,除了微算機||~~希望jserv老師可以開課~~||
### 2. [Google Software Engineer, Mobile, Android Permissions](https://www.google.com/about/careers/applications/jobs/results/117224102778806982-software-engineer-mobile-android-permissions)
<details>
<summary>詳細敘述</summary>
Minimum qualifications:
- Bachelor’s degree or equivalent practical experience.
- 2 years of experience programming in Java or Kotlin.
- 2 years of experience Android application development.
Preferred qualifications:
- Master's degree or PhD in Computer Science or related technical field.
- 2 years of experience with performance, large scale systems data analysis, visualization tools, or debugging.
- 2 years of experience with data structures or algorithms in either an academic or industry setting.
- Experience with embedded systems or operating systems.
- Proficiency in code and system health, diagnosis and resolution, and software test engineering.
Responsibilities:
- Write product or system development code.
- Review code developed by other engineers and provide feedback to ensure best practices (e.g., style guidelines, checking code in, accuracy, testability, and efficiency).
- Contribute to existing documentation or educational content and adapt content based on product/program updates and user feedback.
- Triage product or system issues and debug/track/resolve by analyzing the sources of issues and the impact on hardware, network, or service operations and quality.
- Participate in, or lead design reviews with peers and stakeholders to decide amongst available technologies.
</details>
### 自身匹配程度
- 對Java有一定程度的了解,有使用過Spring boot開發[專案](https://github.com/Seanachan/Kungnection)的經驗,但時間不到兩年那麼長
- 沒有Android的開發經驗。
- OS經驗不足,打算下學期選修「Linux核心設計」
- Embedded systems經驗不足,暫時沒有想法,想嘗試但不知如何下手。
- 現階段專案開發、debug經驗不足。
### 3. [NVIDIA Software Linux Engineer](https://nvidia.eightfold.ai/careers?query=linux&start=0&pid=893391215894&sort_by=relevance)
<details>
<summary>詳細敘述</summary>
What you’ll be doing:
In this role you will involve designing and developing new features within the Linux driver and user space for the leading distributions, managing packaging for Linux distributions, and performing kernel back-ports to support emerging features. The ideal candidate will be technically proficient, customer-focused, and capable of collaborating effectively across teams and with external clients.
What we need to see:
- BS in Computer Science, Computer/Software Engineering or related field
- 4+ years work experience in a software development.
- Extensive experience in Linux kernel development and Linux driver design.
- Proficiency in Linux package management, deployment, and maintenance.
- Hands-on experience with kernel back-porting and patch management.
- Excellent communication skills with a customer-centric approach.
- Strong ability to collaborate and work efficiently in a fast-paced environment.
- Programming Languages: Have experience programming in C++/C & Python as well as scripting languages
- You should be focused, learn quickly, and have strong analytical skills with attention to detail. Strong troubleshooting and debugging skills.
- Demonstrated uses of creative thinking for solutions to exciting problems that matter.
Ways to stand out from the crowd:
- MS in Computer Science, Electrical Engineering, or a related field.
- Extensive experience in Linux operating system development, contributing to overall OS functionality.
</details>
### 自身匹配程度
- 工作經驗不足,可以積極尋找實習機會。
- Linux kernel經驗不足,預計下學期選修「Linux核心設計」。
- 有使用過pacman、apt、等package management,其中有寫過pacman的PKGBUILD。
- 熟悉C/C++,但沒有實際專案開發經驗。
## 模擬面試Linux相關題目(來自學長轉述)
> 🧔:interviewer 👶:interviewee
🧔:如果一個檔案系統無法建立新檔案,請問可能的原因?
👶:可能的原因有很多種,有可能是儲存空間不足、權限不足、或是inode用完了。
🧔:請你說明什麼是inode
👶:inode是在UNIX系統上用來描述FS的資料結構
> 這部分我不太熟,OS還沒上到FS。
🧔:你會怎麼排除問題?
👶:我在自己的筆電上有遇過root分區滿了的情況,可以使用`df -h`、`df -i`來檢查硬碟使用量。
---
🧔:請你說明`kill`指令的作用
👶:`kill`指令是使用我個人使用頻率很高的指令,因為我的waybar跟fcitx偶爾會有問題或是需要重新啟動,這時候就需要使用`kill`然後重開。`kill`用在關閉特定的process,會發送`kill()`的system call,可根據process的PID使用指令,例如`kill -9 1234`
🧔:`kill -9`殺不掉一個process,分析可能的原因。
👶:可能是一個zombie process,process 其實已經終止,但parent process還沒有exit。它只剩下一個PID和一個存在process table裡的紀錄,本身已經沒有程式碼在執行。
---
🧔:請你說明`exec()`system call的作用
👶:`exec()`用於開啟一個新的process並取代現在正在執行的process,在修OS時有用過`exec()`和`fork()`實做過簡單的shell,shell會先`fork()`,接著在child process呼叫`exec()`指令。
🧔:為什麼要 fork 再 exec?能不能直接 exec?
👶:因為`exec()`會將整個program image取代掉,許多情況都需要保留program image,所以需要使用`fork()`產生新的process。
🧔:請你說明`fork()`system call的作用
👶:`fork()`會產生新的process(child),parent process會收到child process的PID為回傳值,child process則會收到0為回傳值。
### [履歷](https://docs.google.com/document/d/1bfB-NrnscqzyFYvzEd4yAPePxUlr4lNcLANdPxhtCbg/edit?tab=t.0#heading=h.r2zj487i63ie)