如今 Python 用处不少,学的人也不少,其流行程度自没必要说。可是不少人学 Python 的时候都遇到过问题,特别对于非计算机专业毕业的人来讲。算法
如今的教程很是多,可是绝大部分对于初学者都不够友好。不少教程为了求全,把不少不经常使用、初学者从入门到放弃都不会接触到的内容,一古脑儿所有摆出来,加剧了学习的负担;要么是面向有基础的人群,不少地方语焉不详,没法参照一步步去作。当初我在学习的时候就被坑过不少次,因此想写一系列面向初学者,甚至没怎么接触过计算机的读者。但愿看教程的人可以一步步的去练习。数据库
不过学习任何技术都应该有必定的认识,虽然 Python 号称简单易学,那都是相对的。学习一门语言,不动手去敲一下,看了也白看。技术好的人,从来就是动手最多的人。网络
语言的学习并无太多捷径,须要多练习。但愿读者在看本教程时,不要仅仅看,还要多动手去练。数据结构
你也许没有很强的逻辑思惟、你也许没有足够的数学知识、也许你写不出牛逼的算法,其实这都不重要,重要的是学会如何去使用别人已提供的库中 API(函数或方法)的用途、用法。我以为语言就像用的各类测试工具同样,我不用去考虑底层的实现,我只要考虑如何去使用。不要给本身学习增长太多的困难,本身学语言到底要干啥?作自动化测试仍是写操做系统?ide
也许有的人会反驳,不了解语言的原理、不了解数据结构、不了解算法、不了解...你的学语言就没有意义。若是真要会这些才算学会语言,我相信有一大半的开发人员都不合格。函数
有一句话我以为很对:不求完美,先让事情开始,而后再完善它。工具
若是一开始追求太过,那么就应了那段经典的话:从入门到放弃。而我以为绝大部分人可能还没摸到门槛就要放弃了。学习
其实我写这边教程的目的就是想告诉你们,先学到足够的知识,而后写点有意思的小玩意。让本身的学习可以见到成果,这会极大促进你学习的兴趣。测试
学习靠的不是毅力,靠毅力的学习都长久不了,由于这个世界有毅力的人原本就少。学习要靠正向的反馈,这些反馈来源于你学习过程当中体会到的成就感。你写出一个自动化脚本,看着自动化脚本自动点击、自动输入、自动断言是有成就感的;你写了一个小爬虫,去爬了一个网站上你喜欢的图片,看着你硬盘上一个个图片的生成,这也是有成就感的。这些成就感能给你不断的正向反馈,因而你有一直学下去的动力。在教学过程当中,我一直比较推荐去写写网络爬虫,这比较容易获得这种正向的反馈,同时网络爬虫的技术和自动化测试、接口测试有共通的技术点。网站
而你太过于纠结原理、太过于纠结完美,你会发现你的学习是步履维艰的。
Python学习过程当中,就我我的的经验来讲,最重要的是字符串、列表和字典的各类处理操做和函数方法等。由于之后不少时候都在处理这些内容,好比写测试脚本过程当中你须要从界面上提取断言、须要本身参数化定位语句、须要从数据库中查询数据、须要批量插入数据等众多的操做,都是对这三种数据类型的处理。
也许你不必定能记住全部的函数与方法的具体写法,可是你必定要知道 Python 对某种数据类型提供了哪些函数与方法。这样当你码代码的过程当中须要操做某种数据类型时,才有处理的思路,不然就傻了。对于记不住的函数或方法,你能够查阅教程资料,多用天然就记住了。
对于函数和面向对象之类的,先从概念理解。不要妄想一下就理解什么时抽象。这须要一个过程,只有当你代码写多了,你才知道为何要写函数和写类,由于函数和面向对象就是为了减小代码而生的。可是你写了那么点代码,减了就没了,还谈什么减小。因此暂时不理解也不要过于焦虑,先记住概念。
学习不少时候,须要一个醍醐灌顶的过程。并非全部的知识点看了、写了就领会了,每一个人都有思惟的短板,因此对于某些知识点有时候会出现短路的状况,也就是怎么想都理解不到,怎么问也理解不到。那么对于确实不能理解的内容,先记下来,也许你只是缺乏一个契机。但若是你不去记,想给你灌顶,可是没东西给你灌啊!
因为第一次写教程,有任何意见和建议,请在评论中指出。谢谢!