首先呢,和其他的各种学习都一样,你一定要明白你学习的目标是什么。有的人想要通过学习Python,转行成程序员,实现行业上的转变;有的人希望通过学习Python,在现有的岗位上提升自己;当然也有很多人只是从众,说看到很多人都在学,那不如就学一学。

学习的目的性很重要,因为这样第一是可以给你树立一个远方的方向,你朝着这个方向奔跑,那跑起来就没有那么辛苦,每天都可以看到离目标前进了一些;第二是你可以根据自己的目标,去针对性的学习,例如运维开发、Web服务、数据分析、机器学习等等各个方面的细分领域,去安排自己的学习路径。

回到我自己身上,当年在学校中开始学习,C++是必修的课程,学完之后虽然能够用来完成一些有意思的功能(比如我们当年的大作业就是使用MFC去编写一个地图应用),但是当时一点都没有让我感到编程的乐趣。

我是如何开始Python的学习的呢?当时我有一个目标,是想要去喜欢的一个网站实习,那个网站是用Python进行开发的,以此为契机开始了自己的学习。

对于学习编程而言,可能很多课程、很多同学都会陷入一个陷阱,那就是只知道要学什么,但却不知道为什么去学。如果没有跳出这个陷阱,别看课程上教授的内容很多(我们当年的C++就学了一年呢),但完全没法将学习编程的过程变为自驱的过程——也就是学习本身应该是推动你去进一步学习的。

我们回过头来看看编程的基础,总共就四大块:

这四个基本元素难么?实际上很多同学可能用一天的时间就扫完了对应的知识点。但是简单么?实际上也不简单,因为很多同学,甚至可以毫不夸张的说:有超过70%的普通工程师都还不能脱离搜索引擎写出只有上述的逻辑的业务代码。

编程的本质是什么?本质是利用编程语言,命令计算机按照自己的意思,符合一定的流程去完成功能。学习Python和学习其他的各种编程语言没有特别大的区别,都是要理解“我学的这段代码,它能让计算机完成什么样的事情”。

举几个栗子:

二进制

有很多计算机基础的书籍和课程,上来就是一大堆二进制的计数规则,有的同学可能理解得好些,知道在计算机里,我们只能够用01来表示各种数据,因此也知道了整型是如何存储上去、浮点型是如何存储到二进制上去的。但是随着时间的推移,一般的编程工作根本不会涉及到如何去操纵二进制的数据,只要不经常用,很快这个知识点就会被淡忘了

实际上二进制还可以怎么在现实世界中发挥作用呢?0和1,实际上是可以表达某个事物是否具有某一属性的,比如数据分析中常用的RFM,就是要去判断是否新用户、是否充值、是否大客户、是否频繁购买。而这样的表示实际上就可以通过二进制进行操作:

既然可以用二进制存储某一个用户的标志了,那么就会涉及到:如何读取出来、如何设置上去,也就是读-写的逻辑。

计算机世界有非常多的地方都用到了这个技巧:如下图所示:

控制流:循环、判断

控制是编程最核心的内容之一,因为直接决定了我们如何让计算机帮我们完成繁琐的、重复的工作。

在Python中,循环也和各种数据结构能够无缝连接起来。

基础类型

除了上面我们讲到的整型,字符串这个数据类型也非常重要,整个互联网都是基于字符串和更底层的字节流的。

我们在网页上看到的知乎,也是由客户端组装HTTP请求、服务端返回HTML、CSS、JS、json完成的整个过程,这里面涉及到的都是如何处理字符串。

在使用爬虫,在各种网页中读出数据的时候,就一定会涉及如何处理字符串。

而绝大部分对字符串的处理,Python的字符串成员函数都已经包含了。

数据结构

Python中有四种最常用数据结构,tuple、list、dict、set。

什么是数据结构,实际上是数据按照一定的规则,排布在我们的内存中,以及可以通过数据结构的特性,完成一定的功能,例如列表可以用来做顺序的数据存储,排队、堆积的书籍,都是列表的一种具象表现。字典则可以用来做快速的查找,平时由首字母查到字典中的范围、查看对应关系都可以用字典来表示。

在理解了这些数据结构之后,完成日常的工作就基本没有问题了。

记得当时我学完这一块,就可以用它算出每天空闲的自习室了,实际上就是set的求交集的功能:第一节课没有课的自习室是S1,第二节课没有课的自习室是S2……最后拿到一整天的全部自习室的安排,就把这些个自习室全部求一边交集就好了。这个功能还是相当方便的。

标准库和第三方库

为了简化自己的工作,标准库和第三方库都是非常有必要的,因为很多功能都是前人已经完成的,例如实现一个计数器、发起http请求、解析html网页,以至于现在Python丰富的数据处理生态,从pandas,到numpy,到机器学习sklearn,到深度学习也有TensorFlow和PyTorch。

