a10813
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Note Insights Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    --- title: 2022 年資訊科技產業專案設計課程面試範例 tags: INFO2022 --- # 資訊科技產業專案設計課程作業 3 ## [NVIDIA - Embedded Software Engineer](https://nvidia.wd5.myworkdayjobs.com/zh-TW/NVIDIAExternalCareerSite/job/Taiwan-Taipei/Embedded-Software-Engineer_JR1962146?locationHierarchy1=2fcb99c455831013ea52ed162d4932c0) ### What you’ll be doing: - Work directly in developing or integrating NVIDIA automotive or embedded software technology into various NVIDIA automotive or embedded platforms. - Create and implement software features. - Might work with customers to provide deep technical assistances. - Assist customers to achieve fully optimized design with NVIDIA products. - Provide partner feedbacks as to product features and software improvements ### What we need to see: - Experience in relevant domain. - Good English language skills to work effectively with global teams. - Full experience at Linux, QNX or Android. - Excellent C skills. - Experience working on embedded systems and ARM processor specific. ### Ways to stand out from the crowd: - Excellent debugging and problem solving skills. - Self managing and ability to break down complex problems in to manageable tasks. - Experience working in following areas is a plus: AutoSAR, device drivers, multimedia, graphics, camera software stack, image quality tuning (ISP tuning), OpenCL, OpenCV, CUDA, Deep Learning, and AI. ### 匹配程度 - 中 - 對embedded systems未必很熟 - 進階要求寫得很籠統 ## [Google - Software Engineer, University Graduate, 2023](https://careers.google.com/jobs/results/125320247524631238-software-engineer-university-graduate-2023/?location=Taiwan&q=software%20) ### Minimum qualifications: - Bachelor's degree in Computer Science, related technical field, or equivalent practical experience. - Experience in computer science, data structures, algorithms and software design. - Experience in Software Development and coding in a general purpose programming language (e.g., Java, JavaScript, Python, C/C++, etc.). ### Preferred qualifications: - Experience programming in C, C++, Java, and/or Python. - Experience with Unix/Linux or Windows environments, distributed systems, machine learning, information retrieval, and TCP/IP. ### 匹配程度 - 中 - 基本要求都有符合 - 進階要求寫得很籠統 ## [MediaTek - Smartphone SoC Digital IC Design Engineer](https://careers.mediatek.com/eREC/JobSearch/JobDetail/MTK120220316006?langKey=en-US) ### Job Description 1. Architecture design and RTL implementation of Smartphone chipset 2. Smartphone SoC and mobile computing platform design 3. System bus and mobile peripheral design, integration, and modeling 4. SoC system performance analysis 5. SoC low power design, integration, and modeling 6. SoC adaptive voltage scaling development ### Requirement: 1. Familiar with digital IC design, DFT, and FPGA emulation flow 2. Experienced in SoC architecture, Embedded Processor (DSP/MCU), and bus (ARM bus) system architecture design is a plus 3. Experienced in chip integration is a plus 4. Experience with External Memory Interface design is a plus 5. Experience with system verification job is a plus 6. Experience with security hardware design is a plus 7. Experience with low power design is a plus ### 匹配程度 - 低 - 除了有寫過一點 verilog 之外,其他相對來說都未必熟悉 ## 模擬面試 🧔:interviewer 🐶:interviewee 🧔:你好,今天由我負責幫你面試。我考你一些相關的資訊問題,請你解釋一下Program , Process , Thread 之間的差別。 🐶: - Program : 意旨軟體工程師所寫的程式碼 (code) 的集合,也就是還尚未 load 進記憶體的程式碼,存放在次級儲存裝置 (Secondary storage)。也可以想像成是設計一座工廠的藍圖就是 Program。 - Process : 意旨已經執行並且 load 到記憶體中的 Program,行程中的每一行程式碼隨時都有可能被 CPU 執行。在實際生活中,點開應用程式就是將 Program 活化成 Process,我們在活動監控器 (mac) 或 jobs (linux) 中看到 PID,也就是執行中的 Process ID。Program 是工廠藍圖,Process 就是照著設計藍圖所完成的實體工廠。 每一個 Process 又由下面兩項組成: - 一個 Memory Space。相當於 Object 的 variable,不同 Process 的 Memory Space 也不同,彼此看不到對方的 Memory Space。 - 一個以上的 Thread。 多工作業系統 (Multitasking Operating System) 可以同時執行數個 Process,然而一個 CPU 一次只能執行一個 Process (因此才有現在的多核處理器),CPU 的總量又總是少於 Process 的運行總量,且 Process 會佔用記憶體。因此如何排程 (Scheduling)、如何有效管理記憶體 (Memory Management) 是作業系統 (OS) 所關注的事。另外,每個 Process 所需的記憶體總合,也可能大於實體記憶體,因此需要用次級儲存裝置充當虛擬記憶體 (Virtual Memory),因此如何對虛擬記憶體做到最小的依賴,盡可能避免 Page Fault,並防止 Thrashing 的發生以達到最佳化,也是作業系統 (OS) 需要處理的學問。 - Thread : 前面有提到 Process 是 Thread 的容器,在同一個 Process 中會有很多個 Thread,每一個 Thread 負責某一項功能。以聊天室 Process 為例,可以同時接受對方傳來的訊息以及發送自己的訊息給對方,就是同個 Process 中不同 Thread 的功勞。Thread 就是實體工廠內的工人,確保工廠的每項功能,並且共享工廠內的每一項資源。 每一個 Thread 又由下面兩項組成: - Stack:紀錄從某個起始點開始 (例如main),到目前為止所有函數的呼叫路徑,以及在這些呼叫路徑上所用到的區域變數。 - 紀錄 CPU 內部的暫存器 (如 Program Counter, Stack Pointer, Program Status Word 等) 的狀態。 在多執行緒中 (Multithreading),兩個執行緒若同時存取或改變全域變數 (Global Variable),可能會發生同步 (Synchronization) 問題。若執行緒之間互搶資源,則可能產生死結 (Deadlock),如何避免 (Prevent) 或預防 (Avoid) 上述兩種情況的發生,仍是作業系統 (OS) 所關注的。 - 結論 : - Thread 是系統處理工作的基本單元。 - 一個 Process 會同時存在多個 Thread。 - 一個 Process 底下的 Thread 共享資源,如記憶體、全域變數 (Global Variable) 等,不同的 Process 則否。 - 同一個 Process 內的 Thread 使用相同的 Memory Space,但這些 Thread 各自擁有其 Stack。換句話說,Thread 能透過 reference 存取到相同的 Object,但是 local variable 各自獨立。 - 作業系統 (OS) 會根據 Thread 的優先權以及使用過的 CPU 時間,在不同的 Thread 作切換,讓各個 Thread 都有執行的機會。 🧔: 好的,那接下來請你實作一個除法function,並且不能使用到除法運算子。 🐶: 那這邊想到最直覺的方式直接用減法的方式來求出結果。 ```cpp= int div(int dividend, int divisor){ if(dividend == 0) return 0; if(divisor == 0) return INT_MAX; bool resultIsNeg = false; if(dividend < 0){ dividend = -dividend; if(divisor < 0){ divisor = -divisor; }else{ resultIsNeg = true; } }else if(divisor < 0){ divisor = -divisor; resultIsNeg = true; } int quotient = 0; while (dividend >= divisor){ dividend -= divisor; quotient++; } if (negResult) quotient = -quotient ; return quotient ; } ``` ## 參考資料 - [140 Google interview questions](https://www.impactinterview.com/2020/04/140-google-interview-questions/) - [Taiwan Google 面試過程|面試經驗分享](https://www.1111.com.tw/1000w/fanshome/discussTopic.asp?cat=FANS&id=301667) - [五家知名公司軟體工程師面試流程全攻略](https://www.1111.com.tw/1000w/fanshome/discussTopic.asp?cat=FANS&id=300080) ## 檢討評論 - 可以讓自己更加了解想要的公司對於甚麼樣的問題的偏好 - 發現每一家的公司對於面試題目的類型都有所不同

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully