php大學教程,如何快速學習編程?
1. 我應該選擇什么編程語言
可能困擾編程新手最多的一個問題是【我應該學什么編程語言】或者【我需要學習哪些課程才能做出一個web、一個app】,很多人一直糾結這個問題,陷入了東學一點、西看一點的死循環,到頭來啥也沒學好,這會很浪費時間。剛上大一的時候,我也很想知道應該選擇什么編程語言。我問了很多人,網上各種查資料,但所能得到的答案都很片面,多數對這個問題答非所問,總是回答說“某某編程語言難”,“某某編程語言性能好”。其實作為初學者,我們對計算機體系都不了解,就不要過多地去糾結性能,或者難易等因素,原因我等下再說。如果你有明確的方向,那么很好選擇。如果你想做算法、機器學習方向,那么python是最好的選擇。如果你想做web開發,java、php等都可以。如果想做一些更底層的工作,那么就可以選c。當然這是建立在你有明確方向的基礎上。可是,很多人都沒怎么接觸過計算機行業,特別是和我一樣剛入學就被調劑到計算機專業的人。對這些同學來說,各個編程語言就只是個名字,除了叫法不一樣,你根本不知道它們有什么差別。所以索性不要糾結了,我替你選一個吧。如果你是在校大學生,那么你有大把連續的時間,就先學習c,然后再學c++。我個人是學c入門的,也許很多人不理解我為什么推薦學c,因為c和c++都很難、很復雜,看起來并不適合入門。然而正是它們的難和復雜才能讓你更好地理解計算機系統【計算機系統不是指操作系統】。學習編程不是學習編程語言,而是學習一個計算機生態,即一個龐大的知識體系。只會編程語言而不理解整個計算機的體系,就像只會寫字而寫不出好文章。了解c/c++和了解計算機系統是極為貼合的,向下可以幫助你更容易地理解操作系統、編譯原理、計算機網絡、計算機組成原理,為什么呢?因為較為底層的東西很多都是用c實現的,和系統的貼合度極高,很多教材源碼甚至教程,在講述這些知識的時候都是用c或c++作為媒介。而向上,c++面向對象的機制,也可以做出一些應用,譬如五子棋游戲等,也不會顯得那么枯燥。花個小半年時間了解c和c++,之后你就會覺得看書、看資料可以輕松很多。如果你是一個上班族,但是剛剛學習編程,可能學c和c++對你來說有些復雜和困難,因為學習它們確實是很需要時間。你們不像在校生那樣有大把的連續時間,而零碎的時間去學習一個比較復雜的東西效果不見得有那么好,所以可以先學一些【更容易見效】的編程語言,從python入手吧,至少能快速做出一些小應用,不至于丟失了興趣,但是真的要入門編程又還得看看與計算機系統相關的書籍,這樣才能更深層次地去編程,譬如【深入理解計算機系統】這一本書可以讀很多遍,這本書把整個計算機系統給串起來了。2.學習編程,我需要學習哪些課程?我要學哪些課程?我為什么要學習如高數、離散數學、線性代數、概率論等課程?這個問題也是之前困擾了我很久的問題。不過我現在想通了,對于【高數、離散、線性代數、概率論】等課程,很好解釋,做算法的同學肯定知道為啥要學習這些課程。機器學習中會大量用到上述提到的課程,所以會比較好理解。對在校生而言,學校開設的很多課程我們不知道為什么要學,我們很疑惑,不知道學它有什么用,這個時候我們就會很糾結,還會產生抵觸情緒。這很正常,因為我們學習得不夠深入,自然不能理解它們的用處。在我看來,大學本科課程更多的是面向“面”的教學,即什么課程都教給你一些,但是又講得不那么深入;而工作或者讀研,更多的則是面向“點”的學習,用到的知識更專。本科時,學校也不知道你以后是去搞算法、還是搞架構、還是搞服務器開發,甚至去搞硬件,所以學校需要你學很多課程,至少有個了解。對學生來說,一方面可以從中選擇自己感興趣的點;一方面也可以對未來的就業方向有些啟發。所以即使像數電、模電等課程,雖然之后可能用不著,但是你也要學,并且會花費大量的時間。雖然你最后不一定去搞硬件,但是這些課程也會讓你更容易去理解一些知識,比如cpu中的邏輯器件。如果你在大一的時候就有一個明確的定位,知道自己今后想從事哪方面的工作,課程與課程之間是可以調一下優先級的。不過像大學物理,這種課程確實是對編程沒有幫助,但是像我前面所說的,大學教育更注重廣度,大物等課程可能就是為了給你普及生活常識吧。其實,大學教育的問題是普遍存在的,我認為我們學習一項技能的時候,應該采取的是項目驅動式學習,即需要用到什么東西時不會了再去學,而不是先填鴨式的都填進腦子,并且在學習的過程中我們還不知道它這是干嘛用的,等之后用到了,甚至不記得自己學過,反而查資料才會想起:哦,原來我之前學的xx科目是這個用處啊,可是我當時并沒有好好學。很多時候學生時間的浪費可能還是要怪老師、怪學校,他們一開始沒給我們做好充分的課程介紹。所以,在經過比較多的編程和項目實踐后,我認為一個比較好的學習方式是,改良版的項目驅動學習法。即:學習一段時間,做個小項目,將做項目遇到的問題記下來,針對性地學習相關知識,然后再實踐,再學一段時間理論,讓知識成網狀發射狀地變大。當然,項目驅動式學習有一個弊端,就是每次學習的知識都是項目所需要的,很零碎、不成體系,所以需要改良,即在采取項目驅動學習法的時候每天抽一段時間去完整地讀一本書,或者一個相關問題的完整介紹,這樣就很容易把一些知識成體系地串起來。這樣一段時間下來,慢慢的,你就知道我們為什么要學那么多科目,學這些科目能干什么。為了表達地更加形象,我就舉一個小例子,是我最近遇到的。我本身的工作是做Linux C++的,但不僅限于此。我個人對python、數據分析,以及機器學習等內容比較感興趣,大家可以看到我最近也在我的專欄發布了很多文章。就從數據獲取開始,我講講我這兩個月做了什么東西。談到數據獲取,可能最容易想到的是爬蟲,爬蟲是一個被說爛了的話題,所以我不想多說它是什么。很多時候有人覺得爬蟲簡單,為什么呢,因為有現成的框架,所以獲取少量的數據就比較容易。但是當你需要爬取的數據很大的時候(比如我之前抓取了某網站500萬用戶的數據,在下班的時間、用自己家里普通的pc,計算機性能并不是那么好,比不上服務器,又要在不被封IP的情況下抓到這么大量的數據,然后對數據進行清洗,最后還要可視化展示),使用現成的爬蟲框架就并不是那么容易實現了。況且,我需要抓很多數據源,并不是一錘子買賣。所以我選擇去開發一個系統,即在現有的框架下進行二次開發,搭建一個屬于自己的爬蟲系統,并植入一些算法。我在系統中添加了很多中間件,直到現在,它還可以在10分鐘內就部署一個能抓取大量數據的爬蟲應用。當然,這個過程也遇到了不少麻煩,我就簡單講講,怎么去攻克一個個問題。下面先給出一個樹形圖,從上往下每一個圈都代表了學習過程中遇到的難點,如果你現在看不懂,沒關系,我想告訴你的是一種梳理知識的方法:如上圖所示,就是一個項目驅動式學習的例子,我們的目的是為了獲取數據,所以選擇了爬蟲:爬蟲可以理解為一個簡單的過程:發送request,獲取response,然后提取數據。這個過程會涉及到網絡,是發送http還是https請求;目標網站是否需要登錄,是post請求還是get請求,從這條線,衍生出了一條對網絡進行學習的路徑。獲取到網頁之后,如果不是結構化的數據,可能返回的是一個html源代碼,那么可能就需要了解dom,或者html頁面解析的知識,甚至需要了解一下前端開發。在抓取的過程中,經常會遇到數據中途不能被爬取的情況,一般是IP被封禁了,那么可能又要用上代理,代理是什么呢?http,https代理能不能混用呢?如何構建一個代理池呢?這里又有很多要學習的東西。還有可能遇到的情況是,抓下來的數據是加密的,需要通過js解密,這時候就要了解一下js,如何用爬蟲模擬瀏覽器進行抓取。除此之外,如果抓取的頻率不對,很多數據源會給你假數據,這就是一些經驗問題了,本文不是技術文,所以就不多討論。當解決了上述問題后,我們好像可以拿到一些數據了,但是當數據大起來,問題又復雜了,你可能需要使用分布式抓取了,這時候你可能需要了解一下redis,當request產生的速度大于其消費的速度之后,你的任務隊列可能爆炸,所以這里又涉及到算法和數據結構的應用了。數據量上去之后,把數據寫在文件里面是不靠譜的,這時候又涉及到存儲了,到底是使用關系型數據庫還是非關系型數據庫呢,有什么區別呢?存進去的數據怎么去重呢?為什么insert操作越來越卡了呢?電腦怎么越來越熱了呢?索引是什么,什么時候該建立索引呢?這里又牽扯到數據庫原理相關的知識。遇到一些比較難處理的網站,比如有驗證碼識別該怎么辦呢?其實對于很多純數字和字母的驗證碼都很好解決,自己用深度學習訓練即可。在TensorFlow的Demo中就要生成驗證碼自己訓練的教程,然后制定個中間件放在爬蟲系統中,這個問題就解決了。可是什么是深度學習呢?這里又引出一條對深度學習進行探索的例子,而我自己也是之前在學校的時候自學了小半年機器學習,有了一定的基礎后,才能比較容易地上手TensorFlow框架。再往下就比較深了。上述六點簡單講了講項目驅動式學習的介紹,其實,你看到的每一個小圓圈,深挖下去都大有文章。我們現在看到的只是冰山一角,任何一條學習路徑學習下去都深無止境,我們不可能完全學會,可是項目驅動式學習最大的好處是讓你知道你應該去學習什么,而不是先學一大堆知識,再去做一個項目。嚴格來說,項目驅動式學習的可視化路徑是一張網,而不是一棵樹,這里畫成樹狀只是為了便于大家理解。除了獲得數據,還有清洗數據、分析數據,甚至挖掘數據,最后可視化數據并且展示數據,這里我就不一一介紹了。3.學習編程是否需要制定計劃?學習編程是否需要制定計劃,該制定什么樣的計劃呢?我認為不只是編程需要制定計劃,其他任何的學習和工作都需要制定計劃。我從13年上大學就開始定期給自己制定計劃,這個習慣也一直堅持到了現在,受益匪淺。當然也不只是制定學習計劃,還可以列一些自己需要做的其他的事情。我最近在整理筆記的時候也發現了一些之前記錄的計劃和清單,可以給大家看看。比如下圖就是我14年寫的筆記,筆記上都留下了最后一次打開的時間。列舉了一些自己需要看的文章,因為當時不太懂得規劃,所以比較亂。到了16年的時候,我做計劃做得更加有條理了。下圖是16年10月30日的計劃,那時候我已經大四了,并且已經找到了工作、簽了滿意的offer,并且沒有什么課,按理說可以放松放松了,不過我還是制定了一些學習計劃,并且選擇在11月去百度實習。從內容上看,主要是學習英語和計算機專業課,因為大一大二的時候我確實不明白為什么要學習專業課,到了大三下想清楚原因以后,我也就一直在重新學習,因為計算機專業課真的很重要!學好了這些課,能讓你在日后的學習工作中輕松不少:除了大四制定的計劃外,大二的時候我也制定過較為詳細的學習計劃(如下圖),把需要學習的內容進行了編號,存入表格,這樣才能讓你過得有條不紊。當然,很難完全按照計劃去執行,不過制定相應的計劃能讓你清楚地知道自己應該干什么。所以,如果你是在校生,那么好好制定一個計劃吧,因為你有大把的時間。當然,如果你已經畢業了,沒關系,我現在也在上班,同樣也列舉了自己最近要學習的內容,如下圖(2月27日更新過),包括了短期和長期需要學習的內容:4.編程是否需要做筆記和寫博客?我覺得,寫不寫博客無所謂,因為博客是要寫出來給大家看的,可能要保證格式美觀、語法也要盡量準確,最好比較有文采,我覺得太麻煩也就一直沒寫。而筆記是必須要做的,并且記筆記是一個長期的過程。在學習的過程中,我們一直都在追求一種最高效的學習方法,比如,同一個班的同學,他用他的學習方法考上了清華,而你用同樣的方法就不行,為什么?因為他的方法對他自己而言是定制化的,可能且大概率不適合你,比如他的筆記你不一定能看懂,因為他可能設計了一套屬于自己的符號。而就編程而言,很多同學說善用搜索引擎,是對的,可是搜索引擎搜出來的是別人的答案。你照搬過來,也許可以用,但是你沒有記住,這些知識并不屬于你,之后你可能還會遇到同樣的問題,又要再搜索一遍,可能很難找到之前的那個答案了。但是記筆記就不一樣,記筆記是定制化的,對你自己定制,你可以用自己最爽的表達方式來描述一個問題,是自己寫給自己看的東西,看了幾遍之后就能非常迅速和容易地理解。之后遇到相同的問題可以快速地通過找筆記解決。舉個例子,下圖是我記錄的一些關于gdb【linux下調試c++的工具】的使用的一些筆記。我只記錄了我自己最常用的一些內容,也許你看著很亂,但是我就能很容易看懂,這就是我的定制化。記筆記的習慣一定要堅持,等過個一年或者兩年,這就是你巨大的財富,因為那是只有你才能看懂的東西。我已經記錄了4年多、1G多的內容,現在的筆記基本已經形成了體系,可以給大家展示其中的一部分。專業知識相關筆記:開發相關的筆記:一些類目:5.有什么比較好的編程方法?除了上述分享的一些方法,我認為在同一時間段不要學習太多類別的課程,比如你可以同時學習python和html/css,但是你不要同時學python、操作系統、編譯原理、計算機組成、數據結構、網絡,我曾經試過,一門課沒學一會兒就學下一門,其實上一門根本學不到什么實際的知識。因為記憶知識是符合艾賓浩斯記憶曲線的。對于一門課,特別是很難的專業課,譬如操作系統,你每天看半小時,效果是比較差的,可能你熱身就得半小時。所以寧可每天學兩門,然后每一門學長一點的時間,比如兩小時。【畢竟學校上課,一次課也得兩小時】,要避免貪多,一口吃不成個胖子。6.我需要刷oj么?我認為剛開始編程的時候還是應該刷的,但是一定要注意,不要被你周圍的“X神”給誤導了。因為我上大學的時候,身邊總是有很多搞計算機競賽的人,他們之間都互相稱對方為“X神”,某某神又使用一個牛逼的算法,將程序時間從1秒降低到了0.999秒。我要勸大家的是,刷題不是為了達到這個目的,不是說非要在競賽中拿獎,除非你是特別喜歡,否則,沒必要去背代碼。我們刷題的目的是適應寫代碼的感覺,在這個過程中你會遇到編譯錯誤,你會慢慢去記住一些語法、關鍵字,并理解一些概念,還可以自己去使用它,比如實現數據結構。慢慢的你就會變得有經驗,知道一些錯誤產生的原因。我也是慢慢這樣過來的,我現在在工作和下班以后寫代碼時,基本都不用IDE了,比如寫c++,要么vim,要么就是sublime,而調試用的是我前面提到的工具gdb。即,有一個文本編輯器就能寫代碼,脫離了IDE的束縛。在寫oj之后一段時間,在比較熟練了之后,就可以不去刷題了,可以去譬如github這樣的網站上找點項目來看,然后自己跟著寫一下,編程能力慢慢就提升了。就計算機專業來說,很多同學在大一上完編程課之后,就很少寫代碼了,這樣是很不好的。刷題除了可以鍛煉編程能力,對于找工作前突擊也很有作用。比如,我之前投遞過華為公司的研發崗位,校招的時候有筆試題。我就在16年國慶的時候刷了一下華為的oj,我記得筆試是600分的總分,過100就給面試機會,而我很輕松的就拿了500分,而當時也就刷了20多道華為的題。7.看書還是看視頻?網上有不少人鄙視看視頻學習的同學,我不知道為什么,因為我認為看視頻是一個很好的學習方式。不過我們得明白看書和看視頻分別有什么優缺點。其實我是很建議看視頻入門的,因為目前網上的應用型【非學術型:比如清華大學的操作系統,非常難】的視頻都是很簡單的,很多是面向初學者的,視頻能用較短的時間告訴你你現在所學的技術可以干什么,可能需要先修哪些知識,可以幫助我們搭建一個項目驅動式學習的網絡。可是視頻也有個缺點:就是知識非常的雜,很不系統。雖然現在很多教學網站都提供了學習路徑,但是這些路徑中的視頻很多時候都不是同一個老師錄制的,只是按照知識的依賴關系排的順序,所以,如果想通過視頻去系統地學習一門知識,是比較困難的。【當然,一些學術型的視頻還是很推薦的,比如斯坦福的機器學習,清華的操作系統、數據結構等課程,能堅持看完,絕對受益匪淺】。而應用型的,比如web開發等知識,還是得看書。書籍等特點就是系統化,由淺入深,你可以定制化地看自己薄弱的章節。所以一個比較好的學習方式是:看視頻入門,看書進階。8.多久能學會編程?其實這個問題是沒有答案的,如果只是想做出一個小應用,2個月足矣,而就我個人而言,我認為學習編程不是學習一種編程語言,而是學習一個生態,一個計算機系統,所以無止境。9.我應該選擇什么資料,看什么書?其實這個問題也是很多編程新手容易困惑的問題。網絡上擁有我們一輩子都看不完的教程和資料,所以現在應該不會存在找不著視頻教程、找不著書看的問題。而問題就是我們不知道看什么視頻、看什么書。從開始學編程到現在,我也買了上百本書,而真正適合自己的好書并不多。而視頻教程的問題就更嚴重了,東看一點、西看一點,知識很難組織成網絡。所以學習編程的過程中,我們遇到的最大的問題是:當我們遇到問題的時候,在大量資料面前,我們不知道選擇什么資料去學習。即使我們使用項目驅動式學習的方法找到了我們的方向,但是同一個路徑下,也有很多資料。前文列舉的項目驅動式學習的圖中,我們是自上而下的去發現問題,然后再解決問題。如果能有人幫我們組織好學習路徑,然后自下而上地去學習,那么效率可能會提高很多。不過不用擔心,我已經盡我所能,將我看過或者我認為好的課程和書本資料給串了串,整理好上傳了,所有學習資料均免費,無任何收費課程。資料百度云地址: https://pan.baidu.com/s/11Pk-TAKuiyKaY9Llxpdj2Q 提取碼: w4mk另外,很多新手反饋不會搭環境,那我給大家推薦一款可以在線運行代碼的網站,那個背單詞app百詞斬推出的學習編程的網站,在線編輯,在線運行,避免了你搭環境的痛苦,直接運行即可,這個環境使用是免費的,點擊FreeCode,選擇“代碼練習”新建文件就可以了:這個網站對初學者比較友好,不過目前只有Python環境,其他的環境得再等等。百詞斬一直走的都是黑科技路線,并且出的課程也是采用的及時反饋的模式,也正是在他們家自己搭建的環境上,進行的一個練習,對電腦的配置也沒有什么要求,甚至平板和手機等終端上都可以使用,也是按背單詞那套來設計的,感興趣的同學也可以去看看,也可以去公眾號回復「免費教程」能白嫖免費的課程,感覺也還挺扎實的,實在不感興趣的,也可以免費薅一下他家的編程環境,對電腦配置真的沒有什么要求。為什么很多985211院校都取消匯編語言這門課了?
主要是匯編語言沒有難度,不論是X86系列的宏匯編,還是單片機匯編,只要一個指令手冊在手,基本都可以很快上手。
當然以下幾方面也是主因:
隨著各種高級語言的IDE的出現,結構化編程的出現,匯編語言逐漸被取代。最有代表性的,單片機C語言代替了匯編語言。如C8051Fxxx,ARM處理器,匯編語言的劣勢逐漸顯現,不利于結構化編程,不支持大規模編程。一些單片機選型配置程序,只支持C語言,一些廠家的處理器售后編程服務,也只提高C語言的服務。
以C8051F124為例,雖然程序空間支特128KB,但實際上ASM只能達到64KB,只要C語言才支持段BANK,擴展至128KB,這是反復與其總部的服務工程師確認的。
X86系列的宏匯編MASM,也被C,PLM等高級語言取代。
匯編語言的執行效率要比高級語言高,但是其后期的維護成本也高,可讀性差,一些老牌的公司,都在考慮匯編程序的升級換代。國際上一些知名的自動控制公司,其早期的控制軟件都是用ASM或者MASM寫成,特別是底層的程序。最有代表的,是以前用RTOS實時操作系統所作開發,ASM,C,PASCAL等并存,這使得維護成了大問題,統一成某一高級語言,是大勢所趨。
ASM,MASM雖然高效率,但碼冗長,可讀性差,特別是處理浮點運算,其復雜的浮點運算指令、繁瑣的ST(i)寄存器使很多人知難而退,非常容易出錯。但C等高級語言基本就一條語句的事。
處理器速度大幅提高,內存空間的海量提升,也是匯編語言加速退出歷史舞臺的主要原因。單片機主頻由十多兆提高到幾百兆,X86主頻更是到了GHZ的時代。
單片機再也不用糾結幾百字節的內部RAM了,幾十KB,幾百MB也不是問題;X86的8GB,16GB內存也相當普遍,盡情地用吧,不用考慮溢出。
總之,匯編語言退出歷史舞臺只是時間問題,沒必要花大量時間去研究它。目前最流行的C語言,就是各種匯編、宏匯編語言的極好替代品,易學好維護,執行效率也不錯。各種IDE的出現、高頻率的處理器、大容量的內存、海量的程序空間等工具、硬件的飛速發展,給高級語言提供了強有力的支撐,也加速了匯編語言的消亡。
php或者c語言哪個入門容易?
首先這兩個語言其實沒有什么太多交集。我們大多數的迷茫都源于自己的無知。今天先來弄清楚PHP和C語言他們到底是做什么的?學習的曲線等等;
PHP是用來做什么的?
PHP是一種服務器端的腳本語言,專門是為網頁開發而設計的,用途很廣泛。
上面所有的只是PHP可以做的事情的大類,其實PHP能做的東西還有很多:
下面是C語言的介紹,C語言的用途:C語言還有很多趣事:比如在1969年到1973年間在AT&T貝爾實驗室由Dennis Ritchie創造并用于Unix操作系統的在開發;很多后期語言是從C中直接或者間接的借出來的。其中包括Java、JavaScript、C++、python、PJP和Per;
C語言相對來說比PHP難很多,但是如果你有足夠的興趣和動力的話,這邊也是建議可以的話先學C語言。因為我們可以看到上圖的話,學會C語言等于學會一切。因為C實在是很強大。后期的語言都是基于C語言寫出來的。
至于C語言我們該如何學習可以參考下圖:
零基礎自學編程?
本文從以下幾個方面給大家分享幾本高價值書單,并不一定全面,歡迎讀者補充,希望能對你有幫助。
1 關于編碼與重構
1.1 代碼整潔之道
英文名《Clean code》,該書出自 Robert C Martin 之手,又被稱為 Bob 大叔,是一位美國著名的軟件工程師和作家,他已經寫了有關敏捷軟件開發的書籍。書中提到眾多有名的編程原則:比如 SOLID 原則、 Law of Demeter(LoD,又被稱為最少知識原則)。推薦理由:每個程序員都必須擁有本書并閱讀它。這是一本非常著名的書,它將完全改變您的編程風格,書中介紹的規則均來自作者多年的實踐經驗,涵蓋從命名、數據結構、面向對象的設計原理到重構的多個編程方面,雖為一“家”之言,然誠有可資借鑒的價值。或許,真正整潔的代碼真能讓同行讀起來像詩一樣。任何傻瓜都可以編寫計算機可以理解的代碼。優秀的程序員編寫人類可以理解的代碼。— 馬丁·福勒如果只能讀一本書,我就推薦這本。最后,基于本書,眾多開發者還推出了各種語言的整潔之道:? Javascript 整潔之道? PHP 整潔之道? ABAP 整潔之道? Java 整潔之道? .NET 整潔之道還有各大科技公司的代碼風格指南:? Google 風格指南? Uber Go 語言風格指南Bob 大叔的《架構整潔之道》也值得推薦,這本書是在架構領域的登峰之作,圍繞“架構整潔”這一重要導向,系統地剖析其緣起、內涵及應用場景,涵蓋軟件研發完整過程及所有核心架構模式。還有《程序員的職業素養》,作者以自己以及身邊的同事走過的彎路、犯過的錯誤為例,意在為后來人引路,助其職業生涯邁上更高臺階。1.2 重構(第2版)
英文名: 《Refactoring: Improving the Design of Existing Code,2nd Edition》,作者 Joshua Kerievsky。本書是理論和實踐最佳組合的罕見書籍之一。重構是一個使您的工作代碼更加美麗的過程,這本書可以利用已經嘗試和測試的軟件開發世界的模式來為您提供幫助。推薦理由:重構一詞經常在各種大會上被提及,那就是這本書帶來的影響。重構也就是重寫軟件的過程,而無需更改其功能,以提高其可讀性,可檢驗性或可維護性。重構是使工作代碼美觀的過程,重構有助于改進工作代碼的設計。這也是優秀程序員的必備技巧之一,通常優秀的程序員也擅長重構。本書將教你重構代碼的藝術和科學。無論您是 Java 程序員、C++ 開發人員還是 Python 開發人員,每個程序員都可以從本書中受益。與《重構》經常被提及的書就是大名鼎鼎的《代碼大全》,書中解釋的也是久經考驗的技術和策略,能有效幫助程序員和軟件開發人員。筆者也曾在大學的時候把這本書圖書館借出來,發現這本書太厚,啃不動,到期就立馬歸還了。1.3 代碼之美
英文名:《Beautiful Code: Leading Programmers Explain How They Think》,作者:Grey Wilson。推薦理由:大牛前輩的博客合集,同時也是提高編碼技能的好書之一,因為它為您提供了一個機會,讓您了解專業程序員如何處理問題、編寫的代碼以及他們如何解決問題,并且仍然能夠保持他們的代碼美觀。這本書是一系列案例研究的集合,揭示了 Emacs 到 Facebook 等大型網站架構秘密,講述了那些專家程序員,包括布萊恩·克尼原,喬恩·本特利(Jon Bentley)(編程珠璣的作者),蒂姆·布雷(Tim Bray),卡爾·福格爾(Karl Fogel),邁克爾·菲瑟斯(Michael Feathers)(有效地使用舊版代碼的作者),以及許多更多偉大的作者和程序員。關于二分查找,在書中數次被不同作者提及,了解不同作者的觀點。無論您使用哪種編碼語言,例如 Java,C#,Python 或 Ruby,都會在本書中找到有趣的東西。代碼之美調查了一項努力的人類發明和創造力的范圍:計算機系統的開發。每章中的美觀來自發現獨特的解決方案,這是作者的力量超越界限,識別他人所忽略的需求,并找到令人驚訝的解決方案,以解決令人困擾的問題。2 關于職業成長
2.1 程序員修煉之道(第2版)
英文名《Pragmatic programmer》,作者是 Andrew Hunt & David Thomas。中文版的譯者是大名鼎鼎的云風,副標題是:通向務實的最高境界。推薦理由:本書是時隔 20 年的新版,覆蓋哲學、方法、工具、設計、解耦、并發、重構、需求、團隊等務實話題的最佳實踐及重大陷阱,以及易于改造、復用的架構技術。剛出來的時候博文出版社舉辦了一個推廣活動,在云風和皓子叔聯袂推薦下,毫不猶豫的入手了本書。程序員往往最難得就是務實主義,總想追求新技術,炒新概念。工作后才逐漸明白,編程的本質,均不依賴于特定語言、框架和方法,技術改變世界在于能夠有效解決用戶的真實需求。本書本質上是程序員的自助指南。它探索了良好的軟件開發實踐,并為您提供了出色的建議、提示和技巧,以更有效地編程。正是對經典和現代軼事、引人入勝的類比和發人深省的例子的創造性使用,使每個部分的學習都變得有趣而有趣。如果說大學期間讀的都是類似于 C 語言圣經和 Head First 系統書籍的話,工作后的人才會真正懂得為什么這本書籍不厚,讀起來拍案叫好,這大概就是大道至簡。作者另一著作:《程序員修煉之道: 從小工到專家》也是值得推薦的2.2 卓有成效的程序員
英文名:《The Productive Programmer》,作者:Neal Ford。推薦理由:本書就是講述如何在開發軟件的過程中變得更加高效。同時,《卓有成效的程序員》的講述將會跨語言和操作系統:很多技巧的講述都會伴隨多種程序語言的例子,并且會跨越三種主要的操作系統,Windows(多個版本),Mac OS X 以及 *-nix (Unix 或者 Linux)。貫穿全文的思想大概就是盡量讓機器做機器該做的事情,讓程序和程序打交道,發揮程序員在這方面的先天優勢。學會善用工具,命令行、學會寫腳本,學會宏。提供效率,不去做重復單調的工作。最終的目的:成為一個“慵懶”的程序員。2.3 軟技能:代碼之外的生存指南
英文名:《Soft Skills: The software developer's life manual》,作者:John Z. Sonmez推薦理由:研究生期間讀過最受益的一本非技術書。程序員都知道編碼很重要,這是我們吃飯的硬技能。可是實際工作上才發現不止寫代碼,代碼之外的軟技能也很重要:比如面臨著與客戶溝通、與產品打交道的溝通問題;比如應該關注自身發展,書中也介紹了怎么做職業突圍;還有更多章節介紹了作者如何學習、如何理財、健身、自我營銷等等。分享書中有趣讓我印象深刻的點是作者去面試,面試官瀏覽過他的博客文章,兩人因此相談甚歡。 最后也想給閱讀的朋友聲明一下:這本書涉獵了很多方面,但是并不是沒一點都是一套可以照抄的完美答案,畢竟作者也是從當時的環境和自己經歷出發介紹這些內容,每個讀者應該都有自己的選擇,綜合而言,這本書挺適合各個階段的人閱讀的,尤其大學生和初入職場的朋友。作者也出了《軟技能2:軟件開發者職業生涯指南》,如果說軟技能關注于生活,那軟技能 2 則更加關注于了軟件開發職業。3 關于黑客與開源
3.1 Unix 編程藝術
書籍英文名:《The Art of UNIX Programming》,作者:《Eric S. Raymond》從 1982 年開始就是 UNIX 開發者。推薦理由:本書涉及 Unix 系統領域中的設計和開發哲學、思想文化體系、原則與經驗,由公認的 Unix 編程大師、開源運動領袖人物之一 Eric S.Raymond 傾力多年寫作而成。程序會過時,編程語言會更新,代碼會跟隨業務不斷改動,但編程思想的生命力會長盛不衰,好的編程藝術也是具有穿透力的,盡管書中的案例已經偏老,但貫穿始終的 KISS 原則、思想文化體系、設計與開發哲學一定能夠給你帶來醍醐灌頂的感覺。Keep it simple stupid,簡稱 KISS 原則。在做軟件設計的工作中,很多時候都不要想得過于復雜,也不要過度設計和過早優化,用最簡單且行之有效的方案也就避免了復雜方案帶來的各種額外成本。這樣既有利與后續的維護,也有利于進一步的擴展。另外,本書還可以與“左耳朵耗子”ef="">皓子叔推薦 過的《UNIX傳奇:歷史與回憶》結合著一起看,了解 UNIX 的誕生記與發展史,貝爾實驗室的幕后故事!本書不但書寫 Unix 的歷史,而且記錄作者的回憶,一探 Unix 的起源,試圖解釋什么是 Unix,Unix 是如何產生的,以及 Unix 為何如此重要。3.2 大教堂與集市
英文名:《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix編程藝術》作者 Eric S. Raymond 的另一封神之作,副標題是《對 Linux 和開源革命的沉思》。推薦理由:大家都知道程序員熱衷于開源文化,都在說不要重復造輪子。開源時代下的軟件開發可能只需要三個鍵盤按鈕:CTRL + C + V,開個玩笑。說到開源文化,那么本書《大教堂與集市》是開源運動的《圣經》,顛覆了傳統的軟件開發思路,影響了整個軟件開發領域。作者把軟件開發思路類比于古代的大教堂文化和集市文化,講述了集市如何變成大教堂,書中系統解釋了開源軟件是如何生產的,開源開發的優勢在哪,開源軟件的傳承是如何做到的。3.3 黑客與畫家
英文名:《Hackers and Painters: Big Ideas from the Computer Age》,作者:Paul Graham,本書的譯者是大名鼎鼎的阮一峰大佬。推薦理由:說到黑客文化,就不得不提到硅谷創業之父Paul Graham 的這本書,本書主要介紹黑客 Hacker,即優秀程序員的愛好和動機,討論黑客成長、黑客對世界的貢獻以及編程語言和黑客工作方法等所有對計算機時代感興趣的人的一些話題。本書是一本為黑客正名的技術散文集,看完書后第一次將我從電影中的黑客形象顛覆過來,才了解到并不是入侵系統、制作病毒、各種解密的人就是黑客,Hacker 是專家級程序員,是一群與畫家有著極大的相似性,他們都是在創造,而不是完成某個任務,“黑客”象征著第一流的能力,以及求解問題過程中產生的精神愉悅或享受。他們崇尚分享、開放、民主、計算機的自由使用和進步。而那些惡意入侵計算機系統的人更應該被稱為 cracker(駭客)。4 關于算法與設計模式
4.1 算法設計手冊
英文名:The Algorithm Design Manual (2nd Ed.),作者:Steven S Skiena推薦理由:關于算法的重要性大家都知道,大家肯定都知道另外兩本著名的《算法導論》和《算法4》:《算法導論》側重與算法的數學推導,適合研究,而《算法4》側重于算法的代碼實現,適合入門。而這次推薦的《算法設計手冊(第2版)》卻沒有那么有名氣,但也不失為設計實用且高效算法的最全面指導書。該書揭密了算法的設計與分析,以簡單易懂的寫作風格,介紹了各種算法技術,著重強調了算法分析。目前市場上算法書層出不窮,但是經典的算法卻一直在那里,不曾走遠。4.2 Head First 設計模式
英文名:《Head first design patterns》,作者:Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson推薦理由:這本書完整地涵蓋了 GoF 版本全部23個設計模式,毫不費力地解釋了世界各地熟練的軟件開發人員和程序員用來構建優雅、功能齊全、靈活和可重用的軟件的幾種軟件設計模式。。圖文并茂,配有大量說明性和啟發性的示例,它們將使學習同時變得高效和有趣。與其他文本繁重的編程書籍不同,這本書具有引人深思、視覺豐富的格式。Head First 系統書籍充滿了幽默感,選題和編輯都很用心,值得一讀。相信讀完的讀者逐步邁向對軟件設計模式的深入了解。再來讀 GoF 不失為一個不錯的選擇。4.3 設計模式:可復用面向對象軟件的基礎
英文名:《 Design Patterns: Elements of Reusable Object-Oriented Software》,又被簡稱為計算機領域的 GoF ,因為本書的作者是四個人:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides。推薦理由:本書是任何使用面向對象代碼的開發人員的必備入門讀物。而且作者 Erich Gamma 是 jUnit、Eclipse、IBM Jazz 項目、Visual Studio、Azure 和 Office 365 的幕后推手。如果您沒有很好地掌握 UML,您可能會發現很難吸收編程書中匯編的一些信息和示例。然而,這不會阻止您欣賞設計模式書中敘述的美妙之處,它既簡單又內容豐富。《設計模式》一書詳盡地解釋了 23 種軟件設計模式,可幫助軟件開發人員和設計人員制作更好、更優雅、更靈活的軟件。這本書討論了針對常見軟件設計問題的大量簡潔明了的解決方案。如果說 GoF 太難讀下去,那么就推薦程杰的《大話設計模式》,這本書通過對話的形式帶領大家入門設計模式,人人都可以是好學的小菜和經驗豐富的大鳥。4.4 編程珠璣(第2版?修訂版)
英文名:《More Programming Pearls,Second Edition》,作者:John Bentley推薦理由:這是一本帶你真正領略計算機科學之美,融深邃思想、實戰技術與趣味軼事于一爐的奇書。與大多數其他編程書籍不同,這本書側重于基本問題和一般問題。它討論了可以提高性能或減少內存需求的各種算法和技術。作者選取許多具有典型意義的復雜編程和算法問題,生動描繪了歷史上眾大師們在探索解決方案中發生的軼事、走過的彎路和不斷精益求精的歷程。就如書名一樣,大浪淘沙,計算機科學中的智慧正如自然界里珍珠出自細沙對牡蠣的磨礪,留下一個個編程“珠肌”。題外話:
上面的書都是本人曾經閱讀過,或者說在圖書館中有借閱翻過的書。也是計算機領域評分很高、有口皆碑的書籍。但計算機行業的經典書籍太多,本人能推薦的也只是其中一部分,想要推薦的內容也不想針對某個特定編程語言和領域,所以像《C++編程思想》和《On Java8》這類書籍沒有進行推薦,推薦理由也不一定完全正確,歡迎大家批評指正。另外,看完上述的書并不能說自己就能在工作中就能運用到,看完就能成為一個頂尖的程序員。何況看書也不能完全接收前輩們的這些大智慧,但如果在某個瞬間(看書過程或者實踐過程中)對自己有一種醍醐灌頂的感覺,就已足夠。參考鏈接:
? UNIX傳奇(上篇)? 假期好讀書? Top 5 Books to Improve Coding and Programming Skills? http://www.osnews.com/images/comics/wtfm.jpg本文分享自華為云社區《【云駐共創】對于編程思想和能力有重大提升的書有哪些》,作者:宇宙之一粟 。
哪些書法大學招收湖北考生?
以下是全國可報的書法專業院校:
書法專業招生院校(國家統招本科):
北京市
1、中央美術學院
http://www.cafa.edu.cn/sp/zs/?ci=802
2、中央財經大學
http://zs.cufe.edu.cn/bkzsw_new/
3、北京語言大學
http://zsb.blcu.edu.cn/index.html
4、北京師范大學
http://admission.bnu.edu.cn/
5、北京城市學院【民辦】
http://zs.bcu.edu.cn/
6、首都師范大學科德學院
http://www.kdcnu.com/work/zsjz/
天津市
7、天津美術學院
http://zsbgs.tjarts.edu.cn/index/bkzs.htm
河北省
8、河北大學
http://zhaoban.hbu.cn/
9、河北師范大學(面向河北)
http://zsjy.hebtu.edu.cn/zsw/
10、保定學院(面向河北)
http://221.192.237.22:8018/zhsh/default.html
11、廊坊師范學院(面向河北)
http://www.lfsfxy.org.cn/zsk/
12、滄州師范學院(面向河北)
http://www.caztc.edu.cn/gzzd/index.shtml
13、河北民族師范學院(面向河北)
http://www.hbun.net/smartcore/web/site9/index.htm
14、河北傳媒學院【民辦】
http://zs.hebic.cn/
15、河北美術學院【民辦】
http://zsc.hbafa.com/
16、河北師范大學匯華學院(面向河北)
http://222.30.226.10/zhaosheng/
河南省
17、河南大學
http://zs.henu.edu.cn/
18、鄭州大學
http://ao.zzu.edu.cn/
19、許昌學院
http://zs.xcu.edu.cn/
20、商丘師范學院、
http://zhaoban.sqnu.edu.cn/
21、洛陽師范學院
http://183.170.0.11/system/index.php?m=content&c=index&a=lists&catid=194
22、安陽師范學院(面向河南)
http://zs.aynu.edu.cn/
23、河南科技學院
http://zsxx.hist.edu.cn/
24、安陽學院【民辦】
http://www.ayrwedu.cn/zsxxw/
25、河南大學民生學院
http://zs.humc.edu.cn/
26、周口師范學院
http://zs.zknu.edu.cn/
山東省
27、山東大學
http://www.bkzs.sdu.edu.cn/
28、山東藝術學院
http://zsbgs.sdca.edu.cn/
29、山東工藝美術學院
http://zs.sdada.edu.cn/
30、臨沂大學
http://zhaosheng.lyu.edu.cn/
31、聊城大學
http://zsb.lcu.edu.cn/
32、曲阜師范大學
http://www.qfnuzsb.com/Index.html
33、齊魯師范學院
http://qlnuzs.university-hr.com/default.php#
34、菏澤學院
http://zsjy.hezeu.edu.cn/
35、泰山學院
http://zhaosheng.tsu.edu.cn/
36、齊魯理工學院(原曲阜師范大學杏壇學院)【民辦高校】
http://www.xtxy.cn/zsw/
http://www.qlit.edu.cn/zsw/
山西省
37、山西大學
http://bkzs.sxu.edu.cn/
38、山西師范大學(只招山西)
http://zsb.sxnu.edu.cn/
39、太原師范學院
http://zjc.tynu.edu.cn/Default_Adm.html
40、晉中學院[只招山西]
http://zs.jzxy.edu.cn/
41、忻州師范學院【只招山西】
http://zs.xzsyzjc.cn/
42、山西大同大學【只招山西】
http://sxdtdxzs.university-hr.com/
43、山西應用科技學院【民辦】
http://www.sxxh.org/col.jsp?id=462
44、山西師范大學現代文理學院(只招山西)
http://www.xdwl-sxnu.cn/index.php?p=news_list&c_id=28&lanmu=9
45、呂梁學院
46、太原學院
http://zhaosheng.tyu.edu.cn/
陜西省
47、陜西師范大學
http://zsb.snnu.edu.cn/
48、西安美術學院
http://www.zhshch.xafa.edu.cn/
49、西安交通大學
http://zs.xjtu.edu.cn/
50、西安工業大學
http://zsb.xatu.cn/
51、咸陽師范學院
http://zsb.xync.edu.cn/
52、渭南師范學院
http://www.wntc.edu.cn/index/tzgg.htm
53、西安思源學院
http://www.xasyu.cn/
54、西安交通大學城市學院
http://zhaoban.xjtucc.cn/index.php?m=content&c=index&a=lists&catid=10
55、西安文理學院http://zsb.xawl.org/
56、陜西學前師范學院
http://www.snie.edu.cn/
安徽省
57、淮北師范大學
http://hbcnczs.go od-edu.cn/
58、宿州學院
http://zjc.ahszu.edu.cn/zs/
59、合肥師范學院
http://zsb.hfnu.edu.cn/
江蘇省
60、南京師范大學
http://bkzs.njnu.edu.cn/
61、南京藝術學院
http://zhaosheng.nua.edu.cn/
62、江蘇師范大學
http://bkzs.xznu.edu.cn/
63、淮陰師范學院
http://zjc.hytc.edu.cn/zhaosheng/
64、南京師范大學泰州學院
https://zs.nnutc.edu.cn/
65、泰州學院
http://zsb.tzu-edu.cn/
上海市
66、上海師范大學
http://ssdzsb.shnu.edu.cn/
浙江省
67、浙江大學
http://zdzsc.zju.edu.cn/
68、中國美術學院
http://zb.caa.edu.cn/bkszs/bkzsxx/
69、杭州師范大學
http://bkzs.hznu.edu.cn/index.action
70、紹興文理學院(蘭亭書法藝術學院)
http://zs.usx.edu.cn/
江西省
71、上饒師范學院
http://zsjy.sru.jx.cn/
72、宜春學院
http://zsw.ycu.jx.cn/zsw/
73、景德鎮陶瓷大學
http://zs.jci.edu.cn/
福建省
74、泉州師范學院
http://zs.qztc.edu.cn/
廣東省
75、暨南大學
http://zsb.jnu.edu.cn/
76、廣州美術學院
http://www.gzarts.edu.cn/zsjy/bkzs.htm
77、嶺南師范學院
http://zsb.lingnan.edu.cn/
78、肇慶學院
http://wxy.zqu.edu.cn/index.htm
http://zsb.zqu.edu.cn/
79、韓山師范學院
http://zsb.hstc.edu.cn/
80、中山大學新華學院
http://zsb.xhsysu.edu.cn/
廣西壯族自治區
81、廣西藝術學院
http://zsb.gxau.edu.cn/
82、廣西師范大學
http://bkzs.gxnu.edu.cn/
83、廣西師范學院
http://zjc.gxtc.edu.cn/zsxxw/
海南省
84、海南師范大學
http://www1.hainnu.edu.cn/zhaosheng/
85、瓊臺師范學院
http://zhaosheng.qttc.edu.cn/default.html
云南省
86、云南藝術學院
http://www.ynart.edu.cn/index.shtml
87、云南師范大學
http://zsc.ynnu.edu.cn/default.aspx
88、昭通學院
http://zjc.ztu.edu.cn/index.htm
89、楚雄師范學院
http://cnuzsjy.cxtc.edu.cn/
90、曲靖師范學院
http://zsjyc.qjnu.edu.cn/index.php?a=lists&catid=2
91、玉溪師范學院【美術大類招生,大二分專業】
http://zb.yxnu.net/
92、大理大學
http://zs.dali.edu.cn/
貴州省
93、貴州師范大學
http://zjc.gznu.edu.cn/bkzs/index.aspx
94、貴州民族大學
http://zjc.gzmu.edu.cn/zsxxw.htm
湖南省
95、湖南人文科技學院
http://hnrkuzs.university-hr.cn/
96、湖南第一師范
http://zhaosheng.hnfnu.edu.cn/
97、長沙師范學院
http://zs.cssf.cn/
湖北省
98、湖北美術學院
http://zjc.hifa.edu.cn/
99、湖北師范大學
http://www.zsxx.hbnu.edu.cn/
100、漢江師范學院(原鄖陽師專)
http://zsjy.hjnu.edu.cn/zs/
重慶市
101、四川美術學院
http://www.scfai.edu.cn/zsb/bkszs.htm
102、重慶師范大學
http://zsb.cqnu.edu.cn/
四川省
103、 四川大學
http://zs.scu.edu.cn/
104、四川文化藝術學院【民辦】
http://zjc.cymy.edu.cn/index.html
105、成都文理學院
http://zs.cdcas.edu.cn/
106、西華師范大學
http://www.cwnu.edu.cn/
甘肅省
107、西北師范大學
http://zsb.nwnu.edu.cn/
108、甘肅民族師范學院
http://zsc.gnun.edu.cn/
內蒙古自治區
109、內蒙古科技大學
http://zhaosheng.imust.cn/
110、內蒙古藝術學院
http://zs.imac.edu.cn/
111、呼倫貝爾學院
http://zsjy.hlbrc.cn:81/
黑龍江省
112、哈爾濱師范大學
http://zsb.hrbnu.edu.cn/
113、黑河學院
http://www.hhxyzsb.com/index.asp
吉林省
114、吉林藝術學院
http://zsb.jlart.edu.cn/recruit/index/index
115、長春師范大學
http://zhaosheng.cncnc.org/
116、吉林建筑大學
http://zj.jlju.edu.cn/
117、吉林師范大學
http://web.jlnu.edu.cn/zsb/
118、吉林建筑大學城建學院
http://zsjy.jlucc.edu.cn/index/mainUI.xhtml
遼寧省
119、魯迅美術學院
http://www.lumei.edu.cn/z_s/bks.htm
120、鞍山師范學院
http://202.199.249.135/
121、大連藝術學院【民辦】
http://zsgzc.dac.edu.cn/
122、遼寧傳媒學院
http://www.lncu.cn/zhaosheng/
高職(專科)院校
1、廊坊燕京職業技術學院【公辦專科】
http://zsjyxx.lfyjzjxy.com/
2、曲阜遠東職業技術學院【民辦專科】
http://www.fareast-edu.net/#
3、石家莊理工職業學院【民辦高職】
http://www.ltc789.com/
4、北京傳媒藝術職業學院【民辦高職】
http://www.bjamu.cn/index.jsp
5、河北對外經貿職業學院(原河北外國語職業學院)【只招河北】
http://www.hbvcfl.com.cn/Channel.aspx?ChId=99
6、運城師范高等專科學校【只招山西】
http://www.sxycsf.com/index.php?m=content&c=index&a=lists&catid=45
7、晉中師范高等專科學院
http://www.sxjzsf.com/zhaoshengjiuye/zhaosheng/
8、合肥幼兒師范高等專科學校【只招安徽】
http://zsb.hfpec.edu.cn/index.php
9、四川藝術職業學院【只招四川】
http://zs.scapi.cn/
10、贛州師范高等專科學校
http://zy.ganzhsz.cn/s.php/zsjy/
11、濟源職業技術學院
http://www.jyvtc.com/zs/index.html
民辦高校(非國家統招)
1、北京民族大學【民辦高校】
http://zs.bjmzdx.org/
2、北京人文大學【民辦高校】
http://www.bjrwdx.com/
暫停招收(書法)院校
由于種種原因,某些院校停止了書法專業招生,之前也為中國培養了大批書法人才,我們值得懷念!
西南大學、佳木斯大學、齊齊哈爾大學、賀州學院、南京航天航空大學、三峽大學、桂林電子科技大學、中國人民大學、寧波大學、德州學院、南開大學、鄭州美術專修學院、昆明醫科大學海源學院、隴東學院、北京經貿職業學院……
以上就是關于php大學教程以及如何快速學習編程的相關回答,有更多疑問可以加微。