在美國讀CS(計算機科學)本科是什麼樣的感覺?
因為下個學期CS390 Data Mining沒有選上,所以2017年冬季畢業。這樣找工作的時間也多一些。
大二下學習了 CS 252 System programming (需要寫shell和一些linux系統的東西)和 CS 471 Intro to AI(人工智慧入門,教授講的很爛,但是東西其實很有意思)大三上是 CS 473 Web Info Search (聽說好像是做搜索引擎和爬蟲的)和 CS 381 Algorithm 高階演算法(對面試的幫助較大)
---------------------------------------我是分割線-----------------------------------------------------------感謝邀請,在美國本科就讀CS兩年了。
利益相關:
學校:Purdue University - West Lafayette 普渡大學-西拉法葉主校區US News CS 排名: 2014年秋季入學,因為換了一些AP學分,預計2017年秋季畢業。備註:
A.美國有些學校的CS和ECE是不分的,讓學生在大三的時候做出選擇(走軟體還是硬體路線)。但是普渡的ECE非常的強勢,普渡的CS是在College of Science。而且跟工程類的專業從課程設置上是相差非常大的。
B.美國CS的本科教育教的全部都是low level的東西,比如操作系統,數據結構和演算法,編譯器,對軟體進行數學分析(Run time analysis)等等。我們看到的互聯網的high level的技術(iOS Android Windows手機開發,網站開發,伺服器開發,資料庫開發)是不會教的。因為軟體工程師的訓練好比一個人修鍊武功。學校教的low level的都是內功,是比較難的部分。一旦一個人內功修鍊的好,學習江湖上面那些時髦的招式都是很容易的事情。而且這些互聯網的技術發展的太快,教授要教這些東西的學習成本太高,可能這學期教授教的東西,下個學期就被證明是錯的。iOS方面,斯坦福的 「CS 193P iPhone Application」 就是教用Swift做iOS開發。斯坦福老爺子從Objective-c一直教到Swift,非常專註。網站開發方面,加州伯克利大學的CS294 Cutting Edge Web Technologies。
C.在普渡的CS課程設置中,大一和大二所有CS的學生上的課程是差不多的,但是到了大三大四需要選擇至少一個課程集合(Track)來專精CS的某一領域。https://www.cs.purdue.edu/undergraduate/curriculum/bachelor.html 這個網頁中列舉了所有的課程集合:計算科學和工程,計算機圖形和可視化,資料庫和信息系統,計算機科學基礎,機器智能,編程語言,安全,軟體工程,系統編程。 80%的CS本科學生都會選擇軟體工程,比較好找工作。
學術:
課程體系(以下課程是答主的課程,只列出了CS專業的必修課,沒有包括學校的人文類課程。):
大一上學習 : CS180 : Java和object oriented programming skill.開學前會有一個很簡單的小測試,如果測試不好的話,會去學習CS177 Python(這門課不是CS專業必修,會推遲一年畢業)。Math 261 Multivariate Calculus多變數微積分。 大一下學習 : CS240 C語言編程(傳說令無數CS專業學生重新思考自己是否適合CS專業的課,不過還好15 spring這個學期換了部門最優秀的教授,課程相對變簡單一些),CS 182 離散數學(一個好的軟體工程師必修課吧,其實這門課的英文叫Foundation of Computer Science), Math 265 線性代數(學習矩陣,我猜可能後台和資料庫裡面用得比較多吧), STAT 350 統計學入門(是的,統計學入門這門課在普渡CS是必修課,也是順應大數據的趨勢。) 大二上學習 : CS 250 Computer Architecture 計算機結構(普渡CS課程中設計了這門計算機結構,其他美國的CS學校很多是沒有的。這門課是教機器彙編語言,讓學生在low level和硬體層面更加了解軟體),CS 251 Data Structure and Algorithm 數據結構和演算法(經典CS課程,沒上過都不算是CS專業的學生,這門課也對以後的面試非常有幫助) 大二下學習 :CS 252 System Programming 系統編程。這個學期還沒上先佔個坑。上完再來答。生活:
我是住在了學校的學習社區(Learning Community)。學習社區是為了幫助大一的學生更好的適應本專業,學習社區就是某個學校宿舍的一層,那一層都是學一個專業的。我參加的是CS的學習社區,一層碼農。我們宿管(Residence Assistant)也是CS專業的大二學生。他在大一結束的暑假拿到了GE通用電氣公司的實習,在飛機引擎上編程。除了我們RA之外,所有學生都是大一。
這屆的學習社區大神還是很多的,有個巴基斯坦裔的美國人,會英語,普通話(美國高中要修二外,他修了中文,還在中國呆了3個月,聽說沒問題),印度語。15年的暑假拿到了高通Qualcomm在北卡的實習。某些原因,他最後還是不打算去了。大一學生。
還有個加州的美國人,同樣拿到了高通的實習,但是他是在加州的高通實習。稅前20刀/小時。大一學生。
美國的CS專業就業市場還是非常的利好,本科階段CS專業的實習生工資就是在4000-8000刀/月(稅前)。
社團活動:
我來這邊參加了Purdue iOS Development Club (Purdue iOS Dev Club) 和 普渡邦(普渡邦 on the App Store on iTunes)兩個社團,參加了2次普渡主辦的Hackathon,BoilerMake(BoilerMake)和 Hack the Anvil (Hack the Anvil)。
Hackathon(暫譯為:黑客馬拉松)是一場學術界和業界的狂歡,充分證明了美國CS就業市場的發展利好。和傳統馬拉松一樣,黑客馬拉松講究的是耐力,36個小時不睡覺看參賽者能做出什麼產品。不同的是,不需要跑步了,做在那裡做產品就可以了。業界公司的大手筆贊助,學術界優秀的學生參與,把場場的編程競賽變成了活生生的招聘會。
我在iOS Club參與制作了Purdue App,幫助學生在普渡的生活。Purdue App on the App Store on iTunes
在普渡邦參與了Hack the Anvil,並且參賽作品QuestBoard一舉拿下頂級贊助商蘋果的Best iOS or Mac OS App QuestBoard | ChallengePost一般排名好一點的學校,讀cs如果是之前沒有基礎(比如我)簡直就是要你半條命,大一學基礎語言的時候還好一些,到了大二,凌晨四點睡早上七點起都是很正常的事情,老師上課講的多且不深,主要靠自己看書練題,暑假別想著玩,提前自學保證gpa,有的科目重修也是很正常的事情,圖書館看到其他cs狗都在熬夜會感覺無比溫馨…不過即使如此,如果深愛著代碼的世界,當狗也自願的
加一份我們專業的樣本課表(軟體工程方向)吧,實際上按照不同發展方向,是可以自己選相關課程的。感受下課表...有空再補體會。
Time consuming, challenging but satisfying. 是一門很容易讓人愛上的專業呢
推薦閱讀:
※在新加坡留學時 你最想放棄的時候是什麼事情又讓你堅持下來?
※中國留學海外的PhD一般怎麼找對象?
※出國在外,有哪些安全知識一定要知道?
※請問在澳洲讀tafe是怎麼樣一個體驗?
※去澳大利亞留學,要注意什麼?