分享

如何自学python呢?

 资源分享大叔 2018-01-22

互联网的快速发展和激烈竞争,导致专业Python工程师成为热门职业,各大公司对Python工程师的需求量都很大,要求也越来越高,优秀的Python工程师更是稀缺。

小编感觉Python入门相对容易,但是也需要系统地认真学习,在打好基础后坚持学习,成为优秀Python工程师也只是时间问题。

学习任何知识最重要的都是兴趣,如果经过一段时间的学习感觉不喜欢,那就不要强迫自己学习是很痛苦的,效果也不会好,毕竟这很可能就是以后很多年生存的技能,只要你肯努力,哪个行业都饿不死。

学习Python只需要三步,确定目标——找到适合自己学习方法——达到目的

就好比如我们要去上海或是北京,一定要确定方向,只有确定了方向才能确定路线,然后找到最适合自己的路线,如果钱够的话可以选择坐飞机肯定是最快的,也可以选择高铁,火车,走路,这些去的方式都能达到终点,而自学就是走路是最慢的,但其实不是最省钱的,因为你在路上花的时间和金钱更多。所以在这里奉劝那些零基础的学员们不要自学,往往超出自己能力范围的知识都需要先付出。

一张胜过千言万语的图

这个项目详细的图片记录了Python工程师牵涉到的各方面知识。在具备基本技能之后可以在里面找到学习的方向,完善技能和知识面,覆盖面非常广。包括各种知识点、工具、技术,非常全面。

基本开发工具

前提:用来做数据处理和相关的系统开发

刚学Python时,面对简陋的官方版idle和一大堆开发平台和发行版,不知道究竟如何下手。在进行多方尝试后,我最后的选择是Anaconda + Pycharm,用anaconda集成的ipython做工作台,做一些分析和小段程序调试的工作,用Pycharm写相应脚本和程序包的开发。这两个工具都是跨平台的,也都有免费版本。

具体来说Anaconda集成了几乎所有我需要的包库,包含了我整个工作流程,做数据分析的pandas\scipy\numpy、绘图的matplotlib、读写Excel文档的xlrd/xlwt,链接SQL数据库的SQLalchemy、机器学习框架sklearn等。对于Anaconda集成的两个工作平台,Spyder——一个类似于Matlab和Rstudio的IDE,是专注于面向数据的分析的,因为其特点也主要是数据区的存在,可以即时知道变量值的变化;Ipython——一个基于cell的shell界面,可以理解为python自带shell的增强版,它将程序分成一块一块的cell,每个cell可以包含多条语句,可以单独调试运行,并将结果保存在内存中,cell之间可以相互调用,并保持一定的相互独立。

可以说有了anaconda自带的这两个工具,足够做数据处理相关的工作了(本身anaconda就是一个为了数据科学而诞生的发行版),但如果涉及到脚本程序和包的开发,感觉spyder还是有点弱,在试过IDE,代码编辑器(比如visual code、sublime等)+插件,这两种方案后,我最后选择了集成度更高的成熟IDE——Pycharm替换spyder作为主要的开发平台,看我头像也可以知道我是一个喷气大脑的死忠,他们家的IDE真的很好用~理由如下:

1、首先作为学生,可以通过edu邮箱申请到Jetbrains全家桶,即便无法获取授权,Pycharm的community版本免费并且功能足够

2、对于Pycharm,可以方便快捷地切换python不同版本的解释器,甚至可以安装相同版本的python解释器配置不同的开发环境,这可以解决有些包之间冲突的情况,也可以针对有些框架按需装包;并且pycharm内置包管理,可以免去pip或者conda方式管理包。

3、Pycharm这个IDE的颜色方案、拼写补全、函数联想、函数跳转源代码、断点调试及debug等功能都让我用的十分顺手。

总之我现在的工作流程就是,先用对我需要的功能进行设计,而后在ipython界面下设计调试每个功能模块,调试成功后放到pycharm中组合起来,写成脚本文件,最后用Pycharm做调试形成成品。

Pycharm作为IDE还有两个功能值得使用,一个是可以结合unitest包做我们开发模块的单元测试,另一个就是与svn、git等版本工具合作进行我们程序的版本控制,此外,在最新版的pycahrm当中,除了左侧折叠显示程序层次,下方也有我们当前光标所在位置对应的层次,并可以方便进行跳转。

总之,用pycharm写python真是越用越顺手~

jupyter也是超好用的一个工具,而且jupyter不仅仅时一个可视化的python加强版命令行工具,还可以用来处理R。在我最新尝试使用的Sage(一个基于python的数学平台)在windows端也是使用jupyter作为交互平台的。需要补充的就是jupyter平台的tab键,有点类似于ide的联想输入和对象的方法联想,可以善加利用。

学习方法和学习目标

方法:

· 入门阶段反复阅读经典书籍的中文版,书籍中的每一个例子都动手实现并在浏览器中查看效果

· 在具备一定基础之后可以上网搜各种教程、demo,了解各种功能的实际用法和常见功能的实现方法

· 阅读基础语法L,函数,动手上项目标准全面完善知识点

· 阅读Python牛人的博客、文章提升对知识的理解

· 善用搜索引擎,百度

目标:

· 熟记前面知识点部分的重要概念,结合学习经历得到自己的理解

· 熟悉常见功能的实现方法,如常见语法错误,框架布局等。

入门之路

以下是入门阶段不错的书籍和资料

入门Python值得看的书籍,我简单推荐基本:

