你所需要的,不仅仅是一个好用的代理。
原文 http://www.jianshu.com/p/f6b4e53520a6
学习Python也有一段时间了,学到了很多,从什么也不懂到入门,现在谈谈python怎么入门。
注意:本文没什么逻辑,纯属个人对学习历程的回顾。
说实话,入门这个话题,如果由一个在python领域叱咤多年、项目经验丰富,代码写的很溜的老司机来回答,结果会更有信服力。而我可能并不适合来回答这个问题,理由如下:
但是如果换一个角度来思考,我又觉得我很有资格来回答这个问题,理由如下:
作为一个python领域的编程小白(真的是小白啊),我更懂和我一样编程零基础、逻辑又不好的初学者在初次接触python语言之时,内心的困惑和挣扎(其实python相对来说比较简单了);按照我的学习周期及其效果来看,我的学习效果得到了自己对自己的检验;
我的python学习是在大学刚毕业就开始的,而非是在职场的强压下被逼无奈之下开始的,所以不带很多的功利性和企图速成的快节奏,同样也是按需去学,所以对于基础的把握及学习的节奏的经验对我个人还是蛮有帮助的。
首先我想说的是,在打算学习python之前一定要先问自己一句,你学习python的目的是什么?
是为了应对职场压力,被动充电?亦或者仅仅一时心血来潮,看到如今的大数据或者人工智能发展的如火如荼、不由自主的来凑一波热闹?或者是纯粹只是为了兴趣、实现自己的某些想法,比如时不时爬个妹子图....等等。
因为目标定位不同,意味着你能为此打算花费的时间长度不同、付出的心血不同、学习的路径不同、学习的模块不同,达到的效果也不同。
一定要确定好目标,按需去学,否则你在入门之前就首先会陷入迷茫和困惑,因为python除了内置的几个包之外,可用的有不下上万个包,如果再算上GitHub上 托管的个人开发的小众包,可能有好几万了,掰着指头数一数,够学一辈子了。
面向过程:根据业务逻辑从上到下写代码。面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程。
面向对象(object-oriented ;简称: OO) 至今还没有统一的概念 定义是:按人们认识客观世界的系统思维方式,采用基于对象(实体) 的概念建立模型,模拟客观世界分析、设 计、实现软件的办法。
面向对象编程是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
也许这些专业术语天生很难让人理解,我们换一种通俗易懂的想法去思考。
面向过程:自己靠双手按照流程去解决问题。面向对象:找个对象,让它帮你去解决问题,自己轻松了。两者都是解决问题的一种思路,没有哪里不对,可是总是觉得怪怪的...
面向对象是一种设计思想:
面向对象有三大特征:封装、继承、多态
正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。它是处理字符串的强大的工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。当然对于爬虫来说有了它,我们从html中提取我们想要的信息就非常简单了。
其实正则表达式不是Python独有的,它在其他编程语言中也可以使用,但是Python的re库提供了整个正则表达式的实现,利用re库我们就可以在Python中使用正则表达式来,在Python中写正则表达式几乎都是用的这个库。
网络编程:
TCP — 传输控制协议,提供的是面向连接、可靠的字节流服务。
UDP — 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。
HTTP协议是建立在TCP协议之上的一种应用。
FTP文件传输协议(File Transfer Protocol, FTP) 是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。
学了一定的理论基础之后,就是大量实践 (所以从你的项目开始做吧)!
实践中总结,实践中完善和扎实理论(问题总是要在实践中发现和解决,不能解决实际问题的理论就是狗屎)最好能有个人能告诉你 你的代码写得有多烂...
Python是不是需要很深厚的编程基础,我编程基础基本为0,是不是不适合学这个?
python是脚本语言,语法简单最容易学习,对于没有基础的初学者来说,学习编程最重要的是保持初心和坚持、坚持、坚持。当初怎么想起来学编程的呢?很多人都是从入门到放弃,固然有天赋的因素,缺少目的性也是一个很关键的因素。
个人认为学好一门语言最有效的方法就是持续不断的进行敲敲敲(废话),毕竟编程是个手艺活,手熟是一切的基础,不要怕出错,出现问题去解决问题才是我们进步最快的方法,要觉得自己不是为了当程序员,学习编程是为了解决问题,把你的问题分解细化,让它一步一步驱动你的学习过程,学起来就没那么难啦。