我经常会看到这一类的问题:
- 学习XXX知识没效果;
- 学习XXX技能没方向;
- 学习XXX没办法入门;
给大家一个忠告,如果你完全没有基础的话,前期最好不要盲目去找资料学习,因为大部分人把资料收集好之后,基本上都是放在收藏夹吃灰,同时资料收集的多了,学起来就会迷茫,也会让自己很有压力。
磨刀不误砍柴工,如果你是准备自学的话,要分步骤去进行:
- 第一步:搭建自学知识框架,具体怎么搭建学习框架,在后面我会讲;
- 第二步:按照学习框架给自己定制阶段性的学习计划和目标,最好是按周自我反馈和调整;
- 第三步:针对每周的学习计划寻找合适的自学资源,注意,只找当前需要的,不要贪多
- 第四步:找几个懂得人,和他们处理好关系,后面学习过程中遇到问题还能有人给你解答;
这些都要一步一步来,不要想着一口气吃成一个大胖子。
搭建学习框架也是有诀窍的,比如我常用的三种方式:
- 和牛人成为朋友,身边的朋友或公司的同事都可以,但要注意,记得请人家吃饭联络好感情,不然到关键时刻,很少有人会去帮你;
- 从各个博客网站上面搜索想了解的知识点路线图,然后找高赞的博文,基本上不会差,但要注意辨别真伪;
- 多找几个培训机构,看他们整理的课程大纲是什么样的,涉及哪些知识点,然后做归类汇总,具体的我就不说了,免得让大家认为我在给培训机构打广告;
废话不多说,先上一张图镇楼,看看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 个月才完成本文中提到的任务。所以,不管花多长时间,一定要完成它们。
第四周:认真考虑工作(实习)问题
第 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确实非常火爆,各个行业或多或少都会与Python有一定的关联。
当然,当然如果你还是对Python不是特别了解,可以来听下我的直播公开课,在直播中我会分析Python的各个行业前景,以及学习的一些经验,还有学习方法。并且还会给你一些Python的系统学习资料,游戏项目源码等。
上述Python必学知识图谱以及配套资源已上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】