投 Intel Intern 的經驗分享

在快要到暑假的時刻,沒想到還有 Intern 的缺可以投
兩週後,有了個面試邀約。
紀錄一下準備的過程和實際上遇到的狀況。

起源

之前投過 Line 和 MTK 的 intern
Line 的話應該算是太晚投,MTK 則是連 HR 都沒發信 (而且還是內推的方式)

只能說就是時期不好或是我爛吧。

後來聽到同學面上了 Intel,就跑去查了一下,結果發現他們的 Form 還開著,就填了送出。

表單

過了幾天,收到了一個開過的 intern 的缺的列表 (但沒更新人數),並且提及要去官網投才行。
所以也算是走普通流程,就是去官網投,讓 Intel 的系統有你的資料這樣。

過了兩週,突然接到一通 02 開頭的電話,問我說有沒有興趣去找時間 Meet 一下。

第一次的 Meet,主要是跟主管聊自己的狀況、
確定自己有足夠的時間去 handle 工作
(到 9 月都要 Full-time,開學後每週 3 天完整的班,一整年)
也有問我目前大概住哪邊,因為可能還是得進辦公室。

然後可以再決定要不要參加第二次 Interview 。

以下的準備和資料蒐集,算是為了第二次的 Interview 準備的。

關於網路上蒐集到的 Intel 流程

網路上看到的一些不錯的問題

你最近遇到的issue你自己獨力完成的issue,我解釋了我遇到的issue。

在解issue中你覺得你最需要考慮到的是甚麼??你要如何思考問題?

在某 2020 的 intern 面試心得

  1. Behavioural Interview
  2. Coding Interview
  3. Automation Concept

大陸 Intel intern 面試過程

  1. 確認履歷和你做過的東西
  2. 岡位會用到的技術,像是 sql
  3. 底層技術,像是 C++
  4. 演算法 + Linux
  5. 討論 offer

在另一篇看到的

  1. 自我介紹
  2. 自認的優點和缺點
  3. 當你遇到不想和你共事的人怎麼辦

自我介紹

  1. 自我介紹

    這個部份我個人認為要提到幾個部分 :
    來歷,性格,過去的 project,能力 domain

    我叫 XXX,目前就讀 XX 大學電機所的CS組,雖然是電機所的,但學習方向還是比較偏資工。
    人格特質的話,算是興趣導向的人,對於喜歡做的事情就會埋頭去研究,不論最後是成功還是失敗,總會有一個心得,以及我認為那些都會成為我的回憶的一部分。

    My name is XXX. At present, I am studying in the CS group of the electrical engineering of Taiwan University. Although I am from the electrical engineering, my study direction is still more on computer sciense.
    In terms of personality traits, I can be regarded as an interest oriented person. I will work hard at what I like. No matter whether I succeed or fail in the end, they will always have an experience, and I think those will become a part of my memories.

    在資工領域上,我喜歡實用的東西,所以像是我 CV 上面可能會看到很多網頁相關的 project,因為他可以跨平台的將應用呈現在上面,也易於分享。

    In the filed of computer science, I like pratical things, such as Web application project, because web application can present across platforms, and it is easy to share with other people. It is why there are some web application projects on my resume.

    我去購買 digital Ocean 的 VPS (Virtual Private Server)服務,在上面使用 Apache 去 deploy 我的部落格。

    One of my project is my blog.
    That is built on the VPS service which I bought from digital ocean and use Apache to deploy my blog, so I have some Linux basic knowledge and experience.

    我也喜歡寫一些腳本去幫助我的生活,像是爬蟲。

    I also like to use script to make my life convenient, such as crawler, I can use crawler to get all the item in the online shop, and convert them to a excel or a table, I can read it more clearly.
    (Because online shop may contain advertise or something else useless information.)

    此外,我也會寫一些 script,他們可以幫助我在偵測到特定條件時用通訊軟體通知我。

    In addition, I usually write some script that can notfiy me by communication software or mail when specific conditions are detected.

    順帶一提,我的電腦是我自己組的,所以我對一台桌機擁有基本知識,也許會更容易的融入工作。

    By the way, my desktop is built by myself, so I have basic knowledge of a computer, maybe it will be helpful for this work.

    (如果被問到在架設的過程中是否遇到什麼問題)
    有,為了符合 Https 協議,同時又要套用 domain name,在申請 SSL 的過程中也遇到了很多狀況,但最後在找各種資料下找到了一個自定義參數的方式去建立憑證。

    Yes, in order to comply with the HTTPS protocol and at the same time apply the domain name, I encountered many situations in the process of applying for SSL, but after searching a lot of information from internet, I found a way to create a certificate by using a user-defined parameter.

    (如果遇到錯誤訊息,你的 debug 步驟 ? )

    First, I will observe the error message and try to understand what happened.
    If the information is insufficient, I will access the error log at /var/log/, there are some corresponding log that can find out something, maybe.

  2. 自認的優點和缺點

    優點的話,就如同上面所說的,熱衷的事情會埋頭去做;
    但他同時也是個反面刃,這個性格可能會被動機所影響,或是可能會因為自己埋頭苦幹而繞了冤枉路,如果在那之前就有很好的方向指引,情況就會比較好。

    My advantage is, as mentioned above, I will have more passion at what I like, but at the same time, if I can't get good direction, I may miss in the maze or detour.

  3. 當你遇到不想和你共事的人怎麼辦

    如果我能夠明顯的感覺到,那我可能會去跟他請教我是不是哪邊做得不好;
    當然對方可能也會很客氣的不提,既然他不願意說的話,那我也會與他在不影響工作的情況下與他合作。

