29天入门与精通Python(附Python进阶学习资源)

原创 码农  2019-12-14 10:08:08  阅读 160 次 评论 0 条
在过去的几年中,Python已经成为现代软件开发,基础设施管理领域的一个热门话题,特别是在数据科学和人工智能领域。最近,Python已经上升到TIOBE语言流行度指数的第四名。毫无疑问,Python 是当下最火的编程语言之一。对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事。其实,只要掌握了科学的学习方法并制定了合理的学习计划,Python 从 入门到精通只需要一个月就够了!


29天入门与精通Python(附Python进阶学习资源) 编程代码 第1张


要知道,一个月是一段很长的时间。如果每天坚持用 6-7 小时来做一件事,你会有意想不到的收获。


作为初学者,第一个月的月目标应该是这样的:


  • 熟悉基本概念(变量,条件,列表,循环,函数)

  • 练习超过 30 个编程问题

  • 利用这些概念完成两个项目

  • 熟悉至少 2 个框架

  • 开始使用集成开发环境(IDE),Github,hosting,services 等


整体计划


现在,我们先将月计划细化成周计划。

29天入门与精通Python(附Python进阶学习资源) 编程代码 第2张


第一周:熟悉 Python


要积极探索 Python 的使用方法,尽可能多的完成下面这些任务:


  • 第一天:基本概念(4 小时):print,变量,输入,条件语句

  • 第二天:基本概念(5 小时):列表,for 循环,while 循环,函数,导入模块

  • 第三天:简单编程问题(5 小时):交换两个变量值,将摄氏度转换为华氏温度,求数字中各位数之和,判断某数是否为素数,生成随机数,删除列表中的重复项等等

  • 第四天:中级编程问题(6 小时):反转一个字符串(回文检测),计算最大公约数,合并两个有序数组,猜数字游戏,计算年龄等等

  • 第五天:数据结构(6 小时):栈,队列,字典,元组,树,链表。

  • 第六天:面向对象编程(OOP)(6 小时):对象,类,方法和构造函数,面向对象编程之继承

  • 第七天:算法(6 小时):搜索(线性和二分查找)、排序(冒泡排序、选择排序)、递归函数(阶乘、斐波那契数列)、时间复杂度(线性、二次和常量)


别急着安装 Python 环境!

