如何自學(xué)計算機專業(yè)課程?
這個主要看你選什么方向的了,有偏硬件方向,有的是軟件方向,硬件的像要了解電路知識,模擬電子,數(shù)字電子,數(shù)學(xué),計算機系統(tǒng),嵌入式開發(fā)等一些知識。然后硬件與軟件還有很多共通的知識,例如操作系統(tǒng),這里一般會用到linux,linux在網(wǎng)絡(luò)方面支持的非常好。還有通信協(xié)議,要了解通信里的各個協(xié)議才能弄明白數(shù)據(jù)是如何傳輸?shù)摹_€有像數(shù)學(xué),數(shù)學(xué)是公共學(xué)科,在計算機中主要應(yīng)用在算法的研究,算法在計算機和軟件編程都起到了重要的作用,能用好那么既可以優(yōu)雅的解決問題還能極大的提升性能。
再說下軟件方向,目前軟件方向編程很廣泛,例如利用各個語言編程。比如常聽到的Java,c++,python等等。那么我們先拿java來說,目前使用的最廣的一門語言,不要看市面上隨便抓來的是個java開發(fā),但是真正能用好的確不容易,因為如果真的去學(xué)習(xí)一門語言,并且想學(xué)好,那其實要掌握非常多的知識。就java而言,我感覺算是一個比較好的入口點。比如剛開始學(xué)java,那么肯定先要熟悉java的基礎(chǔ),而后要了解java對象創(chuàng)建,存儲都分別對應(yīng)了計算機中什么類型的內(nèi)存,是堆內(nèi)存還是棧內(nèi)存。再往后就是要部署一個簡單的java項目,這個時候就要了解下linux系統(tǒng),(建議用linux),可以自己弄一個虛擬機去用,這些簡單入門后就去搞數(shù)據(jù)庫,比如說mysql,oracle。好,那么這些都有了解后,那么就可以看一些算法,比如簡單的排序算法,查詢算法,再往后還可以看圖論等等。學(xué)到這里后就可以問下自己之后要怎么選擇啦,因為畢竟從這個點在往后分支就多了,java的可以去繼續(xù)搞java 比如再往后就要弄分布式的一些東西,python就要搞數(shù)據(jù)分析,人工智能。python的話再以后就要鞏固高數(shù)方面的知識,要學(xué)習(xí)高數(shù),線數(shù),概率,離散等,大致了解下就可以研究人工智能經(jīng)典的一些算法。java之后就要了解很多的中間件,redis,kafka,zookeeper等等。當(dāng)然這個也是基礎(chǔ),再往后java python都可以發(fā)展大數(shù)據(jù)方向,另一個分支可以發(fā)展到云計算方向,云計算方向就需要對c語言要了解了,因為要寫驅(qū)動程序,還有就是對不同協(xié)議的服務(wù)器的搭建也要了解,什么是分布式計算,什么是彈性計算,什么是虛擬化,什么是容器化這些都要了解,有關(guān)于linux可以看看鳥哥的書,兩本一本基礎(chǔ),一本網(wǎng)站的架站方向,可以作為入門。大數(shù)據(jù)方向就要了解如kafka,hadoop,hBase等等諸如此類。談了這些還沒有說c++ 有些要求于速度方面或者像寫游戲,游戲引擎,或與其他硬件相接連等都是c++的用武之地,還有g(shù)o語言,R語言等。語言眾多,但都有他們自己各自的領(lǐng)域。
硬件方面的話相對就業(yè)面可能不是那么廣,但如果想從事這方面那就需要個高學(xué)歷,因為偏硬件的話有一部分在研究所,一部分可能在研發(fā)物聯(lián)網(wǎng)產(chǎn)品,所以要學(xué)好硬件方面就得需好的資源,這個資源當(dāng)然指的是硬件的東西,作為最初學(xué)習(xí)階段只有在學(xué)校里有,而且都是有一些排名的學(xué)校才可以有這個資源,對于這方面可能要求數(shù)學(xué)方面更要精深。所以在這方面學(xué)歷就顯得比較重要了,畢竟是個敲門磚。
關(guān)于以上是我的一個淺見,具體如何學(xué)習(xí),最重要的還是要看選擇哪個方向