python编程入门指南怎么样-Python 应该怎么学?

对于编程语言的学习,我一向推崇理论+动手实践的学习方法,书本只能告诉你每一个专业名词、语法的概念及用法,而动手实践能够让你更加深刻理解它们的含义,让你对语言的学习进一步得到升华。

大学期间唯一和编程相关的课程就是C语言,但是由于专业为数学,所以平时大多数是和书本、公式、推导证明打交道,很少使用编程语言,也可以称得上接近零基础,后来实习期间自学Python,来说一下我的学习方法吧。我创建了一个知乎圈子:【平凡而诗意】,专注于分享前沿技术、编程开发、实用工具等方面内容,感兴趣的可以首页搜索【平凡而诗意】加入我的圈子,让我们一起玩耍吧!

1. 入门阶段

就如同前面所说的,如果有一点的C语言基础,对于学习Python会有很大的帮助。如果纯粹的零基础也没关系,需要花费一些时间去理解编程语言里面的一些通用概念。

我认为入门Python相对容易,因此我更加推荐网上免费的在线教程,非常多,而且非常好,当然如果喜欢纸质书籍的也可以购买书籍学习。

尤其的基础知识相对简单,如果有一点的编程基础一周或者更短的时间内即可对Python基本语法做一定的了解,如果购买在线课程,我认为会耗费很多时间。

关于入门阶段的在线教程我推荐两份:

Python菜鸟教程Python 基础教程 | 菜鸟教程​www.runoob.comv2-9cda30d52521c24d01db00efeef2836e_180x120.jpg

廖雪峰PythonPython教程​www.liaoxuefeng.comv2-12e9112fa7fe73b723c819cca088fb96_180x120.jpg

关于入门书籍,我推荐一本不错的书籍,

《Python编程从入门到实践》

2. 进阶阶段

关于进阶,我推荐两本书籍:

第一本:《Python Cookbook》

我认为这是一本很适合有一点Python基础的开发者,这本书应该很多Python开发者都有所耳闻,它在基础语法的基础上进行了一些提升。 />

就如同上面这个例子,它会抛开入门的那些简单语法去讲解一些Python高级实用方法和技巧,例如抽象基类、单例模式、接口等。每一个知识点它会对应提出一个问题,然后给出相应的解决方案,并且告诉你这样用的意义何在、怎么样更加高效的使用Python,怎么设计更高效的软件模式。

第二本:《流畅的Python》

这是一本经得起考验的Python书籍。

举一个最简单的例子,在绝大多数教程都会讲到循环和条件语句,千篇一律的告诉你"if..else..", "for...while",这个有一点编程语言的同学都知道,但是在Python里面循环和条件语句有什么特殊的地方吗?该怎么用好它?

在很多博客、教程中都不会深入介绍,但是这本书会详细的介绍Python深入的内容。

它和大多数书籍和在线教程蜻蜓点水式的讲解不同,它更加深入,深入而不冗余,在你看这本书的时候你会发现,它的每一段话都是有意义的,没有什么废话。

它分别从数据结构、字典集合、文本和字节序列、函数、设计、装饰器、闭包等讲起,然后对每一块知识进行展开,详细介绍里面最根本的原理,然后告诉你,该怎么用好它,高效的使用它。

3. 练手项目

除了书籍之外可以找一些练手的小项目去熟悉一些Python的用法,在动手中理解学习到的概念,感兴趣的可以看一下我的另一篇回答,介绍了一些Python练手项目,Python 的练手项目有哪些值得推荐?​www.zhihu.comv2-2bcb9f025b0160a9e5d4333e52b1ab56_180x120.jpg

4. 实战

实战阶段我认为可以选定一个感兴趣的方向,比如数据分析、网页爬虫、CV等,然后去设计一下系统架构,并且逐步编程实现它。

