首页 > 大数据 > 正文

Python学习,你必看的学习技巧

2018-09-06 13:42:18  来源:大数据观察

摘要:可以说“一切皆对象”这句话普适性是很强的,大家都在玩的王者农药,里面每一个对战英雄,每一个野怪,每一张地图都是通过面向对象的思想构建起来的。
关键词: Python
\
  Python(计算机程序设计语言)

  Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

  Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNU General Public License)许可。

  Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

  Python具有丰富和强大的库。

  它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

  常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。

  需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

  7月20日,IEEE发布2017年编程语言排行榜:Python高居首位 。

  2018年3月,该语言作者在邮件列表上宣布 Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。

  好啦,简单的介绍完Python,接下来介绍一下Python的学习路线吧!

  1. 基础知识

  Python最基本的语言特性和语法:

  变量

  数据类型与数据结构

  输入和输出

  运算符、表达式、语句

  控制流(顺序控制,选择控制和循环控制)

  面向过程编程

  面向对象编程

  异常处理

  组织代码

  标准库、第三方库

  针对面向对象这一块需要重点的讲一下,为什么会有面向对象?以及我们如何设计面向对象系统?这个思考的过程有助于你理解面向对象编程思想。

  可以说“一切皆对象”这句话普适性是很强的,大家都在玩的王者农药,里面每一个对战英雄,每一个野怪,每一张地图都是通过面向对象的思想构建起来的。

  如果一开始你觉得太复杂,大可把用「分而治之」的思想把复杂的对象break down,分解成多个简单合理的对象。

  任何复杂的系统都可以由若干个简单可靠的系统组成,多个简单可靠的系统有序地组织起来是可以实现强大功能的。

  举个例子,还拿农药来说,”英雄“是可以作为一个基类的对吧,每个英雄都有血条,移动速度,AD,AP,物防,法扛等等。

  李白平A后裔一下,这是对象之间的通信(或者说交互)。后裔放大打中李白,李白眩晕,这一系列的触发过程都可以通过面向对象来建模。

  在掌握了语法特点,掌握了面向对象的思想之后,我们应该能够在控制台(windows或者mac的命令行)里边实现一个有意思的程序。

  这个程序应该解决现实生活中的一个实际问题。比如出现一个职位的发布和管理系统。有以下功能。

  我们可以录入职位信息。保存到文件上。我们还可以加载职位信息。按多种条件去查询,比如按关键字按城市。按薪资范围。按商圈工作年限等等。

  在做这个的过程中,自己需要设计一个很好的面向对象系统。也把Python里常用的语言基本特性都用到了。

  达到这个阶段算是勉强及格了吧,不过仅仅是在语言掌握层面。如果想当一个合格的研发工程师,还需要掌握很多其他技能。

  2. 进阶的阶段

  现在的开发大部分是基于web的,比如app要调web接口,pc端肯定也要调web接口,所以我们不能光在控制台里面玩。

  这个时候需要了解,http协议和Python web开发。我们可以重做前面提到的求职发布系统,学习基于Python web如何实现。

  这个时候你需要实现若干个接口:

  用户端:

  用户注册

  用户登录

  请求首页刷出默认的职位列表

  筛选职位列表

  根据城市

  根据关键字

  根据薪酬

  根据工作商圈

  管理后台:

  登录

  发布职位

  更新职位

  删除职位

  为了实现以上接口,你需要弄清楚什么是GET,什么是POST请求,什么场景下用GET,什么场景用POST。

  你还需要明白一个Python web开发框架,要明白一个http请求到了web框架之后,框架做了什么事情,如何在里面实现业务逻辑。

  哪些数据是服务共享的,哪些数据是用户/请求独享的。

  此外,应该学会Python如何操作数据库实现增删改查,大部分的任务都离不开增删改查。

  比如我提到的发布职位就是create的过程,更新就是update,还有删除是delete,读是read。江湖有一个戏称CRUD boy。

  如果能顺利度过进阶阶段,你应该能举一反三实现其他类似系统了。比如现在很火的分销,拼团,还有新闻Feeds等等。

  好像我没怎么提数据结构和算法,这个要看个人追求。如果你要在最短时间内学会Python开发,恐怕是没时间学好数据结构和算法了,能掌握自带的数据结构用法就行。

  如果你的学习时间充足,我的建议是一定要学数据结构和算法。

  为了以后长期的发展,为了人民币,一定要学好数据结构和算法,我简直苦口婆心地劝啊。

  3. 工业界经验

  最后一个阶段是实际的工业经验。这个阶段,你应该对公司用的基础架构,如RPC,数据库缓存消息系统中间件,烂熟于心。

  同时应该掌握最基本的系统设计的技巧。知道如何根据一个实际需求,设计一个高可用,高性能高扩展性的系统。

  实际上我觉得第一个阶段是最容易的,第二个阶段会碰到一些坑,有时候不好解决。

  在第二个阶段,你可能需要比较好的自学能力,或者有一个好的学长导师。第三个阶段需要比较体系化的训练和思考。

  如果说你的系统设计能力ok,甚至经验丰富,再加上你不错的算法,你肯定有一份好工作,薪资可能说多了显浮夸,但优秀的应届生很多人超过30w,甚至50w已经是常态了。工作3-5年的过百万的也大有人在。

  这个时代,程序员虽然辛苦了一点,但无疑碰上最好的时代了。
第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:zhangxuefeng

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。