從計算機科學與技術專業的學習到自我教育

當前互聯網上的優質資源已經是學不完的了,此外B站是沒有圍牆的大學。對於想學習計算機科學與技術的同學,或者已經是本專業,但是對之後的學習感到迷茫的同學,這裏是一份來自老學長的個人發展指南。

當我上完大一上半年後,我就對本校的本科培養方式失去了信心,儘管周圍圍繞着某個學長,某個學姐保研至名校,拿到名企Offer,月薪上萬等等之類的信息,但是我相信,這些都是個例,而不是一般的情況,此外,我知道“我所知道的信息大部分都是別人想讓我知道的,要保持清醒地頭腦和辯證的觀點!”。學校的培養方式只是把我們培養成一個合格的人,而不是一個優秀的人,甚至於都無法將你培養成你自己。而這個合格的標準因不同的學校而異。而社會和生活不會因爲這個而同情或憐憫你。殘酷和不公是社會和生活固有的模樣,不是社會變了,而是我們長大了。但是,這並不是告訴我們要悲觀和消極,相反這恰恰是努力和奮鬥的意義。從付出和產出來看,生活是公平的,而從社會背景和階級關係來看,生活又是不公平的。在我看來,陰陽相成,不公平和公平是同時存在的,矛盾既是對立又是統一的。即使我們沒有任何的成績,但我們一定要有積極和樂觀的心態。當生活之美好顯露時,沒必要過分高興,因爲陰暗的一面也隨之併發,只是你沒有發現。當生活之殘酷顯露時,沒必要焦慮,因爲生活是美好也隨之併發,只是你沒有發現。在我看來,無論身處何處,良好的心態永遠是最重要的。因此,首先我陳述了我所發現的一些客觀事實,上面這不是觀點的灌輸,只是客觀事實的陳述,讀者可以選擇暫時相信,然後自己在實際中多觀察體驗,才能真正的相信;讀者也可以選擇不相信,然後自己再去於實際中觀察體驗,然後發現自己所觀察到的結果。

下面列出了我對計算機科學與技術專業的劃分。計算機專業通常是一個大類概念,尤其在人工智能和大數據等概念火爆興起的今天,這些概念變得更加容易混淆。計算機專業包括:計算機學科基礎,軟件工程,信息安全,大數據,人工智能,雲計算,分佈式等。
目前根據我的調查,大數據、人工智能和雲計算這些課程還沒有穩定的學科大綱,而且這些領域的發展,迭代也很快。因此對這些課程的學習並不是很容易,很難在實踐和理論之間找到一個權衡。此外,這些內容屬於計算機專業的高階課程,用人單位對學歷要求較高。在我看來這仍然是理論和實踐導致的問題。
我將計算機學科基礎化爲6部分,也就是通常所謂的專業課:數據結構,數字電子邏輯設計,組成原理,體系結構,編譯原理,操作系統。這些內容絕對是要在本科期間就必須打好的基礎。如果,本科期間沒有打好基礎,還是有補償的機會的。如果對計算機學科基礎感興趣的話,可以去做底層開發,比如開發操作系統,開發編譯器等。而如果不做底層的開發,這部分內容在以後工作中用到的並不多,但是有在點點滴滴上影響着你的工作。這就是基礎的作用。
軟件工程,從課程上這是一門很難教授的課程。有很多國際知名教授都不想教這門課。而我校的這門課真的是一門“殺人技”。軟件工程,小到編碼風格,大到項目開發流程等都可以劃分到它的範疇。而它所提到的各式各樣的原則,更不是簡單的背背概念就可以的掌握的。所以我對這門課的期許是,在你以後做項目的時候嘗試使用下這門課中提到的原則等等。這是一門經驗學科,需要體驗。從發展方向上來看,軟件工程是工程學,它需要學習計算機學科基礎,數據庫,多種編程語言,甚至分佈式等。估計很多學校的計算機培養計劃就是軟工的培養計劃。在對於個人發展的影響上,不必太糾結於這個。
信息安全,我瞭解的並不多,但是它也需要學習計算機學科基礎。

