给伸手党的福利:Python 新手入门引导

Posted 程序猿中的BUG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给伸手党的福利:Python 新手入门引导相关的知识,希望对你有一定的参考价值。

目录

 心态准备

入门阶段

编辑器该如何选?

操作系统?

1.2 入门教程

其他推荐教程

提升阶段

遇到问题怎么办?

过来人的建议

你是如何自学Python的?

规划好路径

对基本概念建立认知

最后,学习中需要注意的问题

写在最后


【国庆假期即将结束,结束后的你是不是要准备静下心来好好学习啦】】

这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学。

不管你学习的出发点是兴趣驱动、拓展思维,还是工作需要、想要转行,都可以此文作为一个参考。在这个信息爆炸的时代,以 “Python入门” 为关键字搜索出的结果成千上万。不少小白选手难免会东一榔头西一棒槌,最终看了很多文章,却仍没跨过新手那道门槛。

结合自身的学习经验以及与很多自学者的沟通了解,我们整理出一条可操作性较强的自学路线,同时收集了多种形式的 Python 优质学习资源,供诸位尚未入门或刚入门不久的同学参考。

 心态准备

编程是一门技术,也可说是一门手艺。如同书法、绘画、乐器、雕刻等,技艺纯熟的背后肯定付出了长时间的反复练习。编程的世界浩瀚无边,所以请保持一颗敬畏的心态去学习,认真对待写下的每一行代码,甚至每一个字符。收拾好自己的心态,向着编程的世界出发。

入门阶段

第一步至关重要,是关系到初学者从入门到精通还是从入门到放弃。选一条合适的入门道路,并坚持下去。

1.1 配置 Python 学习环境Python2 还是 Python3?很多人都在纠结入门应该学 Python2 还是 Python3。这其实不是个问题。我从没听过某个人是 Python2 程序员或 Python3 程序员。

二者只是程序不兼容,思想上并无大差别,语法变动也并不多。选择任何一个入手,都没有大影响。思想上并无大差别,语法变动也并不多。选择任何一个入手,都没有大影响。

如果你仍然无法抉择,那请选择 Python3,毕竟这是未来的趋势

Python2 还是 Python3?应该学习最新版本的 Python 3 还是旧版本的 Python 2?

 
编辑器该如何选?

我推荐 pycharm 社区版,配置简单、功能强大、使用起来省时省心,对初学者友好。并且还是完全免费的!

社区版地址:PyChar

其他可以尝试的编辑器:

idle:Python 自带编辑器。如果只是想尽快写出几行代码来,这是最简便的方式。
vs code:Visual Studio Code - Code Editing. Redefined
atom:A hackable text editor for the 21st Century
SublimeText:Sublime Text - Download
notepad++:Notepad++ Home

为了让初学者集中更多的精力在写代码这件事情上,所以我们就不推荐 vim 和 Emacs 了。

 

操作系统?

Python 支持现有所有主流操作平台,不管是 windows 还是 mac 还是 linux,都能很好的运行 Python。并且后两者都默认自带 Python 环境。

1.2 入门教程

《笨办法学Python》
序言 - [ 笨办法学Python ] - 看云
这是本很有名的 Python 书籍,但并不适合纯零基础自学。因为其中重实践但不解释,新手很容易看得一头雾水。作为学习同时的辅助倒更合适。

其他推荐教程

《父与子的编程之旅》 又名 《与孩子一起学编程》
这也是一本非常适合零基础的 Python 入门书籍。喜欢阅读纸质书的同学可以买一本,不少在线书店有售。

《简明 Python 教程》
在线阅读:简明 Python 教程
这是一本言简意赅的 Python 入门教程,简单直白,没有废话。适合有过其他语言基础的人快速了解 Python 语法。

以上是我们推荐的学习材料,主要偏重没有太多编程基础的纯新手。其他也有一些不错的资源,可供不同需求的学习者使用:

在线文字教程:
廖雪峰的Python教程

廖先生的教程涵盖了 Python 知识的方方面面,内容更加系统,有一定深度,有一定基础之后学习会有更多的收获。

其他入门书籍:
《Head First Python》

《Dive Into Python》

《Python 核心编程》

《深入理解 Python》

《Python 标准库》

《Python 编程指南》

我们搜集了一些网上的电子书版本,放在了网盘里:获取方式看文章末尾。

提升阶段

完成入门阶段的基础学习之后,常会陷入一个瓶颈期,通过看教程很难进一步提高编程水平。

