搜索
您的当前位置:首页正文

小白学Python必备求生姿势

来源:二三娱乐

姿势提升

大牛说:

上手python的正确姿势是:立刻开始写代码!
学习编程最大的错误是:没有立即开始写代码。

没错,正确,很对。学编程需要大量的实践,就像是学习游泳,不下水肯定学不会,把游泳的方法技巧步骤流程都背下来也学不会。必须下水练习,在水里扑棱过,喝到水呛过,然后找到感觉。

学习编程像学习游泳,但不是真的是学习游泳,或者说不是一个有常识的成年人学习游泳。你听说过一个正常的成年人学游泳问这些问题吗?

  • 泳池在哪里?(在眼前啊)
  • 我怎么从水里出来?(泳池旁边就是栏杆可以爬上来啊)
  • 穿T恤牛仔可以下水吗?(当然不是,要换泳衣泳帽啊同学)
  • 我害怕被淹死。(不是深水区,踩到底脑袋就可以露出来呼吸了)

这些问题很傻是不是?纯小白学习编程,就是会有很多很多“蠢问题”。对于大牛来说,答案简直显而易见,对于小白来说,就是死磕一夜。

你摩拳擦掌准备好好学python,撩起袖子开始写代码。对啊对啊,学习写代码就和学游泳一样,就是要写起来。

然后还没迈出步子,你就被绊倒了。你站起来,又被绊倒了。为什么?姿势水平太低了。对于24k纯小白,不知道游泳池可以从侧边的栏杆攀爬下去,不知道要穿让阻力最小的贴身泳衣,不知道要戴上防水泳镜。

对于有编程基础的同学,立即开始写代码是正确的。对于没有编程的纯小白你,虽然没有错,但同时,你也必须知道,提升姿势水平更为迫切。

纯小白的python入门路线

提供一条针对纯小白的最小可行的入门路线。对于纯小白,很大一部分是和姿势水平有关系的。一开始姿势水平低一点没有关系,但是再往后学的python时候,不要忘了提高自己的姿势水平。

这个路线图上的技能,学完了即可往前走。没解决的话,选择放弃,或者继续,或者暂时mark,先往前走,遇到问题,定位问题触发的点在哪里,找哪些途径解决,回头补上。

纯小白定义:没有学过任何一门编程语言。

第一关:基础能力

  1. 一定的英文水平,能看外文资料
  2. 科学上网,懂的,知道
  3. google,习惯一次输入3个以上的关键字
  4. 有靠谱环境(Linux/MAC比windows好)

第二关:编程思维

  1. 正念
  • 愿意尝试不同的编程体验
  • 不纠结类似 括号一定要单独一行,这种细节
  • 明确学习目标

"学习 Py 的目标本身,从来不是 Python , 而是只有通过编程思维才能理解/接触到的真实世界的Cyber维度!"——大妈

  1. 建立编程的概念
  • 一个神奇的故事——为什么程序能够工作
  • 如何向完全没有任何编程知识的人介绍编程
  1. 建立程序思维
  • 为什么程序中的计数从 0 开始
  • 如何运行一个脚本
  • 如何输入/输出
  • 常见的数据类型
  • 常见的流程控制方式
  1. 通过编程经验,掌握编程的基本元知识,建立起来基础的程序/代码/运行时等概念

可先学习JavaScript:这样,目测得追加4小时

  • 0.5 小时熟悉 Chrome 的调试工具
  • 1 小时通读 JS 教程, 理解 DOM 的操作概念和过程
  • 1 小时练习 JS 基础数据结构
  • 1 小时练习 JS 函式的使用
  • 0.5 小时,完成一个简单的页面交互
    告诉自个儿,完成了一个软件的半成员

第三关:编程环境配置

CLI
既然都要学编程了,那么用计算机的语言和计算机对话就是必须了。

markdown
标记语法,不用花精力在排版上,专注于文字创作本身。

git
代码很难管理,高级管理思想,释放代码管理中的精力,专注于写程序本身。

Github
不仅可以通过git托管,还可以方便看代码,方便互相撩。

gitbook
学不会编程,学会用git思想进行内容创作,管理文档,也是极好的。