值得注意的是,優秀的學長學姐很少是在學校裏固定的培養方案中培養出來的。他們很多或者具有原本的優勢,或者具有寬闊的眼界,或者受到貴人的幫助等等。而極少部分憑藉自己的興趣和努力取得突破,這些和學校的固定課程關係很小。要想真正的發展自己的計算機專業素質,需要有自己的培養方案,但是學校的課程仍然不能夠輕視。所謂自己的培養方案,或者說是自學計劃,或者說是自我教育(Self education)。因此,這一段我們就談一談計算機專業如何進行自我教育。我簡單的提出一些觀點和路線指南,供讀者參考和討論。此外,我會附上一些優質資源的鏈接。
所謂自我教育就是自己根據自己的實際情況,制定自己的專業發展計劃。比如,如何學習學科基礎知識,要做什麼項目,如何兼顧理論和實際等等。實際上有很多的問題要討論,當然,專業的發展計劃也不一定就是4年必須完成的,相反,我所推薦的兩個資料,都很難在4年內完成。當前互聯網上的優質資源已經是學不完的了,此外B站是沒有圍牆的大學。
1、首先需要確定你要學習的課程或內容,這個完全是根據自己的需求而定的。這個過程你可以檢索前人的建議,結合自身的情況定下一個大致的清單,然後不斷完善。
2、確定好要學習的內容後,收集互聯網上的資源。或者找技術羣詢問,到知乎上提問等等,你都可以獲得滿意的答案。
3、指定學習計劃。計劃可以是詳細的,也可以是概括的。詳略程度真的是非常難權衡的。該學習計劃,最好可以規劃出某個月內要學習的課程,和要完成的課程,當然有的課程一個月完不成,但做好記錄終歸是好的。指定某學期一定要完成的課程,這個是非常重要的。一定要約束自己在指定學期內完成指定的課程,否則會給後續的學習帶來非常嚴重的影響。
上面的內容對於已經在科班學習過的同學,或者已有對科班有較多瞭解的人來說可以自己完成。但是對於很多小白,或者不太熟悉科班的人來說仍然是很難完成的,因爲這真的需要大量的檢索信息,而且需要進行篩選,非一朝一夕之功夫。下面我推薦了兩個學習路線,真的沒有想法的人就參考下面的路線吧。
我所推薦的兩個路線就是:Open Source Society UniversityTeachYourselfCS。優先推薦第一個,第一個的前半部分會簡單些,後面的難度也是很大的。第二個的整體難度都是相當大的,適合作爲有少許編碼經驗的人的進階。開源社會大學裏面的課程從入門到高階都有涵蓋,而且對於課程資源、用時、預備知識、課程作業都有詳細的介紹。這真的是一份可以嚴格執行的個人發展計劃。此外,它設有一個最終項目,下面這段話是關於最終項目的描述要求:“OSS大學以項目爲中心。我們鼓勵您爲每門課程進行作業和考試,但真正重要的是您是否可以使用自己的知識來解決實際問題。在掌握了所有核心CS和與您相關的高級CS的各個部分之後,您應該考慮一個可以使用所學知識解決的問題。真實的項目工作不僅在簡歷上看起來很棒,而且該項目還將驗證並鞏固您的知識。您可以創建全新的內容,也可以通過CodeTriage 或 First Timers Only等網站找到需要幫助的現有項目 。另一種選擇是通過獲得高級應用程序專業化之一來使用Capstone項目;是否有意義取決於課程,項目以及課程的“榮譽守則”是否允許您公開展示您的作品。在某些情況下,可能不允許這樣做;你不違揹你的課程的榮譽準則!完成最終項目後, 通過請求請求將項目的信息提交給PROJECTS,並使用我們的社區渠道將其信息發佈給同學。然後,來自OSSU的同行和導師將對您的項目進行非正式評估。您不會在傳統意義上被“打分”-每個人都有自己認爲成功的標準。評估的目的是向全世界首次宣佈您是計算機科學家,並獲得聆聽反饋(正面和負面)的經驗,並大步向前。最終項目評估的第二個目的是:評估OSSU通過其社區和課程是否成功完成了指導獨立學習者獲得世界級計算機科學教育的使命。”。學習的課程終歸是課程,只有在實踐中才能發揮學到的東西的效力,才能不斷鞏固知識和深化認識,才能推陳出新。這真的是將學到的內容靈活運行的一次鍛鍊。而後者更集中於經典書籍的學習,因此更加適合已經有經驗的人進行自學。除此之外不得不提的就是Coursera,這個課程平臺,但是它只是一個課程平臺,是一個資源的載體,沒有關於個人發展路線的詳細介紹,因此這裏簡單提一下。最後,這只是我個人關於自我教育的一點看法,實際上,它因人而異,你完全可以按照自己的需求,自己的方法指定規劃。作者在此拋磚引玉。

在這一段我們將自我教育這個概念進行拓展,拓展到個人發展的自我教育,而不僅僅限於職業和專業。關於個人發展的自我教育則要設計更多的方向,職業和專業的自我教育只是其中的一小部分。學海無涯,作爲一個現代人,我覺得需要了解的東西有很多,例如:文化,經濟,政治,社會發展等等,這都是好好了解,甚至是需要好好學習的內容。一個人的文化修養也是一個人的軟實力,文化修養對於個人生活有更大的幫助。經濟社會不懂經濟無異於兩眼摸瞎,因此這裏我要提的一點就是個人財務管理。越早的管理好財務,越能避免自己陷入到財務危機,更好地掌握財務知識才能實現財務自由,當錢不再是你生活的問題時,你才能實現理想,你才能更好的生活,“爲什麼國家建設貢獻一份自己的力量”纔不是一句空話。財務決定了物質生活的基礎,文化恰恰是精神生活的養料。此外,各種社會的動盪,各種戰爭,都可以在經濟上找到原因。經濟是一種具有決定性力量的東西。懂政治不是說刷什麼肖秀榮8套卷,閱讀什麼政治教材。作爲一個成年人,這個幼稚的想法千萬不要有。說起政治,多看看經典,多看看馬克思的著作,多看看史記,多思考思考,總是沒有壞處的,即使這樣,可能你還不能看懂一些國家大事,但是無妨,肯定會有一些事情你會看的更加明白了。社會發展是一個更加綜合的東西。以後有時間再補充改進。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章