Python 学习完基础语法知识后,如何进一步提高?
程序员文章站
2022-05-18 10:08:15
...
在了解的Python的基础后如何寻找小项目程序来学习?哪些网站社区相关的资源比较多?或者去读. 读的过程体验它的例子, 还可以在读的过程中或者看完之后去尝试写一些程序. 程序是和自己的工作或者兴趣相关. 可以先实现, 然后优化/加feature. 过程中出现困难或者不知道改怎么进行思路可以去google/github/*上面找类似的问题或者项目, 尝试理解并且‘搬’到自己的项目里面.
提高python的路只有一条 -- 就是实践, 写代码. 然后总结, 思考, 探索.
目标也很直接: 你会觉得过去写的xx有更好的表达方式, 过去写的xx写的很烂
我来把我这条路的历程总结下来做些提示:
1. 最开始很多是copy代码
2. 发现这些代码可以抽象-- 比如, 一屏下来好几个函数长得差不多, 只是参数或者内容逻辑上有些变化. 那么你可以把这些函数聚合成一个函数,通过传递不同的参数达到一样的效果
3. 看别人的项目, 看到别人实现你要做的事情用什么方式, 都有几种方式, 你甚至可以研究下哪种方法效率更高,那种方式写出来逼格更高, 然后总结, 思考,问问自己为什么他们这样用, 记下来.
4. 尝试看一些大型一点的项目的文档,甚至代码 -- 可能造成我的环境里报错了, 那就要研究为什么, 甚至可能直接阅读他的代码找到原因-我用错了, 他的错. 慢慢地觉得它们有点近了.
5. 发现别人的项目import了好多没见过的module, 我直接去google或者看python文档看它是做什么的, 都有什么方法, 常用于什么地方, 然后渐渐地用了几次就记下来了.
6. 用python无非三种, 运维/devops,web开发, 数据分析/算法. 每一种都有对应相关的库, 你渐渐的熟悉他们的用法, 甚至你在生产环境推了xx, 效果很不错, 心情灰常好.
7. 随着你用的越来越深, 需要掌握的反而更多- 要学习一些前端的,学习一些linux/osx的. 你可能就会有想法, 我想做点什么大事.
8. 这个时候可能你了解了MVC/MVT等等. 开始思考设计模式, 我要拆分, 让架构更合理. 我就要推翻我过去写的很多东西, 我准备重构了....
9. 重构过程很痛苦, 但是学到了很多. 然后设计模式也好, 设计思想也好, 渐渐的留在心里. 以后再写一个feature或者一个功能 会先跳出来很多为什么, 我应该怎么样/不应该怎么样. 会发现代码越来越漂亮. 效率越来越高.
10. 开始吐槽同事的代码, 用法balabala. 既然吐槽了, 自己就不能太low对吧? 那对自己的要求就越来越高.
11. 开始阅读大型的优秀项目的代码, 阅读是很类很痛苦的. 程序员最大的痛苦是什么? 看别人写的代码. 你还要进入作者的角色, 考虑ta为什么这么写这么设计. 呃呃. 突然发现他的代码逻辑有问题, 本地测试一下果然, 然后心惊胆颤的提了个pr. 然后被接收了. 这个世界立刻不一样了 - 你发现你原来没有想的那么差, 你可以吐槽你以为认为牛b的xx,yy了.
12. 越来越有信心, 看了很多项目的代码,也贡献了很多. 学到了很多. 这个时候又再有了想法? python-我还有什么不会的呢? 好多第一个蹦出来的就是--我还没有读过python源码, 好吧c我不会. 但是标准库基本是python写的. 看看我成天import的那些东西是怎么写的, 还有什么奇葩的用法.
这个过程很费时间, 我第一次读大概有40%没懂 或者忘记了. 但是已经有一种感觉 - 一旦想到一个需求就能想到python标准库里面有没有已经实现了的,如果有可能记不清在哪里-这就是挽回记忆的时候了. 我有一段时间在重构这部分, 把我写的一大段一大段删掉 换成`from x import y`. 然后我又一个认识-python最好的用法, 最nb的功能其实都在python标准库里面的. 我建议每个学python得都要看一遍标准库. 而不是看python官方文档而已.
好吧 我顺便给标准库贡献了点代码-我真的很想贡献很多, 发现英文阅读能力, python库的测试覆盖很高,代码的作者们都很nb,造成我很费劲的只贡献了几行而已.
13. 从此之后, 设计一个项目我就有了新的角度 - python标准库有没有对应部分的实现. flask是怎么设计的. 我能借用到什么? celery这么组合的, 那些我觉得不适合我这里. 我怎么调整? 我的这个东西在xx里有什么样的作用和位置
14. 继续给喜欢的项目贡献代码, 顺便读读它的代码. 觉得我不喜欢的它的用法. 我fork一个. 做成我想要它成为的样子.
15. 突然发现用了很几年的web框架, 现在虽然用什么都没问题, 也可以现学现用. 但是发现一个根本点? 我为什么一直在用别人写的框架. 不如自己写一个. 好吧我正在写....
16. 对我来说就发生到这里,之后的还不知道
希望对大家有帮助 新手推荐一下自己喜欢的 Dive Into Python 3。
http://www.pythonchallenge.com/
http://www.fullstackpython.com/best-python-resources.html
http://pbe.lightbird.net/
http://www.lightbird.net/dbe/
https://github.com/karan/Projects
http://www.reddit.com/r/Python/
https://www.hackerrank.com/
根本停不下来。 谢邀。GitHub 看书的话,从下面的列表中选一本。
https://wiki.python.org/moin/AdvancedBooks
做项目的话,发挥想象力,不要一味模仿,否则编程就没意思了不是吗? 很多人问过类似的话,我的回答见 关于Python编程的一些问答 中“怎样学习Python”小节。 三个方向:
① 动手开发小项目,比如楼上说的爬虫网站;
② 了解学习一些高级用法,列表解析式,装饰器之类。
③ 学习python源码,看看C语言是怎么实现对象机制,怎么做垃圾回收。
首先是掌握基础知识,网上有很多基础知识,比如这个网站就有Python全套的视频教程,可以去看看:Python视频教程_Python开发实战视频 而且里面还有很多项目教程,掌握基础知识之后可以练练手
然后掌握基础知识之后,就是每天打代码,练习,从练习中不断熟练,也能发现自己没掌握的,或者新的知识点
最后就是找些小项目练习,根据练习中掌握一些人家的思维,以后遇到大的项目,也能从很多方面思考。 题主可以结合openCV,然后往图像方向搞搞,很有意思
回复内容:
感谢 @壮壮 妖. 我觉得这基础离写程序还不够,就算看也只能停留在小脚本这个水平. 遇到复杂的语法或者调用了模块还是搞不定的. 我个人建议买本提高python的路只有一条 -- 就是实践, 写代码. 然后总结, 思考, 探索.
目标也很直接: 你会觉得过去写的xx有更好的表达方式, 过去写的xx写的很烂
我来把我这条路的历程总结下来做些提示:
1. 最开始很多是copy代码
2. 发现这些代码可以抽象-- 比如, 一屏下来好几个函数长得差不多, 只是参数或者内容逻辑上有些变化. 那么你可以把这些函数聚合成一个函数,通过传递不同的参数达到一样的效果
3. 看别人的项目, 看到别人实现你要做的事情用什么方式, 都有几种方式, 你甚至可以研究下哪种方法效率更高,那种方式写出来逼格更高, 然后总结, 思考,问问自己为什么他们这样用, 记下来.
4. 尝试看一些大型一点的项目的文档,甚至代码 -- 可能造成我的环境里报错了, 那就要研究为什么, 甚至可能直接阅读他的代码找到原因-我用错了, 他的错. 慢慢地觉得它们有点近了.
5. 发现别人的项目import了好多没见过的module, 我直接去google或者看python文档看它是做什么的, 都有什么方法, 常用于什么地方, 然后渐渐地用了几次就记下来了.
6. 用python无非三种, 运维/devops,web开发, 数据分析/算法. 每一种都有对应相关的库, 你渐渐的熟悉他们的用法, 甚至你在生产环境推了xx, 效果很不错, 心情灰常好.
7. 随着你用的越来越深, 需要掌握的反而更多- 要学习一些前端的,学习一些linux/osx的. 你可能就会有想法, 我想做点什么大事.
8. 这个时候可能你了解了MVC/MVT等等. 开始思考设计模式, 我要拆分, 让架构更合理. 我就要推翻我过去写的很多东西, 我准备重构了....
9. 重构过程很痛苦, 但是学到了很多. 然后设计模式也好, 设计思想也好, 渐渐的留在心里. 以后再写一个feature或者一个功能 会先跳出来很多为什么, 我应该怎么样/不应该怎么样. 会发现代码越来越漂亮. 效率越来越高.
10. 开始吐槽同事的代码, 用法balabala. 既然吐槽了, 自己就不能太low对吧? 那对自己的要求就越来越高.
11. 开始阅读大型的优秀项目的代码, 阅读是很类很痛苦的. 程序员最大的痛苦是什么? 看别人写的代码. 你还要进入作者的角色, 考虑ta为什么这么写这么设计. 呃呃. 突然发现他的代码逻辑有问题, 本地测试一下果然, 然后心惊胆颤的提了个pr. 然后被接收了. 这个世界立刻不一样了 - 你发现你原来没有想的那么差, 你可以吐槽你以为认为牛b的xx,yy了.
12. 越来越有信心, 看了很多项目的代码,也贡献了很多. 学到了很多. 这个时候又再有了想法? python-我还有什么不会的呢? 好多第一个蹦出来的就是--我还没有读过python源码, 好吧c我不会. 但是标准库基本是python写的. 看看我成天import的那些东西是怎么写的, 还有什么奇葩的用法.
这个过程很费时间, 我第一次读大概有40%没懂 或者忘记了. 但是已经有一种感觉 - 一旦想到一个需求就能想到python标准库里面有没有已经实现了的,如果有可能记不清在哪里-这就是挽回记忆的时候了. 我有一段时间在重构这部分, 把我写的一大段一大段删掉 换成`from x import y`. 然后我又一个认识-python最好的用法, 最nb的功能其实都在python标准库里面的. 我建议每个学python得都要看一遍标准库. 而不是看python官方文档而已.
好吧 我顺便给标准库贡献了点代码-我真的很想贡献很多, 发现英文阅读能力, python库的测试覆盖很高,代码的作者们都很nb,造成我很费劲的只贡献了几行而已.
13. 从此之后, 设计一个项目我就有了新的角度 - python标准库有没有对应部分的实现. flask是怎么设计的. 我能借用到什么? celery这么组合的, 那些我觉得不适合我这里. 我怎么调整? 我的这个东西在xx里有什么样的作用和位置
14. 继续给喜欢的项目贡献代码, 顺便读读它的代码. 觉得我不喜欢的它的用法. 我fork一个. 做成我想要它成为的样子.
15. 突然发现用了很几年的web框架, 现在虽然用什么都没问题, 也可以现学现用. 但是发现一个根本点? 我为什么一直在用别人写的框架. 不如自己写一个. 好吧我正在写....
16. 对我来说就发生到这里,之后的还不知道
希望对大家有帮助 新手推荐一下自己喜欢的 Dive Into Python 3。
- 通过很多实例进一步学习 Python
- 每个章节末尾会有 further reading,进行更深入的学习
http://www.pythonchallenge.com/
http://www.fullstackpython.com/best-python-resources.html
http://pbe.lightbird.net/
http://www.lightbird.net/dbe/
https://github.com/karan/Projects
http://www.reddit.com/r/Python/
https://www.hackerrank.com/
根本停不下来。 谢邀。GitHub 看书的话,从下面的列表中选一本。
https://wiki.python.org/moin/AdvancedBooks
做项目的话,发挥想象力,不要一味模仿,否则编程就没意思了不是吗? 很多人问过类似的话,我的回答见 关于Python编程的一些问答 中“怎样学习Python”小节。 三个方向:
① 动手开发小项目,比如楼上说的爬虫网站;
② 了解学习一些高级用法,列表解析式,装饰器之类。
③ 学习python源码,看看C语言是怎么实现对象机制,怎么做垃圾回收。
播放地址
https://github.com/pythonpeixun/article/blob/master/python_shiping.md
迪艾姆python培训_python编程思路1.flv
迪艾姆python培训_python编程思路2.flv
迪艾姆python培训_python培训_python爬虫.flv
迪艾姆python培训_python培训_while循环.flv
迪艾姆python培训python培训编程思路三.flv
迪艾姆python培训python培训函数抽象.flv
迪艾姆python培训python培训类抽象.flv
迪艾姆python培训python培训嵌套函数.flv
迪艾姆python培训python培训实例对象.flv
迪艾姆python培训_sublime text配置.flv
迪艾姆python培训_tornado之hello world.flv
迪艾姆python培训_web.py之hello world.flv
我把我的学习方法说给你听听吧首先是掌握基础知识,网上有很多基础知识,比如这个网站就有Python全套的视频教程,可以去看看:Python视频教程_Python开发实战视频 而且里面还有很多项目教程,掌握基础知识之后可以练练手
然后掌握基础知识之后,就是每天打代码,练习,从练习中不断熟练,也能发现自己没掌握的,或者新的知识点
最后就是找些小项目练习,根据练习中掌握一些人家的思维,以后遇到大的项目,也能从很多方面思考。 题主可以结合openCV,然后往图像方向搞搞,很有意思
上一篇: google 推送问题
下一篇: 正则表达式