这看起来很矛盾,但是你一定要相信我。我有几个朋友,他们因为语言工具包和 IDE 安装的失败而逐渐失去了学习下去的欲望。因此,我的建议是先使用一些安卓 app 来探索这门语言,比如编程英雄(https://play.google.com/store/apps/details?id=com.learnprogramming.codecamp)或者在线代码游乐场 Repl(https://repl.it/)等等。如果你是个技术小白,安装 Python 环境可不是你的首要任务。


第二周:开始软件开发(构建项目)


接下来,让我们朝着软件开发任务进军吧!不妨尝试综合你学到的知识完成一个实际的项目:


  • 第一天:熟悉一种 IDE(5 小时): IDE 是你在编写大型项目时的操作环境,所以你需要精通一个 IDE。在软件开发的初期,我建议你在 VS code 中安装 Python 扩展或使用 Jupyter notebook。

  • 第二天:Github(6 小时):探索 Github,并创建一个代码仓库。尝试提交(Commit)、查看变更(Diff)和上推(Push)你的代码。另外,还要学习如何利用分支工作,如何合并(merge)不同分支以及如何在一个项目中创建拉取请求(pull request)。

  • 第三天:第一个项目——简单计算器(4 小时):熟悉 Tkinter,创建一个简单的计算器

  • 第四、五、六天:个人项目(每天 5 小时):选定一个项目并完成它。如果你不知道你该做什么,可以查看下面的清单(https://www.quora.com/what-some-good pythonprojects -for-an- middle - programmer/answer/jhankar - mahbub2)

  • 第七天:托管项目(5 小时):学习使用服务器和 hosting 服务来托管你的项目。创建一个 Heroku 设置并部署你构建的应用程序。


为什么要写项目?


如果仅仅按部就班地学习课堂上或视频中的内容,你无法拥有独立思考能力。所以,你必须把你的知识应用到一个项目中。当你努力寻找答案时,你也在慢慢地学会这些知识。


第三周:让自己成为一名程序员


第 3 周的目标是熟悉软件开发的整体过程。你不需要掌握所有的知识,但是你应该知道一些常识,因为它们会影响你的日常工作。

  • 第一天:数据库基础(6 小时):基本 SQL 查询(创建表、选择、Where 查询、更新)、SQL 函数(Avg、Max、Count)、关系数据库(规范化)、内连接、外连接等

  • 第二天:使用 Python 数据库(5 小时):利用一种数据库框架(SQLite 或 panda),连接到一个数据库,在多个表中创建并插入数据,再从表中读取数据。

  • 第三天:API(5 小时):如何调用 API。学习 JSON、微服务(micro-service)以及表现层应用程序转换应用程序接口(Rest API)。

  • 第四天:Numpy(4 小时):熟悉 Numpy(https://towardsdatascience.com/lets-talk-about- Numpy -for- datascies-beginners-b8088722309f)并练习前 30 个 Numpy 习题(https://github.com/rougier/numpy- 100/blob/master/100_numpy_excercises.md)

  • 第五、六天:作品集网站(一天 5 小时):学习 Django,使用 Django 构建一个作品集网站(https://realpython.com/get- start-with-django -1/),也要了解一下 Flask 框架。

  • 第七天:单元测试、日志、调试(5 小时):学习单元测试(PyTest),如何设置和查看日志,以及使用断点调试。


真心话时间(绝密)

如果你非常「疯狂」,并且非常专注,你可以在一个月内完成这些任务。你必须做到:


  • 把学习 Python 作为你的全职活动。你需要从早上 8 点开始学习,一直到下午 5 点。在此期间,你可以有一个午休时间和茶歇时间(共 1 小时)。

  • 8 点列出你今天要学的东西,然后花一个小时复习和练习你昨天学过的东西。

  • 从 9 点到 12 点:开始学习,并进行少量练习。在午饭后,你需要加大练习量,如果你卡在某个问题上,可以在网上搜索解决方案。

  •  严格保持每天 4-5 小时的学习时间和 2-3 小时的练习时间(每周最多可以休息一天)。

  • 你的朋友可能会认为你疯了。走自己的路,让别人去说吧!


如果你有一份全职工作,或者你是一名学生,完成这些流程可能需要更长的时间。作为一名全日制学生,我花了 8 个月的时间来完成这份清单。现在我是一名高级开发人员。我妻子在美国一家大银行工作。她花了 6 个月才完成本文中提到的任务。所以,不管花多长时间,一定要完成它们。

29天入门与精通Python(附Python进阶学习资源) 编程代码 第3张


第四周:认真考虑工作(实习)问题


第 4 周的目标是认真思考如何才能被录用。即使你现在不想找工作,你也可以在探索这条道路的过程中学到很多东西。


  • 第一天:准备简历(5 小时):制作一份一页的简历。把你的技能总结放在最上面,必须在写项目的同时附上 Github 链接。

  • 第二天:作品集网站(6 小时):写几个博客,将它们添加到你之前开发的作品集网站中。

  • 第三天:LinkedIn 简介(4 小时):创建一个 LinkedIn 个人简介,把简历上的所有内容都放到 LinkedIn 上。

  • 第四天:面试准备(7 小时):准备一些谷歌常见的面试问题,练习白皮书中的 10 个面试编程问题。在 Glassdoor、Careercup 等网站中查看前人遇到的面试问题。

  • 第五天:社交(~小时):走出房门,开始参加聚会、招聘会,与其他开发人员和招聘人员见面。

  • 第六天:工作申请(~小时):搜索「Python Job」,查看 LinkedIn Job 和本地求职网站。选择 3 个工作岗位并发送工作申请。为每个工作定制你的简历。在每个工作要求中找出 2 到 3 件你不知道的事情,并在接下来的 3-4 天里学会它们。

  • 第七天:在拒绝中学习(~小时):每次你被拒绝的时候,找出两件为了获得这份工作你应该知道的事情,然后花 4-5 天 的时间来掌握它们。这样,每次拒绝都会让你成为更好的开发人员。


为工作做准备


现实情况是,你永远不可能百分之百地为工作做好准备。你所要做的就是精通一两件事,并且熟悉其它的事情,最终通过面试。一旦你开始工作了,你会在工作过程中学到很多。


享受学习的过程


学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的开发人员。

如果你能在 28 天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名程序员的正确特征了。


下面附49个python进阶学习资源:


01 初学者

1. Welcome to Python.org

  • https://www.python.org/

  • 官方Python站点提供了一个开始使用Python生态系统和学习Python的好方法,包括官方文档。


2. Learning Python The Hard Way


  • https://learnpythonthehardway.org/book/

  • 一本在线书籍,有付费版与免费版的


3. Basic Data Types in Python – Real Python


  • https://realpython.com/python-data-types/

  • 介绍了Python 中的基本数据类型


4. How to Run Your Python Scripts – Real Python


  • https://realpython.com/run-python-scripts/

  • 教你如何运行Python脚本


5. Python Tutorial: Learn Python For Free | Codecademy


  • https://www.codecademy.com/learn/learn-python

  • Codecademy提供免费的互动课程,帮助您练习Python的基础知识,同时为您提供即时,类似游戏的反馈。对于那些喜欢练习专业知识的人来说,学习Python的好方法。


6. Google's Python Class | Python Education | Google Developers


  • https://developers.google.com/edu/python/

  • 来自Google开发人员的官方Python开发类。本教程是交互式代码片段的混合,可以在您的结尾和上下文文本上复制和运行。这是一种从世界领先的技术公司之一学习Python的半互动方式。


7. Learn Python – Free Interactive Python Tutorial


  • https://www.learnpython.org/

  • 此交互式教程依赖于可以实现和实践的实时代码片段。使用此资源作为交互式学习的方式,并提供一些指导。


8. Jupyter Notebook: An Introduction – Real Python


  • https://realpython.com/jupyter-notebook-introduction/

  • 想要一种简单,直观的方式来访问和使用Python函数吗?Jupyter Notebook就是最好的选择。使用它比命令行和不同的拼凑在一起的脚本更容易。这是我自己使用的设置。本教程将帮助您开始学习Python的路径。


9. Python Tutorial – W3Schools


  • https://www.w3schools.com/python/

  • W3School使用与用于教授HTML和其他Python相同的格式。使用交互式和文本片段练习不同的基本功能。使用本教程可以获得语言的基础并学习Python。


10. Python | Kaggle


  • https://www.kaggle.com/learn/python

  • Kaggle是一个举办数据科学和机器学习竞赛的平台。竞争对手使用数据集并尽可能准确地创建预测模型。他们还提供交互式Python笔记本,帮助您学习Python的基础知识。 


11. Learning Python: From Zero to Hero – freeCodeCamp.org


  • https://medium.freecodecamp.org/learning-python-from-zero-to-hero-120ea540b567

  • 这篇基于文本的教程旨在总结Python中的所有基本数据和功能概念。通过关注Python的面向对象部分的对象和类部分,它深入研究了语言的多功能性。到最后,您应该在Python中有一个简洁的对象摘要以及不同的数据类型以及如何迭代或循环它们。


12. BeginnersGuide – Python Wiki


  • https://wiki.python.org/moin/BeginnersGuide

  • 这个关于官方Python Wiki的简单教程充满了资源,甚至还包括一个针对非英语人士学习Python的中文翻译。


13. Python Tutorial – Tutorialspoint


  • https://www.tutorialspoint.com/python/

  • 以与W3Schools类似的方式设置,使用Tutorialspoint作为替代或某些功能和部分的复习。


14. Python (programming language) – Quora


  • https://www.quora.com/topic/Python-programming-language-1

  • Quora社区中有许多学习Python的技术人员。本节专门介绍Python,包括运行分析和关于Python状态的紧迫问题及其在各种不同领域的实际应用,从数据可视化到Web开发。


15. Python – DEV Community – Dev.to


  • https://dev.to/t/python

  • Dev.to每天都有来自开发人员的用户提交的关于Python的文章和教程。使用这些视角来帮助您学习Python。


16. Python Weekly: A Free, Weekly Python E-mail Newsletter


  • https://www.pythonweekly.com/

  • 如果你是每周时事通讯的粉丝,那么你将会对Python Weekly感到满意,它总结了最新的发展,新闻以及有关Python的有趣文章。


17. The Ultimate List of Python YouTube Channels – Real Python


  • https://realpython.com/python-youtube-channels/

  • 对于那些喜欢通过视频学习的人来说,这个Youtube频道列表可以帮助您在首选媒体中学习。


18. The Hitchhiker's Guide to Python


  • https://docs.python-guide.org/

  • 与上面列出的其他资源不同,Hitchhiker的指南更加自以为是,并着眼于找到使用Python设置的最佳方法。使用它作为参考,并确保您最佳地设置为使用和学习Python。


19. Python: Online Courses from Harvard, MIT, Microsoft | edX


  • https://www.edx.org/learn/python

  • edX使用企业和学术合作伙伴来策划有关Python的内容。内容通常是免费的,但您必须支付经过验证的证书,证明您已通过课程。


20. Python Courses | Coursera


  • https://www.coursera.org/courses?query=python

  • Coursera选择的Python课程可以帮助您访问大学和企业提供者的证书和课程。如果您觉得需要某种程度的认证,类似于edX,Coursera提供了一定程度的管理和认证,可以满足这些需求。



02 进阶者


29天入门与精通Python(附Python进阶学习资源) 编程代码 第4张


21. Getting started with Django | Django


  • https://www.djangoproject.com/start/

  • 官方的Django框架介绍将帮助您进行设置,以便您可以使用Python进行Web开发。


22. LEARNING PATH: Django: Modern Web Development with Django


  • https://www.oreilly.com/learning-paths/learning-path-django/9781788998703/

  • 来自O'Reilly的这个资源有助于为Python学习Django和Web开发技能提供更多策划。


23. A pandas cookbook – Julia Evans


  • https://jvns.ca/blog/2013/12/22/cooking-with-pandas/

  • Pandas Cookbook可用于清理和处理数据。使用它使我能够将数据清理到我需要的级别,以便进行机器学习等等。

  • 它使用一个示例,展示如何过滤,分组数据并在其上执行功能 - 然后根据需要可视化数据。Pandas库是经过量身定制的,允许您有效地清理数据,并且可以对其进行转换并从聚合级别基础上查看趋势(使用方便的单行函数,如head()或describe)。


24. Newest 'python' Questions – Stack Overflow


  • https://stackoverflow.com/questions/tagged/python

  • Stack Overflow社区充满了迫切的问题和切实的解决方案。使用它作为Python的实现资源和学习Python的途径。


25. Python – Reddit


  • https://www.reddit.com/r/Python/

  • Python subreddit在Python中提供了大量不同的新闻文章和教程。


26. Data Science – Reddit


  • https://www.reddit.com/r/datascience/

  • Data Science subreddit提供了大量有关如何使用Python处理大型数据集并以有趣的方式处理它的资源。


27. Data science sexiness: Your guide to Python and R


  • https://thenextweb.com/dd/2016/04/08/start-using-python-andor-r-data-science-one-best/

  • 我为The Next Web编写了本指南,以便区分Python和R以及它们在数据科学生态系统中的用法。从那以后,Python不断推进并开始使用许多曾经构成R在数据分析,可视化和探索方面的核心基础的库,同时也欢迎在驱动世界的基础机器学习库中。尽管如此,它仍然是一个有用的比较点和Python的资源列表。


28. Data Science Tutorial: Introduction to Using APIs in Python – Dataquest


  • https://www.dataquest.io/blog/python-api-tutorial/

  • 在处理数据时,一项基本技能是访问Twitter,Reddit和Facebook使用的API服务,以暴露他们持有的某些数据量。本教程将帮助您了解Reddit API的示例,并帮助您了解在查询API时将获得的不同代码响应。


29. Introduction to Data Visualization in Python – Towards Data Science


  • https://towardsdatascience.com/introduction-to-data-visualization-in-python-89a54c97fbed

  • 完成数据处理后,您需要提供数据以获取洞察力并与他人分享。本数据可视化指南总结了Python中的数据可视化选项,包括Pandas,Seaborn和ggplot的Python实现。


30. Top Python Web Development Frameworks to Learn in 2019


  • https://hackernoon.com/top-python-web-development-frameworks-to-learn-in-2019-21c646a09a9a

  • 如果你想在Django之外的一套选项用Python开发并学习Python用于web应用程序,那么这个编译就是最好的。Hacker Noon出版物通常也会在本文之外的Python上提供有用的资源。值得一试。



03 高级玩家


29天入门与精通Python(附Python进阶学习资源) 编程代码 第5张


31. Beginner's Guide to Machine Learning with Python


  • https://towardsdatascience.com/beginners-guide-to-machine-learning-with-python-b9ff35bc9c51

  • 这个基于文本的教程有助于向人们介绍使用Python进行机器学习的基础知识。对于数据科学而言,带有相关文章的Medium插座是机器学习和数据科学资源的绝佳来源。


32. Free Machine Learning in Python Course – Springboard


  • https://www.springboard.com/resources/learning-paths/machine-learning-python/

  • 这个来自Springboard的免费学习路径有助于策划您需要学习的内容并在Python中练习机器学习。


33. Machine Learning – Reddit


  • https://www.reddit.com/r/MachineLearning/

  • 机器学习subreddit经常关注最新的论文和经验进展。还讨论了这些进步的Python实现。


34. Python – KDnuggets


  • https://www.kdnuggets.com/tag/python

  • KDNuggets提供有关数据科学,数据分析和机器学习的高级内容。它的Python部分讨论了如何在Python中实现这些想法。


35. Learn Python – Beginner through Advanced Online Courses – Udemy


  • https://www.udemy.com/topic/python/

  • Udemy提供一系列Python课程,有许多高级选项可以教你Python的复杂性。这些课程往往比认证课程便宜,但你要仔细查看评论。


36. A Brief Introduction to PySpark – Towards Data Science


  • https://towardsdatascience.com/a-brief-introduction-to-pyspark-ff4284701873

  • 对PySpark的介绍将帮助您开始使用更高级的分布式文件系统,这些系统允许您处理和处理比单个系统和Pandas更大的数据集。


37. scikit-learn: machine learning in Python


  • https://scikit-learn.org/

  • 大多数数据科学家使用Python的默认方式是使用scikit-learn来尝试模型思想:对不同机器学习模型的简单优化实现。学习一些机器学习理论,然后使用scikit-learn框架实现和练习。


38. The Next Level of Data Visualization in Python – Towards Data Science


  • https://towardsdatascience.com/the-next-level-of-data-visualization-in-python-dd6e99039d5e

  • 本教程将介绍更高级的数据可视化版本以及如何实现它们,允许您预览可以将数据从关联热图切片到散点图基础的不同高级方法。


39. Machine Learning with Python | Coursera


  • https://www.coursera.org/learn/machine-learning-with-python

  • Coursera选择使用Python进行机器学习的课程非常有名。IBM提供的这一介绍有助于指导您完成机器学习概念的视频和解释。


40. Home – deeplearning.ai


  • https://www.deeplearning.ai/

  • Deeplearning.ai是Andrew Ng(人工智能领域著名的斯坦福大学教授和Coursera的创始人)试图为大众带来深刻的学习。我最终完成了所有课程:他们提供认证,并且是两种交互式笔记本的清新组合,您可以使用Andrew Ng自己的不同概念和视频。


41. fast.ai · Making neural nets uncool again


  • https://www.fast.ai/

  • 这个深度学习课程有助于打破机器学习的逐节方面。最重要的是,它是完全免费的。我经常使用fast.ai作为复习或深入学习我不太了解的深度学习理念。


42. Learn and use machine learning | TensorFlow Core | TensorFlow


  • https://www.tensorflow.org/tutorials/keras

  • 本教程可帮助您使用TensorFlow和Google云基础架构的高级Keras组件对一组时尚图像进行深度学习。这是学习和练习深度学习技巧的好方法。



04 练习使用Python的资源


29天入门与精通Python(附Python进阶学习资源) 编程代码 第6张


43. Datasets | Kaggle


  • https://www.kaggle.com/datasets

  • Kaggle提供了各种数据集,其中包含用户示例和upvoting,以指导您访问最流行的数据集。使用示例和数据集创建自己的数据分析,可视化或机器学习模型。


44. Practice Python


  • https://www.practicepython.org/

  • 练习Python有一堆初级练习,可以帮助您轻松使用Python并练习它。在处理不同的项目和练习之前,请将此作为初始预热练习。


45. Python Exercises – W3Schools


  • https://www.w3schools.com/python/python_exercises.asp

  • W3Schools上的Python练习遵循他们教程中的部分,并允许您使用Python进行一些交互式练习(尽管练习在练习中非常简单)。


46. Solve Python | HackerRank


  • https://www.hackerrank.com/domains/python

  • HackerRank提供了一系列练习,要求您在没有任何上下文的情况下解决。这是在Python中单独练习不同功能和输出的最佳方式(尽管您仍然希望通过不同的项目来巩固您的Python技能。)当您完成更多挑战时,您将获得积分和徽章。这无疑会激励我学习更多知识。一个非常有用的沙箱,供您学习Python。


47. Project Euler: About


  • https://projecteuler.net/

  • 项目Euler提供了各种更加困难的编程挑战,旨在测试您是否可以使用Python解决数学问题。用它来练习你的数学推理和你的Pythonic能力。


48. Writing your first Django app, part 1 | Django documentation | Django


  • https://docs.djangoproject.com/en/2.2/intro/tutorial01/

  • 本文档可帮助您使用第一个Django应用程序实现,允许您使用Python在Web上获取内容。一旦你开始使用它,你可以构建你想要的任何东西。


49. Top 100 Python Interview Questions & Answers For 2019 | Edureka


  • https://www.edureka.co/blog/interview-questions/python-interview-questions/

  • 如果您在面试中遇到Python技能问题,这个面试问题列表将有助于作为一个有用的提醒和复习,并且是您练习和巩固不同Python概念的好方法。


本文地址:https://www.itcodeit.com/post/13.html
版权声明:本文为原创文章,版权归 码农 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?