第四关:上手python

  1. 独立完成 Python 环境的安装

确认在命令中输入 python 系统反馈正确的信息

Yina$ python3
Python 3.6.0 (v3.6.0:41df79263a11, Dec 22 2016, 17:23:13) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
  1. 配置好 Python 的常用环境

yyuu/pyenv
支持你任性的使用指定版本的 Python 环境

pip
支持你任性的安装想安装的第三方模块

IPython
支持你任性的用各种姿势探索 Python

  1. python第一印象:Python脚本直解!

这42行代码,是可执行的
同时包含了几乎 80% 的 Python 代码常见情景

4.用4天时间来建立程序思维

day0 为什么程序中的计数从 0 开始? 先尝试回答这一问题
day1 明确如何运行一个 Python 脚本,以及如何输入/输出
day2 体验 Python 中常见的数据类型
day3 探索 Python 中常见的流程控制方式

  1. 进入 IPython 交互式编程环境中

参考官方文档中的教程
或Learn Python The Hard Way 前 21 课中有关部分
多使用 dir(),help() 来检验运行时内存里的 Python 对象是否如自个儿的设想
用10分钟,专心熟悉以下核心数据类型:

  • 数字
  • 文本, UTF-8/中文 文本
  • 列表,嵌套列表,列表推导式 简单的 for in 循环
  • 字典,嵌套字典
  • 用 Sublime Text 编写几个简短的脚本

6.在终端上运行, 检验自个儿的想法是否正确

完成以下常见工程行为:

  • 函式, 完成一个函式,可以拼接两行文本为新文件保存到硬盘
  • 模块, 将函式发布为一个模块,可以在另外一个脚本中调用
  • 文件, 调用此模块,将两个指定 .txt 文件的内容,逐行交错合并为一个新文件
  • 网络, 改进此模块,可以将两个指定网页的内容, 逐行交错合并为一个新文件

或是Learn Python The Hard Way 参考 22 课之后的有关部分练习
在 32分钟以内, 完成以上建议的行为

程序思维:编程元知识

程序的每个部件都有自己独特的功能,我们只要负责将这些部件以合适的逻辑连接起来,就可以完成新的功能。——《一个神奇的故事:为什么程序能够工作》

编程为什么难

编程语言的交流对象是计算机。编程语言的理解并不难,和自然语言学习相比,困难点在于,计算机语言的容错性极低。不能出错误,否则就无法成功交流。

假如你在学习一门自然语言,可能学的不是很好,比如:I speak a little english.虽然用词,语句组织都只有60分,但是可以让绝大多数会英语的人懂你。

"写程序和写诗一样需要练习 我的程序无法将电脑写炸了 电脑很笨需要告诉丫怎么作"——大妈

冷冻疗法和编程思维

背景:部署heroku遇到一系列问题,在群里求助:

@yina

卡在buildpacks这里了。虽然已经设置buildpacks,并且确认已经设置到app,但是git push后,返回的错误信息书Failed to detect set buildpack。这是什么原因呀?我已经发了issue,各位教练同学有空求指点一二。

@Zoom.ོQuiet

@yina

其实大妈提供的这几个链接,基本都看过,各种方案,也都试过,但是还是没有成功

@Zoom.ོQuiet

这时,俺的经验就是:杀光,重新部署,从0开始, 一步步进行,先完成一个干净的无/最小 app 的空间部署,再逐步追加,直到发现崩溃的那一个配置行。
即,冷冻疗法
因为能自主设计发现/证明/纠正/改进/预防... 错误的一系列思维,就是编程本身哪....而根本不是各种课程宣称的语法/OOP/框架/etc.
其实相同的经验大家都有:中学作物理/化学 实验失败了怎么作?学霸们一眼看出哪儿有问题,解决就好...俺只能还原所有东西, 重新按照实验手册一步步重新来,然后发现次序/计量/方向....各种基础错误
在成功的基础上步进, 才知道哪儿出错的,否则,再怎么嗯哼, 也只是拼运气了

MVP:最小可执行流程

因为部署heroku失败,于是在这一周,我放弃了这周任务的部署,跟着一个YouTube的教程,完成了MVP的flask框架的python应用在heroku的部署。

