首先呢,和其他的各种学习都一样,你一定要明白你学习的目标是什么。有的人想要通过学习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. selenium环境搭建-python自动化脚本测试

    站在朋友的肩膀上学习!!! 前提:python环境已经搭建完成 1.安装selenium 命令行输入“pip install selenium"一键式安装 2.检查Selenium是否安装成 ...

  2. 关于python的创立模块和导入

    首先,模块就是所有的.py文件,而模块的作用便是简化代码,使其看得简易. 例如这就是模块: 'a test'这是注释,并没有什么作用. 而创立模块的第一步:建立一个.py文件例如:这是上方这串代码的模 ...

  3. javascript---lat const var 的区别

    首先,ECMAScript和JavaScript关系:      ECMAScript是一个国际通过的标准化脚本语言.JavaScript由ECMAScript和DOM.BOM三者组成.可以简单理解为 ...

  4. 家人的健康和offer的取舍

    记得2月份去Amazon面试的时候,小孩子正莫名的发烧,已经破纪录的连续烧了4天,到了6点面试完毕,面试官还试探性的问我还有没有什么要聊的,当时确实是没了心情,就想着回家看小病人,在回家的路上,暗暗的 ...

  5. ENSP模拟华为USG6000

  6. 1-Two Sum @LeetCode

    1-Two Sum 题目 思路 题目中得到的信息有: 都是整数,并且可正可负,也可一个值包含多个: 只有一个正确的结果. 方法一: 最直接的思路就是两重循环遍历,时间复杂度是O(n^2),这样肯定不行 ...

  7. CRM-展示列表,分页功能

    目录 一.admin (创建超级用户) 二.展示列表 三.分页(封装成类)   一.admin (创建超级用户) 1.注册: 1.创建一个超级管理员,使用如下命令: python manage.py ...

  8. JVM-crash查看hs_err_pid.log日志

    参考链接: https://www.cnblogs.com/shiyangxt/archive/2009/01/06/1370627.html https://blog.csdn.net/chenss ...

  9. 360软件的木马查杀、漏洞修复等组件不能使用,提示runtime error

    一.故障现象:1.360软件的木马查杀.漏洞修复等组件不能使用,提示runtime error2.暴风影音等很多软件不能正常使用3.设备管理器不能打开,提示“MMC 不能打开文件”4.部分https安 ...

  10. C#工具类:Json操作帮助类(转载)

    原文转载自C#工具类:Json操作帮助类_IT技术小趣屋. Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来 ...