如何自学Python?

ann-安大官人


人生苦短,I Write Python,作为一名一线研发工程师,我来推荐下自己自己觉得还不错的教程和平台。


首先需要说明一点,编程之路没有什么捷径可以走,一万小时定律在这个行业也是成立的。眼过千遍不如手过一遍,动手coding实战才是最直接的。

1、 Python官方教程文档

我想这基本是这个行业的“潜规则”了,你犯过的很多错都是可以在官方文档中找到解决方案的,可惜了我们大多数程序员忽视了这一点,遇到问题总喜欢直接去百度,看那千篇一律的博客。

目前学习的话,建议直接3.7开始,没有必要再去看即将被淘汰的python2系列了。


2、廖雪峰的Python教程

链接地址就不在这里贴了,相信有心的人是很容易找到的。回想曾经,自己就是结合廖雪峰大牛的Python教程,参考官方文档一步步学习的。文章简洁易懂,而且主次分明,很值得初学者去看。

3、Python编程,从入门到实践

从基础的语法一步一步开始讲起,最后结合实战项目,贯穿整个书籍内容,也是一本不可多得的好书。入门最快,最适合,没有之一!!!绝对胜过国内的那些学院派写得各种python书籍(为了评职称)。

下图是该书的内容介绍,可以看到基础知识已经是很详细的了,最后配合三个小项目:外星人入侵、数据可视化、Web应用程序,为我们介绍了Python的方方面面。如果需要该书的PDF文档,欢迎留言+关注,我看到后会第一时间发送给大家。

4、流程的Python

最后这本,基本到提高篇了。豆瓣评分9.4分,17年出版,也算比较新鲜的Py读本了,他可以带领我们领略Pyhton的一些原理和特点, 而不只是停留在框架使用上面,仔细的去阅读它,实践它,你将会收货更多。

最后,还是那句话糙理不糙的话:

整就牛!!!

一个程序员的奋斗史


如何自学Python,这个问题其实在我刚开始接触Python的时候也挺困扰我的,新的语言,我该怎么学习呢?在这里我分享一下我的学习经历。

学习从基础打起,语言的基础语法是应该要掌握的

刚开始的时候,没有头绪。只有一点多看书,硬着头皮看书,可以帮忙扩展思路。抱着这样的心态,在京东上买了很多书,只要大家提到有帮助的书买了一个遍,当然京东上的书碰到活动其实挺便宜的满300减200的时候很多,所以算下来其实不贵,花不了多少钱。书买来后就挑着看,那本看的懂,我就专心看那本书。看的过程中最重要的是要实践,不能只看书,很多时候,你在书上看懂了,没有用,自己写不来,或者并没有真正理解,比如切片,你要真只看书,你可能就理解的不透彻,比如带负数的切片。看到函数的时候,自己更要多动手,python作为函数式编程的代码,你甚至可以只写函数就可以实现所要的功能,包括复杂的应用开发。


学习完基础后,就需要找一个方向,工作的需要个人一直是数据方面

python的应用场景比较丰富,人工智能、数据挖掘、网络爬虫、web应用都可以开发,对于我来说平时工作接触的是数据,所以,基本上碰到问题了,就通过python来解决,比如,定时地将数据发送到业务方,这个时候就需要我掌握数据库的操作和邮件的操作两方面的内容。对于数据一般来说是mysql,当然也有其它的,不过应用最多的是mysql,如何利用python实现对mysql库的操作就是需要学习的一个知识点,操作完数据库后,数据的发送就涉及到对excel的操作和邮件的操作,这样的话一步一步的深入,你会发现很多知识点就可以通过实际的工作得到转化。

总的说来,自学Python我是通过看书去学习,当然也可以通过博客,视频的学习来达到,学习好后,到应用层面,其实身边很多的应用都可以使用,比如爬取网页的数据然后存储到数据库,并且在写入成功后发一个邮件告诉你写了多少条记录到数据库。


Bean蚕豆


很高兴回答你的问题

