1.
这几天陆续收到很多读者、球友的留言、私信,说要怎么学Python?有没有基础的,偏小白的学习方法?我的回答是:等我统一答复。
小胖从不食言,今天就来说说我觉得一个零基础、想转行、一直不得法的人应该如何入门。
2.
对于Python来说,一直有个误区,那就是「Python很简单」。
不知道你有没有、或者曾经有过这样的想法。我也能理解,毕竟一句话就能打印hello world,3行代码就能人脸识别,真的太简单了。
但这真的是Python的全部吗?如果你只是满足于依靠强大的社区、优秀的第三方库来满足你对于Python的好奇,那是完全可以的。但可千万别把这当作Python的全部啊!
Python的高阶函数、装饰器,反射、元编程、各种魔术方法,Python的解释器运行机制是什么,垃圾回收原理又是什么,为什么Python多线程鸡肋?GIL无解了吗?
你看,上面这些问题,每一个我都能拉出来讲一篇,有的甚至2-3篇,这才是Python的精髓,应该学的,而且越学越有意思。
3.
那就来说说零基础要怎么入门Python,又怎么把Python学好了。
我相信关注我读者的不少人都是写过Python的,所以应该多少也买过几本Python的书吧?Python的书真的很多,特别是针对初学者的书多如牛毛,数不胜数,就连我自己都想出一本书了……那其实呢?大家都差不多吗,初学者的书一定要选好,为什么?因为这直接决定了你之后的学习曲线以及学习积极性。那我这里推荐给大家的就是「笨办法学Python」(这里没有广告,如果一定要有,@笨办法学Python作者,是不是该给我打稿费了啊,喂!)
这本书相对简单,说的东西都很浅显,建议你花几天时间集中看完,很快的,因为没啥深奥的原理,都是悄悄代码,就过去了。关键的地方来了,这也是我和其他大佬不同的地方,看到这里你就赚了。
4.
我推荐大家迅速的过书,到函数那一章就完事了,装饰器也别看了,别问我为什么,吻我就好。
因为装饰器将会成为你学习Python以来第一个难关,会打压你,在你学习不到3天的时候,真的不好。
那看到装饰器不看了,接下来干嘛呢?经典的来了,去做东西!所谓看五遍不如敲一遍就是这理。那么练什么呢?才学了这点能练什么?
放心,多得去了。你学Python应该多少会点Linux的命令吧?就算你不会,也可以搜一下吗,反正也不难。然后精彩的来了,我们就拿 ls 这个命令来说,用Python来实现一个 ls.py 行不行?
我猜你看到这里,嘴里冒出一句「卧槽」「我次奥」,很正常,突破认知范围了是不,怎么会这么骚?我怎么就没想到?
第一个版本很简单,记住了MVP法则,MVP讲究的就是最小可行性,你现在需要做的不是几百行的完整 ls 功能,而是一个最简单的 ls 功能,什么意思?回想一下 ls 在不加入任何参数的情况下,是什么效果?没错,就把这个实现了。效果就是 python ls.py 等同于 ls 命令。
在这个MVP版本的实现过程中,你一定会遇到很多的困难,毕竟你到现在只学会了程序结构、数据结构、函数,模块调用还不会,怎么办?查啊。当你发现你不知道怎么获取当前目录下的所有文件及文件夹的时候怎么办?查啊。
5.
发现没有,再经过MVP版本后,你已经学会了os的相关函数使用了,你已经知道模块的引入语法了,这些可都是书里看到现在没有讲的哦。
接下来就进入产品的迭代周期了,这个时候你需要不断去扩展功能,ls.py的功能就是它的参数,这些参数的意义通过man函数都可以查到。相信我,每做一个参数,你都能学到很多东西,因为现在的你是一张白纸,想要上点颜色太简单了。需要提一下的是,你要每天坚持写点Python,只有每天写,你才会在不经意间成为那个让零基础的人们羡慕的对象。
2周过去了,你会发现功能迭代的80%了,在你的武器库里又多了很多的技能,argparse咯、psutil咯、sys咯等等,是不是有点自喜了?没错,要的就是这个。最后你要做的就是把代码优化一下,而不是一个冗长的1000行的文件,虽然现在还没有类的引入,也没有任何高级用法,只是把函数分门别类的整理出来。这就够了。
6.
经过这么一段时间的练习,我相信你已经和之前刚入门的你完全不一样了,接下来可以继续看书了,把面向对象、魔术方法、并发都看了。再来写一个find 命令。
相信我,2个命令写下来,你的能力已经得到了显著的提升,现在的你已经有了2个实打实的项目,比那些个个人博客项目要硬的多。
然后再去看看web前端的东西,慢慢接触点爬虫、网站开发、框架使用都是水到渠成的事了。
以上就是我个人给予大家的一些建议,称不上过来人,我只是一个走在学习路上不断踩坑试错的践行者,除了学习外,就是把学习的过程分享出来,让获悉者受益,仅此。

今日留言主题

2000字谏言管饱吗?你有什么好的学习建议 / 或者从中get到什么?

喜欢就在看吧

