百科问答小站 logo
百科问答小站 font logo



如何学习Python,以及新手如何入门? 第1页

  

user avatar   breaknever 网友的相关建议: 
      

每当回答这类问题,我可能都要先显摆一下…我是一个在GitHub通过写Python拿了近万Star的野生选手。野生的原因是我没有系统的学习过Python,而是强行通过各种机器学习项目,以及十年的C++基础迁移而来的。而在这种前提下,我常常去搜C++的xxx功能在Python中怎么做。经过了几年的搜索,我终于成了半个Python专家,但过程是痛苦的。就像我写过的「如何用3个月零基础入门「机器学习」,在这篇回答中我也会针对不同人群和阶段给大家推荐一些适合的入门方法。

在这之前,先谈谈为什么要学Python。Python在人工智能是当之无愧的胶水语言。我以前在咨询公司做数据科学家的时候需要做大量的数据分析,从数据可视化到机器学习建模。虽然类似的分析也可以用excel或者其他dashboarding工具来做,但局限性主要有两点。首先是用Python分析可以比较深入,自由度很大,可以进行复杂的建模。而另一点是数据量的问题,比如excel在超过一百万左右条数据后就不能显示了,而现实场景下的数据往往会远大于一百万。而后来回到学校读博后,Python基本是人工智能领域的科研语言,从做传统的机器学习任务到深度学习,基本上都是以Python为框架在做。而即使并不需要在工作中直接使用Python,它也是入门编程化思维的最低门槛的途径。在未来的以编程为基础的时代,我相信Python的重要性还会继续凸显。

入门阶段我会推荐两种方案,就像华山派的气宗和剑宗

第一种适合有大块时间,喜欢自己翻书研究的人,主要方案就是根据兴趣和项目推动学习。简单来说,就是通过直接做项目来完成学习。在这种思路下,我会推荐《machine learning in action》或者《python machine learning》这种机器学习导向的「算法书」,比如通过实现一个电影推荐系统来学习Python的使用,这类书一般都配有对应的代码等。当然这类方法适合兴趣驱动或者本身有一些其他语言基础的人,比如在校学生等。而也有同学喜欢通过跟着视频进行系统的学习Python编程。我觉得视频虽然完整,但是信息浓度往往比较低,也就是冗余的内容很多。且和书本一样,基本上是固定顺序的呈现内容,比较固定。而编程是一个需要即时反馈的东西,你看半天视频并不会直接去编程,所以互动性和反馈性是一个问题。扪心自问,绝大部分收藏的视频是不是都会永远躺在收藏夹里?

因此另一类入门方法是通过利用碎片化时间的方法进行互动编程。任何编程语言其实都能被分解为很多基础的小模块,比如打印、逻辑判断、循环,以及再高级点的函数方程等。在了解了基本模块化后,进行复杂的功能其实只是拼接,就像电路元件的组合。我举个简单的例子,给定一个用户的年龄和性别,如果TA是成年男性,则打印出他的名字就可以被简单的被拆解为{判断性别}+{判断年龄}+{如符合条件则打印}。因此在理想情况下,我们可以通过学习基本模块,并拼接它们进行更复杂的学习。而这种情况下传统的书籍有非常大的局限性,就是它的顺序是固定的,而大部分情况下一个任务需要的多个基础模块是并列的。所以对于喜欢学习基础模块的朋友我会觉得互动类的学习软件或者app可能更合适。这类app现在也越来越多,绝大部分都能支持在电脑和ipad上学习,比如百词斩开发的「夜曲编程」。我个人觉得这类app比较适合以前没接触过编程且时间分散的朋友,可以不时地通过完成学习1-2个小模块逐步提高(见下图)。我自己为了写入门攻略,体验了免费教程。觉得夜曲的确是可以作为小白的编程入门第一课,毕竟当年考GRE时就是靠着百词斩刷单词,而将记忆曲线拓展到编程上也是个不错的构想。但当然跟着app学习不代表你不能拓展到实际项目中去。我的建议是同时做一些相关的感兴趣的实际项目,比如像前文提到的用所学的知识去建立一个推荐系统等。

我觉得夜曲的设计是符合人的学习特性的,即我们需要有不断获得「小小成就」的感觉,这样才能把一个复杂而庞大的学习内容真正的消化下去。虽然我觉得学习Python和背单词并不完全一样,但偶尔用卡片式的方法进行抽样复习,是适合我们一般人的方法。而制作精良的app也保证了知识点的正确性。题外话,要警惕市面上很多拼凑而来的学习课程,很容易学歪。

