# [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)