可能的考題

  • Intel intern interview experience

  • Intel Corporation Intern Interview Questions

  • 比較像是一個很淺的經驗分享,大概提及而已的那種感覺。可以用免洗信箱辦。

  • 另外我有整理一點點的 CA 複習筆記,主要是用英文去描述一些 concept。
    之後應該會放上來。

  • OS相關基本題 : Interrupt、Process & Thread、Multi-thread、Mutex&Semaphore、 Spin lock、Sync相關各類問題、volatile、Pipeline C\C++ : Overloading、Virtual Function、Funtion Pointer、各種不同scope的Static用法、Stack/heap/.bss架構

  • What is spark doing ? How spark help your project ?

    Apache Spark is a lightning-fast cluster computing technology, designed for fast computation. It is based on Hadoop MapReduce and it extends the MapReduce model to efficiently use it for more types of computations, which includes interactive queries and stream processing.

    The main feature of Spark is its in-memory cluster computing that increases the processing speed of an application.

    That project use KNN algorithm to classify the class of input data.
    In KNN algorithm, it need the distance between datas, so I use spark to parallel loading the data, and computing the distances between datas.

    I use many workers created by docker to imporve processing speed.

實際上問到的問題

線上,Microsoft Meets,要開鏡頭,建議要自己先測試過鏡頭 OK
我用 iPad 結果鏡頭 Freeze 了有夠尷尬,趕緊切換手機。(被碎念了 QQ)(手機記得開旋轉螢幕)
另外建議用藍芽耳機,我忘了用,用喇叭聽其實會怕自己英聽聽錯但是勉強還能。

以下的問答都是用英文。
但我英文真的爛,所以我會在一些不懂的地方直接中文詢問 : 抱歉我不太懂問題的意思
我覺得比起冷場,我會希望我可以盡量的去回答問題,即使讓他們知道我就是個英文渣。

對了,前一個晚上我看到 Schedule 的 Detail,與會者有六個人,嚇歪 QQ
實際上也真的有六位 Senior 等級的來面試/提問 ... (其中一個應該是東南亞人)
由一個主要的主管作為起頭,然後輪流提出想問的問題。