2000字谏言,给那些想学Python的人,建议收藏后细看!的更多相关文章

  1. 给想学python但还没有接触过的你,python代码的书写规则,小白入门

    Python 文件结构 变量命名 注释 单行注释 多行注释 缩进 Python 文件结构 #!/usr/bin/env python3 # 指定python解释器 # -*- coding: utf- ...

  2. 想学Python不知道从哪里开始学?|百度网盘免费下载| 这本入门书了解下

    百度网盘免费下载:编程小白的第一本 Python 入门书 提取码:s0pc Python是什么 Python是一种计算机程序设计语言,由吉多·范罗苏姆创造,第一版发布于1991年,可以视之为一种改良的 ...

  3. 想学Python不知如何入门,教你!

    一.入门引导   想必有很多小伙伴想学习Python,又不知道如何入门,总觉得学习一定要头悬梁,锥刺股!NO,今天给大家分享下如何轻松入门Python!   首先,我们要学习Python,那一定要和你 ...

  4. 想学Python?这里有一个最全面的职位分析

    Python从2015年开始,一直处于火爆的趋势,目前Python工程师超越Java.Web前端等岗位,起薪在15K左右,目前不管是小公司还是知名大公司都在热招中. 当然,每个城市对岗位的需求也不尽相 ...

  5. 跟着老王学Python

    亲爱的朋友:     欢迎你!很高兴能在这里见到你,你能来到这里说明你真的很喜欢python,很想把python给学好!我觉的你很幸运,开始我学python的时候比较少资料,学起来也比较头疼,现在随着 ...

  6. 运维朋友们,别再问需不需要学 Python 了!

    运维人员需不需要学开发?需不需要学 Python?PythonN 和 Shell 有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲. 现阶段,掌握一门开发语言已经成为高级运维工程师的必 ...

  7. 除了上万的月薪之外,还有什么理由让我们必须学Python?

    虽然目前的编程语言有很多,但是基础语法上的概念,本质上都是相通的.可以做到一通百通.所以没有必要为了学哪门语言纠结太多. python是目前市面上,我个人认为是最简洁&&最优雅& ...

  8. 数读 | 为什么运维朋友们都需要学Python?

    运维人员需不需要学开发?需不需要学Python?PythonN和Shell有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲. 现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能, ...

  9. 新手想掌握Python技能需要众多Python项目练习,适合项目有哪些?

    适合新手练习的Python项目有哪些?简单易上手的Python项目汇总:Web 项目设计:内容聚合器.正则表达式查询工具.网址缩短.便利贴.功能.测验.GUI 项目设计:MP3 播放器.闹铃提醒工具. ...

随机推荐

  1. js变量的相关要点

    如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量. JavaScript 变量生命周期在它声明时初始化. 局部变量在函数执行完毕后销毁. 全局变量在页面关闭后销毁.

  2. 三、NOSQL之Memcached缓存服务实战精讲第二部

    1.Memcached服务安装 Memcached的安装比较简单,很多平台都是支持Memcached,常见的有:Linux .Windows 服务端端:                cd /home ...

  3. 18)PHP,可变函数,匿名函数 变量的作用域

    (1)可变函数: 可变函数,就是函数名“可变”——其实跟可变变量一样的道理. $str1 = “f1”;   //只是一个字符串,内容为”f1” $v1 = $str1(3, 4);   //形式上看 ...

  4. 对于urllib.request模块

    Python 3.X版本后的urllib和urllib2 1---- 现在的Python已经出到了3.5.2 在Python 3以后的版本中,urllib2这个模块已经不单独存在(也就是说当你impo ...

  5. 绝对定位( Absolute positioning )

    绝对定位( Absolute positioning ) 之前在介绍定位体系的时候,已经简单的介绍了绝对定位和固定定位.一般情况下,这两种定位的元素, 在 3D 的可视化模型中,处于浮动元素的上方,或 ...

  6. 获取cell上按钮事件

    原由:点击cell上的按钮,无法获取button对应的cell位置 //获取按钮上层控件,也就是cell本身 AccountCell *cell= (AccountCell *)[按钮名称 super ...

  7. tc/traffic control 网络控制工具

    第一个例子 增加延时 tc qdsic add dev enp0s3 root netem delay 200ms qdisc : queuing discipline, 当内核需要发送包到某个接口时 ...

  8. redhat下libreoffice 的安装

    1.第一次安装libreoffic时是用网络yum源安装的,但是装好之后不能用,找了好久没有找出问题,后来从官网下载安装包后安装就可以了. 下载地址:https://zh-cn.libreoffice ...

  9. MySQL导入及导出数据库

    一.数据库导入 背景:已经从A机器把SQL文件导出,现在需要将sql文件导入B机器(两台机器都是Linux系统) 将sql文件上传到B机器,然后在B机器命令行执行以下命令(不用进入到数据库) 前提是t ...

  10. 搭建solr8

    这里记录linux上的安装过程 一.下载安装包 https://lucene.apache.org/solr/downloads.html 二.解压安装 这里我放倒了/usr/local/solr目录 ...