如何系统的学习python?
回复内容:
首先我想说:可能题主的动机就是错误的!从心理学上说,题主可能是一个完美主义者,就是那种要做一件事,必须要把有关的内容都学会了,然后再去做;比如,我想去用python写个爬虫,我就要把python系统地学习一遍。首先,程序猿是为了解决问题而学习的,不是为了学习而学习的。如果说我想要写个爬虫,我只要学会scrapy,beautifulsoup模块就行了。
其次,系统地学习完python是需要时间的。你想想,python有那么多的官方文档,还有各种库,各种开发工具,而且它还在不断更新,如果你想系统地全部学习完,可能要花上一辈子的时间也不够。
不过既然说到这里,还是有一定的方法的。首先,找一本书了解整个python的框架,然后遇到什么问题就去学习相关的知识。
记住:学习永远是为了解决问题,而不是为了学习而学习。(我在这里更多的分享的是一种思想,而不是技术方面的细节,其实我也是个小白^_^,见谅)
————————————————————————
20150605更新
首先感谢大家的赞!!!
有人说我的答案并不是回答问题的,恭喜你答对了,确实如此,就像我答案里说的我分享的更多的是一种思想,而不是技术系列。毕竟意识决定行动!
说实话,对于这个问题,如果只是从表面上回答,很容易的,网上的资源这么多,随随便便可以贴出一张python技能树,你就按照技能树不断加点唄;但是从题主提出来这个问题的角度出发,可以发现题主连自己“为什么要学习python”都不知道呢。所以我认为更应该让题主理清自己的思路,我是基于这个角度回答的问题。
好了,废话不多说,正式开始更新内容。
我把学习分为三种境界:
第一种境界:兴趣。基于兴趣的学习是最简单的,只是跟着感觉走就行了,对什么感兴趣就学习什么,完全不用考虑有没有什么卵用,因为我乐意。
第二种境界:为了短期的目标。比如说我想要开个独立博客,那么我就要学习一下html,css,js等等;我就是为了完成这个短期的目标。
第三种目标:为了一个长远的目标。这个是最难的,因为为了目标你可能要学习很多自己不喜欢做的事,而且还得坚持很长时间。比如说,你只想通过学习python以便一年以后自己能够月入10000+(只是举个例子),那么这个时候你就只要付出努力就行了,但是如若你能把这个转化成兴趣,那你还是相当强的。
当你明白了自己的学习目的是出于什么目的后,你也再顺着这个思路进行深度思考,相信你会找到适合自己的学习方法的。 啊,回答过一个类似的问题,请参考: 刚开始接触Python,如何正确高效的开展Python学习? - 赖勇浩的回答 《与小卡特一起学python》,这本书花三个月时间看看,基本可以入门。除了看书,还可以看些教程视频,主要还是自己多动手敲代码。 完美主义者的正常表现。
我正在改正中~~ python开发篇:
书籍:
《python核心开发第二版》
《python核心开发第三版》
视频:
《中谷教育视频40余集》
自行百度。
python爬虫篇:
《旺海的实验室csdn爬虫十篇》
《廖雪峰的博客》
等…
python运维篇:
《老男孩运维python2013年末版》
《Linux黑客的python编程之道》
等。 2015/07/16更新
最近读《python宝典》这本书(大神轻喷啊),发现以前基础根本没打好,这才查缺补漏来了,发现好多细节问题,比如面向对象的python,以前只是学c,学一点java,看到这书才算是有概念了。
===========
发表我的看法。答主学习Python一年多一点了,项目也自主的做了两三个,专业电气工程,与编程不太沾边,都是野路子自学的。
当时也没想太多,就是感兴趣,觉得想好好学习一门编程语言,然后听说生命短暂,请用Python。
写Python,建议在Linux下,因为Python是Linux的脚本语言,在安装Ubuntu的时候,能看到安装过程,是先安装了Python环境,然后Python各种.py文件,这样。
回到正题。
第一,别说什么解决问题了,面对一个小白,不知道题主有没有学其他语言经验和编程能力,如果有的话最好了,随便看看Python的语法和一些基本方法,简单库就好了。如果是小白,要入门的话,得花一点功夫,照着head first python这本书,敲下来就好了,里面关于手机脚本的开发就别做了,毕竟鸡肋。这本书容易上手,不会枯燥,从简单计算到cgi脚本到发布都有简单介绍。看完了这本书就算入门,推荐进阶阶段《python标准库》,这本书挺厚,不过特别系统,这本书如果能理解透彻了你就挺厉害了。
第二,一定要有问题去解决。
我是把我们课程的作业,关于计算的,都编程了,现在有个问题,就想我应该怎么做?或者我怎么能做的更好?我要不再做一个django驱动的网站吧,以后同学能也能用了。这样,慢慢做,一步步来,培养成就感。
Python是个好语言。
这里,就讨论一下,如何根据需求 边学习边实战吧。
之前我学习python也是一头雾水,硬着头皮学下来,算是半成品了,可以写出很多需求,之前在学的时候,问了一些人,很多人没坚持下来。
高手给我的意见是,一般正常学习是要3个月掌握基础,半年写出有需求的东西。
但是实际上,我真正在学的时候,发现比这个快,比如15天就可以写出自己需求的东西~3个月基本大部分淘宝,seo相关脚本写了数十个,虽然现在只是刚入门。
但是学习起来,不会像以前那样完全头绪!
这是为什么可以学习这么快?
因为我带着强烈的需求去学习的!
打个比方,我做电商,团队一直需要一个比较复杂的计算器来计算灯管的换算,这个功能,其实很简单。
有的人会笑,写个计算类型的脚本的 需要15天?
没办法,我比较笨~~0基础,连html代码都不太懂,~~·当时入门的时候 花了很大的力气,配置环境理解变量等一些东西。
不过,因为有需求! 所有学的时候目的性很强~
那么这个程序,需要软件可以学会?简单的来说,掌握了理解了
变量的含义,
if,for
还有几个基本的内建函数
这4点掌握了,就可以写出来了。
有点基础的,2小时,看看文档,应该就能写出来了。
其实掌握了变量,python的数据类型,if for以后,可以写出很多东西了。
比如,有一个这样的需求:根据跳失率,停留时间,来判断这个宝贝的详情页优化质量
然后,又有这样一个需求:智能的计算员工的工资。
所以:实战是我觉得是掌握知识的最快方法!
简单的说,就是带着需求去学习,有的人会推荐做一些C++,或是网上的习题。
确实,我曾经有一段时间做过,效果非常好!
因为解题是思路的,所以很多时候,我跑步的时候,也在想怎么解题,但是做了大概10道题目以后,基本上应该算是真正理解和应用循环了。
但是,如果对于新手,我一般不建议这样,因为,信心容易被打击!
我会做那些习题,基本上也是学了python 1个月以后了,之前看都看不懂!!!
当然,现在的那个电商详情页分析脚本也慢慢升级了。
因为掌握了一些爬虫库,然后就可以抓取更多的信息了
然后掌握了pandas库,就可以结构化的储存和更加高效的学习了
再学了一点mysql,就可以把分析以后的数据放在mysql了。
然后弄了一台云liunx,和 远程mysql,这样数据都自动保存在云端了,在任何地方都可以访问了。
以后学习了淘宝自动带验证码登录(接入第三方数据),就可以每天自动更新报表了。
结合数据预警,还有画图,再发邮件的脚本,就可以每天自动发送报表到手机上了!
再学点django+web前端知识,就可以整一个网站,给团队看整体的数据分析效果了!
当然,员工工资计算的那个也是可以这样一点点的把功能加上去。
带着需求,然后你需要什么功能,就去百度,边添加项目边学习,遇到问题,记录下来
这样的学习速度是最快的!
当然有的牛人会说,你折腾这些有用吗,我花钱,或是找人开发一个,也用不了多少钱。
但是我想说,你的时间很值钱吗?三个月前,如果我不每天抽一点时间学习python,我到现在还是一个鸟样!一点进步没有
如果一直是抱着,钱可以解决,干嘛要学习的这种态度,然后每个月领着1万多的工资~~那这辈子也是如此了!
就像,有的人在跑步,你会说跑步有什么用?现在有汽车!有自行车,还需要跑步吗?
但是,真正的跑者,是把跑步当作游戏,当作乐趣,愿意投入时间,他们并不是真正为了健康而跑步!而是来体验这中间的快乐。
顺便说下,张特也是跑步爱好者,跑过4个马拉松,每天要跑10公里上下,跑者可以加咕咚 111张特。
同样,我理解编程,也像在玩游戏,做出来的成就感,那感觉不比高潮差~
以前,我每天回家的时候,会斗一下地主,玩个游戏,看看娱乐节目
现在,回家的时候,就玩玩python,睡前想想要弄什么脚本,然后就睡觉了~(催眠效果很好!)
以前跑步的时候,脑子是空的,现在带着思路跑步,跑着跑着,就跑出灵感了!
又不耽误时间~
我觉得这也挺有意思的!
所以,对于那些还在犹豫的人,我建议是,想的话就直接去学吧,但是是带着需求去学的。
因为如果你不学,你会发现,1年以后,你还是跟现在一个鸟样!你学了,起码多了一个技能了!
你每天只要抽出一些刷微微信,看新闻,论坛,QQ群吹水的时间,或是早起的时间~或是做车的时候思考一下~~
4个月,就会大有不同!
顺便发一下个人的博客地址:http://www.zhangte.org 也是更新python和seo相关的知识,更多会偏向电商和网站优化的应用
敲了多少行了? 说实话这个问题没有标准答案。对于题主的问题,我只能说请带着你的目的去学习。目的不同,学习的方式自然不同。
我本人是Java程序员,使用Python的目的是为了快速的写点小工具用于某些不适合使用Java的场景比如说处理一些文本文件,那我只需要关注Python的基本语法和读写文件,最多再控制一下递归就足够了;而如果你要用它来做Web开发,那你的keywords显然和我迥异
我认为学习一门语言,最重要的是先把代码写出来。写代码的过程本身就会告诉你很多,写的多了你就会知道它具体的逻辑、你可以在脑海中模拟它的运行、你也能轻松的找到这段代码哪最容易出问题。我们都知道没有完美的软件、也没有不变的知识,所以不要等着学会了再动手、而是一开始学的时候就动手。
最后,祝题主学习顺利、早日入坑! 我推荐《python简明教程》。一本很好的入门级的书,是python2.7的。Windows,Linux和Ios下都有,同时每节有给其他语言的程序员写注。大概200页左右,这本书也是诱导性学习。如果有其他语言基础的上手很快。扫完这本书后,自己动手写个网络爬虫。网络爬虫可大可小。写完这些你就有自己的想法了。