首先,为啥要学习Python?这里我说下我的想法。我去年刚毕业,到今年7月份就刚好毕业一整年,在这期间,我报了一个Python学习班,但所教内容都被我在网站上找到了相似内容。它带给我的可以说是当时走投无路的希望,但也是现在稳定生活的经济隐患。但我不会放弃,因为我喜欢它,Python附有的独特魅力,让我可以将它作为副业展现在arduino、microbit,又或者是数据分析等领域。

找到了自己的初衷后,不要轻易改变。只有这样,我们才能真正领会。接下来聊聊怎么学习它。

第一,将Python知识进行结构化

对于一些小白,不要受广告效应影响,失去了自己的判断。再想学习Python之前,要了解它是什么?它可以做什么?为什么要学它?只有你对这三个问题有了答案,你才能去学习它。我这里给一个我学习Python的结构:

1.Python

数据类型等基础

2.Python

爬虫

3.Python

数据分析

4.Python

机器学习

5.Python

深度学习

而第一部分涵盖了运算符、数组、列表、字典等的基础了解与使用。在学习的时候先画一个学习的框架,对它进行结构化学习分析。

第二,付费网络课程助力

为啥这里说付费网络课程,现在网上很多免费课程,看着很吸引人。很多小白都相信可以学到很多内容,但这些其实是一种营销方式,空中建楼阁,万万不可。我之前也看了些免费课程,要不就是很深奥,看着很精彩、很刺激,但真正去操作起来很难;或者说你学会了敲代码,但却不知道为什么。学习Python,我拒绝做码农。那为啥一定是付费课程?不可以参加培训吗?其实培训是可以的,都是很厉害的工程师,但是工程师跟老师相比还是有很大差距的,特别是利益性的。老师会教你为啥是这样的,而工程师会教你怎么做来实现它,久而久之,你学会的是技能而不是创新、改进。这些都是比较侧面的,最主要的是价格高昂,而且学习内容趋于基础。教会了徒弟饿死师傅,也不是没有道理的啊。所以不要指望培训出来能马上成为一个经验丰富的Python工程师,最多就是在工程师的带领下,你进入了Python这门。相比下,付费网络课程,具有可移性强,价格实惠,内容丰富等特点。如果有视频加作业任务给到,那就最好了。

第三,分享点学习平台

第一:官网。直接百度搜搜Python就可以找到官网,当进入官网就可以浏览很多学习文档。像django、flask、scrapy等等都可以查阅到。但内容都比较基础。

第二:csdn,在这里,你可以下载源码,下载学习文档,以及交流心得来充分学习。

第三:git,这里是全球程序员的交互平台,在这里可以找到很多实战项目来进行学习。

更多精彩,敬请期待!


自主招生咨询导师


用我自身的经历来说吧,我自学python断断续续也有好几年了,因为之前没有任何基础,加上自己的耐心不是很好,

看教程的时候,总觉得自己懂了,可是一开始自己写东西的时候就懵了。一方面是因为自己对知识点记得不牢,二是

写的东西太少,不知道改如何把零碎的知识点给穿插起来。当然我学python纯属个人爱好,不靠这个吃饭,只是把它

当作一个工具想让自己在工作或者生活中锦上添花。

网上能找到很多培训机构学习python的脑图,也确实很详细。不过对于初学者来说,可能显得太详细,知识点太多,

还没有开始学就吓着自己了。下面就简单说一下自己的学习方法。

一. 先学习基础的语法。

大家都推荐的廖雪峰老师的教程就不错\thttps://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

还有菜鸟教程 http://www.runoob.com/python3/python3-tutorial.html 也不错。

二. 基础语法看的差不多,可以去慕课网看看视频,https://www.imooc.com/course/list?c=python 巩固一下基础知识。

免费的视频不少,还有一些项目实战,够学一阵子了。

三.\t基础知识过完以后就要找项目练手了。如何想往爬虫方面发展可以看看崔庆才老是的博客 https://cuiqingcai.com/

爬虫有太多项目可以练手了。百度一下就有一大堆,可以先从简单的练习。比如爬一些不需要登陆,没有验证码的一些网站(小说类的)

