社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python 从入门到精通:一个月就够了!

机器之心 • 4 年前 • 340 次点击  
阅读 70

Python 从入门到精通:一个月就够了!

毫无疑问,Python 是当下最火的编程语言之一。对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握 Python 看似是一件十分困难的事。其实,只要掌握了科学的学习方法并制定了合理的学习计划,Python 从 入门到精通只需要一个月就够了!

选自Medium,作者:Jhankar Mahbub,机器之心编译,参与:王子嘉、Geek AI。

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

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

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

  • 练习超过 30 个编程问题

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

  • 熟悉至少 2 个框架

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

整体计划

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

第一周:熟悉 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 个月才完成本文中提到的任务。所以,不管花多长时间,一定要完成它们。

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

第 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% 的内容,你就已经开始具备成为一名程序员的正确特征了。



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46479
 
340 次点击