当然这方面也有很多开源的项目可以解决,以CV为例,AlexNet、R-CNN、YOLO这些经典的CNN模型都会开源他们源码,可以克隆下来阅读一下它们的代码,学习一下,然后实现自己的系统。

因为个人是做机器学习方向的,所以我推荐一些机器学习方面的学习+实战项目,感兴趣的可以看一下我的另一篇文章,Jackpop:干货!机器学习平台优质学习资源推荐​zhuanlan.zhihu.comv2-16bd40c346b15e13c34d438dd6da6e9f_ipico.jpg

5. 强化

编程语言都有一个共性:入门容易,精通困难,包括Python这门被大多数人认为容易的编程语言在内,也是这样。

就如同我在另一篇回答下所说的那样,不仅限于熟练一门语言的语法,或者使用一门语言实现某项功能,更不是熟练使用某个框架或者库,而是超越语言本身、对编程语言之外的内容有深刻的认识和理解,例如,算法

数据结构

设计模式

依赖度

复用性

代码规范

系统的全局认识

......

详细内容可以看我另一篇回答,学过很多门语言,C、python、Java,但是感觉自己都不精通,如何才能把一门编程语言练习到精通呢?​www.zhihu.comzhihu-card-default_ipico.jpg

书籍

如果想进一步提升编码能力,应该在语言之上学习一些更通用的知识,如上一篇回答那样,强烈推荐好好阅读一下下面这几本书籍,

《代码整洁之道 Clean Code》-- 马丁 著,韩磊 译

《代码整洁之道 程序员的职业素养》--马丁著,余晟 译

《重构 改善既有代码的设计》-- 马丁·福勒(Martin Fowler) 著,熊节,林从羽

《设计模式:可复用面向对象软件的基础》--埃里克·伽玛(Erich Gamma) 等 著

开源项目

就像我在另一篇回答里所说的那样,学习编程思路并不复杂,概括起来就两点:多看别人的代码

多让别人看自己的代码

多让别人看自己的代码

这一点可以通过参与一些开源项目的开发,或者自己再github托管一些项目,每次提交MR时让一些高手检视你的代码,暴露自己的不足,接受别人的指正,在潜移默化之中会发现在开发方面会学会很多东西。

多看别人的代码

这一点可以通过去一些开源社区例如github看一些大公司例如,Google、Facebook、阿里、腾讯等开源的项目,这些项目都是经过多年内部开发,反复优化后开源的,在代码规范、效率等方面做的都很好,可以从其中学到很多东西。

我在这里推荐几个和Python方面比较好的开源项目。

用Python实现了排序、搜索、机器学习、图像、图等相关的算法,覆盖全面而且实现简单,目前Github已经61k+star,学习算法的同时能够从别人开发项目中学到很多开发的规范和经验.

理论与实践相结合,不仅包含基础语法、进阶,还有编程风格、公开课、编程经验总结等方面的内容,目前Github上已经67k+star.

相对于前面两个项目,我更推荐这个项目,前面两个项目更多的是围绕算法再展开,对于Python,只是一个实现的工具,而python-patterns更偏向于软件设计模式,我认为这才是提升阶段最为关键的,能够超越语言层面养成一个高效的软件模式设计思维,目前该项目在Github已经22k+star.

最后再自卖自夸一下,最近我在分享《进阶Python》系列,主要围绕抽象基类、单例模式、装饰器这些高阶用法展开,每一讲代码都会同步到Github,感兴趣的也可以关注一下。

干货干货 | 2019年共享免费资源整理(上):学习资源篇​mp.weixin.qq.comv2-c6753c8e8cef925c923ebcd8c099b6cc_180x120.jpg干货 | 2019年共享免费资源整理(下):实用工具篇​mp.weixin.qq.comv2-981d19e9c9cc72055048bf606f19d7a9_180x120.jpg

作品精选QQ学习交流群:1077239487~平凡而诗意​jackpopc.github.iov2-34e2fc5ea1949cd76a50e9ca192a7718_180x120.jpg

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值