美文网首页Python学习笔记
如何系统地自学Python

如何系统地自学Python

作者: 焰火青春 | 来源:发表于2017-10-24 22:18 被阅读499次

    引自:知乎-----《如何系统地自学Python-彭猫》
    任何一门编程语言都有硬知识和软知识两部分,起步时主要任务就是掌握硬知识

    1、硬知识

    指的是编程语言的语法、算法和数据结构、编程范式等

    适合初学者的教学材料:

    • 笨办法学python

    • 廖雪峰python2.7课程

    • The Hitchhiker's Guide to Python-着重于python最佳实践,不论专家还是新手

    • python官方文档 实践中大部分问题都可以在官方文档中找到答案

    辅助工具

    https://www.pythontutor.org
    一个python对象可视化的项目,用图形辅助理解python中的各种概念

    Python哲学:

    用一种方法,最好是只有一种方法来做一件事

    必要时,需要阅读讲解数据结构和算法的书,对理解和使用python中的对象模型有很大帮助。

    2、软知识

    指的是特定语言环境下的语法技巧、类库的使用、IDE的选择等

    对于初学者而言,起步阶段最易走火,走弯路,在选择版本时一会2.7一会3.x,或者徜徉在类库的大海无法自拔,scrapy、numpy、django什么都要试试,或者参与什么什么活动等,都是一些没有意义的,做什么都是三分钟热度,结果什么都不会,慢慢自己的耐心以及热情都被消磨殆尽。

    起步阶段核心任务:

    掌握硬知识,软知识适当了解;选择一个方向努力走下去,切记贪多!

    3、发展阶段

    完成基础知识后,必定会感觉到空虚,怀疑这些语法是否真的有用,要使python发挥价值,就不能只停留在语法层面。

    发展阶段的核心任务:

    跳出Python,拥抱世界

    python有很多分支:

    • 科学计算和数据分析

    • 爬虫

    • web网站开发

    • 游戏

    • 命令行实用工具等

    在此阶段,不论是选择哪个方向,都需要大量的知识支撑,不可避免接触大量类库,阅读大量书籍。

    3.1、类库方面:

    英文版:Awesome Python项目
    中文版:Awesome-Python-Cn

    Python资源大全中文版,包括:Web框架、网络爬虫、模板引擎、数据库、数据可视化、图片处理、文本处理、自然语言处理、机器学习、日志、代码分析等。

    3.2、书籍方面:

    科学和数据分析:

    爬虫:

    HTTP权威指南
    《用python写网络爬虫》
    《python爬虫开发与项目实战》
    《精通python网络爬虫》

    Web网站:

    HTML&CSS设计与构建网站

    到这发现上述列举的大部分书籍与Python没有很大的直接联系,这其实也是跳出Python,拥抱世界的主体思想
    Python与其他专业知识相结合才能解决更多的问题

    4、深入阶段

    此阶段的你对python可谓是了如指掌,那么你一定知道python也是用c语言实现的,相对于c语言,python在乎的是“表面”,如何能快速实现或者解决某些事情,而对语言内部,底层是怎样的并不关心,假如你只想好好做一个二流程序员拿着死工资,到此便可以结束了;但是,你是一个有追求的攻城狮,那么你一定会忍不住去拆开python的黑盒子,去真正理解它的设计思路。

    推荐书籍:

    真本书对python源码最核心部分,给出了详细的阐释,不过此书需要对c语言内存模型和指针有着良好的理解。

    这是一门斯坦福大学公开课,讲师从各种编程范式的代表语言出发,给出了每种编程范式的最核心的思想,对c语言也有非常深入的讲解,对阅读python源码也有很大帮助,python的许多最佳实践都隐藏在那些众所周知的框架和类库中,如Django、Tornado等

    5、结语

    大同三千,择其一而从之,大多殊途同归,坚持才能胜利!

    拓展

    (1)、对于一个程序员来说,如何提高自己的编程能力至关重要:
    X:代表思考解决方案、问题的时间
    Y:代表实现代码的时间
    编程能力 = F(X,Y)(X>Y)
    要想提高编程能力就需要优化X 、Y与F(X,Y)

    推荐书籍:
    《Structure and Interpretation of computer Progam》简称SICP
    又名《计算机程序的构造和解释》

    (2)、入门阶段易忽视的几点:

    • 英语

    • 学会提问技巧

    作为一枚程序员,搜索引擎的高级搜索是首先需要学会的,当单靠检索无法实现时,就需要靠提问解决问题了;
    无论是stackoverflow,亦或者是知乎、其他论坛、大神博客等,学会提问至关重要。
    提问前可以好好看看这篇文章:What-you-have-tried

    • 不做独狼

    狼是群居动物,人亦如此,一匹狼的威胁远不如一群,在自学编程的路上,一个人学习远不如一群人来的更有效果
    个人可以尝试搭建博客、个人网站,记录自己想法,订阅相关的博客,遇到问题可以有人帮忙答疑解惑,闭门自学只会固步自封!

    stackoverflow上票选得出的程序员必读书籍前两位:
    《code complete》-代码大全
    《The Progmatic Programmer》-被称作代码小全

    相关文章

      网友评论

        本文标题:如何系统地自学Python

        本文链接:https://www.haomeiwen.com/subject/pyffpxtx.html