避雷!零基础菜鸟Python入门避雷手册!
学习Python也是有很多坑的,小白需要避免的总结了以下几点:
学习路径不明确
细节不注意,bug找到疯
学习资源喜欢囤几个G
半路劝退型
纸上谈兵型:沉浸理论学习,动手能力差,不知道如何在实际的项目中去应用,缺乏解决问题的能力。
遇到问题卡壳:遇到问题不知道如何寻找解决办法,甚至连问题都描述不清楚,经常被一些细小的问题卡住,学习效率不高。
避雷1:劝退坑
知乎关于 python 学不下去、学完容易忘等等问题都有百万的阅读量,关注这类问题的人也有上千,python 从入门到放弃这似乎是很常见的现象。
这是我写过回答的一篇帖子:
为什么有这种现象呢?
因为所有人在一开始学习 python 的时候就预估错误了 python 难度!
虽然小学生学习两周就能上手的 python,但是,那仅仅是前两周的学习内容,越往后那难度基本上都是指数上涨,像下图这样:
所以往往有人学到第一个困难拐点的时候,就不断的心生退意。
然后开始敲起十二级退堂鼓,本来准备转行的人员则想像目前工作也不是不能忍受,本来准备求职 python 的伙伴觉得也不是不能去投销售岗。
但要知道,只有不断经历了苦难拐点的学习者才能从内卷大军里卷出来,才有资格去卷下一个赛道。
怎么避坑:
① 战略上轻视 python,战术上重视 python。
② 安排学习节奏,每天或者每周固定学习内容,养成一种时间上的惯性。
③ 设置 deadline,把学习目的进行分解,按照一个一个 deadline 去安排任务。
小白0基础入门Python基础知识点拆分:
1)变量和类型
变量的命名、变量的使用、类型的查询、类型转
2)数字和字符串以及常用的数据结构
整数、浮点数、复数、字符串、字符串的操作
3)字符编码
列表的使用:列表的定义、元素的增删改查、切片、遍历、下标越界;
元组的使用:元组的定义、元组与列表的转换、元组的特征等;
集合的使用:集合的定义、与列表的区别。
常用操作:交集、并集、差集等;
字典的使用:字典的定义、字典的增删改查、删除key、遍历
4)运算符
算数运算符 :+ 、- 、* 、 /、 %、 **、 //
比较运算符 :== 、!= 、<>、> 、< 、>= 、 <=
赋值运算符 : =、 += 、-= 、*=、 /= 、%=、**=、 //=
逻辑运算符 : and、not 、or
位运算 :& 、| 、 ^、 ~ 、<< 、 >>
成员运算符:in、not in
身份运算符:is、 is not
运算符优先级
5)分支结构
代码之间的缩进、if-else、if-elif-else、嵌套if(else、elif)
6)循环结构
for循环、while循环、continu关键字、break关键字、return关键字
7)函数与模块的使用
函数的作用、def语句、函数中的列表、魔法参数、函数的调用、函数的返回值(无返回值、多个返回值、单个返回值),import,from ... import .. , from import ..as
8)面向对象
理解面向对象;
面向对象的搜歌特征:抽象、封装、继承、多态;
什么是类;类的创建、初始化、实例化;属性访问;类的继承;调用父类的方法;内置类属性。
9)文件的操作
open() 函数;
读文件的方法:read()、readline()、readlines();
文件的路径;写文件:覆盖、追加;
异常处理(try..except..finally) :FileNotFoundException...;
存储&读取JSON格式数据:json.dump()和json.load();
数据持久化:操作csv、excel
10、进程与线程
进程:multiprocessing模块、进程池、进程间的通信
线程:thread模块、threading模块、Lock类、Condition类、Thread类、线程池
线程和进程的关系以及区别
并行和并发
同步和异步
创建多线程
除此之外还要熟悉熟悉常用的模块,如re、os、sys、datetime、time、math等,lambda函数,装饰器,生成器,迭代器,魔法函数,计算机网络,协议:http协议、tcp协议、udp协议等基础知识
④ 及时梳理学习内容,做成像下面这样的思维导图,构造自己的记忆宫殿。
避雷2:目的坑
学习 python 就像学习抡锤,抡锥子砸钉子,如果只知道抡锤子,却不知道往哪里砸,那抡起起来岂不是索然无味?!
部分人学 python 就像跟风考研一样,别人在学自己也跟着学,没有考虑学python到底是要干嘛,从学python到下一秒放弃。
三分钟热度,因为下一个有意思的东西很快就会代替 python ,例如 pr、c4d 等等,所以学习抡锤子之前至少得有个钉子~
避坑指南:
明确学习目的,不乏找工作、副业、自媒体、科研任务、兴趣等等,然后再往这些需求的下一层深挖。
越明确学习目的,学习动力越充足。
我之前爬取过上万条招聘信息,然后深挖分析如何去选择 python 岗位,以此为参考,明确我需要掌握的技能基础。
避雷3:细节坑
写的代码过了些天连自己都不理解是啥意思,刚解决一个 bug,又蹦出来三个 bug......
想想这样的细节比比皆是;
错误使用变量,整个代码全部都 a、aa、aaa、bbb,最后不仅会让接手你代码的人疯掉,自己再去读代码也会疯掉。
不在意格式细节,时不时就少一冒号,或者多一个空格和 tab。
避坑指南:
① 学习掌握编码规范,例如学习 PEP8 编码规范
② 多阅读源码,不断进阶 python 的高阶语法
避雷4:资料坑
收藏了 500 本 python 电子书不代表能学好 python、保存了 5T 的学习资料也不代表能学好 python......
这是我早期作为学习资料收藏家遇到的坑,不然不至于给百度网盘交那么多会员费!
怎么避坑:
资料三千,只取一份,不一定需要是最全面的那一份~
只要资料骨架最完整的那一份资料,学完之后,有不会地方只需要查漏补缺即可,而不是一遍又一遍的从头学起。
例如选择看书,从知乎里爬取了上千条 python 学习攻略,再从十几万字的攻略提取大佬们推荐的 python 书籍,最后归纳分析获取最有有用的学习书籍。
只学推荐次数最多的那三本书,剩下的书籍最多学习一下目录,看看有没有什么漏掉的部分。
避雷5:是否报班?
是否要报班?(ps:家里有矿的可忽略掉这个坑!)
报了班就能学好 python?
报越贵越能学到高深的技能?
在普适教育里,难道技能的获得与学费成正比?
只能笑而不语,你品,你细品......
避坑指南:
是否需要参加培训,因人而异。
首先,自学可以很大程度上锻炼自己的自制力,想要学好Python,需要抵住各种诱惑,同时也节省了一笔培训费。
但是没有系统的学习路线,学的很慢,看似节省了培训费,其实浪费了大量的时间成本,有问题不知道没人帮忙解答,实战项目经验欠缺,毕业在找工作的过程中,是非常看重项目经验的。
对于没有任何基础的人来说,通过培训的方式来掌握Python是一个比较现实的选择。
虽然Python的语法比较简单,但是对于没有基础的人来说,很多概念也很难理解,比如Python中的动态参数、多重继承等概念,在理解上还是颇具难度的。
Python语言是动态语言,同时Python对编程的格式有严格的要求,对于初学者来说,这些内容都需要一定的时间才能适应,如果在学习的过程中能有人指导一下自然会节省不少时间。
越基础的内容,网上资源越是丰盛,而高阶的内容,由于稀缺不付费也很难获得。
非实效性高的内容没必要报班,例如学习数据分析相关,你找个几年前的代码,很大概率就能跑起来,但学习爬虫这样,网上随便找个去年的代码都不一定能运行成功。
Python无论是学习技能,还是做副业,就像是在一张藏宝地图上玩游戏一样,这些过来人的经验分享、书籍、学习方法等,就像是游戏的攻略,了解存在的坑也能减少restart的次数。