而在进阶阶段我也有几类不同的推荐

如果英语水平比较过关的话,我觉得一个不错的选项是跟着进阶的Python书进行学习,比如我自己就有 《fluent python》,中文译名《流畅的Python》。另一本我很喜欢的是Brett Slatkin写的《effective python》,里面介绍了59个让Python写的更专业更高效的方法,我也很喜欢偶尔看几个小技巧提升一下。这类书籍的好处是已经经过了很多年的考验,适合单点突破,在某个方向上加深理解。但一般阅读门槛比较高,我推荐看英文原版的原因主要是翻译总是良莠不齐,而且相对比较滞后。

而如果是更喜欢互动式app学习的朋友,也可以在不同的app上获得更多体验,比如夜曲编程的付费版(从198到498对应不同的功能)会提供更多的编程练习题目以及项目实战,从免费版升级的话还会有优惠奖励。对于喜欢真人反馈的朋友而言可能是更好的选项,因为付费版可以得到助教的帮助和答疑,以及更多的实战项目和练习题。题外话,编程“练习题”这件事可能是当下求职市场上一个不可回避的问题。现在绝大部分科技企业在面试的时候都有编程面试,也就是说在固定的时间里(30分钟-1小时内)完成一道编程题目。从功利的角度而言,如果你的学习方案里面没有涵盖这个部分(比如看书或者视频自学的话),我会建议你考虑如何补上这个部分。

而学习过程中最痛苦的部分其实是重复

Python作为一门编程语言,练习和实战是核心的提高的途径。无论你采用那种方法入门和学习,一定要想办法能通过兴趣坚持下去。比如约室友或者对象一起学,也比如加入app或者网上的互助社群,学习往往需要相互鼓励才能坚持。

我自己的研究方向包括集成学习,指的是如何通过不同的手段和方法综合很多模型,提升学习效果。我认为Python的入门也是这么个道理,可能任何一种单一的方法都不是完美的,不妨双管、多管齐下,体验一下不同的学习方法,然后选择最适合自己的那条路,并坚持下去。愿你玩的开心 ,并学有所成。


user avatar   shuai-shuai-9-13 网友的相关建议: 
      

我努力工作,年收入突破百万。我楼下小卖部老板眼红了。

他说他每天7点开店,晚上10点关店,工作时间比我长,收入却比我低,这不公平。为此,他甚至发展出了一套小卖部老板人权理论,要求将卖给我的可乐从一瓶2块钱涨到100块钱。

他说之前他受太多委屈了,等他觉得委屈弥补回来了,他会把价钱降到一瓶4块钱的。但想像原来一样2块钱一瓶那是永远不可能的。

我默默想了一下,走多一百米,用2块钱在另一家店买了一瓶可乐。

这件事被小卖部老板知道了,他生气了,他跑去骂另一家小卖部老板,骂他不尊重小卖部老板人权理论,并且在我家楼下贴大字报隐晦地骂我。

你说我为啥讨厌他?

我不只讨厌他,我甚至想报警呢。可惜警察说这事他们管不了。

……

这件事还有后续。

后来,小卖部老板人权组织找到了我,跟我说我楼下的小卖部老板的小卖部老板人权理论不是正宗的,他们才是正宗的。

我说,那你们的是怎么样的?

他们说,我们卖3块。




  

相关话题

  Java里面的封装是不是多此一举? 
  程序员的成长离不开哪些软技能? 
  如何使用 GitHub? 
  在网吧写代码是怎样一种体验? 
  你对你认为比较漂亮的编程语言的语法有什么理解? 
  为什么有人坚信人类不可能基于 GUI 的操作方式,发明出比「命令式编辑器」效率更高的开发环境? 
  驼峰命名法该如何解决某些单词需要大写的问题? 
  一行 Python 能实现什么丧心病狂的功能? 
  如果2个月可以训练出一名合格的码农,那么相关专业出来的大学生,4年书岂不是白读了? 
  为什么不能计算两次哈希,以及在什么情况下不能计算两次哈希? 

前一个讨论
计算机专业大一寒假该如何规划?
下一个讨论
SQLite 的读写效率很高,有哪些使用其他数据库的理由?





© 2024-06-03 - tinynew.org. All Rights Reserved.
© 2024-06-03 - tinynew.org. 保留所有权利