-
1 # 籬笆屋裡的程式媛
-
2 # 使用者BQW6G6D9
建議題主以後最好描述一下自己的情況,比如你現在是報考了軟體工程專業的準大學生呢還是已經是在校大幾的學生了,這樣比較方便具體問題具體分析。
這裡預設題主為準大學生,接下來籠統的談一下個人的偏見:
公共課基礎課關於那些數學的課程,各個院校開設可能有微小差別。但是高等數學、線性代數、機率論與數理統計、離散數學這四門是沒跑的。有些對於專業技術著迷的小夥伴可能會忽略這些課程,而去沉迷所謂“專業課”無法自拔。其實並不建議這樣,計算機科學是從數學裡面分離出來的一個學科,倘若以後想走得更遠,比如讀研或者深究新技術的底層原理的話,與數學相關的東西鐵定是不少的。這決定你以後能在這個專業上走多遠。
這裡額外提一下,研究生入學考試中,數一要考高等數學、線性代數、機率論與數理統計。數二要考高等數學、線性代數。當然現實一點說,如果已經想好了畢業以後踏實工作的,以上課程60分萬歲。
程式設計基礎課C語言一般是作為第一門程式語言來教授的,學好它可以讓你以後在學習其他語言的時候輕鬆很多。畢竟程式語言之間的相似之處還是很多的,有的老師甚至會說程式語言那是一通百通的。雖然專業叫軟體工程,但是編寫程式碼仍為你需要掌握得核心部分。
除此以外,建議熟悉甚至精通任意一門更加“高階”的語言。程式語言一千多種,怕是很難學完,精通一門可以讓你就業很有優勢。
關於程式設計,這裡想多說一下。在大一、大二的時候,希望可以大力提升自己的編碼能力和演算法設計能力,初步的演算法設計可以在資料結構課程中學到。大三著重學習突破技術與框架。
何為演算法設計?就是設計解決問題的方法,好的方法可以在一秒鐘內讓計算機解決問題,同樣的問題,效率差的方法可能需要1000年。何為編碼能力?就是對面同樣的問題需求,你可以快準狠地寫出自己的解決方案。這個能力是從書本上學不來,只有自己踏實的編碼練習才可以提升。整個大學期間,請以編寫10萬行程式碼為目標進行練習。
計算機基礎課這裡不同院校也有微小差別。計算機網路、作業系統、計算機組成原理肯定會有,它們讓你大致瞭解計算機的底層。同時也是以後工作筆試、面試,或者考研專業課所要涉及到的。學校如果有開設編譯原理的話,也應該好好學學。有個比喻叫做程式設計師不懂編譯原理猶如醫生不懂解剖學。
軟體工程基礎課軟工這個專業與計算機科學不同就在於它還包括一定工程和管理的東西。諸如軟體製造工程、設計工程、專案管理、UML繪圖之類的。大致瞭解一下,等你大四畢業的時候會有一堆文件和圖需要你用到以上知識進行編寫。
這裡說點題外話,個人認為在大學的四年你的專業素養是由能力+知識構成的。不是學好哪些課程就行的。能力可以歸為編碼能力和演算法設計能力。知識可以歸為紮實的專業課基礎和熟悉各種技術框架等。雖然能力對於你拿畢業的雙證沒有太大的影響,但是對你以後的工作筆試、面試或者研究生的複試時很關鍵的。
如果學校有ACM/ICPC競賽隊伍的話,建議可以參加,不一定抱著功利拿獎的心態,也要抱著磨練自己的心態去練練。這對你的編碼力和演算法設計會有很大的幫助。對於知識的擴充,學校教授的知識只是一點基礎的毛皮,只能給你起到澆水的作用。想要肥料的話,需要自己去圖書館搜尋書本和各大技術網站去尋覓。
回覆列表
可愛的小姐姐來回答一下這個問題。
某985高校軟體工程專業學渣技術渣飄過,不過理論體系我還素很強滴。
首先,基礎課。
軟工這門專業,大一大二你會經歷各種數學的摧殘,恩,都挺難的。
有高數,高代,離散,機率論,數值分析。
這裡非常誠懇地建議一定要學好離散,離散真的很重要。
特別是圖論那一塊,你會發現資料結構和演算法裡面有很多關於離散的知識。
其次,專業課。
專業課,一定要好好學,最少最少,熟練掌握一門程式語言。
我們軟工,比較大眾的話,我建議,面向物件的語言,一定要好好學習。
程式語言這種東西,一定要多練,多打程式碼,多打程式碼,多打程式碼,重要的事情說三遍。並且,建議多上技術論壇(比如 stack overflow)逛逛,並且多看看英文教材。
最後,重中之重,程式猿的靈魂——資料結構和演算法,設計模式這些。
都說,碼農和程式猿差在哪裡,資料結構和演算法,還有設計模式這幾門知識的掌握上。
一定要好好學習,這幾門課程,非常重要。
程式猿,加油哦↖(^ω^)↗