如何系統(tǒng)地自學(xué)Python編程?這是我看到過回答最好的文章)
從零基礎(chǔ)出發(fā), 要怎樣系統(tǒng)去自學(xué)編程, 最近, 柏汌的一個粉絲, 向我發(fā)私信問了這么個問題, 對此, 我進行了思考之后, 予以謹(jǐn)慎答復(fù), 然而, 感覺好多東西, 依舊沒能說明白, 相信, 其他朋友, 同樣會有這般困惑, 所以, 今日就認(rèn)認(rèn)真真跟大家聊聊這個問題。絕大多數(shù)從零基礎(chǔ)轉(zhuǎn)行而來的人, 學(xué)習(xí)編程的目的, 便是想尋得一份薪水高且具備良好發(fā)展前景的工作, 哪種編程語言在就業(yè)方面前景好就越值得去學(xué)習(xí)。對於零基礎(chǔ)的同學(xué)而言, 學(xué)習(xí)這個是一個不錯的選擇。初學(xué)者零基礎(chǔ)時, 最迷茫之處在于不知如何開啟學(xué)習(xí), 建議借助視頻與書籍的方式來學(xué)習(xí)。通過看視頻學(xué)習(xí), 能夠迅速掌握編程基礎(chǔ)語法, 邊看視頻邊敲代碼, 可快速入門并熟練語法。看書學(xué)習(xí)不必整本書通讀, 把書放在手邊, 遇到不懂的地方, 可當(dāng)作工具書使用。柏汌今日分享一下學(xué)習(xí)路線:系統(tǒng)地自學(xué)分為以下五個階段一、基礎(chǔ)階段具備掌握腳本的能力, 擁有界面編程的能力, 熟悉數(shù)據(jù)庫, 掌握基本爬蟲, 具備多線程多進程開發(fā)能力, 如此便可以勝任基本的開發(fā)工作。知識點:1.儲存數(shù)據(jù), 包含概述, 可以進行進制以及關(guān)于進制的轉(zhuǎn)換, 存在原碼、反碼和補碼, 有第一個程序, 還涉及終讀取與打印等。2.標(biāo)識符與關(guān)鍵字、算術(shù)運算符、數(shù)據(jù)類型、賦值運算符、運算符、復(fù)合運算符、條件控制語句if…else…、邏輯運算符等, 這些都和運算符與表達(dá)式相關(guān)。3.循環(huán) , 存在循環(huán)語句之while , 存在循環(huán)語句之for , 存在break與語句等。4.基礎(chǔ)數(shù)據(jù)結(jié)構(gòu), 涉及數(shù)學(xué)函數(shù)操作包括查找, 替換, 下標(biāo)索引, 列表常用, 元組, 字典常用, set集合, 迭代器與生成器常用, 還有函數(shù)概述等。5.有函數(shù), 函數(shù)存在調(diào)用情況, 存在簡單函數(shù)的定義情形, 有函數(shù)的返回值這一情況, 有傳遞參數(shù)的情況, 有關(guān)鍵字參數(shù)的情況, 有默認(rèn)參數(shù)的情況, 有不定長參數(shù)的情況, 有匿名函數(shù)的情況, 有裝飾器的情況, 有偏函數(shù)的情況, 有回調(diào)函數(shù)的情況, 有變量的作用域的情況, 并且存在遞歸函數(shù), 有目錄遍歷的情況, 有遞歸遍歷目錄的情況, 有棧模擬遞歸遍歷目錄這種采用深度遍歷的情況, 有隊列模擬遞歸遍歷目錄這種采用廣度遍歷的情況等。6.模塊, 模塊概述, 使用標(biāo)準(zhǔn)庫里的模塊, 使用自定義模塊, name屬性包的概述, 安裝第三方模塊, 與時間相關(guān)模塊。7.關(guān)注對象編程, 聚焦面向?qū)ο笏枷? 涉及類與對象, 關(guān)乎類的方法與屬性, 關(guān)聯(lián)構(gòu)造函數(shù)與析構(gòu)函數(shù), 包含self的運用, 有關(guān)重寫__ 與函數(shù), 存在訪問限制等。8.擁有繼承, 被進行封裝, 存在多態(tài) , 有著單繼承的實現(xiàn), 還存在多繼承的實現(xiàn), 同時可有函數(shù)重寫 , 包含人開槍射擊子彈的小小的案例, 具備多態(tài) , 存在對象屬性與類屬性 , 擁有類方法與靜態(tài)方法等等。9.涵蓋面向?qū)ο蟾唠A范疇, 包含動態(tài)添加屬性方式, 包含運算符重載, 包含發(fā)郵件行為, 包含發(fā)短信行為等。10.文件的管理操作, 與之對應(yīng)有以逗號隔開的文件讀寫操作, 其中包括csv、txt等文件類型的讀寫操作, 此外還涉及異常處理, 以及將這些都?xì)w納為文件操作與異常處理之中。11.高階函數(shù)與測試調(diào)試(打印、斷言、、pdb)12.擺列組合跟正則表述: 解開密碼擺列、組合、擺列組合、正則表述等。13.簡述TCP及IP網(wǎng)絡(luò)編程, 包含TCP編程, 還有UDP編程等。二、Linux和數(shù)據(jù)庫階段掌控Linux操作系統(tǒng)管理方面的技術(shù), 能夠搭建差不多所有的Linux環(huán)境下的服務(wù)器。要點是:1.名為Linux的操作系統(tǒng)哦: 被歸為常見操作系統(tǒng)范疇, 有著操作系統(tǒng)自身的發(fā)展的歷程過往, 在系統(tǒng)的運用使用途徑方面有不少門道, 存在Linux版本的相關(guān)情況, 其有著Linux應(yīng)用的諸多領(lǐng)域, 有關(guān)于虛擬機與之的安裝事宜, 涉及Linux版本和16.04之間關(guān)系聯(lián)系, 要去開展配置屬于自己的Linux系統(tǒng)的操作, 有編程IDE的安裝這一事項, 還有通過apt-get去安裝軟件包的行為。2.掌管文件系統(tǒng)以及用戶, 其中涵蓋目錄的訪問, 還有文件與目錄的管理, 再者是文件的權(quán)限, 另外還有用戶管理。3.文本操作命令文本命令、文本編輯器Vi/Vim。4.以下分開來說, 涉及到網(wǎng)絡(luò)命令, 還有進程管理, 以及服務(wù)配置, 其中網(wǎng)絡(luò)管理命令, 然后是系統(tǒng)所屬的目錄, 有著比較重要的系統(tǒng)各類的文件, 還要進行設(shè)置開機啟動, 以及登陸啟動這些操作, 再者是IP怎么去配置, 服務(wù)啟動和停止的相關(guān)操作, 最后是防火墻配置。5.與bash、源文件進行編譯的Shell編程, 包含基礎(chǔ)IO操作, 還有流程控制, 以及定義變量與環(huán)境變量, 另外有腳本傳參, 再有定時任務(wù), 再加上定時系統(tǒng)操作。6.版本控制, 要考慮Git的安裝且配置, 還要關(guān)注其注冊以及使用, 另外還有Clone以及Fork, 涉及Git那些常用命令, 還有標(biāo)簽相關(guān)內(nèi)容, 還有分支和源, 乃至多人協(xié)作開發(fā)流程。7.使用MySQL基礎(chǔ), 是MySQL的安裝, 是MySQL的簡介, 是MySQL基本用作指令本子, 是MySQL與之的相互交流。8.的基本使用安裝、的基本操作。9.基本用于Redis方面展現(xiàn)出: 對Redis實施安裝, 進行Redis的基本操作, 明晰Redis的數(shù)據(jù)類型, 把握Redis的備份以及恢復(fù)。三、 web開發(fā)掌握后端框架解決前后端Web開發(fā)問題知識點1.CS與BS, MTV和MVC, 請求的流程, Admin的管理。2.開放關(guān)系映射、模型的字段所具有的屬性、創(chuàng)建讀取更新刪除操作、匯總合計函數(shù), 字段表達(dá)式對象, 查詢表達(dá)式對象。3.模型對應(yīng)關(guān)系、模板加載、靜態(tài)資源、模板語法。4.Views: 路由規(guī)則, 反向解析, 請求與響應(yīng), 會話技術(shù), token, ses-sion, 文件上傳。5.驗證代碼、分頁工具、類似視圖、中間軟件、記錄日志、進行緩存、發(fā)送信號、用戶具備的權(quán)限、用戶所扮演的角色。6.以REST概念為基礎(chǔ), 涉及數(shù)據(jù)序列化, 包含請求與響應(yīng), 還有視圖, 以及轉(zhuǎn)換器, 存在關(guān)系, 有超鏈接, 涵蓋認(rèn)證和權(quán)限。四、爬蟲階段掌握分布式多線程大型爬蟲技術(shù)能開發(fā)企業(yè)級爬蟲程序。1.多線程的原理包含這些方面, 同步與之相對的異步之分, 串聯(lián)以及與之不同的并發(fā)情況, 線程這一概念, 開辟出一個線程的行為, 線程安全和用于保障它的線程鎖, 還有多線程隊列。2.協(xié)程線程的局限、協(xié)程的定義與原理、協(xié)程的實現(xiàn)。3.爬蟲這一概念以及與之相關(guān)的工具范疇囊括, 爬蟲的相關(guān)作用和其所起到的效果, 對 HTTP 協(xié)議蘊含的原理, 介紹若干工具其安裝措施, 闡述這些爬蟲工具的使用方式。4. 有關(guān)http libs的運用情況, 示例庫的相關(guān)運用, bs4庫用的情形, xpath語法。5.實戰(zhàn)爬蟲: 編寫構(gòu)成一個簡易爬蟲, 將此爬蟲改造成為多線程版本, 借助 redis 將多線程版本的爬蟲進行分布式改造。6.框架: 進行安裝, 開展創(chuàng)建項目的行為, 執(zhí)行創(chuàng)建文件的操作, 著手編寫parse方法, 設(shè)置子命令, 去運行爬蟲程序, 通過命令行傳遞參數(shù), 對二級頁面做進一步解析, 在parse方法之前傳遞參數(shù), 導(dǎo)出json格式的數(shù)據(jù), 導(dǎo)出Csv格式的數(shù)據(jù), 對爬蟲的狀態(tài)予以保存, 定義item, 使用item, 使用其將items存儲至MySQ, 構(gòu)建整體架構(gòu), 使用方法去實現(xiàn)IP代理池, 使用插件, 連接-redis。7.量化交易自動化交易理論、量化交易框架。五、機器學(xué)習(xí)階段掌握數(shù)據(jù)挖掘分析入門人工智能。知識點1.入門軟件安裝、入門、numpy學(xué)習(xí)。2.存在入門情況, 且出現(xiàn)了數(shù)據(jù)丟失現(xiàn)象, 同時涉及索引, 還有數(shù)據(jù)處理, 是基于人臉識別技術(shù)的。3.scipyscipy學(xué)習(xí)4.數(shù)據(jù)可視化所涉及到的概念, 可視化圖表怎樣去繪制, 關(guān)于動畫以及交互渲染方面, 數(shù)據(jù)如何進行合并與分組。5.KNN臨近算法、預(yù)處理、KNN相關(guān)函數(shù)。6.線性回歸與邏輯斯蒂回歸線性回歸、邏輯斯蒂回歸。7.決策樹與貝葉斯貝葉斯學(xué)習(xí)、決策樹學(xué)習(xí)。8.SVM與K均值聚類SVC學(xué)習(xí)9. 學(xué)習(xí)10.機器學(xué)習(xí)框架, 它是對機器學(xué)習(xí)的描述, 它是對權(quán)重分配與優(yōu)選方案的描述, 它是對深度學(xué)習(xí)的描述, 它是對自動化神經(jīng)網(wǎng)絡(luò)的描述, 它是對AI網(wǎng)絡(luò)的描述。11.自然語言實施處理關(guān)聯(lián)社交網(wǎng)絡(luò)處理, 其中涵蓋文本數(shù)據(jù)的處理、專門針對自然語言的處理以及關(guān)于NLTK的探究, 還有主題模型的研究、LDA的相關(guān)內(nèi)容、圖論的初步介紹、網(wǎng)絡(luò)的具體操作以及數(shù)據(jù)借助可視化呈現(xiàn)。國外的使用比率極其高, 然而在國內(nèi)卻是最近幾年才開始火爆起來, 正處在一個飛速前行的上升階段市場針對開發(fā)方面人才的需求數(shù)量猛然增多, 學(xué)習(xí)的未來前景相對較好。