整個 Interview 時間是一小時。

  • 介紹自己 (先自介,然後再有以下提問)

    • 你平常在做什麼,有沒有 hobby
    • 你覺得大學和研所的課程差異在哪邊 ?
      • A: basic knowledge and advance skill usage (implement)
      • 我舉了一些研所的課像是軟工、CV、ML 這樣的進階課
    • 大學有修過 electric 相關的課程嗎 ?
      • 我只修過數位電子學,算是實驗(experiment)性質的課程
    • 有做過一些團隊合作項目嗎 ? 如何去分工 ? 工作性質如何(是老師 assign 還是) ?
      • 我舉例軟工的課程,我沒有回答的很好,因為很難用英文去表達我腦中亂竄的一大堆想說的。重新組織一下的話,主要是要提到工作如何分配,合作之間是否有一定的方式,如何解決問題。
      • 但畢竟我是拿軟工作舉例,這本來就是一個合作向的課程,算好發揮。
        我是提到,分工部分我會去了解大家的實力再去分配工作,也會寫 Document 像是 API Doc 之類的來做規範,透過一周 2~3 次的 Meeting 去討論進行的方向 ... 這樣。
      • (我不知道怎麼翻譯"實力" ... 後來查了一下,Ability 就可以了 QQ 或是 Power)
    • 你考研所考了哪些 ? 分數最高的科目是哪科 ?
      • 資工的主要六科(subjects),並且考了五間學校,最好的是離散數學(discrete mathematics)
  • Project

    • VPS 是啥 ? 用它來做甚麼 ?
      • Virtual private server,用來架我自己的 blog 和放一些腳本
      • 這邊我一直聽不懂他想問的 QQ 因為我以為他知道 VPS 是什麼,想要考我 Server Hardware 相關的知識所以解釋了 VPS 搭建的細節,但我搞錯問題方向了,他只是想知道那是什麼 Service 和用途。
    • 有做過跟 hardware 有關的 project 嗎 ?
      • 我說我用過 Verilog 去模擬 CPU,當時我是真的要去燒進去板子的 = =
        但我說了這個他們並沒有多問,也許他們想聽的是有沒有跟 Driver 相關的開發經驗。
  • 一些 CA 相關

    • ROM 和 RAM 差別 ?

      • Rom 的部分我有提及 Read-only Memory,但是又說他是一個 storage 用途的裝置。
        顯然這不是正解,畢竟我這是用手機的角度去思考這個問題;
        正解應該是拿來存放一些不會被改動的 program 像是開機載入程式或是 Driver。
    • Cache 用途 ? 架構是什麼 ?

      • 我提及 L1 L2 Cache 和如果沒有 Cache 會如何
        (Cache 的優勢 : 因為 data 可能重複被利用之性質,若能省一些去 Memory 拿的時間,是很值得的,因為他們差到好幾倍以上的時間)
      • 其實我知道還有 spatial locality 和 Temporal Locality 可以進行描述,但我仍然卡在英文很難留串的串接想法
    • Cache 很重要,那他怎麼和 Memory 溝通 ?

      • 草,我是真的忘了,一開始回答 TLB (WTF)
        然後他以為我搞錯了問題方向就又解釋了一次,我是真的呆住了
        ... 因為我有點轉不過來是怎麼溝通的,於是我回答了 Virtual Memory。
        然後他就說 okay 結束問題了,尷尬,答錯了 QQ
        實際上正解應是用 mapping 的方式,舉例來說: Direct Mapping or Set-associative Mapping.
        我在準備的時候沒有去複習 OS,所以這部分沒有融會貫通到 (但我有準備到 mapping)

      我是白癡我是白癡 QQ

    • 你的自介有說到你組過電腦,你怎麼決定要買哪些零件 ?

      • 我提及這得看你的使用需求,如果是文書機,那就不用太高級的 CPU 像是 i3 或 i5
        但如果想要玩遊戲,那可能得找 i7 以上的 CPU,並且我會看是否有 overcooking 的功能,也會看 frequency 來做考量。Ram 的部分也是。對了,還有一個要考慮的因素就是價格(然後看到主管笑了一下)
    • 伺服器用途的和一般個人電腦的差異 ?

      • 我提到會需要不一樣的零件,因為用途不一樣;像是伺服器會需要 Xeon 這樣的多核 CPU,以及他並不需要超頻,而是更需要能夠多工處理的能力。另外記憶體也會挑選有 ECC Support 的,才能有比較高的容錯率。
      • (這題我有猜到,有準備)
  • 其他

    • 魔術社 ? 練魔術要多久 (閒聊) 表演幾分鐘
      • 這邊我又聽不太懂他的準備的意思 QQ
        用中文聽的解釋後大概回答 : 我參加了四年的社團,並且出了兩次的舞台,每次準備半年到一年,而表演時間大概就五分鐘
  • 情境題

    • 如果你遇到藍屏你通常會怎麼做 ? 你有一些 hardware debug 的經驗嗎 ?

      • Of course YES. 我提出了可以去事件管理器查看 Log 並且 Google;也大概描述我可能會去猜測是否些零件壞了,例如最常壞的就是 PSU。
        然後對方追問 : 那你怎麼知道要換 PSU 的 ?
        我說 : 如果是其他元件壞掉,也許我可以從主機板上面的小 alarm 去聽 bee warning
        (要回答得更好一點話,最好是用交叉測試的方式去回答,例如我換過 Disk,只插一條 Ram 之類的,但是用英文我根本沒辦法一下子直接表達出來)
    • 如果今天給你一個待測程式和一個環境,如果連跑都沒辦法跑,怎辦 ?

      再者,如果今天他可以跑,但是 System crash,怎辦 ?

      • 這個問題一開始我是聽不懂的,畢竟 "連程式都沒法跑" 這樣的情況也太慘,說實話我可能還真不知道怎辦。(猶如你點開一個程式他就只是閃退而不給訊息)
        但經過確認,確實是這樣的一個情境。
      • 我的回答是 : 我會先試著跑,然後看看有沒有相關錯誤訊息,並且 Google 看看。
        如果還是找不到有用的資料,那可能得去問看看提供程式的廠商有沒有一些建議。
        至於如果是跑得起來但是在 System level crash,我會試著去看看 OS 的 error log,再查看看有沒有可能的解法。
      • 這個問題其實我答得挺不確定的,因為說實話我很討厭這樣的情境 (很無助)
        每次我自己在 debug 時,雖然我的確是這樣去解決的 (在用 Apache 架設網站時,或是一些其他情況),但常常我還是在 "I don't know why but it works !" 的情況下結束。
      • 於是,最後提問時間,我就直接詢問了這樣的一個問題在工作場合會怎麼處理。
        考官 : 在程式跑不起來時,沒錯,先蒐集錯誤資訊,並且拿去 Google。盡你得可能去找了之後,如果不行,那就要馬上去求助程式提供者,或是其他 teammate。
        這很重要,因為我們是一個 team,不要自己在那邊做自己的,也許你遇到的問題其他人有遇到過。再來,如果是系統層面的 crash,也是類似的流程,蒐集資料,然後找資料,與他人討論。

心得

  1. 主管們人其實很好,都會用英文再一次的 Check 我的意思是不是那樣 QQQ
    (用英文來 repeat 我說過的 solution,並且用更好的文法和正確的字詞。)

  2. 我準備了大概三天,因為我是差不多四五天前收到二面的時間
    過程大概是看了一些 CA 相關的知識,以及將自我介紹、可能的問答用英文去寫出來

    在用英文準備回答方式的過程中就會遇到很多不知道怎麼講,但其實自己背過的單字
    一查就知道,會讓自己有些印象。

  3. 心態上,其實挺慶幸自己有去猜題以及試著準備。也沒有因為英文關係就放棄面試。
    一開始我連投履歷都不太想投,因為我覺得光是英文面試我大概就直接拉垮。
    所以當初 MS 我就沒去投,明明當初去信義國泰置地聽講座還滿腔熱血。
    後來快接近暑假了,MTK 內推 intern 連個 HR 都沒來聯繫
    看到 intel 還有開著就直接投了。(但 intel 剩下的缺好像都偏硬體 QQ)
    心態可以調整成,不管有沒有上,你都有事情可以做 / 有不同的時間規劃與經歷
    這樣會比較好,可以減輕一些得失心所帶來的影響。

  4. 硬體的知識是可以後面再補足的 (我覺得)
    不過也許我沒有相關經驗還是有些扣分吧,基礎知識也沒準備的很完善
    我目前的心態仍然是有上的話可以去試試增加經驗,沒上的話也能接受 ( Loading 考量 )

Ref

https://www.twblogs.net/a/5b830c8e2b717766a1eae083

https://www.blink.com.tw/board/post/38141/

End

2021.07.21