下面将会从学习的基本过程,讲讲有助于新手学习的资料和方式有哪些。
帮助小白找到合适自己的学习方式。
学习的过程,无非就是下面这几个流程,这就是学编程的基本方向:
一、获取知识信息(找到学什么)
二、思考理解(学懂是什么)
三、做题练习巩固(强化防止忘记学了什么)
四、实战做项目(学通能做什么)
Python知识信息,可以从很多地方学到。总结一下,基本信息摄取方向无非就是这几个,看书,看网上资料,看视频,上网课,上培训班。
如果你真的真的真的,完全完全完全,是零基础,并且没有对编程有强烈的学习欲望。
而且没有本科理工类知识的学习基础,也没有了解过任何计算机的内容。
其他Python的好书虽然是好书,但是你零基础可能会看到想睡觉....
所以我只推荐下面这两本,比较丰富有趣适合纯小白书:
这两本书都是 Head First 系列的,这套系列的书对于新手小白来说是有口皆碑了。
整套书,其实如果是学习能力还不错的高中生,也可以拿来看,难度不大,深入浅出。
下面是京东自营的链接
《 Head First 编程之旅(Python语言描述)》
《 Head First Python(第二版)》
京东图书类好像双十一有什么满减活动之类的,可以去关注一下,会有些优惠。
网上公开的Python学习教程也非常多,这里推荐几个非常主流且也饱受程序员好评的学习资源站。
https://www.runoob.com/python/python-tutorial.html
https://www.w3school.com.cn/python/index.asp
https://www.liaoxuefeng.com/wiki/1016959663602400
这几个教程,你可以理解成是基本做菜指南,比较简单直白的介绍了大多数 Python 使用到的功能。
至于选哪个,我个人认为都可以,都是相似的新手教程。
如果说前面这些知识资源是做菜指南,学懂就是指,理解做菜和核心思路。
书上可能教你,放油然后再放鱼来煎,多久多久之后翻面。
学懂的话,你就知道煎所有东西都是类似的步骤。
学懂,不单只是知道书上/教程里告诉了你什么,更要知道的是,这些东西有什么关联。
并且要去主动思考,这个东西是不是还可以弄点别的什么什么花样?
如果 xxxx 这样,会不会发生 xxx 那样的效果?
如果想要 zzzz 的效果,我需要做什么?
在这个学习思考的过程中,是会产生很多小问题的,这时候如果有人来沟通答疑解惑,是最好的。
当然,你也可以自学,并且在网上互相发帖求助,沟通咨询。
下面推荐几个视频网站的课堂学习方式:
https://www.imooc.com/learn/1261
在这里面找需要的基础Python课程即可。
在完成基础内容学习之后,也可以自行到B站和油管找一些编程大佬博主来跟着进阶学习。
学习的过程,如果想要找人一起讨论问题,可以到下面这个知乎圈子里发帖求助,里面也很多大佬经常分享一些内容。
知乎圈子:编程入门交流圈 https://www.zhihu.com/club/1227924955025215488
光说不练假把式
学编程是绝对绝对需要动手实践的。
看书或者看教程,学会了某个语法或者某种用法,如果没有自己亲手试试,过不了两天就会忘掉。
编程练习除了书本,网课等基础练习题,还可以自己去刷刷其他习题。
鉴于是零基础开始慢慢学的,就先不推荐 LeeCode 这种比较猛的平台了,容易刷的丧失自信。
https://www.codewars.com
进到官网之后,先点 sign up 根据步骤注册一个账号
之后,进入 Kata 这个页面
这是一个题库页面,里面是海量的编程题。
可以根据自己的需求和情况,来不断练习。
接下来,我们要找一些基础的 Python 练习题。
在左边这个位置,点选自己需要的设置。
Sort by 排序规则,选择 Most Completed 最多人完成,
My language 选择 Python 语言。
Difficulty 难度这里,点击选择 8 kyu,选最简单的版本。
完成上面的操作之后,我们就会看到一些基础的简单 Python 题了。
拿一道题举例而言,看看需要怎么做。
要注意,这个题库里有一些题可能是有问题无法验证的,我们尽量避开不要选有这种 Issues Reported 正在有人反馈情况的题目。
我们选这题 Return Negative,在网页上的 Return Negative 这一题的右边,有大量的不同编程语言的logo。
我们点击双蛇的这个 Python 的 logo,进入答题。
进入之后,会看到左边是题目的描述。
右边有两个框框区域。
右上区是需要你完成的 实现代码 部分。
右下区是虚拟完成的 测试用例 部分。
题目标题是 Return Negative 返回负数, 描述说这段提供的example,展示了这个函数在哪些输入值的情况下,会输出哪些值。
而且特别提示了,如果已经是负数,那就不用做任何变化。
很多时候里面都是简单英文,如果不熟悉可以借助 Bing翻译 或者 有道翻译理解,顺便学习英语。
(学英语对于编程还是很重要的,很多问题需要到外网查资料)
接着,我们来看右下角提供的 测试用例 部分,这里简单给了一个测试示例。
告诉我们,用这个函数,可以验证 make_negative 函数在输入42的时候得到的结果值,应该会和预期的 -42 值相同。
再来看看右上角部分,要求是我们实现这个函数。
先读题,然后写测试用例,然后再写实现代码。
想一想这个函数在基本正常情况,极端情况,边界情况会输出哪些数值。
比如负数,比如0。
约是有难度的题目,这个测试的重要性就会越体现出来。
写测试,能够极大效率帮助你避免低级错误,从而提高写代码的质量和速度。
我们先增加一些测试函数。
然后回头看实现,这个要求我们返回负数,所以实现思路比较简单。
对于负数和0,都会直接返回原来数字本身。
对于大于0的正数,会返回相反数,那么相反数可以是 0减去这个数,或者是 -1 * 这个数。
也就是第一步,先判断输入进来的参数是不是大于零,然后对应做处理即可。
接下来,点击右下角的 Test 摁扭
用自己写的测试用例,来测试一下自己的实现代码。
如果有某个 Test 不通过,不是全绿的情况,就说明有两种可能
你的测试用例写错了,程序输出那个是对的,你测试验证的值是错的
你的测试是正确的,实现代码出bug了
继续修改,直到自己的 TEST 验证通过,那么就可以点击右下角的 ATTEMPT 摁扭,尝试系统测试了。
提交答案之后,系统会运行一个批量测试的程序,来给你检验。
如果你最后得到的结果是 Passed: xx Failed: 0
说明没有失败结果,全部通过,这样你就通过了基础验证了。
接下来,点击右下角的 SUBMIT 正式提交答案。
提交完之后,你可以反馈做题的心情,还可以看到其他人的答案。
有的时候,你很可能使用了一个非常绕而且不优雅的方式,完成了题目。
而一些大神,会用很巧妙很有意思,有些甚至很优雅的方式,
用非常漂亮的代码解决了问题。
参考并且学习他们的做法,也是一种非常重要的学习。
完成之后,你可以继续点击右上角的 NEXT KATA 来预览下一题,并且点击 TRAIN 来进入题目
如果你觉得题目太难,啃了三天三夜都做不出来,那么也可以解锁答案,参考其他人的解答。
在框框下面有一个 UNLOCK SOLUTIONS,点击这个即可
当然如果直接看答案,这题就不会得分了,系统会记录你的情况。
这种开发流程叫做 TDD(Test-Driven Development),测试驱动开发。
What is Test Driven Development (TDD)? Tutorial with Example
这个 Codewar 平台非常有意思,有兴趣的小伙伴可以继续在里面慢慢玩。
Python 其实是个比较灵活的胶水语言
可以拿来做批处理的脚本,可以拿来做网络爬虫,可以来写web网页前后端,可以单独写定时后台服务,可以拿来做数据分析批量计算。
能做的事情非常多,多到可能零基础小白学完之后不知道应该做什么好。
其实做什么,完全取决于你当初想学 Python 编程的目的是什么。
如果你是想做后端开发的,那就去把数据库也给学了,写一个学生管理系统,实现基本的增删查改。
如果你是想用程序excel数据处理的,那就直接上手写脚本,帮助自己解决日常重复机械的工作。
如果你是想拉取京东购物数据做分析的,那就去把http有关的东西了解下,上手去做一个爬虫+分析。
实战,完全取决于自己的需求。
如果你是完全蒙圈学完也没有什么目的,那就最好一开始别学,因为学了不用,很快就会荒废的。
个人建议,实战做项目可以尝试自己搭建一个自己的博客系统,做好之后,再试着把它放到云服务器上,注册域名,接上公网,变成一个大家能看得到的真正的博客。
当然,慕课网也有很多的实践课程,如果是时间比较紧张,需要快速的提升
直接选一个合适的慕课网项目会更加省心省力。