<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python初學(xué)者的自我修養(yǎng),找到自己的方向

          共 4579字,需瀏覽 10分鐘

           ·

          2020-09-23 11:52


          早起導(dǎo)讀

          經(jīng)常會(huì)有讀者讀者在后臺(tái)問(wèn)我,學(xué)習(xí)Python有哪些適合新手入門(mén)的小項(xiàng)目推薦,所以今天這篇文章咱們來(lái)聊聊這個(gè)問(wèn)題。對(duì)于我來(lái)說(shuō)Python的應(yīng)用場(chǎng)景主要是機(jī)器學(xué)習(xí)、深度學(xué)習(xí)相關(guān),對(duì)于其他的場(chǎng)景涉獵不多。因此本文的目的并不是列舉出一系列小項(xiàng)目給你們練手,而是希望引導(dǎo)大家思考這個(gè)問(wèn)題,從而找到適合自己的練習(xí)項(xiàng)目。

          ? Python的誤區(qū)


          不知道各位初學(xué)者如何看待Python這一門(mén)語(yǔ)言,又是如何看待程序員的技能,根據(jù)我的理解, 這當(dāng)中可能存在一些誤解。其實(shí)不論哪一門(mén)語(yǔ)言的應(yīng)用場(chǎng)景可能都不只是一個(gè)方向,往往是多個(gè)方向,尤其是Python這種比較成熟并且廣受歡迎的語(yǔ)言,它在許多領(lǐng)域都有很高的建樹(shù),這就導(dǎo)致了Python可以做的事情非常多,相應(yīng)的要學(xué)習(xí)的東西也就非常多。

          也許在新手看來(lái)一個(gè)比較厲害的Python使用者,應(yīng)該是所有技術(shù)通殺的,對(duì)于Python的方方面面都非常了解。然而很遺憾,這是非常困難或者說(shuō)幾乎是不可能的。困難的原因也是很簡(jiǎn)單的,因?yàn)槿说木κ怯邢薜模胍谝粋€(gè)領(lǐng)域做到優(yōu)秀就已經(jīng)非常不容易,需要學(xué)習(xí)大量技術(shù)和知識(shí)了,更何況掌握所有方向。所以大家對(duì)于這樣一個(gè)問(wèn)題,應(yīng)該有一個(gè)清晰的答案,對(duì)于Python這樣一門(mén)語(yǔ)言,你們學(xué)習(xí)它的目的究竟是什么?

          也許你有很多個(gè)答案,但是很遺憾,對(duì)于你未來(lái)職業(yè)發(fā)展來(lái)說(shuō),你可能只能選擇其中一個(gè)

          ? 方向選擇


          如果你玩過(guò)暗黑破壞神、魔獸世界或者是類似的RPG游戲的話,那么你對(duì)于選擇職業(yè)這個(gè)問(wèn)題應(yīng)該非常了解。在我們剛進(jìn)入游戲或者是進(jìn)入游戲不久,我們就需要面臨一次職業(yè)選擇,職業(yè)一旦選擇往往不可更改,你就需要在這個(gè)職業(yè)一直玩下去,如果想要換職業(yè)只有從頭開(kāi)始,重新玩一個(gè)新的號(hào)。

          在職場(chǎng)當(dāng)中和游戲是非常類似的,我們最終也需要選擇我們的職業(yè),并且我們只能選擇一個(gè)崗位,輕易也是不能更改的。如果要更改,需要從頭開(kāi)始,之前累積的經(jīng)驗(yàn)會(huì)全部清零。因?yàn)椴煌瑣徫粚?duì)于能力的要求是完全不同的,所以對(duì)于初學(xué)者而言,其實(shí)也會(huì)面臨這么一個(gè)選擇,只不過(guò)這個(gè)選擇是隱形的,當(dāng)你選擇崗位進(jìn)行投遞簡(jiǎn)歷的時(shí)候,這個(gè)選擇就潛移默化的發(fā)生了。

          Python常用的基礎(chǔ)語(yǔ)法并不多,在我們之前的文章當(dāng)中幾乎涵蓋了大半。當(dāng)我們完成了這部分學(xué)習(xí)之后,單單學(xué)習(xí)語(yǔ)法已經(jīng)沒(méi)有出路了。再接下來(lái)進(jìn)階就必須要學(xué)習(xí)一些應(yīng)用上的內(nèi)容,也就是要面臨一個(gè)技術(shù)選型了。

          對(duì)于Python而言,一般常見(jiàn)的方向有這么幾種:web開(kāi)發(fā)、機(jī)器學(xué)習(xí)、網(wǎng)絡(luò)爬蟲(chóng)、運(yùn)維、游戲開(kāi)發(fā)

          下面我簡(jiǎn)單介紹一下這幾個(gè)方向,大家可以對(duì)照一下自己的興趣,選擇一個(gè)自己感興趣或者是比較適合的。

          ? Web開(kāi)發(fā)


          Web開(kāi)發(fā)應(yīng)該是當(dāng)下最普遍的程序員的工作崗位了,Python在web上的應(yīng)用主要是web的后端開(kāi)發(fā),也就是負(fù)責(zé)服務(wù)器邏輯處理這個(gè)部分。

          我們都知道在后端這個(gè)領(lǐng)域目前國(guó)內(nèi)最吃香的語(yǔ)言應(yīng)該是Java,幾乎大半的公司都是使用Java作為后端語(yǔ)言。Java之后的其他幾門(mén)語(yǔ)言我也難分伯仲,簡(jiǎn)單列舉一下有新興的Go,有古老的PHP,當(dāng)然還有Python,還有已經(jīng)幾乎絕跡的C++和C#。Python在這個(gè)領(lǐng)域當(dāng)中應(yīng)該只能算是不算特別小眾,總體來(lái)說(shuō)還是偏小眾的

          小眾的原因和Python本身的特性有關(guān),因?yàn)镻ython是解釋型語(yǔ)言,而不是編譯型語(yǔ)言。所以和Java、Go這種編譯型語(yǔ)言相比,在性能上天然就要劣勢(shì)。并且由于Python全局鎖的限制,導(dǎo)致了Python多線程在計(jì)算密集型的并發(fā)場(chǎng)景當(dāng)中表現(xiàn)非常糟糕,所以很少有大公司會(huì)使用Python作為后端主力語(yǔ)言。據(jù)我了解國(guó)內(nèi)知名一些的應(yīng)該只有豆瓣、知乎,國(guó)外的有YouTube,但據(jù)說(shuō)有些已經(jīng)遷移到其他語(yǔ)言了,有的已經(jīng)有相應(yīng)的遷移計(jì)劃了。

          Python在后端的主要優(yōu)勢(shì)在于敏捷,也就是開(kāi)發(fā)效率比較高。Python的Django、Falsk等框架還是非常完善以及好用的,我們可以很快地從零開(kāi)始搭建出一個(gè)像樣的后端來(lái),并且迭代的速度也很快。所以對(duì)于一些需要小步快跑對(duì)于性能要求不高的小公司,可能會(huì)選擇Python,也就是大公司幾乎不會(huì)選擇Python作為Web后端的開(kāi)發(fā)語(yǔ)言,技術(shù)棧也必然完全不同。

          如果你需要選擇這個(gè)方向,那么你除了要學(xué)習(xí)Python后端開(kāi)發(fā)的相關(guān)知識(shí),比如Django、Flask等框架之外,對(duì)于計(jì)算機(jī)網(wǎng)絡(luò)以及前端也需要一定的了解,這些也是后端工程師的必修課。

          總體來(lái)說(shuō),Python后端這個(gè)發(fā)展方向相對(duì)比較平坦,后期發(fā)力的難度比較大,天花板比較低。學(xué)習(xí)難度和Java后端相比可能要稍微簡(jiǎn)單一些,就業(yè)壓力應(yīng)該也還好,相關(guān)的崗位雖然不太多但也不會(huì)太少。

          如果要選擇這個(gè)領(lǐng)域的話,可以選擇一些比較常規(guī)的項(xiàng)目作為入門(mén)的項(xiàng)目。比如搭建一個(gè)個(gè)人博客,或者是XX管理系統(tǒng),等這些熟練了之后就可以學(xué)習(xí)更多其他的工具庫(kù)了,比如數(shù)據(jù)庫(kù)ORM框架、kafka、redis等這些常用的中間件。把這些內(nèi)容再結(jié)合到web當(dāng)中,創(chuàng)建出新的項(xiàng)目。等這一塊也差不多了,接下來(lái)就可以研究研究架構(gòu)設(shè)計(jì)、設(shè)計(jì)模式等等進(jìn)階的內(nèi)容了。

          ? 機(jī)器學(xué)習(xí)


          個(gè)領(lǐng)域我相對(duì)比較了解一些,對(duì)于機(jī)器學(xué)習(xí)來(lái)說(shuō),Python目前是妥妥的主力語(yǔ)言早年還能看到一些使用R來(lái)做機(jī)器學(xué)習(xí)的工程師,目前已經(jīng)幾乎看不到了,幾乎是清一色的Python。但是老實(shí)說(shuō)機(jī)器學(xué)習(xí)當(dāng)中Python只是起到膠水語(yǔ)言的作用,幾乎所有核心的實(shí)現(xiàn)邏輯都不是Python支撐的。

          在機(jī)器學(xué)習(xí)當(dāng)中對(duì)于Python原生的內(nèi)容要求非常普通,只需要會(huì)基本的語(yǔ)法,了解迭代器、生成器幾乎就足夠了。因?yàn)榇蟛糠謨?nèi)容都是通過(guò)框架或者是工具來(lái)實(shí)現(xiàn)的,Python只是把這些邏輯粘合到一起而已。這個(gè)方向的從業(yè)者的技能點(diǎn)在Python上的非常少,大部分都在機(jī)器學(xué)習(xí)的相關(guān)理論、一些庫(kù)工具的使用、深度學(xué)習(xí)框架的使用、數(shù)據(jù)處理方面的經(jīng)驗(yàn)。

          并且機(jī)器學(xué)習(xí)本身就是一個(gè)比較大的領(lǐng)域,它也有很多方面的應(yīng)用。比如搜索、廣告、推薦這些傳統(tǒng)的應(yīng)用場(chǎng)景,以及CV(計(jì)算機(jī)視覺(jué))、NLP(自然語(yǔ)言處理)、風(fēng)控等等比較新一些的領(lǐng)域。所以選擇了機(jī)器學(xué)習(xí)這個(gè)大方向,并且完成了基礎(chǔ)知識(shí)的學(xué)習(xí)之后,還是要再面臨一次選擇的,因?yàn)檫€需要選擇進(jìn)一步細(xì)分的小方向。根據(jù)我個(gè)人的經(jīng)驗(yàn)來(lái)說(shuō)它們的發(fā)展前景是推薦、搜索、廣告 > NLP > CV > 風(fēng)控,這只是我個(gè)人的判斷,僅供大家參考。

          機(jī)器學(xué)習(xí)這個(gè)方向整體來(lái)說(shuō)前景是非常不錯(cuò)的,目前幾乎大中小型的公司都有機(jī)器學(xué)習(xí)或者是深度學(xué)習(xí)的崗位。雖然崗位多,但是競(jìng)爭(zhēng)并不低,因?yàn)橄胍窟M(jìn)來(lái)的人實(shí)在是太多了。尤其是這兩年AI火熱,大量的人想要擠進(jìn)這個(gè)行業(yè)中來(lái),所以招聘門(mén)檻還是不低的。

          如果你想要選擇這個(gè)方向的話,只需要基本的Python語(yǔ)法即可,但是需要對(duì)機(jī)器學(xué)習(xí)這個(gè)領(lǐng)域有著比較深入的學(xué)習(xí)。比如機(jī)器學(xué)習(xí)的核心概念、常用的一些模型、數(shù)據(jù)處理的一些方法、模型效果的評(píng)估標(biāo)準(zhǔn)等等。等對(duì)機(jī)器學(xué)習(xí)的理解足夠了,就可以找kaggle、天池大數(shù)據(jù)等一些比賽來(lái)實(shí)戰(zhàn)一下。

          ? Python爬蟲(chóng)


          爬蟲(chóng)這個(gè)方向大家也不陌生,很多人應(yīng)該看過(guò)一些相關(guān)的負(fù)面新聞,比如竊取用戶隱私或者是竊取了某某公司的數(shù)據(jù)等等。實(shí)際上爬蟲(chóng)的本質(zhì)是利用程序模擬人工對(duì)網(wǎng)頁(yè)進(jìn)行訪問(wèn),從而將網(wǎng)頁(yè)當(dāng)中相關(guān)有價(jià)值的信息存儲(chǔ)下來(lái)

          Python由于語(yǔ)法簡(jiǎn)單,并且網(wǎng)絡(luò)相關(guān)的工具庫(kù)非常完善,而且不需要經(jīng)過(guò)編譯就可以直接運(yùn)行。更重要的一點(diǎn)是Python的全局鎖在網(wǎng)絡(luò)請(qǐng)求這種IO密集型的場(chǎng)景當(dāng)中非常合適,并不會(huì)影響效率。而且Python可以很方便的整合其他語(yǔ)言的功能以及特性,使得Python做爬蟲(chóng)非常合適,以至于市面上大部分的爬蟲(chóng)工程師都是以Python為語(yǔ)言開(kāi)發(fā)的。并且現(xiàn)在也衍生了許多分布式爬蟲(chóng)的框架和工具。

          由于大家都使用爬蟲(chóng),而一些大公司不愿意自己的相關(guān)信息被競(jìng)爭(zhēng)對(duì)手獲取了去。舉個(gè)例子,假設(shè)某東把淘寶所有的商品信息都爬取了下來(lái),然后針對(duì)性的降價(jià)來(lái)強(qiáng)行吸引用戶,那么顯然對(duì)于淘寶是一個(gè)打擊。為了防止類似以及其他不利于公司的情況出現(xiàn),這些大公司都會(huì)設(shè)置一些反爬蟲(chóng)的機(jī)制。比如在請(qǐng)求來(lái)臨時(shí)會(huì)判斷是否是機(jī)器人,或者是會(huì)限制一個(gè)ip最多訪問(wèn)的商品數(shù)量等等。

          既然有反爬機(jī)制,那么自然也有破除反爬機(jī)制的機(jī)制。所以公司里真正爬蟲(chóng)工程師往往的日常工作就是和一些大公司的反爬工程師斗智斗勇。你設(shè)置了這個(gè)反爬機(jī)制,我就想一個(gè)辦法來(lái)破除。明天你發(fā)現(xiàn)了我的方法做了修補(bǔ),我再繼續(xù)想辦法……并且在編寫(xiě)爬蟲(chóng)之前,需要做大量網(wǎng)頁(yè)的分析,找到網(wǎng)頁(yè)或者是應(yīng)用中數(shù)據(jù)的源頭api。有些公司會(huì)把a(bǔ)pi隱藏起來(lái),或者是需要一定的校驗(yàn)才能訪問(wèn),那么就需要設(shè)置一些方法針對(duì)性的破除之后才能使用爬蟲(chóng)。

          有些人不喜歡這種斗智斗勇很多,開(kāi)發(fā)時(shí)間很少的工作,而有些人就樂(lè)此不疲,大家可以對(duì)照一下自身的情況做一個(gè)選擇。如果想要選擇這個(gè)方向的話,可以從一些公開(kāi)的沒(méi)有設(shè)置反爬機(jī)制的數(shù)據(jù)開(kāi)始,學(xué)習(xí)一些目前比較先進(jìn)的爬蟲(chóng)框架,之后再一步步提升難度,去試著破除大公司的反爬機(jī)制,成為一個(gè)優(yōu)秀的爬蟲(chóng)工程師。

          ? 運(yùn)維和游戲開(kāi)發(fā)


          老實(shí)講這兩個(gè)領(lǐng)域我的了解實(shí)在是不多,所以硬著頭皮簡(jiǎn)單說(shuō)說(shuō),水平有限,如果有錯(cuò)誤還請(qǐng)大家海涵。

          運(yùn)維在我們都知道就是負(fù)責(zé)維護(hù)機(jī)房機(jī)器環(huán)境、項(xiàng)目發(fā)布上線等工作的,由于現(xiàn)在公司用到的機(jī)器的數(shù)量越來(lái)越多,整個(gè)發(fā)布以及維護(hù)的流程也就越來(lái)越麻煩。之前極其少的時(shí)候還可以人工一臺(tái)一臺(tái)搞定,現(xiàn)在機(jī)器多了還使用人工來(lái)干顯然就不現(xiàn)實(shí)了。為了解決這個(gè)問(wèn)題,所以現(xiàn)在先進(jìn)的運(yùn)維會(huì)使用Python編寫(xiě)腳本,來(lái)批量操作機(jī)器安裝環(huán)境或者是發(fā)布項(xiàng)目等等。

          說(shuō)白了其實(shí)也是把Python當(dāng)成是腳本語(yǔ)言這樣的工具來(lái)使用,核心的能力其實(shí)還是偏在Linux命令、操作系統(tǒng)、分布式集群這一個(gè)部分。對(duì)于運(yùn)維這個(gè)領(lǐng)域,我個(gè)人感覺(jué)和機(jī)器學(xué)習(xí)差不多,Python只是純工具,大家想要入門(mén)項(xiàng)目的話,可能還是要以運(yùn)維相關(guān)的技能為主,使用Python來(lái)作為工具輔助。

          游戲開(kāi)發(fā)我稍稍了解一點(diǎn),之前用Python做過(guò)一些簡(jiǎn)單的小游戲。Python當(dāng)中的pygame非常好用,編寫(xiě)小游戲非常合適。并且Python也可以接入U(xiǎn)nity,github里能搜到不少使用Python做出來(lái)的游戲。但是有沒(méi)有游戲公司招聘Python程序員來(lái)進(jìn)行游戲開(kāi)發(fā)我就不清楚了,畢竟不是做這個(gè)行業(yè)的,但至少大家做一些小游戲來(lái)自?shī)首詷?lè)肯定還是沒(méi)問(wèn)題的。如果要練手的話可以考慮做一個(gè)2048,doodle jump這些比較簡(jiǎn)單的小游戲。

          ? 小結(jié)


          如果只是尋找Python的新手入門(mén)項(xiàng)目,網(wǎng)上隨便搜索一下出來(lái)的結(jié)果是非常多的。但是這并沒(méi)有太多的意義,因?yàn)?/span>這些項(xiàng)目并不一定適合每一個(gè)人而在明確自己想要從事的方向之前,合適與不合適也無(wú)從談起,所以希望大家都可以先明確自己的方向,之后再找到對(duì)應(yīng)的進(jìn)階道路則要容易得多。所以如果你之前只是想要學(xué)好Python這門(mén)語(yǔ)言,但是又沒(méi)有考慮過(guò)方向相關(guān)的話,我建議你可以思考一下這方面的問(wèn)題。

          今天的文章到這里就結(jié)束了,如果喜歡本文的話,請(qǐng)來(lái)一波三連吧!


          -END-


          瀏覽 67
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美色婷| 视频在线观看一区 | 狠狠操人人操 | 狠狠狠操 | 苍井空一二三 |