[心得] Utah MSD一年就讀心得

作者: haohaohao945 (haohao)   2023-10-22 13:10:22
大家好,之前分享過夫妻同時轉領域申請學校的經驗,來更新一下目前的感想。
不知不覺到美國也一年多了,更新一下就讀這個Program的心得,給還有考慮轉碼的申請
人參考(雖然因為現在就業市場寒冬,應該想來的人越來越少),有問題的話歡迎站內信
交流。另外如果有人知道有職缺的話也麻煩拉我一把(今年12月畢業)
背景
NTU土木工程學士+碩士
畢業後4年系統廠+1年外商PM
只有大一修過一堂必修的計算機程式,基本上入學前程式能力=0
學校介紹
University of Utah,位於猶他州鹽湖城,離機場、市區都算近,開車15分鐘,大眾運輸
有公車、輕軌、火車,如果是猶他大學學生持學生證搭乘大眾運輸都是免費,所以班上不
少學生是搭乘大眾運輸通勤上下學,不一定要買車。
學校海拔大概1300公尺,附近都是山,當地人很喜歡戶外活動像是爬山、攀岩。11-4月的
時候會下雪,造就附近很多滑雪場,如果學生購買ikon pass會有大概6折的優惠,附近
有6個雪場都可以使用,適合喜歡滑雪的朋友。
Program介紹
全名Master of Software Development,是隸屬在CS department底下的一個新program,
我是第六屆。由5個CS的教授負責主持,所有的課都會由這幾個教授輪流授課。相對MSCS,
MSD是開給非CS background的學生,所以班上同學都是來自不同科系,不少人都有工作經
驗,都是來轉領域的,我這屆一班45人,平均年齡27歲,由於班上很多是當地人工作之後
想要轉換跑道,所以相較於其他學校的CS、SE碩士班,我們班上只有一半是國際學生,好
處是有比較多講英文的機會。
Program規劃總共4學期,包含Summer要上課,所以總計16個月,學費部分總計大約57000
美元。畢業要求10門課,因為班上同學幾乎都是0基礎,所以4學期的課都是一開始就安排
好了,不需要選課,也因為課程設計是有順序的,所以只能Fall入學。整個16個月都會跟
這40幾個人一起上課,為了讓教學上更順利,入學的時候每個人會發一台全新的筆電,我
這屆發的是Macbook Pro 13' with M2 chip,只要順利畢業,電腦就可以帶走不用還給學
校。
另外系上提供一個彈性是雖然表定是16個月,但是如果你畢業找不到工作或是想多修一些
CS進階課程,最多可以讓你延長一學期(詳細操作方式需詢問系上Advisor)。
上課方式教授都會到現場上課,並且同步用Zoom直播,讓有些不方便到學校的同學可以遠
端上課,下課後老師也都會把課程錄影上傳到學校課程網,如果上課沒聽清楚可以回家看
影片複習。
課程介紹
第一學期有三門課,課表規劃比較特別,週一到週五早上都要上課,但不像傳統上課是三
門課分散在不同天,而是1-5周每天都上第一門課,6-10週都上第二門課,11-15週上第三
門課,讓學生有一定的基礎之後再進行下一堂課。
1. Introduction to Software Development:使用C++上課,從基礎的程式開始講解,每
天都有作業,主要就是練習當天上課的內容,並且每份作業都需要跟教授或是TA進行code
review,會看你的coding style,期末作業用C++寫一個小遊戲,例如貪食蛇、flip
bird。
2. Computer Programming:這堂課改用Java,開始加入OOP的概念,期中作業要用Java搭
配JavaFX寫一個混音器程式,讓大家練習GUI跟OOP。後半學期會教基本的Web開發,包含
Html, Css, JavaScript,期末作業是寫一個網頁聊天室程式,用JavaScript寫前端,發
送Client的request,再用Java寫一個可以multithreads的Server處理request並回傳訊息
到對應的聊天室頁面。
3. Data Structures and Algorithms:這堂課繼續用Java,會講解各種資料結構及演算法
,以及Time complexity的概念,作業除了要求我們寫出code的部分外,還要對各種不同資
料結構或是演算法計時來驗證。因為還是第一學期,考量到我們都還是菜雞,這堂課沒有
講得很深入,可能還是需要自己另外找時間上一些額外的課程像是CS61B以及搭配刷題來
更加熟悉各種資料結構及演算法。
第二學期,這學期還是每天早上上課,但是恢復成傳統3門課同時進行的模式,我覺得整
個work load不算小,會開始有一些同學跟不上課程進度上課上得很掙扎,最後休學。
1. System 1(Computer Arch + Operating Systems):這堂課就介紹作業系統與CPU架構
,涵蓋Assembly code, system call, process, scheduler, memory page, lock等觀念
,會搭配一些作業來讓學生了解系統如何運作,像是自己寫一個Unix shell,讓我們練習
fork、pipe、file descriptor的使用方法;也有用memap寫function來實現malloc、以及
用mutex寫function來模擬openmap並比較performance。
2. System 2(Computer Networks + Security):這堂課大致分成三大部分,第一部分先
講networks相關知識,從各個網路層級的運作方式開始,也會實做一些作業像是用Java寫
一個DNS resolver、用最短路徑演算法模擬router routing的方式。第二部分會講一點密
碼學跟network security,從常見的加密方式原理開始,帶到private key、public key
、signature、certificate等如何在現實中應用,最後會有一個簡化版TLS protocol的作
業。第三部分是computer security,介紹基本的攻擊方式,像是buffer overflow、code
injection、DoS,以及在現實中要如何預防。這門課跟上一門課是我個人覺得收穫最多
的兩堂課。
3. Software Engineering:主要介紹軟體開發的流程,從design pattern、
documentation到unit test等環節。這堂課的作業是一個為期一整個學期的project,隨著
課程不斷更新,增加新的功能。內容是用C++開發一個簡易版的"語言",最終成為一個
command line tool,使用者依照著這個語言的規則輸入指令,它會輸出對應的計算結果。
第三學期Summer有兩門課,每週二三四早上上課,雖然比前兩學期少了一門課,但是因為
Summer也比一般學期少了三週,所以沒有感覺節奏變輕鬆。
即使summer有課,系上還是同意學生實習,因為課程都會錄影,可以下班後自己補課。我
自己暑假很幸運地找到一家在加州的實習,但因為每週要上40小時的班,下班時間跟週末
幾乎都花在補課跟寫作業。個人覺得如果有實習的話,加上上課整體loading蠻大的,不過
為了增加履歷大家還是咬個牙撐一下吧。
1. Database Systems and Applications: 這堂課會教SQL,作業用MySQL,會從畫Entity
relation開始帶你了解database的架構、建立table、如何查詢。期末作業會加入C#,
使用scaffolding及LINQ,並帶入MVC概念,用C#與ASP.Net來控制MySQL寫一個簡易版的課
程網系統(Canvas),有professor、student兩種user,可以登入系統後管理課程、作業及
成績。
2. Data Analytics and Visualization: 講解一些統計觀念,用python中的numpy、
padas進行數據分析,並用plt來視覺化數據。接著老師會帶著學生操作pytram進行一些基
本的training。最後期末作業是要自己想一個題目用D3.js做出視覺化的呈現。
這堂課由於同時還要上班,加上我覺得老師自己對於一些統計的原理也不是非常了解,上
課的節奏有點奇怪,我自己覺得沒有學得很好。
最後一學期實際上只剩下一堂課有正式課程,Capstone project不用上課,只需要每週固
定跟老師meeting討論進度。除此之外,我申請擔任下一屆的課程TA,協助新來的同學盡快
跟上進度。這學期主要的生活就是寫作業、寫project、做TA、投履歷。
1. Application System Design:上課教學使用kotlin,作業是花整學期寫一個類似小畫
家的app,隨著課程的演進,會不斷增加feature到你的app中。
2. Capstone Project:自己想一個專案,每個人都會被指派到一個教授review你的專案,
需每周安排時間與教授meeting確認專案進度,整個作業的難度要求是每週至少需要花20小
時的程度,然後要做一個學期,大概就是一個需要花300小時才能完成的專案。
除了做專案外,系上提供另外一個方案是Capstone internship,簡單來說是可以用實習來
替代做專案,看起來很友善,但問題是根據我們學校CPT的規定,現在CPT不適用fully
remote的工作,至少需要hybrid,加上學校規定除了summer外,不能離開Utah實習,也就
是說只能做in-state on-site/hybrid internship。Fall internship已經相對比較少了,
加上Utah的職缺又少一些,所以國際學生最後一學期要找到capstone internship的難度不
低。我自己是找不到,選擇寫project,順便當一學期TA賺點學費回血。後來發現即使是
On Campus job,只要跟軟體開發相關,也可以拿來當作Capstone internship。
感想
除了上述課程外,教授會請已經成功找到工作的畢業校友或是鹽湖城周圍相關Tech
company的工程師來分享業界的現況。雖然資源不像NEU這種轉領域名校這麼多,但是可以
感覺到教授很認真的想要幫你打好基礎,有任何困難也非常願意幫助你,常常在下課後留
在教室給大家問作業的問題,Summer這學期甚至有一個教授每週三會額外花一小時帶大家
看cracking the coding interview,討論面試與解題的技巧。
我覺得整體來說,因為沒有選涼課的空間,這個program對於轉領域的學生work load算比
較大的,前兩學期可能會忙到沒有時間刷題,會是需要考量的因素之一,不過就我自己而
言,我會偏好這種先打好基礎的課程規劃。
目前最後一學期除了當TA省學費、多練練英文,就是邊進行Capstone project邊慢慢找工
作。謝謝大家看到這邊,如果大家覺得有我有可能可以勝任的工作機會,也麻煩拉小弟一
把,我對工作地點沒有特別要求,公司可以sponsor就好,感謝。
作者: Victormark   2023-10-22 13:57:00
大推,感謝分享!
作者: j123317 (Allen)   2023-10-22 14:14:00
作者: much0112 (想就做得到)   2023-10-22 14:32:00
作者: bencer3283 (belloben)   2023-10-22 14:50:00
學校海拔1300 太酷了!
作者: unmolk (UJ)   2023-10-22 15:17:00
作者: aflexdreamer (Leo)   2023-10-22 19:04:00
作者: zzz27658479   2023-10-22 20:09:00
作者: kings45 (It's gonna be legend-)   2023-10-22 20:29:00
推推推
作者: ppoy65482 (iwannasleep)   2023-10-22 20:46:00
推!
作者: TaipeiAKuo (阿國)   2023-10-22 22:30:00
作者: LincolnBoy   2023-10-22 23:13:00
推 感覺滿棒的
作者: Siika (詩花)   2023-10-22 23:21:00
這種區域型學校還是得找當地公司吧
作者: cocokan   2023-10-23 00:27:00
作者: Vanced (維安斯德)   2023-10-23 00:39:00
作者: chipnndale (奇奇兵)   2023-10-23 00:51:00
大推,感謝分享
作者: hsu761001 (忙裡偷閒)   2023-10-23 01:40:00
課程內容不錯耶 蠻有安排的
作者: philip09227 (philip)   2023-10-23 04:32:00
市場好的時候應該會是蠻好的轉碼program ,今年只能說真衰
作者: dickenson (pukaracie)   2023-10-23 04:34:00
推推,謝謝分享!
作者: jerrywei24 (jerry)   2023-10-23 05:29:00
Utah其實蠻多金融公司在那裡有IT部門…樓主可以試一下
作者: pornstar (迪克)   2023-10-23 07:31:00
有去現場看Malone跟Stockton 嗎?
作者: airphonse   2023-10-23 08:30:00
推推!
作者: icecreamdog   2023-10-23 08:43:00
推 台灣籃球 NCAA 小將黃以喆也在猶他大學 UU好學校
作者: myth356 (fun356)   2023-10-23 10:43:00
推推 超級詳細
作者: missyapple (apple)   2023-10-23 10:52:00
推用心分享
作者: gagalala (嘎啦)   2023-10-23 11:17:00
課程規劃很讚欸 適合轉領域的人
作者: hololover   2023-10-23 13:02:00
作者: Car1eano   2023-10-23 13:50:00
作者: imandylin2 (超冏阿賢)   2023-10-23 15:24:00
推推
作者: nullife (好想頹到死喔)   2023-10-23 15:30:00
推課程規劃
作者: MIKEmike07 (加油!)   2023-10-23 16:24:00
推用心分享
作者: ejnfu ((-. .-)b)   2023-10-23 23:45:00
推分享
作者: ctl (ctl)   2023-10-24 02:22:00
推分享, 祝你找工作順利!
作者: ibon (唉崩)   2023-10-24 02:48:00
推!助找工作順利,今年真的不好找
作者: NTUEECSman   2023-10-24 15:26:00
祝找工順利
作者: chhtwhc (ppppppppig)   2023-10-25 01:28:00
作者: shinningyu (Tony The Fish)   2023-10-25 09:30:00
作者: zinga (shadow traveler)   2023-10-25 11:55:00
讚 推!!!
作者: irvingnumber (irvingirving)   2023-10-25 12:51:00
牛尾聽了也想去
作者: yesgowow (荷包蛋)   2023-10-26 06:11:00
祝找到工作
作者: eddie800630 (馬人)   2023-10-26 14:38:00
作者: yeapdaniel (daniel)   2023-10-26 15:02:00
感謝分享,祝您一切順利
作者: a3165229 (小虎)   2023-10-26 15:30:00
好文推一個
作者: AlienCEO (啊呀咖)   2023-10-26 16:55:00
推心得
作者: lilecoli (有效日期)   2023-10-27 09:52:00
推分享
作者: tomroy (離題輝。)   2023-10-27 15:52:00
推學弟 課程感覺滿扎實的耶
作者: steven88669 (屎蒂芬)   2023-10-27 19:11:00
這課程很明顯就是幫沒經驗轉領域的人打基礎 很用心誒
作者: johnbogle (simple)   2023-10-28 10:23:00
祝找到好缺
作者: theoneone (發芽生根中)   2023-10-28 22:21:00
謝謝分享,祝福一切順利
作者: arue (高麗菜)   2023-10-30 06:03:00
推推 課程好紮實的感覺
作者: keepgoing99 (Fireex)   2023-11-08 02:58:00
好文推 找工順利!
作者: eliashuang (affricaprince)   2023-12-04 20:58:00
推 感謝分享

Links booklink

Contact Us: admin [ a t ] ucptt.com