然后在试着爬需要登陆验证的,各式各样验证码的,ajax异步加载的。再然后学习框架(scrapy)。

四. 如果做web开发可以学习django,flask之类的框架。

五. 最好的教程就是看官方的文档了,不会英语可以借助chrome浏览器自带的翻译功能,实在不想看英文的话

看看http://www.pythondoc.com/

六. 坚持写博客,把自己在学习中遇到的困难,自己解决困难的思路,新的知识点自己是怎么把它弄明白的。

把它们都用文字的方式记录下来(博客园,csdn),都可以。一来可以作为自己学习的见证,二来以后在遇到

同类的问题,在自己的博客中就能找到解决的方法,不用去baidu,google大海捞针了。

当然除了系统的学习外,还有一种就是用到什么知识,现学什么知识。

想实现一个什么样的功能,不知道怎么着手开始,那就baidu,google搜索,看看前辈们是怎么做的,

他么用到了什么函数,什么库,自己在去学这些函数跟库。

然后用博客记录下来学习的过程。

不管什么方法都要坚持下来。遇到困难不要害怕,要想办法解决困难。比如显示一个九九乘法表出来,我不会用for循环,没关系,我会用print()啊,我print()出来总可以吧!

然后可以在学循环啊。先要把要求实现了,然后再考虑有没有更好的

方法。


gudukuaile


说说我自己的经历吧

1、从廖雪峰官网学习了1个月基础教程,边学边实践

2、然后开始学习django web开发,这个过程需要学习数据库,缓存,linux

3、主要是要学以致用,大概2年时间你就可以是一个中级初水平了,薪资在长沙大概 6-8K


IT多巴胺


我毕业于克莱门森大学政治学专业。我曾考虑过是否选择学习计算机科学专业,还在大一那年报名参加了“编程概论”课程,不过很快就退出了。实在是太难了。

毕业后我一直住在硅谷,我发现我需要学习编程。一年后,我成为了eBay公司的一名中级软件工程师。我不想让大家觉得这是很轻松就能做到的。实际上,这是极具挑战的一件事。在这一年的不断尝试努力过程中,我得到了很多乐趣。

1.1 自学的优势

虽然与拥有计算机科学学士、硕士甚至是博士学位的同事一起工作的压力很大,但别忘记了你还有“自学的优势”。你选择学习Python编程,不是出于老师布置的任务,而是因为你内心学习的渴望,这一点是你所拥有的最大优势。苹果公司的创始人斯蒂夫·沃兹尼亚克(Steve Wozniak)就是一位自学成才的程序员;还有因在美国宇航局的阿波罗登月计划中做出卓越贡献而获得总统自由勋章的玛格丽特·汉密尔顿(Margaret Hamilton);还有Tumblr 的创始人大卫·卡普(David Karp),Twitter的创始人杰克·多西(Jack Dorsey),Instagram 的创始人凯文·斯特罗姆(Kevin Systrom),他们都是自学成才的程序员。

1.2 为什么应该学编程

不管你从事什么工作,编程都有助于你的职业发展。学习编程将给你自己赋能。我喜欢尝试新想法,时刻都有希望启动的新项目。学会编程后,我就可以坐下来自己实现,而不需要依赖他人。

编程也会提升你在其他方面的技能。因为你熟练掌握了问题解决能力,鲜有其他工作不会因此而受益。我最近要在Craiglist上租房,搜索并筛选房子是个非常费力的活儿。但是我写了一个程序来代替我搜索,最后将结果以邮件形式发送给我。学会编程,将把你从重复性工作中解放出来。

如果你想成为软件工程师,市场上对这类岗位的需求也日益增长,但是符合要求的候选者却总是供不应求。到2020年,预计将有一百万个编程岗位空缺。即使你的目标不是成为软件工程师,科学和金融等领域的岗位也开始倾向那些拥有编程经验的申请者。

1.3 没有编程经验怎么办?

如果你之前没有任何编程经验,担心自己无法胜任编程工作,我想想告诉你的是:你完全有能力做到。人们对程序员有一些常见的误解,比如程序员都得擅长数学。这是错误的印象,不过编程确实是一件困难的工作。幸运的是,专栏涵盖的内容将让这一切变得比你想象得更加容易。

