第4天 Python

1.开始学习之前的准备

有了前3天的思维基础,后面几天,我想分享一下“如何快速学习不同的编程语言”。

为什么要“快速”学习”“不同的编程语言”呢?

第一,语言是前文提到的“技术地图”的基础

任何框架都是基于某种编程语言实现的。

编程语言就好像练习任何一种武功秘籍之前必须掌握的基本功。

第二,学习不同的语言有助于扩展“技术广度”。

前文提到的“技术地图”中,有的框架实现用的是python,有的组件实现用的是Java。

有了不同语言的基础,就可以更快的探索并掌握一种新的框架。

深想一层,为什么不同的框架采用不同的编程语言呢?

抛开商业因素,任何编程语言都有自己产生那一刻要解决的特定问题、适用的场景、语言的优缺点。设计语言的大师通常会把他的编程哲学融入在这种语言中。

了解越多的语言,构建“技术地图”的门槛越低。

第三,快速,只是一个生产效率问题。

假设学习一种新的语言需要半年,而技术地图中的框架、组件又在以周为单位的速度不断推陈出新,那么掌握“技术地图”应该是一个不可能完成的任务吧。

怎么快速学习一种编程语言呢?

在《写给程序猿新手的入门书》系列中,我们再次明确一下学习要达到的效果:

(1)达到实战够用的程度。

曾经在市面上很流行《21天精通XXX语言》的书,个人感觉误人子弟。

要“精通”一种语言是一件很难的事情,即便一个程序猿10年坚持只使用一种编程语言,也会时常发现原来还有某些知识盲区。

但,实战中,能够用到的知识点是很有限的。

一个有经验的程序猿需要学习一种新编程语言的时候,绝对不会抱着一本《Thinking in XXX》的典籍掉书袋。

实战,够用就行。

(2)掌握“达到实战够用的程度”的学习方法。

无论哪种编程语言,只是立足于“达到实战够用的程度”,是有固定套路的。

这也就是时常有新手程序猿惊叹某位老程序猿:“你学东西好快啊!”

不是老程序猿有多高的智商,只是他掌握了快速学习一种新语言的方法。

下面,我们就从Python这种编程语言开始演练。


2.从Python开始

2.1.从“面向过程”的角度看Python

(1)Python于“面向过程”的作用

面向过程的核心要务是将一个任务分解成有序的若干步骤。分解得到的步骤,清不清晰、顺不顺畅,这是设计问题。

而,Python,这种编程语言,起到的作用仅仅是描述这些步骤的一种工具箱。

(2)Python提供了哪些工具

函数,变量,逻辑(判断/循环),数据结构(字符串/列表/元组/集合/Map)

依然通过一个例子进行说明:

假设,我们接到的任务是“制作一盆油焖大虾”。

我们先来按照“面向过程”的思路设计一下:

图片发自简书App

函数:每个步骤就是函数

图片发自简书App

变量:以第4步为例,调料的分量就可以当做变量。

图片发自简书App

逻辑(判断/循环):每个步骤内部都有自己的逻辑

例如:“加啤酒”这一步,分3次倒入,每倒1次,等待1分钟。——这就是“循环”

例如:“焖”这一步,如果发现大蒜变软,则可以关火。——这就是“判断”

图片发自简书App

变量的类型有很多种,常用的是,字符串/列表/元组/集合/Map等

这些与《数据结构》中的数组、链表、字典等等都是一样的。

(3)Python示例

Python示例

运行结果:

Python运行结果

2.2.从“面向对象”的角度看Python

(1)Python于“面向对象”的作用

Python通过提供类、对象等工具,描述面向对象中划分的类别

(2)Python提供了哪些工具

1个类、类的关系(组合、继承)

还是用上面的例子来讲解:整个做油焖大虾的过程,如果由1个人负责,职责不清楚,并且,为什么要做油焖大虾呢?

于是,我们按照“面向对象”来划分了3个类。

吃货类:负责要求“做油焖大虾”,负责“吃油焖大虾”;

洗虾工:负责洗虾;

大厨:负责做油焖大虾;

无论是吃货类、洗虾工类、大厨类,都有自己的属性、方法——请参见“第2天 关于面向对象”

吃货类包含了洗虾工类和大厨类——组合

洗虾工的爸类有一个帅不帅的方法,洗虾工作为儿子就继承了——继承

图片发自简书App

(3)Python代码示例

定义的洗虾工的爸、洗虾工、吃货、大厨类:

调用示例:

代码运行结果:

2.3.从“技术地图”的角度看Python

(1)在前端的应用

(2)在后端的应用

这里多说一句,在如今大数据、AI的热潮中,python在后端开发中,稳稳的占据了“数学计算”和“数据采集和解析”的地位。

2.4.Python其它的“常(奇)用( 巧)技(淫)巧(技)”

文件操作:读写文本文件、office文件等

文件解析:xpath等

Python的“三引号字符串”

Python的特殊函数、属性:__name__、__dict__、__init__、__del__、@classmethod等

上述“常用技巧”不在本文的主题范围,后续单独列举Python文集展开。

3.总结

如何快速学习一种新的编程语言(Python)?

从“面向过程”的角度,快速找到Python中与面向过程有关的知识点。

从“面向对象”的角度,快速找到Python中与面向对象有关的知识点。

从“技术地图”的角度,快速浏览Python在技术地图的各个领域中已有的开源框架。

从“常用技巧”的角度,快速找到Python与其它语言不同的、常用的小技巧点。

按照上述方法,算得上快速入门了,然后就是在实战中,逐步熟练各个技术点了。

今天就到这里了。。。over。。。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,699评论 25 708
  • 今天看到一个帖子,命名是程序员面临的最讨厌问题。 命名其实代表了对问题的认识,名字可以自然地区分出问题的层次,典型...
    ww4u阅读 255评论 0 0
  • 跟在幺姨后面,除了担心,外婆脸上再看不出任何表情。她佝偻得像老犁弓一样,走到离病床不远的椅子边,安静坐下,...
    蝈蝈2018阅读 493评论 2 15
  • 生活会给你很多阻挠,你可能感到受委屈和无助,但是请保持一颗向上的心,一切总会变好的。
    萘妩阅读 351评论 0 0
  • 由于公司业务需要,与鹅厂进行合作,为了防止泄密,提供可以连接控制设备的 SDK 给他们是使用。 普及一下静态库和动...
    lusen_b阅读 606评论 0 0