新手小白如何學(xué)習(xí)編程呢?學(xué)習(xí)編程,大家對(duì)它的第一反應(yīng)應(yīng)該就是有點(diǎn)難。聞道有先后,術(shù)業(yè)有專攻。如果你現(xiàn)在還只是一個(gè)小白的話,那你還會(huì)有很好的提升空間。但是學(xué)習(xí)是一門學(xué)問(wèn),它需要人們一步步探索和發(fā)現(xiàn)。程序猿的學(xué)習(xí)本來(lái)就不簡(jiǎn)單,就如理科生如果想要寫出出彩的文章那樣并不簡(jiǎn)單。除了對(duì)專業(yè)證書的把握,許多需要考取的證書也是他們需要克服的問(wèn)題。
程序員在外人眼里就像魔法師,用腳本輕松搶幾十盒月餅(雖然最后被開(kāi)除),一個(gè)插件解決春運(yùn)搶票難題,幾十行代碼搭建一個(gè) Web 網(wǎng)站,用微信自動(dòng)和妹紙聊天,在程序員眼里這些事太稀松平常了,他們只不過(guò)是利用編程語(yǔ)言指揮計(jì)算機(jī)去自動(dòng)完成一些需要人類重復(fù)操作的繁瑣過(guò)程,等你會(huì)編程也就不覺(jué)得大驚小怪了。
以學(xué)習(xí)爬蟲為例子,你學(xué)爬蟲的動(dòng)機(jī)什么?你的動(dòng)機(jī)可以是從網(wǎng)上獲取一些數(shù)據(jù)做數(shù)據(jù)分析,例如,前段時(shí)間有位朋友找到我說(shuō),他想開(kāi)一個(gè)廠房租賃公司,開(kāi)之前需要選址,選址就要做市場(chǎng)調(diào)查,如果僅憑直覺(jué)沒(méi)有數(shù)據(jù)支撐,很難說(shuō)哪個(gè)地方好,最好的辦法使用爬蟲去58這樣的平臺(tái)把相關(guān)的交易數(shù)據(jù)爬下來(lái)做數(shù)據(jù)分析,這就是一個(gè)很好的動(dòng)機(jī),而且目標(biāo)非常明確。
Python 編程有很多方向,有網(wǎng)絡(luò)爬蟲、數(shù)據(jù)分析、Web開(kāi)發(fā)、測(cè)試開(kāi)發(fā)、運(yùn)維開(kāi)發(fā)、機(jī)器學(xué)習(xí)、人工智能、量化交易等等,各個(gè)方向都有特定的技能要求,比如學(xué)數(shù)據(jù)分析就要重點(diǎn)掌握統(tǒng)計(jì)學(xué)、SQL 等知識(shí),搞運(yùn)維就要非常熟悉 Linux 系統(tǒng),所以你首先要清楚你選擇的是什么方向,這個(gè)方向有哪些知識(shí)是需要重要掌握的。
以 Web 開(kāi)發(fā),重點(diǎn)要理解 HTTP 協(xié)議,要知道一個(gè)網(wǎng)頁(yè)從瀏覽器輸入U(xiǎn)RL開(kāi)始到頁(yè)面呈現(xiàn)出內(nèi)容的這個(gè)過(guò)程發(fā)生了什么,然后要知道 Web 開(kāi)發(fā)涉及的前端知識(shí) HTML、JavaScript、CSS都是做什么用的,然后就是學(xué) Python,掌握基本的語(yǔ)法,常用數(shù)據(jù)類型、常用模塊,就差不多可以去實(shí)現(xiàn)你的目標(biāo)了,幾乎所有網(wǎng)站都需要用到數(shù)據(jù)庫(kù),那么你至少需要懂一點(diǎn)數(shù)據(jù)庫(kù)的知識(shí),SQL 的增刪改查操作要會(huì),程序?qū)懲炅耍覀円渴穑到y(tǒng)一般都是運(yùn)行在 Linux 環(huán)境,這個(gè)時(shí)候你還需要了解如何操作 Linux 命令。
接下來(lái)詳細(xì)介紹每個(gè)過(guò)程如何學(xué)習(xí),以及所用到的學(xué)習(xí)資源和掌握的程度。
HTTP 協(xié)議是瀏覽器與服務(wù)器通訊的媒介,用戶在瀏覽器輸入U(xiǎn)RL后瀏覽器會(huì)立即向服務(wù)器發(fā)起一個(gè)請(qǐng)求,服務(wù)端接收請(qǐng)求后,從數(shù)據(jù)庫(kù)查詢到合適的數(shù)據(jù),最終把數(shù)據(jù)返回給瀏覽器。瀏覽器與服務(wù)器之間的通訊嚴(yán)格遵守 HTTP 協(xié)議,如果你弄懂了 HTTP 協(xié)議,那么也就弄懂了 Web 編程的基本原理,這里推薦兩本關(guān)于 HTTP 的書。
《圖解HTTP》
《HTTP權(quán)威指南》
前者偏向于入門,后者適合進(jìn)階閱讀,前期不一定要細(xì)讀,大概理解就行,以后你還會(huì)回過(guò)頭來(lái)學(xué)習(xí)的。
不管再忙都要堅(jiān)持每天保持3個(gè)小時(shí)以上的練習(xí)時(shí)間
任何一個(gè)做 Web 開(kāi)發(fā)的,離不開(kāi)前端三劍客,這里的三劍客是指 HTML、JavaScript、CSS。HTML 是骨架,CSS是外衣,JS控制前兩者,為了滿足更多用戶交互行為需要 JavaScript 來(lái)控制。下面推薦的這幾本書對(duì)一個(gè)初入門的小白來(lái)說(shuō)完全夠用,挑選一兩本就行,也不需要你全部看完,一本書看完前面的 60% 差不多就行了。
《HTML5秘籍(第2版) 》
《HTML5權(quán)威指南 》
《Head First HTML與CSS(第2版)》
《CSS權(quán)威指南(第3版)》
《JavaScript DOM編程藝術(shù)(第2版)》
《JavaScript高級(jí)程序設(shè)計(jì)(第3版)》
不管再忙都要堅(jiān)持每天保持3個(gè)小時(shí)以上的練習(xí)時(shí)間
了解了基本的前端知識(shí)后,還是有必要了解一下前端的框架,如vue.js、boostrap、react、jquery 等等,雖然不一定每個(gè)框架都去學(xué)一遍,但至少要知道每個(gè)框架的作用,因?yàn)橐院竽悴豢赡苁裁炊际亲约褐貜?fù)造輪子。
學(xué)完前端知識(shí)后,你現(xiàn)在應(yīng)該能簡(jiǎn)單的做出一些靜態(tài)頁(yè)面了,不過(guò),現(xiàn)在幾乎所有的網(wǎng)站都是動(dòng)態(tài)的(不是動(dòng)畫效果,而是頁(yè)面數(shù)據(jù)是動(dòng)態(tài)變化的),就是說(shuō)數(shù)據(jù)都是根據(jù)登錄用戶個(gè)性化推薦的,瀏覽器的請(qǐng)求發(fā)送給服務(wù)器,服務(wù)器從數(shù)據(jù)庫(kù)查詢獲得數(shù)據(jù)返回給瀏覽器,服務(wù)器這邊的實(shí)現(xiàn)邏輯就需要用 Python 來(lái)實(shí)現(xiàn),現(xiàn)在正是開(kāi)始學(xué) Python 的時(shí)候, Python 入門需要掌握的內(nèi)容包括基本語(yǔ)法、數(shù)據(jù)結(jié)構(gòu)、常用數(shù)據(jù)類型和常用的模塊的api方法操作等。關(guān)于 Python 的書其實(shí)很多,這里推薦幾本入門和進(jìn)階。
入門
《Python簡(jiǎn)明教程》可以在公眾號(hào)「python之禪」回復(fù) “python”免費(fèi)獲取電子書
《Python編程:入門到實(shí)踐》
《Python編程快速上手 : 讓繁瑣工作自動(dòng)化》
進(jìn)階
《流暢的Python》
《Python Cookbook》
《Effective Python》
簡(jiǎn)明教程就是一本很薄的小冊(cè)子,希望你可以認(rèn)真讀完,后面兩本入門書,至少要把前面的基礎(chǔ)學(xué)完,至于后面的實(shí)戰(zhàn),不學(xué)也罷,因?yàn)槟愕呐d趣點(diǎn)不一定在那里。
不管再忙都要堅(jiān)持每天保持3個(gè)小時(shí)以上的練習(xí)時(shí)間
現(xiàn)在差不多可以用 Python 來(lái)做很多事情了,但是你還不知道如何寫一個(gè) Web 應(yīng)用,因?yàn)槟憧赡懿恢涝趺床僮鲾?shù)據(jù)庫(kù),怎么寫 SQL 語(yǔ)句,對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪查改,所以,別急,先學(xué)學(xué)數(shù)據(jù)庫(kù)知識(shí)吧,MySQL 是最流行的數(shù)據(jù)庫(kù)系統(tǒng),大公司都在用。對(duì)數(shù)據(jù)庫(kù)最基本的了解就是要知道什么表、行、列、主鍵、外鍵、索引這些概念,稍微復(fù)雜的就是查詢,有分組查詢,聯(lián)合查詢等各種條件查詢,你需要掌握這些基本操作。
《SQL基礎(chǔ)教程》
《MySQL必知必會(huì)》
這兩本數(shù)都是面向初學(xué)者的基礎(chǔ)教程,挑選一本就夠了,除了MySQL,還有PostgreSQL、Oralce、SQL Server 都屬于關(guān)系型數(shù)據(jù)庫(kù),另外也有 MongoDB、Redis 這樣的非關(guān)系型數(shù)據(jù)庫(kù),你可以相應(yīng)的都去了解一下,不一定非要馬上就學(xué)。學(xué)完數(shù)據(jù)庫(kù)之后,你要想的一個(gè)問(wèn)題就是如何用 Python 操作數(shù)據(jù)庫(kù)的 CRUD,雖然沒(méi)有專門的書籍講這個(gè),但是網(wǎng)上有很多教程寫如何用 Python 操作 MySQL 的,所以,學(xué)會(huì)使用搜索引擎非常重要,因?yàn)橐院蠛芏鄷r(shí)候都是面向 Google 編程。為了防止忘記前面的內(nèi)容,也要不時(shí)地復(fù)習(xí)、練習(xí)前面的內(nèi)容。不管再忙都要堅(jiān)持每天保持3個(gè)小時(shí)以上的練習(xí)時(shí)間 。
現(xiàn)在你差不多所有的基礎(chǔ)知識(shí)都有所掌握,終于可以磨刀霍霍迫不及待開(kāi)始第一個(gè)真正屬于你自己作品的開(kāi)發(fā)之旅了,因?yàn)榍懊婺阋呀?jīng)掌握了 HTTP 協(xié)議,所以現(xiàn)在你可以選擇一個(gè) Web 框架,基于這個(gè)框架來(lái)開(kāi)發(fā)我們的 Web 網(wǎng)站,這里推薦使用 Flask,這個(gè)框架比較流行,然后又是一個(gè)比較輕量級(jí)的框架,非常靈活。學(xué) Flask 看狗書《Flask Web開(kāi)發(fā):基于Python的Web應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)》。一個(gè)完整的 Web 網(wǎng)站從前端 HTML、CSS、JavaScript再到后端 Flask,數(shù)據(jù)庫(kù)連接、CRUD操作基本都能跑通了,項(xiàng)目差不多基本成型,只剩下最后一個(gè)步驟,就是如何把做好的程序發(fā)布到服務(wù)器讓它一直穩(wěn)定運(yùn)行,持續(xù)提供服務(wù)。
通常,我們的 Web 程序會(huì)部署在 Linux 服務(wù)器,很少有用 Windows 作服務(wù)器的,所以,熟悉 Linux 系統(tǒng)還是非常有必要的,Linux 要掌握到什么程度呢?當(dāng)然,至少要會(huì)基本命令操作才行,推薦下面這幾本書。
《快樂(lè)的Linux命令行》
《鳥哥的Linux私房菜》
《Linux命令行與shell腳本編程大全》
熟悉完 Linux,程序也部署好了,其實(shí)還差一步,網(wǎng)站需要一個(gè)好記的域名方便別人訪問(wèn),畢竟沒(méi)人能記住你的 IP,所以,后期的域名購(gòu)買,HTTPS 配置,Nginx 配置,都可以在網(wǎng)上找到相應(yīng)的答案。
不管再忙都要堅(jiān)持每天保持3個(gè)小時(shí)以上的練習(xí)時(shí)間 。
學(xué)編程就是一個(gè)打怪升級(jí)的過(guò)程,這個(gè)過(guò)程一定是曲折的,但前途一定是光明的。
學(xué)編程就是一個(gè)打怪升級(jí)的過(guò)程,這個(gè)過(guò)程一定是曲折的,但前途一定是光明的。守得云開(kāi)見(jiàn)日明。希望大家堅(jiān)持自己的熱愛(ài)和理想,朝著自己心目中的羅馬前進(jìn)。想要了解更多關(guān)于編程的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。