为了提高编程技巧,你应该每天练习编程。挡在你面前的唯一障碍就是无法坚持,所以我们要采取一些措施确保自己能够坚持不懈。准备一张检查清单,来确保每天都有做练习,而且也能够帮助你保持专注。

如果你还需要其他帮助,效率专家Tim Ferris建议采用如下技巧来保持驱动力。事先给家人或朋友一笔钱,如果你在规定的时间内完成了目标,就让他们把钱还给你,否则就将钱捐献给你讨厌的机构。

1.4学习前你需要了解

《零基础学Python》不仅是教你如何使用某种特定的语言编程,还会介绍标准教材中所不包括的其他所有知识点。专栏内分享的是我在成为软件工程师过程中不得不自学的内容。专栏不适合那些想要随意了解下编程知识、将写代码作为爱好的人,而是专门写给那些希望以编程为职业的人。不管你的目标是成为一名软件工程师、企业家,还是在其他的岗位上使用编程技能,你都是专栏的目标读者。

学会一门编程语言还不够,你还需要学会其他技能,才能像计算机科学家一样地工作。我会教授大家我从编程新手到专业软件工程师过程中学到的一切。这个专栏,是为了向有志于编程岗位的人分享他们需要掌握的知识框架。

我经常从自学编程的朋友那听到这样的反馈:我现在该做什么?我还不是一名程序员,也不知道下一步该学什么?因此我设计了下面的专栏结构。

1.5 专栏的结构

我的目标不是包罗你需要了解的每个主题的所有细节,而是提供一份指引——一个编程职业发展所需要的所有技术路线图。由此我将专栏分成五个部分。

第一部分:编程简介。让你尽快写出自己的第一个程序,最好在今天。

第二部分:面向对象编程简介。这部分将介绍不同的编程范式,着重阐述面向对象编程。你会开发一个游戏,体会编程的强大能力。读完这部分后你会沉迷于编程。

第三部分:编程工具简介。将介绍提升编程生产力的不同工具。这时,你已经沉迷于编程,并希望变得更好。你将会学习相关的操作系统、使用正则表达式提升效率、安装并管理他人的程序,以及使用版本控制与其他工程师协作的知识。

第四部分:计算机科学简介。将简要介绍计算机科学知识,主要涵盖两个主题——算法和数据结构。

第五部分:找到工作。最后一部分是关于最佳编程实践,如何找到软件工程师的工作,团队协作以及程序员的自我提升。我会分享如何通过技术面试与团队协作的建议,以及如何进一步提升自己的技能。

1.6 从终点出发

我学会编程的方式,与计算机科学通常的教学方式正好相反。专栏的结构是根据我自己的方式组织的。一般来说,你会先花很多时间学习理论,理论知识学的太多以至于许多计算机科学的毕业生甚至不知道如何动手编程。杰夫·阿特伍德(Jeff Atwood),在其博客“为什么程序员不会编程”中写道:“和我一样,许多人都碰到了这样的情况,编程岗位的200位申请者中,有199个根本不会写代码。重申一遍:他们一点代码都不会写。”这种现象直接促使Atwood发明了FizzBuzz代码挑战,一种用来在面试中筛选申请者的编程测试。

《王者之旅》电影中的主角乔什(Josh Waitzkin),在《学习的艺术》一书中回忆了他如何反向学习国际象棋。他没有和其他人一样研究开局,而是从学习象棋残局(棋盘上只剩下少数几个棋子)开始。这样做让他对国际象棋有了更深的理解,并赢得了多次大赛冠军。与此类似,我认为先学习如何编程再学习理论的方法更高效,因为你会拥有了解背后原理的强烈驱动。这就是为什么专栏一直到第五部分才介绍计算机科学理论,而且内容也尽量精简。虽然理论很重要,但是在你拥有了编程经验之后,理论的价值才更大。

1.7 专栏的格式