于我个人而言,我很喜欢Python,当然我也有很多的理由推荐你去学python.我只说两点.一是简单,二是写python薪资高.我觉得这俩理由就够了,对不对.买本书,装上pycharm,把书上面的例子习题都敲一遍.再用flask,web.py等框架搭个小网站.. 完美...(小伙伴们有问到该学python2.7还是3.X,那我的答案是:目前大多数实际开发,都是用2.7的,因为实际项目开发有很多依赖的包,都只支持到2.7,你用3.X干不了活.那你能怎么办.所以不需要纠结.等3.X普及,你写的2.7代码,都可以无痛移植,妥妥的不用担心.)

第一个

个人认为《Python学习手册:第3版》是学习语言基础比较好的书了.

《Python学习手册(第3版)》讲述了:Python可移植、功能强大、易于使用,是编写独立应用程序和脚本应用程序的理想选择。无论你是刚接触编程或者刚接触Python,通过学习《Python学习手册(第3版)》,你可以迅速高效地精通核心Python语言基础。读完《Python学习手册(第3版)》,你会对这门语言有足够的了解,从而可以在你所从事的任何应用领域中使用它。

《Python学习手册(第3版)》是作者根据过去10年用于教学而广为人知的培训课程的材料编写而成的。除了有许多详实说明和每章小结之外,每章还包括一个头脑风暴:这是《Python学习手册(第3版)》独特的一部分,配合以实用的练习题和复习题,让读者练习新学的技巧并测试自己的理解程度。

《Python学习手册(第3版)》包括:

类型和操作——深入讨论Python主要的内置对象类型:数字、列表和字典等。

语句和语法——在Python中输入代码来建立并处理对象,以及Python一般的语法模型。

函数——Python基本的面向过程工具,用于组织代码和重用。

模块——封装语句、函数以及其他工具,从而可以组织成较大的组件。

类和OOP——Python可选的面向对象编程工具,可用于组织程序代码从而实现定制和重用。

异常和工具——异常处理模型和语句,并介绍编写更大程序的开发工具。

讨论Python 3.0。

《Python学习手册(第3版)》让你对Python语言有深入而完整的了解,从而帮助你理解今后遇到的任何Python应用程序实例。如果你准备探索Google和YouTube为什么选中了Python,《Python学习手册(第3版)》就是你入门的最佳指南。

第二个

《Python基础教程(第2版·修订版)》也是经典的Python入门教程,层次鲜明,结构严谨,内容翔实,特别是最后几章,作者将前面讲述的内容应用到10个引人入胜的项目中,并以模板的形式介绍了项目的开发过程,手把手教授Python开发,让读者从项目中领略Python的真正魅力。这本书既适合初学者夯实基础,又能帮助Python程序员提升技能,即使是Python方面的技术专家,也能从书里找到耳目一新的内容。

第三个

《“笨办法”学Python(第3版)》是一本Python入门书籍,适合对计算机了解不多,没有学过编程,但对编程感兴趣的初学者使用。这本书结构非常简单,其中覆盖了输入/输出、变量和函数三个主题,以及一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲授到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。

【大牛评价】hardway(笨办法)比较适合起步编程,作为Python的入门挺不错。

第四个

在这里给大家推荐最后一本《集体智慧编程》

本书以机器学习与计算统计为主题背景,专门讲述如何挖掘和分析Web上的数据和资源,如何分析用户体验、市场营销、个人品味等诸多信息,并得出有用的结论,通过复杂的算法来从Web网站获取、收集并分析用户的数据和反馈信息,以便创造新的用户价值和商业价值。

全书内容翔实,包括协作过滤技术(实现关联产品推荐功能)、集群数据分析(在大规模数据集中发掘相似的数据子集)、搜索引擎核心技术(爬虫、索引、查询引擎、PageRank算法等)、搜索海量信息并进行分析统计得出结论的优化算法、贝叶斯过滤技术(垃圾邮件过滤、文本过滤)、用决策树技术实现预测和决策建模功能、社交网络的信息匹配技术、机器学习和人工智能应用等。

本书是Web开发者、架构师、应用工程师等的绝佳选择。

“太棒了!对于初学这些算法的开发者而言,我想不出有比这本书更好的选择了,而对于像我这样学过Al的老朽而言,我也想不出还有什么更好的办法能够让自己重温这些知识的细节。”

——Dan Russell,资深技术经理,Google

“Toby的这本书非常成功地将机器学习算法这一复杂的议题拆分成了一个个既实用又易懂的例子,我们可以直接利用这些例子来分析当前网络上的社会化交互作用。假如我早两年读过这本书,就会省去许多宝贵的时间,也不至于走那么多的弯路了。”

——Tim Wolters,CTO,Collective Intellect

第五个

其实我觉得很多人也在看《Python核心编程:第2版》.在我自己看来,我并不喜欢这本书.

这本书的原书的勘误表就有够长的,翻译时却几乎没有参考勘误表,把原书的所有低级错误都搬进去了。这本书的原书质量也并不好,书的结构组织并不合理,不适合初学者阅读。有人说,这本书适合进阶阅读,我觉得也不尽然。这本书很多地方都写的欲言又止的,看得人很郁闷。

继续提高

有了前面的基础之后,Python基本算是入门了,这时候可能每个人心中都有了一些学习方向,如果还是没有。

如果你现在还处于只看的懂,不会自己写,没有逻辑,要学会知行合一,多练习多敲,加强自己的逻辑思维。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多