这时候,需要的是练习,大量的练习。可以从书上的例程开始写,再写小程序片段,然后写完整的项目。我们收集了一些练习题和网站。可根据自己阶段,选择适合的练习去做。建议最好挑选一两个系列重点完成,而不是到处浅尝辄止。

hackerrank Python 部分难度循序渐进,符合学习曲线
https://www.hackerrank.com/domains/python/py-introduction

社区型编程练习网站,内容由易到难
https://www.codewars.com/?language=python

leetcode 为编程面试准备,对初学者稍难
LeetCode

牛客网 提供 BAT 等大厂笔试题目
牛客网-专业IT笔试面试备考平台,最全C++JAVA前端求职题库,全面提升IT编程能力

一边游戏一边编程
CodeCombat中国 - 中国爱好者的 CodeCombat!在游戏中学习编程

projecteuler 纯粹的编程练习网站
https://projecteuler.net/archives

菜鸟教程100例 基于 py2 的基础练习
http://www.runoob.com/python/python-100-examples.html

知乎:Python3.x基础学习资料整理
https://zhuanlan.zhihu.com/p/24249743

知乎:Python学习路径及练手项目合集
https://zhuanlan.zhihu.com/p/23561159

知乎:Python 的练手项目有哪些值得推荐?
https://www.zhihu.com/question/29372574

 

遇到问题怎么办?

学习的过程中或多或少都会有各种问题出现,不要试着逃避,真的勇士敢于直面惨淡的 BUG。

第一步肯定是利用好搜索引擎,怎么用也是一门技术活:
谷歌搜索引擎

第二步,求助于各大同性交友网站(大雾):
StackOverflow
http://stackoverflow.com/


v2ex
https://www.v2ex.com/


segmentfault
https://segmentfault.com/

过来人的建议

在初学编程的过程中,你会有各种各样的疑惑,你会遇到各种各样的坑。这时,前人的经验尤为重要,我们整理了一些知乎问题供参考:

你是如何自学Python的?

我在学习的过程中,深深的觉得对于成人或者进入职场的人来说,学习一门新的知识,目的不在于积累,而在于解决问题。

所以这就要求我想明白3个问题:
1,学习python,要解决什么问题?解决这个问题,是要为了确定学习方向。
2,要学哪些东西?解决这个问题,是为了规划好学习路径,建立学习地图。
3,怎样学?解决这个问题,是为了找到高效学习的方法。
1,选择好方向

我要学习python的目的不是为了解这门语言,而是为了要学会运用这门语言来解决问题。

 


但python的应用方向,实在太广了。在python基础知识学完之后,如果应用方向不同,要学习的东西也会大不同。

我不能说我要做web开发,学完python基础知识,跑去学numpy,pandas等知识,也不能说我要用python做数据分析,学完python基础知识,然后就跑去学django,flask框架。

这个道理,就跟我们想要去泰国旅行,肯定不会买去日本的机票一样,很简单,但是我们不得不承认,还是会有人犯迷糊,上来就开干。

我学习python,是因为在工作中慢慢了解到python在数据分析方面,基本涵盖了“数据获取→数据处理→数据分析→数据可视化”这个流程中每个环节,是数据分析的利器,话说这风骚的操作,也是没谁了。

 

规划好路径

当我确定好方向后,下一步骤就是顺着这个方向,建立好我自己的学习路径地图。
这个路径是1个系统性的逻辑主线,这个主线会让我知道每个部分需要完成的目标是什么,需要学习哪些知识点,哪些知识是暂时不必要的。

然后每学习一个部分,我就能够有一些实际的成果输出,利用成果产出来形成正向刺激,激励后续的学习。

而且,如果我们身在职场,大多时候我们是没有很大块的时间来集中学习的。我们的学习时间被分割在了一些碎片化的时间里。在碎片化的时间里,系统性的学习一门知识,更需要有一个贯穿前后,系统的逻辑主线,来串联所有相关碎片化的时间的学习。

当我确定好学习python的数据分析知识,就按照数据分析的流程“数据获取→数据处理→数据分析→数据可视化”这个路径,给自己建立了学习地图:
1,python基础知识
2,爬虫基本知识+sql
3,numpy
4,pandas
5,matplotlib
6,sklearn
7,统计学与概率论

对基本概念建立认知

python是我学习的第一门编程语言,我在开始学习python的时候,是一个连什么是字符串都不知道小白。所以对我来说,最重要的开始是,首先对这一领域的基本概念建立认知!

