12個(gè)月,零基礎(chǔ)自學(xué)Python語(yǔ)言心得,分享自學(xué)建議和方法(自學(xué)python入門(mén))
前言
- 網(wǎng)絡(luò)上經(jīng)常有人問(wèn),電腦硬件、網(wǎng)絡(luò)、計(jì)算機(jī)語(yǔ)言自學(xué)真的能學(xué)成功嗎?能的話,那要培訓(xùn)機(jī)構(gòu)干嘛?
- 這里呢,老修以自學(xué)Python語(yǔ)言的經(jīng)驗(yàn)來(lái)分享分享;整個(gè)自學(xué)過(guò)程歷經(jīng)一年;其中經(jīng)歷了由開(kāi)始到放棄,由放棄再到堅(jiān)持的心理歷程,下面我們分上中下三部分,來(lái)分享這些自學(xué)的過(guò)程:
- 第一部分—為什么選擇學(xué)計(jì)算機(jī)語(yǔ)言?選擇什么語(yǔ)言?自學(xué)還是參加培訓(xùn)班?選擇什么樣的自學(xué)教程
- 第二部分—如何找到一種適合自己自學(xué)的方法?英語(yǔ)和數(shù)學(xué)重要嗎?Python能做什么,我要干什么?
- 第三部分—Python自學(xué)的重點(diǎn)、要點(diǎn)、難點(diǎn)有哪些;堅(jiān)持!堅(jiān)持!再堅(jiān)持!
第一部分:關(guān)于選擇
- 你為什么要選擇學(xué)計(jì)算機(jī)語(yǔ)言?是為了高工資?還是為了提升自己?或者只是因?yàn)榕d趣,覺(jué)得高大上而去學(xué)一學(xué)?這些問(wèn)題,在學(xué)之前最好想清楚,搞明白,如果是為了高工資,那可能會(huì)讓你失望,每個(gè)行業(yè)都有他的行業(yè)標(biāo)準(zhǔn),高收入的仍然是少部分;我們沒(méi)有方向的花時(shí)間去做一件事,最終都是半途而廢,唯有不忘初衷,方能始終。我們可以去觀察身邊的人,10個(gè)同學(xué)中有10個(gè)是忘記初衷而中途放棄,難有始終的;自學(xué)要把握好一個(gè)重點(diǎn)和一個(gè)要點(diǎn),重點(diǎn)是“堅(jiān)持”,要點(diǎn)是“方法”。搞明白了,就是給自己堅(jiān)持下去的理由和方向。
- 選擇什么樣的計(jì)算機(jī)語(yǔ)言?Java?Python?還是C語(yǔ)言?我們來(lái)看一下TIOBE編程語(yǔ)言排行榜,它是編程語(yǔ)言流行趨勢(shì)的一個(gè)指標(biāo),每月都會(huì)更新:
來(lái)自官方網(wǎng).2020.3.11
- 這里我們可以看到排世界前五的是:Java、C語(yǔ)言、Python、C 、這五門(mén)語(yǔ)言,那從目前流行趨勢(shì)來(lái)說(shuō),Python最火,原因是人工智能/AI和大數(shù)據(jù)起到了相當(dāng)?shù)淖饔?,同時(shí)也因Python自身有強(qiáng)大的庫(kù),被稱(chēng)為膠水語(yǔ)言,不是沒(méi)有道理的;那從就業(yè)前景來(lái)說(shuō),Java目前比較好找工作,C語(yǔ)言自學(xué)起來(lái)相對(duì)比較困難;所以這里老修給的建議是,根據(jù)你的初衷和實(shí)際情況來(lái)選擇哪門(mén)語(yǔ)言;
- 哪門(mén)語(yǔ)言最好?沒(méi)有最好的計(jì)算機(jī)語(yǔ)言之說(shuō),只有最合適,最適合的語(yǔ)言,如果能從你的工作中去選擇,那是最合適的,用它來(lái)提高工作效率,解決一些問(wèn)題;計(jì)算機(jī)語(yǔ)言是一門(mén)工具,是一種解決問(wèn)題的方式方法,一種思想。這五大語(yǔ)言相對(duì)而言,Python會(huì)比較簡(jiǎn)單些,適合零基礎(chǔ)的人,可以選擇用它入門(mén),然后在學(xué)一門(mén)C語(yǔ)言或者Java,這是我個(gè)人的建議。
- 自學(xué)還是參加培訓(xùn)班?這個(gè)就看自身的自我管理能力和自學(xué)能力,如果自己的自控能力達(dá)到一定程度是完全可以選擇自學(xué)的,如果兩方面一個(gè)因素都不具備,那就需要去選擇培訓(xùn)班了,培訓(xùn)班有很多,根據(jù)自己的實(shí)際情況去選擇,哪一家強(qiáng),哪一家好,這個(gè)嘛?這里就不多介紹。
- 選擇什么樣的自學(xué)教程,這個(gè)看個(gè)人,網(wǎng)絡(luò)上有很多很多零基礎(chǔ)視頻教程,以老修自己為例,是一共購(gòu)買(mǎi)了四家培訓(xùn)機(jī)構(gòu)的零基礎(chǔ)視頻教程,和一本零基礎(chǔ)入門(mén)書(shū)本;書(shū)是能直接產(chǎn)生影像的方法,配合著來(lái)學(xué),剛剛開(kāi)始就聽(tīng)他們四家講變量名的概念,然后選擇了兩家繼續(xù)聽(tīng),后來(lái)選擇了一家完全適合自己風(fēng)格的,每個(gè)老師的方法和特點(diǎn)各不同,所以要找一個(gè)適合自己那個(gè)味道的,沒(méi)有最好,只有最適合,最合適的。
第二部分:關(guān)于方法
以老修的個(gè)人經(jīng)歷總結(jié)出一條可以受眾于大家的人生經(jīng)驗(yàn):選擇是智慧層面,努力是毅力層面,相對(duì)而言智慧層面會(huì)更重要一點(diǎn),當(dāng)然沒(méi)有努力不堅(jiān)持一切也是空談。有了以上的結(jié)論,那方法就顯的是加速作用,我們來(lái)一起看看:
- 掌握方法就掌握了自學(xué)的要點(diǎn)。方法有千萬(wàn)種,那怎么找到一種適合自己的方法呢?怎么判斷這種方法是否適合自己?
學(xué)起來(lái),越來(lái)越有興趣,能時(shí)不時(shí)的想著它,一天不學(xué)就不行,越學(xué)越來(lái)勁,這就算找到了方法,也找到了興趣,它是最好的老師,這樣自己就能堅(jiān)持下去,同時(shí)也就掌握了自學(xué)課程的方法。
- 怎么找方法?以老修的方法為例“把抽象的變形象,把形象變影像,把影像變印象”。
舉個(gè)例子,什么是變量?概念上來(lái)說(shuō),變量就是在內(nèi)存中開(kāi)辟一塊空間,存放一組數(shù)據(jù),通過(guò)一個(gè)名字,以方便我們隨時(shí)調(diào)用這么一組數(shù)據(jù),這個(gè)就叫變量;這個(gè)太抽象了,怎么做?畫(huà)圖,把它用圖像的形式表達(dá)出來(lái),
由抽象把它畫(huà)成圖,這就是抽象變形象的過(guò)程,然后根據(jù)自己畫(huà)的這組圖,再去把它敲出來(lái),這就是形象變影像的過(guò)程,再后面就是多敲,多做練習(xí),自然那個(gè)影像就變印象了。
這就是老修的學(xué)習(xí)方法,我們可以嘗試多種方法,最后總結(jié)出一種自己的理解方式去記憶語(yǔ)言里語(yǔ)句、語(yǔ)法,而不是強(qiáng)行去記憶,那隨著學(xué)習(xí)的深入知識(shí)量會(huì)越來(lái)越大,會(huì)越學(xué)越多,怎么記?記不過(guò)來(lái)的。想要把知識(shí)牢牢地記在腦海里,就要多練習(xí),多敲代碼,形成習(xí)慣性記憶,自然就記住了;
- 大家關(guān)心最多的問(wèn)題就是數(shù)學(xué)和英語(yǔ)在語(yǔ)言中重要嗎?
老修的回答是重要,看我們自己學(xué)的目的是什么。如果想從事這行,作為自己吃飯的一技之長(zhǎng),那它就重要,如果是為了提高工作效率的工具,那它就不那么重要。
先說(shuō)數(shù)學(xué):語(yǔ)言核心就是算法,學(xué)到最后,用到最后,都是數(shù)據(jù),都是算法,數(shù)學(xué)的基礎(chǔ)決定了自己這條IT之路能走多深多長(zhǎng)多廣。以人工智能來(lái)說(shuō),它的核心也是算法。大專(zhuān)以上,本科的數(shù)學(xué)基礎(chǔ)就足已,要會(huì)線性代數(shù)、微積分、代數(shù)、概率統(tǒng)計(jì)學(xué)等等,我們需要了解這些數(shù)學(xué)基礎(chǔ),以便于我們后期語(yǔ)言的學(xué)習(xí)。
再來(lái)英文如果有基礎(chǔ),是相當(dāng)有優(yōu)勢(shì)的,沒(méi)有也沒(méi)有關(guān)系,可以借助工具先學(xué),起碼要看得懂技術(shù)文檔,基礎(chǔ)好的情況下我們看技術(shù)文檔就不會(huì)吃力,對(duì)變量名的命方法,可以做到見(jiàn)名知意,提高代碼的可讀性。
- Python能做什么,我學(xué)Python要干什么?
基本上這門(mén)語(yǔ)言是全方位的,主要用在:AI、人工智能、大數(shù)據(jù)、爬蟲(chóng)、自動(dòng)化測(cè)試、運(yùn)維、WEB前后端開(kāi)發(fā)……我們通過(guò)以下“Python的知識(shí)體系”圖來(lái)看一下它的具體方向,從底層的Python語(yǔ)法基礎(chǔ),應(yīng)該叫Python基礎(chǔ),這里學(xué)完基礎(chǔ)以后,就被分成了細(xì)細(xì)的9大塊,每一塊都能成為一個(gè)專(zhuān)門(mén)的崗位。
Python的知識(shí)體系
- 那怎么樣才算是打完基礎(chǔ)呢?
Python的基礎(chǔ)語(yǔ)法、包和模塊的處理、面向?qū)ο蟆?shù)據(jù)結(jié)構(gòu),學(xué)完這四部分應(yīng)該才算打完基礎(chǔ),特別是這個(gè)“面向?qū)ο蟆?,我們?huì)在第三篇重點(diǎn)介紹它,打完基礎(chǔ)以后,你需要干什么都要規(guī)劃好,因?yàn)楹竺孢€有很多東西要學(xué)。比如:函數(shù)式編程, 網(wǎng)絡(luò)編程,多任務(wù)多線程編程,正則表達(dá)式,MySql數(shù)據(jù)庫(kù),HTML、CSS、JavaScript,DjanGo等等,看你要往那個(gè)方向發(fā)展。
第三部分:關(guān)于堅(jiān)持
老修在從放棄到堅(jiān)持的心理歷程中,不是在學(xué)完基礎(chǔ)以后,而是在打基礎(chǔ)的時(shí)候,太枯燥了,中間放棄了近兩個(gè)月,所以自己要把第一部分所提到的問(wèn)題想清楚,規(guī)劃好,有個(gè)堅(jiān)定的目標(biāo),
自學(xué)的道路是很不容易的,它對(duì)個(gè)人人格方面的培養(yǎng)也起到了一定的作用,因?yàn)椤吧鳘?dú)”之難。當(dāng)下這種時(shí)代,能合理安排出時(shí)間來(lái)自學(xué),實(shí)屬不易,這整個(gè)自學(xué)過(guò)程同時(shí)對(duì)個(gè)人的智慧層面也啟到了一定的修習(xí),同時(shí)也大大鍛煉了我們的毅力,因?yàn)閳?jiān)持是一件相當(dāng)不容易的事。
- 重點(diǎn)在堅(jiān)持,要點(diǎn)在堅(jiān)持,難點(diǎn)也在堅(jiān)持,自學(xué)只要把握住這重要的三遍“事”,基本就沒(méi)有你學(xué)不會(huì),搞不定的事吶!回歸正題,學(xué)Python的重點(diǎn)在哪?在堅(jiān)持,哈哈哈哈!好!不開(kāi)玩笑,重點(diǎn)在“面向?qū)ο蟆?,這里是講什么?
每個(gè)人都有自己不同的見(jiàn)解,以老修自學(xué)到的知識(shí)來(lái)分享:封裝多變化模塊,利用繼承達(dá)到高內(nèi)聚,采用多態(tài)父子類(lèi)讓代碼耦合度低的軟件設(shè)計(jì)思想;這個(gè)面向?qū)ο螅∣OP)軟件設(shè)計(jì)思想就是我們打基礎(chǔ)中重點(diǎn)要學(xué)習(xí)的重點(diǎn)。
那用通俗易懂一點(diǎn)的話來(lái)說(shuō),怎么說(shuō)呢?
那老修在看網(wǎng)頁(yè)時(shí),看到一位網(wǎng)友用蓋澆飯和蛋炒飯來(lái)形容“面向過(guò)程”和“面向?qū)ο蟆?,形容的很是貼切,分享出來(lái)給大家看看:蓋澆飯的好處就是”菜”、“飯”分離,從而提高了制作蓋澆飯的靈活性。飯不滿意就換飯,菜不滿意換菜。
用軟件工程的專(zhuān)業(yè)術(shù)語(yǔ)就是”可維護(hù)性“比較好,”飯” 和”菜”的耦合度比較低。蛋炒飯將”蛋”、“飯”攪和在一起,想換”蛋”、“飯”中任何一種都很困難,耦合度很高,以至于”可維護(hù)性”比較差。軟件工程追求的目標(biāo)之一就是可維護(hù)性,可維護(hù)性主要表現(xiàn)在3個(gè)方面:可理解性、可測(cè)試性和可修改性。面向?qū)ο蟮暮锰幹痪褪秋@著的改善了軟件系統(tǒng)的可維護(hù)性。
- 要點(diǎn)是什么呢?
Python基礎(chǔ)語(yǔ)法中的循環(huán)語(yǔ)法,遍歷和嵌套的使用以及切片。比如:
什么時(shí)候使用for循環(huán),什么時(shí)候選擇while循環(huán),通常是條件不確定的情況下我們使用while,還有它的條件判斷if語(yǔ)句放哪兒。有具體對(duì)象要做判斷時(shí),我們就用for語(yǔ)句。切片這個(gè)語(yǔ)法也是一個(gè)要點(diǎn),在對(duì)一二維表的處理,還有一些核心算法上,我們會(huì)用到它。
以上這些就是需要我們?nèi)ザ嗑毩?xí),多敲代碼,一邊打一邊理解,實(shí)在不懂,就照著打,邊打邊思考,接著自己再試著把它打出來(lái),一遍兩遍又三遍,三遍四遍五六遍,直到自己搞懂了為止;
- 難點(diǎn)對(duì)我們初學(xué)者而言,哪哪都難有沒(méi)有?
老修覺(jué)得這個(gè)難點(diǎn)在于邏輯判斷。就是碰到一個(gè)問(wèn)題,我們要怎么去分析它,怎么把這個(gè)問(wèn)題切成一塊塊的來(lái)現(xiàn)實(shí),在把自己的這個(gè)思維用代碼把它實(shí)現(xiàn),這個(gè)很難。
實(shí)際情況是,就算學(xué)完基礎(chǔ),碰到問(wèn)題,還是一臉茫然無(wú)從下手,所以離真正懂、會(huì)用還很遠(yuǎn)。
我們突然會(huì)發(fā)現(xiàn),這只是入坑的第一步,只是個(gè)開(kāi)始,自己依然,還是什么都不會(huì),堅(jiān)持吧!少年,中年?。?!學(xué)都學(xué)了,時(shí)間也花了這么多了,堅(jiān)持到這步不容易,這是老修到后面的心里對(duì)白,哈哈哈,希望你不是。
結(jié)語(yǔ)
- 堅(jiān)持其實(shí)大家都懂,但除了堅(jiān)持別無(wú)他法。每次堅(jiān)持不下去了,給自己找希望,找成就感,所以選擇、方法,就在堅(jiān)持這條路上起到至關(guān)重要的角色。
- 堅(jiān)持的路往往很孤獨(dú),要學(xué)會(huì)自我欣賞,在我們眼中能夠成功的人,在起初往往能夠忍受普通人無(wú)法忍受的孤獨(dú)。
- 以上就是老修的分享,希望老修的這些分享能給你帶來(lái)一些啟發(fā),沒(méi)有白白浪費(fèi)你花時(shí)間來(lái)讀這千字的心得分享。好,最后祝福那些選擇自學(xué)的小伙伴們,你們是優(yōu)秀的!
- 生活不易,請(qǐng)別放棄,既已選擇,唯有堅(jiān)持,成功有時(shí)是對(duì)自己的交待,無(wú)需他人認(rèn)可~~~~