专栏的各个章节紧密相关。如果你读到了某些看不懂的概念,可能在前一章已经做了介绍。专栏内尽量避免重复解释,所以牢记这个特点。在给重点词汇下定义时,会使用斜体。每个章节的末尾都有一个词汇表,对该章内出现的斜体名词进行解释。

专栏代码段前的注释为GitHub的网址,读者可于网站直接复制代码。

1.8 专栏使用的技术

为了让读者尽可能的积累编程经验,专栏会介绍多种技术。在某些情况下,必须在许多不同的技术中做出选择。在第20章“版本控制”中,我们将会学习Git的基础知识。Git是一个流行的版本控制系统,选择介绍Git是因为笔者认为它已经成为版本控制的业界标准。专栏中用Python来编写大部分的编程示例,因为它是一门很流行的初学者语言,而且即使从来没有使用过Python的人学习起来也比较简单。此外,目前几乎每个领域对Python开发者的需求都非常大。不过,专栏会尽量做到内容与技术无关——注重概念,而非技术本身。

1.9初学者需要准备的工具

首先需要有一台计算机,以便跟着每个专栏内容进行示例练习。计算机有一个操作系统(operating system),即一个扮演人与计算机物理硬件之间的中间人的程序。可以在屏幕上看到的称为图形用户界面(Graphical User Interface,GUI),它是操作系统的一部分。

台式计算机和笔记本电脑目前有3种常用的操作系统:Windows、UNIX和Linux。

  • Windows是微软推出的操作系统。
  • UNIX操作系统发明于20世纪70年代,目前最流行的UNIX操作系统是苹果的OS X。
  • Linux则是目前世界上大部分服务器(server)都在使用的一款开源操作系统。服务器指的是执行托管网站等任务的计算机或计算机程序。

开源(open-source)意味着软件不归某个公司或个人所有,而是由一群志愿者维护。Linux和UNIX都是类UNIX操作系统,意味着二者之间非常相似。


如果你喜欢欢迎关注我的专栏《零基础学Python3》,有问题欢迎给我留言,我会第一时间反馈给您。https://learning.snssdk.com/feoffline/toutiao_wallet_bundles/toutiao_learning_wap/online/article.html?item_id=6681141509619712520&app_name=news_article


异步社区


邀请我也没用,我不会。

但是记住我说的一句话,软件是非常依赖的行业。我一行java一行oc也不会写,但是最后他们的疑难问题都要我来定位,为什么,因为他们不熟悉问题的本质和系统的本质,我了解。不管什么语言,最终都是为了实现功能,那么相似的功能就一定有相似的架构,所以我知道在什么时间什么地点什么条件下应该做什么事情,在这个背后是多年的经验积累和对行业和架构的洞察。


虫儿飞122462026



代号六零一


正在学习中,给你推荐一下。我之前看过某机构一两千的课程,太基础了,零散的很,一点也不实用。后来也没朋友给我推荐了尚学堂高淇400集,哈哈,刚开始不相信,竟然是免费的,现在这么慷慨的机构不多了。现在正在学,很有意思,很有用,适合小白。学习这段时间,很认可,所以正计划学完基础参加他们的百战程序员班级深入学习,哈哈,祝我好运!


我是双鱼座2020


首先给自己规划一条系统的学习路线,先学什么,后学什么。然后按照这条学习路线,每天给自己安排一定的学习任务,保证代码量。在学习的过程中,做好笔记,把重要的知识点都记录下来,方便以后查阅和复习,定期对以前的知识点进行归纳和总结,不至于学了新的知识忘了以前学过的。

Python比较简单,容易学习和掌握,对于没有编程基础的人来说比较容易上手。开发环境的搭建也比较方便,不需要配置复杂的运行环境,更不需要配置分布式集群,下载安装就能做实验了。

了解过"如鹏网"的Python学习路线,挺全面的,可以参考一下。

第一部分:Python语言基础

第二部分:数据库开发技术

第三部分:web前端

第四部分:Python web开发

第五部分:Python web项目

第六部分:Linux

第七部分:NoSQL

第八部分:数据可视化

第九部分:爬虫技术

第十部分:人工智能


分享到:


相關文章: