Back
Featured image of post CMU-SV MSSE 第二學期心得

CMU-SV MSSE 第二學期心得

CMU-SV MSSE 第二學期心得

寒假回台灣了,大約在十二月中到一月中回台灣耍廢了一個月。

也因為第一學期沒有找到實習,因此我希望將第二學期的重點擺在找工作,並且考慮到以下幾點:

  • 我感覺自己目前有的技能有點難找到工作,因此希望透過修課能多學一些熱門的技術
  • 第一學期 FSE 其實並沒有想像中累,每週工作量可以再預估多一點
  • 履歷已經改到沒東西寫了,最好可以加一點東西

SV 校區的修課選項真的不多,而且 CMU 其實雷課也不少,避免踩雷我決定修了一堂傳說中的神課 CC。春季其實還有一堂蠻多人推的 14-736 Distributed Systems,但因為一些原因我後來沒修,聽說作業也會花蠻多時間寫的(我一位同時修 CC 以及 DS 的同學表示:千萬不要搞自己)


修課

Cloud Computing

總之就是學各種跟 AWS、GCP、Azure 相關的技能,因為這堂課太有名了因此另外幫他獨立寫了一篇 心得文章

Foundation of Database Design

image

不知道主視覺是誰設計的,蠻好看的哈哈

這堂課在教資料庫設計,課堂內容大概是參考 sqlite 跟 15-445/645 Intro to Database Systems 來的,全部都使用 C++。作業有 3 個,小組作業 1 份,加上 2 個很小的 lab。

我大概到第三第四週就開始不知道在幹嘛了吧,拜 ChatGPT 所賜作業都還是寫得出來,但也因此學到的並不是很多,每週花不超過 10 小時。因為是剛開的課很多東西都不太完整,也 “聽說” 作業 2 甚至是因為教授收的 RA 來不及出而延後了很久,學期後面上課學生出席率應該不到 40%。

How to Write Fast Code II

主校區廣播過來的遠距課,主要是教 OpenMP 跟 Cuda,聽說是 15-418 Parallel Computing 的低配版。作業 4 個,小組作業 1 個,學期中後段讀了 7 篇有關高性能運算的 paper,如果想要爭取上課參與分數可以自己報名去報 paper。

沒錯,這堂課有上課參與分數,而且老師很喜歡一直問大家的意見,如果沒有人理他他就在那邊跟大家僵持不下,然後不錄影,上課沒去就沒了(雖然去了也不知道他在講什麼XD)。

前面 OpenMP 的部分還算簡單,但後面 GPU 那邊會用到一些 Fast Code I 跟一些計算機很底層的內容,如果自己沒有相關知識幾乎就聽不懂了。我的組員有一位有上過 Fast Code I,每週 Office Hour 幾乎都會去跟教授交流,但我看他後面也是不知道在幹嘛,所以如果有想選這系列課程的請想清楚。

我印象蠻深刻的一點是老師學期初有說:「我們要 parallelize code,而不是 paralyze code」,我當初一直覺得這個冷笑話很難笑,但到學期末的時候才發現他不是在說笑,而是真的常常反而改一改變更慢:)

總體來說,我覺得如果有花時間在上面還是有些收穫的,推薦給對 High Performance Computing 有興趣,會自己去查相關資料,然後喜歡跟教授喇賽的人修。

Software Engineering Methods(TA)

我在第一學期結束之前其實一直就有在想要不要當助教,主要是因為:

  1. 來這邊幾乎沒講到英文,感覺當助教會需要跟教授還有學生做很多互動
  2. 想要多水一點工作經驗,而且這是美國當地的
  3. 辦 ssn
  4. 賺點錢,就算是最低時薪至少可以 cover 大部分的房租

學期結束那陣子 Cecile 就有寄信給大家問有沒有人要當 FSE 跟這堂課的 TA,FSE 的部分有上過就大概知道要幹嘛,我也問了我們組的 TA,他本人是跟我說不推。另外就是這堂課了,因為這堂課只開在春季班,所以我也沒有上過,但以 Cecile 信中的描述感覺我的背景挺適合的,抱著問了沒損失的心態我就寄了信給教授,他隔天回信說跟我歷年來很少有 TA 上過這堂課,並且他看了一下我的履歷還有我在 FSE 的 commit 還有 PR review,覺得很適合就直接收我了,唯一需要注意的點就是如果當助教的話就不能修這堂課。

這堂課主要內容在教大型軟體團隊的開發方法,像是 LeSS、DAD、SAFe,而程式部分則是老師會決定一個 Web App 的主題來讓大家一起開發,而我這一屆是 Instant Response。基本上除了前端使用 React.js 之外,其他內容都跟 FSE 一樣,其實幾乎所有東西都是可以全班一起討論決定的,包含要用哪種開發方法,以及要用什麼技術棧。雖看似自由,但因這堂課是 core,想划水的人有很多,想要嘗試一些特別的東西必須要先說服其他人,如果要花很多時間去學的話就很容易被大家否決。當然可以自幹,只是除了每個 sprint 都不長之外,還有一些必須要完成的 feature,如果還有修其他課的話真的不會想多花時間在上面。

這堂課會推薦給只想寫 Web 前後端,或是很想認識人的人,因為除了小組之外也會有很多跨組的討論。大概學期中就幾乎沒什麼上課了吧,期末一半以上都有 A,沒有期末考,但我看他們每週好像都花蠻多時間在上面的。

至於助教主要內容就是他們學期初的 recitation,教大家 typescript, react, redux, storybook,還有看教授叫你幹嘛就幹嘛,每週工作時數平均下來絕對 < 10,如果只是當打工完全 ok

選課心得

選到第二次課,總結一下個人的 CMU 選課心得:

  • 新生優先權最低,來的第一學期可能不能期望修到什麼好課
  • 個人推薦可以每個學期選兩堂必修+一堂選修
  • 很多課都會希望先修過 FCS,如果沒有特別的想法第一學期可以考慮修一下,而且很多人都是第一學期修,大家可以一起討論
  • 如果很在意找工可以先修 CC,他會一次教很多業界現正熱門的技術,如果想要跟大家一起討論可以在春季修
  • 剛入學 advisor 會一直恐嚇你說 FSE、FCS、CC 這三堂課中,不要在同一學期修任意兩堂。但我覺得其實也沒有那麼嚴重
  • 除非可能影響到畢業,不然儘量不要選自己沒興趣的課,除了浪費學費之外(一堂課約台幣二十萬),還會浪費很多時間在上面
  • 如果是 SV 校區其他 program 的學生,我個人是完全不推薦修 SE 的必修課程。第一是這是我們的畢業條件,我們真的很需要趕緊將它處理完,第二是這些課程品質真的沒有好到值得跟我們搶,好課請選主校區廣播過來的

找工

找實習部分也另外寫了一篇 心得文章 出來。

以秋季班台灣人來說上岸率為 3/5,整個學校體感大概只有一半找到實習吧,最近真的很慘,不推薦沒有工作經驗的人來。

國際學生春季班入學應該是不能實習的,但我們這邊有一位秋季先到 USC,春季再來 CMU SV 的神人上 Google Intern,詳情請見他的 medium 文章


旅遊

IMG_2977

自由女神在一個要搭船去的小島上,而我在搭船的時候收到 offer,我很高興的跑到我朋友旁邊跟他們說「我還沒上岸就上岸了」

春假跑到紐約去玩了六天,算是出國之後第一次認真出去旅遊,不然真的每天都是寫作業跟找工作QQ

心得就是:紐約好髒、好貴、好無聊,我甚至在美術館睡著==

但回來之後意外發現,因為很多電影跟連續劇的背景都是在紐約,在去過之後會對於劇情更有帶入感,這麼想也算是值回票價了吧:)

IMG_2960

時代廣場 aka 廣告廣場,我真的超討厭廣告,真的不能理解這種塞滿廣告的地方也能成為一個景點?_?


外部連結

  • CIT & SCS Masters Internships 下方 program 欄位可以只選擇 Software Engineering,就可以看到 MSSE 的實習找工狀況(只有有回報的人的資料)
Licensed under CC BY-NC-SA 4.0