这些库实际上提供的就是拆箱即用的工具包,可以免费、自由地获取,然后通过短短的几行代码,完成特别繁杂的操作。

最后,学习Python到底是在学什么,很多工作了很多年的工程师都无法脱离搜索引擎,这是为什么,实际上就是他们并没有完整地掌握Python的基础。这些基础实际上就是建筑师的砖头、画家的颜料、印刷术的活字。

编程就是将自己学会的东西组装出程序来,因此真正属于自己的这部分,是你能够用来自由地舞动键法的武器。在编程世界中大杀四方,不仅要学好基础,把自己的武器打造得锋利,而且学习剑法最好的方式是上场杀敌,不如你想想最近有什么工作如何用编程解决,它可以是处理一大批excel文档,也可以是从网页上把所有数据一次取下来,还可以是把庞杂的文件夹整理清楚。

当然!千万别忘了:一场战争之后,最重要的事情是仔细回顾,前面写的程序涉及了哪些基础知识,哪些基础知识是你还掌握不好的,能不能用更Pythonic的方式解决对应的逻辑。

正确的学python方式的更多相关文章

  1. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  2. 简学Python第一章__进入PY的世界

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  3. 小朋友学Python(4)

    Mac下安装Python 3 Mac系统会自带Python 2.7.x.安装Python 3时,不要卸载Python 2.7.x,因为有Mac系统有一些库会依赖于Python 2.7.x. 安装步骤: ...

  4. D06——C语言基础学PYTHON

    C语言基础学习PYTHON——基础学习D06 20180821内容纲要: 面向对象初级学习 1 面向对象 2 类 (1)封装 (2)继承 (3)多态 3 小结 4 练习:选课系统 5 课外拓展:答题系 ...

  5. 我们一起学Python之——认识Python"规则"

    前言: 开学后,跟预想的一样,开学第一天我们就开了Python,虽然之前早就预料到了,但对于一直学Java的我来说,内心还是有一些涟漪的.总归还是要接受的,还不如振作起来,认真对待.我决定从最简单并且 ...

  6. 小白学 Python 爬虫(7):HTTP 基础

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  7. 小白学 Python 爬虫(10):Session 和 Cookies

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  8. 小白学 Python 爬虫(21):解析库 Beautiful Soup(上)

    小白学 Python 爬虫(21):解析库 Beautiful Soup(上) 人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前 ...

  9. 小白学 Python 爬虫(32):异步请求库 AIOHTTP 基础入门

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

随机推荐

  1. mysql数据库 事务和索引

    1.MySQL数据库特性:  原子性(atomidity) 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一 ...

  2. Linux安装中文字体_宋体

    E&T: CentOS_7.4 64位; mswfonts.tar.xz; Xftp5; Xshell5; 最近在完成合同电子签署时,合同的中文参数在服务器出现中文乱码问题, 编码一致且正确, ...

  3. 学习笔记TF065:TensorFlowOnSpark

    Hadoop生态大数据系统分为Yam. HDFS.MapReduce计算框架.TensorFlow分布式相当于MapReduce计算框架,Kubernetes相当于Yam调度系统.TensorFlow ...

  4. tensorflow 代码阅读

    具体实现: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/framework 『深度长文』Tensorflo ...

  5. SQLServer 账户当前被锁定

    嗯,被攻击了一波,烦躁很 ‘帐户当前被锁定,所以用户 ‘sa’ 登录失败.系统管理员无法将该帐户解锁’解决方法 如果短时间内不停连接,就会被SQL SERVER误认为是这是攻击,会将此账号锁定. 要用 ...

  6. CS萌新的汇编学习之路(其实是老师作业呵呵哒)Learning of Assembly Language

    第一节课学习汇编语言,做笔记,做笔记 1.概念 首先是汇编语言这门课程的定义以及对于学习高级语言.深入理解计算机系统的作用 软硬件接口机器语言 汇编语言 高级语言 关系 机器语言和汇编语言可移植性差 ...

  7. Python importlib(动态导入模块)

    使用 Python importlib(动态导入模块) 可以将字符串型的模块名导入 示例: import importlib module = 'module name' # 字符串型模块名 test ...

  8. Java JVM里堆和栈的区别

    参考资料: 1.堆和栈的概念和区别 2.JVM虚拟机

  9. 安装lnmp1.5,搬迁Laravel项目到服务器笔记

    近期有个Laravel开发项目,需要搬到CentOS服务器做测试. 先说下项目的配置: Laravel版本5.5 --确定了php7.0以上: CentOS 7.0或以上. lnmp 1.5版 以下是 ...

  10. http摘要认证

    摘要认证步骤:      1. 客户端访问一个受http摘要认证保护的资源.      2. 服务器返回401状态以及nonce等信息,要求客户端进行认证. HTTP/1.1 401 Unauthor ...