程序員該如何學(xué)習(xí)技術(shù) 程序員需要學(xué)什么科目?
程序員需要學(xué)什么科目?1.語(yǔ)言我們要藍(lán)月帝國(guó)一個(gè)程序員,學(xué)的東西會(huì)很多很雜,只不過(guò)最結(jié)束要先從語(yǔ)言結(jié)束去學(xué)習(xí),而去學(xué)習(xí)語(yǔ)言最最重要的的最想作選擇好一本書,學(xué)校的教材哪怕了,根本沒有寫得好的。在此最隆重
程序員需要學(xué)什么科目?
1.語(yǔ)言
我們要藍(lán)月帝國(guó)一個(gè)程序員,學(xué)的東西會(huì)很多很雜,只不過(guò)最結(jié)束要先從語(yǔ)言結(jié)束去學(xué)習(xí),而去學(xué)習(xí)語(yǔ)言最最重要的的最想作選擇好一本書,學(xué)校的教材哪怕了,根本沒有寫得好的。在此最隆重我推薦《C Primer》,這本書很厚,內(nèi)容也很極為豐富,對(duì)知識(shí)的講解不僅留在在表面。如果沒有這本書能有耐心寫完,語(yǔ)言方面基本上就沒有什么大問(wèn)題了,對(duì)以后的學(xué)習(xí)也打下了個(gè)很好的基礎(chǔ)。
C方面的GUI庫(kù)有很多種,比如MFC、WTL、wxWidgets、QT。這些GUI庫(kù)都各有自己的特點(diǎn),反正我們只要先所了解一種就可以了,只要更深入了解了一種GUI庫(kù),必須的時(shí)候再學(xué)習(xí)其他的就夠了,本質(zhì)上都應(yīng)該差不多,很快就是可以練熟了。MFC只不過(guò)設(shè)計(jì)上有很多問(wèn)題,但充當(dāng)入門還是不錯(cuò)的,但是學(xué)習(xí)資料很多,遇到問(wèn)題也好可以解決。
3.數(shù)據(jù)結(jié)構(gòu)和算法
很多人都過(guò)分關(guān)注了數(shù)據(jù)結(jié)構(gòu)和算法方面的知識(shí),尤其是一些編程語(yǔ)言的庫(kù)做得相當(dāng)好,幾乎不需要自己去實(shí)現(xiàn)一些數(shù)據(jù)結(jié)構(gòu)和算法,可能導(dǎo)致現(xiàn)在很多程序員不認(rèn)可哪怕看出這方面的知識(shí)。只不過(guò),當(dāng)我們想讓我們的程序跑的更快、內(nèi)存占用更少的時(shí)候,這些知識(shí)就相當(dāng)非常重要了。很多程序員也是時(shí)候不如此重視這些,但是工作幾年后又來(lái)補(bǔ)數(shù)學(xué)這些知識(shí)。
最又開始很有可能不不需要去學(xué)習(xí)的太踏入,可是基本上的數(shù)據(jù)結(jié)構(gòu)和算法一定要清楚。
我推薦《數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)》,在數(shù)據(jù)結(jié)構(gòu)和算法的學(xué)習(xí)中,最好是別去關(guān)心面向?qū)ο蠓矫娴募记桑陀肅語(yǔ)言來(lái)實(shí)現(xiàn)方法,這樣的能更查哈于算法本身的內(nèi)容。
4.數(shù)據(jù)庫(kù)
怎么學(xué)習(xí)數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí),因此掌握一種數(shù)據(jù)庫(kù)可以使用,幫我推薦不使用mysql,并且最好是別用一些封裝方法好的接口,而估計(jì)直接用mysql需要提供的數(shù)據(jù)庫(kù)api,肯定對(duì)數(shù)據(jù)庫(kù)清楚的會(huì)更踏入。
5.分頭并進(jìn)
cpu主頻巳經(jīng)不能不能不違背摩爾定律了,現(xiàn)在cpu經(jīng)濟(jì)的發(fā)展的趨勢(shì)是多核心。畢竟多線程,應(yīng)該多進(jìn)程,也是為了好的借用cpu的性能,提供給要好的用戶體驗(yàn)。這就特別要求我們?nèi)绻麤]有要寫出了什么高效穩(wěn)定的應(yīng)用程序,必然會(huì)要涉及到并行計(jì)算。多花些精力在并行計(jì)算上吧,肯定會(huì)會(huì)有極為豐富的回報(bào)。
6.網(wǎng)絡(luò)編程
這里所指的網(wǎng)絡(luò)編程是指socket編程?,F(xiàn)在C的應(yīng)用很多全是在做服務(wù)器開發(fā),如何的新一個(gè)高并發(fā)、大吞吐量、高穩(wěn)定性的服務(wù)器那就是我們要考慮到的了。
7.設(shè)計(jì)模式
設(shè)計(jì)模式也不是具體的技術(shù),更多的是如何能讓代碼更太容易閱讀、更好存儲(chǔ)、更太容易在用。
8.庫(kù)的使用
C標(biāo)準(zhǔn)庫(kù)不僅僅提供了一些很基本的功能,所以我們你經(jīng)常會(huì)引入一些第三方庫(kù)。最著名的就算是就是被被稱準(zhǔn)標(biāo)準(zhǔn)庫(kù)的boost庫(kù),它提供給了我們編程用到的各方面的技術(shù),文本處理、算法、網(wǎng)絡(luò)、多線程、圖像處理等等,完全包羅。其它也有一些專著于某無(wú)非的庫(kù),比如說(shuō)ACE是網(wǎng)絡(luò)通信方面的,TinyXML是解析xml的,OGRE是圖形渲染方面的。
9.操作系統(tǒng)的知識(shí)
程序員不需要所了解的操作系統(tǒng)知識(shí)和普通用戶是都一樣的,一個(gè)高手是是需要接觸了解操作系統(tǒng)的方方面面,而并非只在在可以使用層面。當(dāng)然了估計(jì)清楚哪些知識(shí),windows上的上去看《windows核心編程》,linux的看看《深入理解linux內(nèi)核》,肯定是可以清楚自己應(yīng)該學(xué)什么了。
程序員學(xué)不動(dòng)了怎么辦?
1.轉(zhuǎn)產(chǎn)品經(jīng)理。這樣不需要在一線寫代碼了。前期肯定沒有開發(fā)掙的多??墒悄闵?jí)到產(chǎn)品總監(jiān),具有產(chǎn)品思維后,可以更好的幫助創(chuàng)業(yè)啊做鋪墊。
2.去小廠轉(zhuǎn)管理崗,也不用什么一線寫代碼,不過(guò)你要要一直保持自己的技術(shù)視野。增強(qiáng)自己的格局。明白什么階段該用什么技術(shù),什么樣的人來(lái)解決可以做到的問(wèn)題。
3.如果沒有轉(zhuǎn)型不順利,看看吧有沒有比較合適的機(jī)會(huì)自己個(gè)人創(chuàng)業(yè)。
4.假如也沒有機(jī)會(huì)就只有和年輕人互相卷了。
不過(guò)隨著人類年齡的不斷地增強(qiáng),之前的三段式人生(學(xué)習(xí),工作,養(yǎng)老),已經(jīng)不太適用現(xiàn)在的生活了。所以才各個(gè)行業(yè)都要一直保持一顆二次怎么學(xué)習(xí)的心態(tài)。