同时,教程也分享了大妈在上期课程中,用ch1的任务演示MVP的流程。

所谓MVP,就是最小可走通的流程。

MVP的步骤

  1. 建立空代码
    一个正确的开始就是,可运行的没有任何问题的空代码
  • pythonMVP空代码
#!/user/bin/env python
#coding:utf-8

if __name__ == '__main__':
    pass
  • flask框架的MVP空代码
import flask
Flask = flask()

@route(/,)
return index  
  1. 每走通一个功能,就记录一个版本

MVP的好处

及时给予正面反馈,提升自我效能感
学习体验比较好

为什么要学习编程

刚写这篇教程的时候,学习python已经经过了4周,种种折腾:

  • 《learn python the hard way》
  • CLI
  • github、gitbook、git……

终于可以假装自己像一个hacker一样写代码了,准备下水游泳了。老是被呛,怀疑自己要学习python这个选择。它到底是啥,为什么要选择要趟这个水?

想清楚目标,才有坚持的理由。给自己一个MVP, 完成比完美更重要。

Python营销观点

人生苦短,我学python
很赞的一句Slogan。可是没有学过任何一门编程语言之前,我并没有能力判断这句话是不是真的。

python是最容易的编程语言之一
再简单也是计算机语言,既然是计算机语言,它就和自然语言不一样,需要克服我们自然语言的思维方式和使用方式。更何况,学习一门新的自然语言也并非易事。说它简单,那个是和其他计算机语言相比较的结果。

所以,学习python既不会轻松,也不会容易和美好。对于真小白,真的是虐心之旅。

求知欲和好奇心

计算机语言是真正意义上的通用世界语,规则稳定。因此,作为一名知道分子,想选择一门容易入门的编程语言感受一下。如果有能力做自己想做的事情,当然是最好不过的。

这个理由说的过去,但是假大空,遇到困难就会满足于“好像懂了”,但是不会死磕把东西做出来。反正也不是想转行做程序员啊,做不出来也不会对不起老板发的工资。

所以求的不是知识,而是获得hacker思维。

"学习 Py 的目标本身,从来不是 Python , 而是只有通过编程思维才能理解/接触到的真实世界的Cyber维度!" ——大妈

另一个令我记忆深刻的例子是很小的时候学习编程语言。受影响最深的是一种思考方式──在跑程序之前,要反复浏览代码,在脑子里进行预演;而不是写完程序直接跑,出错了再说。这是节省时间提高效率的重要方式。——笑来 「把时间当做朋友」

练习英语和写作

学习了十几年的英语。但是学习英语的课程还是遍地开花。营销点往往是更标准的发音,口语这些。然而语言还是扩大世界的语言工具而已。学编程最靠谱的资源当然是一手英文文档咯。同理,写作也是。硬核学习要强调输出,自己写教材。

在真实的场景,学习写作,学习英语,比教材中模拟的场景,更有意义。

个人网站

第五周的学习任务是web端的网站开发。跟着书一步步做,打了一周的出租车,每天熬夜到十二点后,还是不会做!得到这样结果,很有挫败感。放空了两天,洗完澡就睡,写写宣泄情绪的日记,回头整理教程,看自己漏掉什么?还有几周就要结束课程,最后几周,就要组队交大作业。既希望这么辛苦的时间早点过去。也希望自己真的学有所成。

编程经验->作什么?好象没有直接关系,其实,这就是为什么要学习编程的根因之一。世界已经基本上被电脑管理了。除了编程,普通人很难能通过数据模式来理解/改进世界。

回到一开始这个问题。有一个答案是:我想建立一个个人博客。之前听极客电台,有一期节目是,要嫁就嫁一个有个人网站的人。原因是:

  • 个人博客通过时间累积,持续不断产生价值,累计产生价值。
  • 相对于第三方托管,内容审核的风险比较小。

对小白友好的python教程

这个目标,是在学习过程中产生的。以我的编程能力,做不了太牛的项目。但我确实感受到,程序浸透我们当下的生活,编程语言以及内在的编程思维,对于未来的人类,是很重要的一种能力,我也希望通过我的一己之力,影响到一些人。

参考资料

Top