事实上,对一门领域完全零基础的人,想要开始学习它的话,真正重要的工作是先对这门领域的基本概念建立认知。
举个例子,比如我在看到教程中有句话是“为变量赋值”,那我至少得知道,什么是变量?赋值是什么意思?

不知道为什么这么重要的一个开始,竟没有答案提到,更不知道是大家都天赋异禀,觉得不屑于提起这基础的步骤,还是很多人已经忘记了从小白一路走过来的痛苦和挣扎。人是会篡改记忆的,会认为现在拥有的都是轻松获得的,但真实的经历永远都是坎坷曲折的。

最后,学习中需要注意的问题

A:一开始绝不陷入底层原理和细枝末节的纠缠
这个坑,是把我坑的最深的坑。
举个例子,我学到函数的时候,我在开始的时候只需要,学会怎么定义函数,怎么调用函数这些基础知识,完全不需要一开始就深入到,研究函数参数的传递规则,到底是值传递,还是引用传递。

不是说这底层知识不重要,至少在入门的时候,我们不用一上来就深入这个层面。因为知识的学习,是一个线性的,从潜入深的顺序。如果一开始,就眉毛胡子一把抓,不分主次,可能我们很快就会体会到“从入门到放弃”是一种什么样的感觉。

而且我们在后续的学习过程中,其本身就是在“运用中深入理解,在深入理解中优化应用”。相互印证理解,是一种自然而然的深入学习过程。

B:最好是按照系统性的课程或书本来学习
既然在这个领域是新手,先接受一个已经存在的系统,再在上面修修改改,是最适合的方案。作为新手,如果依靠自学来学习一门领域的知识,根据我的经验,我依然认为最好的老师,仍旧是成体系的课程或书本。

网上的文章或帖子,其实非常不适合充当我们系统性的学习一门知识的教材,因为它是非常碎片化的知识,东一榔头西一棒子,不成体系。
不要指望自己能把散落的信息整合成系统的,那是高手要做的事情。不过网上的文章或帖子,可以作为我们对某些细节的查漏补缺的参考。

 

C:以能用起来,解决问题为指导原则
在工作中,需要的更多的是一种解决问题的工程性思维,所以很多时候,我们能掉包解决问题,就没必要自己造轮子。

举个例子,boss要去机场,那我只要会开车,驱车把boss送到目的地就行,而不需要我去研究怎么怎么造车轮,怎么造发动机,怎么造电瓶。。。。。。

当然,如果我们学有余力,能深入,肯定是只好不坏。但还是那句话,开始的时候,不眉毛胡子一把抓。

D:没有什么牛逼的事情是能够速成的,越是底层的、收益周期越长的技能越是这样。
“大道甚夷,而人好径,终为所误”。我们总会在踩了无数的坑后,才恍然大悟:捷径往往是最长的弯路。学习一门领域的知识,对于普通人人在短时间内从0到1入个门,倒是不难,但是从1到10,到100,进阶为高手,没有长时间的投入和刻意练习,无异于痴人说梦。

当我理解这个道理,也知道自己资质并非属于天选之子的时候,就不会急于求成而去费尽心思想找到一条捷径:试图用3个月的时间,去完成别人用了3年才能做到的事情。
以上,只要用对方法,有一个完整的学习脉络规划和逻辑主线的贯穿,循序渐进,学Python就能很高效。

写在最后

经过第一步和第二步训练,相信一般的小程序都难不倒你了,你已经在编程的世界里已经迈出了关键的一步。接下来就可以去挑战具体的项目了,爬虫、web开发、数据分析、机器学习等等丰富的世界已经向你敞开,选择一个方向重新出发吧!
记住:在编程的道路上,没有捷径。

正在学习或打算学习python的小伙伴可以关注我的公众号【白又白学Python】,还能领取python用的软件和资料。不要白不要!!!

 

以上是关于给伸手党的福利:Python 新手入门引导的主要内容,如果未能解决你的问题,请参考以下文章

给伸手党的福利:Python 新手入门引导“如何在一个月内入门python?”

7个Python小坑,给新手党的福利

初次接触python,怎么样系统的自学呢?

伸手党福利文,Python入门大全

qiankun微前端改造实战,超级详细vue代码干货篇!(伸手党福利)

qiankun微前端改造实战,超级详细vue代码干货篇!(伸手党福利)