作者:Jhankar Mahbub 編譯:機器之心 參與:王子嘉,、Geek AI 毫無疑問,,Python 是當下最火的編程語言之一。對于許多未曾涉足計算機編程的領(lǐng)域「小白」來說,,深入地掌握 Python 看似是一件十分困難的事,。其實,只要掌握了科學的學習方法并制定了合理的學習計劃,,Python 從 入門到精通只需要一個月就夠了,! 要知道,一個月是一段很長的時間,。如果每天堅持用 6-7 小時來做一件事,,你會有意想不到的收獲。前提是你要能高強度的學習,,而且堅持下來,!作為初學者,第一個月的月目標應(yīng)該是這樣的:熟悉基本概念(變量,,條件,,列表,,循環(huán),函數(shù)) 練習超過 30 個編程問題 利用這些概念完成兩個項目 熟悉至少 2 個框架 開始使用集成開發(fā)環(huán)境(IDE),,Github,,hosting,services 等 現(xiàn)在,,我們先將月計劃細化成周計劃,。要積極探索 Python 的使用方法,盡可能多的完成下面這些任務(wù):第一天:基本概念(4 小時):print,,變量,,輸入,條件語句 第二天:基本概念(5 小時):列表,,for 循環(huán),,while 循環(huán),函數(shù),,導(dǎo)入模塊 第三天:簡單編程問題(5 小時):交換兩個變量值,,將攝氏度轉(zhuǎn)換為華氏溫度,求數(shù)字中各位數(shù)之和,,判斷某數(shù)是否為素數(shù),,生成隨機數(shù),刪除列表中的重復(fù)項等等 第四天:中級編程問題(6 小時):反轉(zhuǎn)一個字符串(回文檢測),,計算最大公約數(shù),,合并兩個有序數(shù)組,猜數(shù)字游戲,,計算年齡等等 第五天:數(shù)據(jù)結(jié)構(gòu)(6 小時):棧,,隊列,字典,,元組,,樹,鏈表,。 第六天:面向?qū)ο缶幊蹋∣OP)(6 小時):對象,,類,方法和構(gòu)造函數(shù),,面向?qū)ο缶幊讨^承 第七天:算法(6 小時):搜索(線性和二分查找),、排序(冒泡排序,、選擇排序),、遞歸函數(shù)(階乘、斐波那契數(shù)列),、時間復(fù)雜度(線性,、二次和常量) 這看起來很矛盾,但是你一定要相信我,。我有幾個朋友,,他們因為語言工具包和 IDE 安裝的失敗而逐漸失去了學習下去的欲望。因此,,我的建議是先使用一些安卓 app 來探索這門語言,,比如編程英雄(https://play.google.com/store/apps/details?id=com.learnprogramming.codecamp)或者在線代碼游樂場 Repl(https:///)等等。如果你是個技術(shù)小白,,安裝 Python 環(huán)境可不是你的首要任務(wù),。第二周:開始軟件開發(fā)(構(gòu)建項目)接下來,讓我們朝著軟件開發(fā)任務(wù)進軍吧,!不妨嘗試綜合你學到的知識完成一個實際的項目:第一天:熟悉一種 IDE(5 小時): IDE 是你在編寫大型項目時的操作環(huán)境,,所以你需要精通一個 IDE。在軟件開發(fā)的初期,,我建議你在 VS code 中安裝 Python 擴展或使用 Jupyter notebook,。 第二天:Github(6 小時):探索 Github,并創(chuàng)建一個代碼倉庫,。嘗試提交(Commit),、查看變更(Diff)和上推(Push)你的代碼。另外,,還要學習如何利用分支工作,,如何合并(merge)不同分支以及如何在一個項目中創(chuàng)建拉取請求(pull request)。 第三天:第一個項目——簡單計算器(4 小時):熟悉 Tkinter,,創(chuàng)建一個簡單的計算器 第四,、五、六天:個人項目(每天 5 小時):選定一個項目并完成它,。如果你不知道你該做什么,,可以查看下面的清單(https://www./what-some-good pythonprojects -for-an- middle - programmer/answer/jhankar - mahbub2) 第七天:托管項目(5 小時):學習使用服務(wù)器和 hosting 服務(wù)來托管你的項目。創(chuàng)建一個 Heroku 設(shè)置并部署你構(gòu)建的應(yīng)用程序,。 如果僅僅按部就班地學習課堂上或視頻中的內(nèi)容,你無法擁有獨立思考能力,。所以,,你必須把你的知識應(yīng)用到一個項目中。當你努力尋找答案時,,你也在慢慢地學會這些知識,。第三周:讓自己成為一名程序員
第 3 周的目標是熟悉軟件開發(fā)的整體過程。你不需要掌握所有的知識,,但是你應(yīng)該知道一些常識,,因為它們會影響你的日常工作,。第一天:數(shù)據(jù)庫基礎(chǔ)(6 小時):基本 SQL 查詢(創(chuàng)建表、選擇,、Where 查詢,、更新)、SQL 函數(shù)(Avg,、Max,、Count)、關(guān)系數(shù)據(jù)庫(規(guī)范化),、內(nèi)連接,、外連接等 第二天:使用 Python 數(shù)據(jù)庫(5 小時):利用一種數(shù)據(jù)庫框架(SQLite 或 panda),連接到一個數(shù)據(jù)庫,,在多個表中創(chuàng)建并插入數(shù)據(jù),,再從表中讀取數(shù)據(jù)。 第三天:API(5 小時):如何調(diào)用 API,。學習 JSON,、微服務(wù)(micro-service)以及表現(xiàn)層應(yīng)用程序轉(zhuǎn)換應(yīng)用程序接口(Rest API)。 第四天:Numpy(4 小時):熟悉 Numpy(https:///lets-talk-about- Numpy -for- datascies-beginners-b8088722309f)并練習前 30 個 Numpy 習題(https://github.com/rougier/numpy- 100/blob/master/100_numpy_excercises.md) 第五,、六天:作品集網(wǎng)站(一天 5 小時):學習 Django,,使用 Django 構(gòu)建一個作品集網(wǎng)站(https:///get- start-with-django -1/),也要了解一下 Flask 框架,。 第七天:單元測試,、日志、調(diào)試(5 小時):學習單元測試(PyTest),,如何設(shè)置和查看日志,,以及使用斷點調(diào)試。 如果你非?!腐偪瘛?,并且非常專注,你可以在一個月內(nèi)完成這些任務(wù),。你必須做到:把學習 Python 作為你的全職活動,。你需要從早上 8 點開始學習,一直到下午 5 點,。在此期間,,你可以有一個午休時間和茶歇時間(共 1 小時)。 8 點列出你今天要學的東西,,然后花一個小時復(fù)習和練習你昨天學過的東西,。
從 9 點到 12 點:開始學習,并進行少量練習,。在午飯后,,你需要加大練習量,,如果你卡在某個問題上,,可以在網(wǎng)上搜索解決方案,。 嚴格保持每天 4-5 小時的學習時間和 2-3 小時的練習時間(每周最多可以休息一天)。
你的朋友可能會認為你瘋了,。走自己的路,,讓別人去說吧! 如果你有一份全職工作,,或者你是一名學生,,完成這些流程可能需要更長的時間。作為一名全日制學生,,我花了 8 個月的時間來完成這份清單,。現(xiàn)在我是一名高級開發(fā)人員。我妻子在美國一家大銀行工作,。她花了 6 個月才完成本文中提到的任務(wù),。所以,不管花多長時間,,一定要完成它們,。第 4 周的目標是認真思考如何才能被錄用。即使你現(xiàn)在不想找工作,,你也可以在探索這條道路的過程中學到很多東西,。第一天:準備簡歷(5 小時):制作一份一頁的簡歷。把你的技能總結(jié)放在最上面,,必須在寫項目的同時附上 Github 鏈接,。 第二天:作品集網(wǎng)站(6 小時):寫幾個博客,將它們添加到你之前開發(fā)的作品集網(wǎng)站中,。
第三天:LinkedIn 簡介(4 小時):創(chuàng)建一個 LinkedIn 個人簡介,,把簡歷上的所有內(nèi)容都放到 LinkedIn 上。
第四天:面試準備(7 小時):準備一些谷歌常見的面試問題,,練習白皮書中的 10 個面試編程問題,。在 Glassdoor、Careercup 等網(wǎng)站中查看前人遇到的面試問題,。 第五天:社交(~小時):走出房門,,開始參加聚會、招聘會,,與其他開發(fā)人員和招聘人員見面,。 第六天:工作申請(~小時):搜索「Python Job」,查看 LinkedIn Job 和本地求職網(wǎng)站,。選擇 3 個工作崗位并發(fā)送工作申請,。為每個工作定制你的簡歷,。在每個工作要求中找出 2 到 3 件你不知道的事情,并在接下來的 3-4 天里學會它們,。
第七天:在拒絕中學習(~小時):每次你被拒絕的時候,,找出兩件為了獲得這份工作你應(yīng)該知道的事情,然后花 4-5 天 的時間來掌握它們,。這樣,,每次拒絕都會讓你成為更好的開發(fā)人員。 現(xiàn)實情況是,,你永遠不可能百分之百地為工作做好準備,。你所要做的就是精通一兩件事,并且熟悉其它的事情,,最終通過面試,。一旦你開始工作了,你會在工作過程中學到很多,。學習是一個過程,,只要學習就會有挑戰(zhàn)。天道酬勤,,你越努力,,就會成為越優(yōu)秀的開發(fā)人員。如果你能在 28 天內(nèi)完成所有的任務(wù),,那你堪稱天才,。然而,如果你能完成 60-70% 的內(nèi)容,,你就已經(jīng)開始具備成為一名程序員的正確特征了,。堅持學習編程絕非易事,做一個自律而且高效的人其實很不容易,,歡迎留言區(qū)討論,,你能堅持每天寫代碼學編程嗎?
|