Python 学习完基础语法知识后,如何进一步提高?

感谢 @壮壮 妖. 我觉得这基础离写程序还不够,就算看也只能停留在小脚本这个水平. 遇到复杂的语法或者调用了模块还是搞不定的. 我个人建议买本<python核心编程2>或者<python高级编程>去读. 读的过程体验它的例子, 还可以在读的过程中或者看完之后去尝试写一些程序. 程序是和自己的工作或者兴趣相关. 可以先实现, 然后优化/加feature. 过程中出现困难或者不知道改怎么进行思路可以去google/github/stackoverflow上面找类似的问题或者项目, 尝试理解并且‘搬’到自己的项目里面.提高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. 对我来说就发生到这里,之后的还不知道希望对大家有帮助
更多详情: http://www.zhihu.com/question/27386361/answer/37289077

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值