一個不是很了解CS計算機科學(xué)的人?
結(jié)合我的個人經(jīng)歷,提一下建議,供參考。
1. 選擇一門編程語言,迅速上手。
如果一開始就看一堆理論知識,很快就會感覺到厭煩,影響對CS的學(xué)習(xí)興趣。學(xué)習(xí)一門編程語言,邊學(xué)習(xí),邊動手實踐,可以實時看到自己的產(chǎn)出,有助于保持學(xué)習(xí)積極性。
我是高中才接觸的編程語言,當(dāng)時是高中的興趣小組,老師教的是Pascal,一種非常古老的語言。也就是從那時起,覺得計算機如此有意思,原來除了Word和PowerPoint以外,還可以寫程序。
上大學(xué)前,知道自己被錄取的是CS方向的專業(yè),就在暑假買了一本C語言的書自學(xué),算是開始系統(tǒng)學(xué)習(xí)一門編程語言,有了一定的編程技術(shù)。當(dāng)時壓根不知道什么是CS,只以為編程就是CS。到了大學(xué),期末第一門考試是計算機導(dǎo)論,這門課一行代碼都沒寫過,我只得了七十多分,到現(xiàn)在我還沒弄清楚為什么只得了這么點兒分。(還好那個學(xué)期通過后面的課程把平均成績還是提到了班級第一。)后來大學(xué)課程里還陸續(xù)學(xué)習(xí)了Java、C++、C#語言,不過應(yīng)用不多,只是在課程Project里進(jìn)行簡單使用。
到了研究生階段主要是使用C++,在工程項目及科研實驗代碼中都得到了實踐機會,也了解到,編程語言除了基礎(chǔ)的語法外,還有各種高級特性需要學(xué)習(xí),有各種庫可以使用,工程配置也有很大的學(xué)問。
工作以后,沒有太多寫代碼的機會,我利用業(yè)余時間看了看Python,并且利用Python學(xué)習(xí)量化交易。我把學(xué)習(xí)過程記錄在了頭條號的系列文章里。(https://www.toutiao.com/i6787638553221267975/)
這里還是推薦選一門類似于Python這樣的腳本語言,便于快速上手。
2. 選擇一個方向,深入研究。
CS的方面太多太多,計算機圖形、圖像處理、自然語言處理、語音識別、大數(shù)據(jù)等等等等。在對編程有了一定的了解后,可以選擇一個自己感興趣的方向或者需要用到的方向,去研究這個方向成熟的第三方庫,去研究這個方向背后的數(shù)學(xué)、物理等知識。
這時候,可以根據(jù)自己選擇的庫的語言,來切換自己的編程語言。學(xué)習(xí)了一門編程語言后,再切換到另外一門語言就比較容易了。
研究生階段,我的研究方向是計算機圖形學(xué),選擇這個方向也是自己的興趣在于此,成果可以通過圖形圖像進(jìn)行直觀展示。研究計算機圖形學(xué),就需要學(xué)習(xí)OpenGL、OpenCV、CUDA等等庫或者框架,還需要學(xué)習(xí)三維空間變換等數(shù)據(jù)知識,學(xué)習(xí)流體力學(xué)等物理知識。
方向選擇首要還是按需,有工作推著走,前進(jìn)得總是會快一些。如果沒有工作壓力,可以按照自己的興趣進(jìn)行選擇,實現(xiàn)什么功能能滿足自身的成就感,也是學(xué)習(xí)前進(jìn)的有效動力。
3. 查漏補缺,不斷學(xué)習(xí)
CS涉及的內(nèi)容太多,學(xué)習(xí)一些基礎(chǔ)知識,有助于我們對上層應(yīng)用有進(jìn)一步的深入理解和認(rèn)知。
查漏補缺的過程,可以去了解一些基礎(chǔ)CS知識。可以參考考研科目學(xué)科專業(yè)基礎(chǔ)綜合所包含的四個課程:數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計算機組成原理、計算機網(wǎng)絡(luò)。
算法,是技術(shù)類崗位必考的內(nèi)容,只能看書、刷題慢慢積累了。
CS技術(shù)更新迭代快,要保持不斷學(xué)習(xí),避免被時代淘汰。
我最近在做
Code.org
的少兒編程教育視頻(https://www.ixigua.com/pseries/6803971330308833806_6793624102478283276
),在錄制課程的視頻中,自己也對什么是算法、什么是程序等知識有了一個重新梳理的過程。我覺得瀏覽一下Code.org
還是有很大幫助的,可以了解一下國外的教育是如何進(jìn)行計算機科學(xué)啟蒙的。以上就是我的建議,供參考。
如果您喜歡我的回答,歡迎您留言、點贊、關(guān)注,謝謝!