零基础如何自学Python

这是昨天一位新加入知识星球的读者问到的问题:机械工程专业零基础如何自学Python ?

程序员在普通人眼里就像魔法师,一个脚本轻松抢几十盒月饼,一个插件解决春运抢票难题,几行代码搭建一个网站,用微信自动聊天,在程序员眼里这些事太稀松平常了,他们只不过是利用了编程语言指挥计算机去自动完成一些需要人类重复操作的繁琐过程,等你会编程也就不觉得大惊小怪了。

有些人学习编程刚一开始头脑发热,买了很多书,下载很多视频,收藏很多电子资料,没过几天,热情就褪去了,最后完成了从入门到放弃的全过程,究其原因主要是缺乏清晰的目标,没有方向,或者方向不明确。如果你真正想把编程学好,那么先想想为什么要学编程,是为了找一份编程工作,还是为了解决某个繁琐问题,抑或是做个网站给自己用,还是写个App,或者是爬个数据做分析,最怕的就是不知道为什么而学,如果仅仅是因为焦虑而学习你也很难学好,很多人跑过来问我入门书看完了,接下来看什么书?这就是典型的不知道学了有什么样,纯粹为了学习而学习。

我们的目的是学以致用,用以促学

以学习爬虫为例子,你学爬虫的动机什么?你的动机可以是从网上获取一些数据做数据分析,例如,前段时间有位朋友找到我说,他想做一个厂房租赁平台,开始做之前需要选址,选址就要做市场调查,如果仅凭直觉没有数据支撑,很难说哪个地方好,最好的办法使用爬虫去58这样的平台把相关的交易数据爬下来做数据分析,这就是一个很好的动机,而且目标非常明确。

Python 编程有很多方向,有网络爬虫、数据分析、Web开发、测试开发、运维开发、机器学习、人工智能、量化交易等等,各个方向对都有特定的技能要求,比如学数据分析就要重点掌握统计学、SQL 等知识,搞运维就要非常熟悉 Linux 系统,所以你首先要清楚你选择的是什么方向,这个方向哪些知识需要重要掌握。

以 Web 开发,重点要理解 HTTP 协议,要知道一个网页从浏览器输入URL开始到页面出现内容的这个过程发生了什么,然后要知道 Web 开发涉及的前端知识 HTML、JavaScript、CSS,大概了解他们是做什么的,然后就是学 Python,当然也不是所有的东西都要学,掌握基本的语法,常用的数据类型就差不多可以去实现你的目标了,几乎所有网站都需要用到数据库,那么你至少需要懂一点数据库的知识,SQL 的增删改查操作要会,程序写完了,我们要部署,而系统一般都是运行在 Linux 环境,这个时候你还需要了解如何操作 Linux 命令。

接下来就详细介绍每个过程如何学习,以及所用到的学习资源和掌握的程度。

HTTP 协议是浏览器与服务器通讯的媒介,用户在浏览器输入URL后浏览器会立即向服务器发起一个请求,服务端接收请求后,从数据库查询到合适的数据,最终把数据返回给浏览器。浏览器与服务器之间的通讯严格遵守 HTTP 协议,如果你弄懂了 HTTP 协议,那么也就弄懂了 Web 编程的基本原理,这里推荐两本关于 HTTP 协议的书。

《图解HTTP》
《HTTP权威指南》
前者更偏向于入门,后者适合进阶阅读,前期不一定要细读,大概理解就行,以后你还会回过头来学习的。

任何一个做 Web 开发的,离不开前端三剑客,这里的三剑客是指 HTML、JavaScript、CSS。HTML 是骨架,CSS是外衣,JS控制前两者,为了满足更多用户交互行为需要 JavaScript 来控制。下面推荐的这几本书对一个初入门的小白来说完全够用,挑选一两本就行,也不需要你全部看完,一本书看完前面的 60% 差不多就行了。

《HTML5秘籍(第2版) 》
《HTML5权威指南 》
《Head First HTML与CSS(第2版)》
《CSS权威指南(第3版)》
《JavaScript DOM编程艺术(第2版)》
《JavaScript高级程序设计(第3版)》
不管再忙都要坚持每天要至少保持3个小时以上的练习时间

了解了基本的前端知识后,还是有必要了解一下前端的框架,如vue.js、boostrap、react、jquery 等等,虽然不一定每个框架都去学一遍,但至少要知道每个框架的作用,因为以后你不可能什么都是自己重复造轮子。

学完前端知识后,你现在应该能简单的做出一些静态网站出来了,不过,现在几乎所有的网站都是动态的(这里的动态不是说动画效果,而是说页面数据是动态变化的),就是说数据都是根据登录用户个性化推荐的,浏览器的请求发送给服务器之后,服务器从数据库查询获得数据返回给浏览器,服务器这边的实现逻辑就需要用 Python 来实现,现在正是开始学 Python 的时候, Python 入门需要掌握的内容包括基本语法、数据结构、常用数据类型和常用的模块的api方法操作等。关于 Python 的书其实很多,这里推荐几本入门和进阶。

入门

《Python简明教程》可以在公众号「python之禅」回复 "python"免费获取电子书
《Python编程:入门到实践》
《Python编程快速上手 : 让繁琐工作自动化》
进阶

《流畅的Python》
《Python Cookbook》
《Effective Python》
简明教程就是一本很薄的小册子,希望你可以认真读完,后面两本入门书,至少要把前面的基础学完,至于后面的实战,不学也罢,因为你的兴趣点不一定在那里。

不管再忙都要坚持每天要至少保持3个小时以上的练习时间

现在差不多可以用 Python 来做很多事情了,但是你还不知道如何写一个 Web 应用,因为你可能不知道怎么操作数据库,怎么写 SQL 语句,对数据库进行增删查改,所以,别急,先学学数据库知识吧,MySQL 是最流行的数据库系统,大公司都在用。最基本的数据库操作就是要知道什么表、行、列、主键、外键、索引这些概念,稍微复杂的就是查询,有分组查询,联合查询等各种条件查询,你需要掌握这些基本操作。

《SQL基础教程》
《MySQL必知必会》
这两本数都是面向初学者的基础教程,挑选一本就够了,除了MySQL,还有PostgreSQL、Oralce、SQL Server 都属于关系型数据库,另外也有 MongoDB、Redis 这样的非关系型数据库,你可以相应的都去了解一下,不一定非要马上就学。学完数据库之后,你要想的一个问题就是如何用 Python 操作数据库的 CRUD,虽然没有专门的书籍讲这个,但是网上有很多教程写如何用 Python 操作 MySQL 的,所以,学会利用搜索引擎非常重要,为了防止忘记前面的内容,也要不时地复习、练习前面的内容。

不管再忙都要坚持每天要至少保持3个小时以上的练习时间 。

现在你差不多所有的基础知识都有所掌握,终于可以磨刀霍霍迫不及待开始第一个真正属于你自己作品的开发之旅了,因为前面你已经掌握了 HTTP 协议,所以现在你可以选择一个 Web 框架,基于这个框架来开发我们的 Web 网站,这里推荐使用 Flask,这个框架比较流行,然后又是一个比较轻量级的框架,非常灵活。有对应的一本著名的狗书《Flask Web开发:基于Python的Web应用开发实战》。一个完整的 Web 网站从前端 HTML、CSS、JavaScript再到后端 Flask,数据库连接、CRUD操作基本都能跑通了,项目差不多基本成型,只剩下最后一个步骤,就是如何把做好的程序发布到服务器让它一直稳定的运行,持续提供服务。

通常,我们的 Web 程序会部署在 Linux 服务器,很少有用 Windows 作服务器的,所以,熟悉 Linux系 统还是非常有必要的,Linux 要掌握到什么程度呢?当然,至少要会基本的 Linux 命令操作才行,推荐下面这几本书

《快乐的Linux命令行》,公众号「Python之禅」回复 "linux" 可免费获取。
《鸟哥的Linux私房菜》
《Linux命令行与shell脚本编程大全》
熟悉完 Linux,程序也部署好了,其实还差一步,网站需要一个好记的域名方便别人访问,毕竟没人能记住你的 IP,所以,后期的域名购买,HTTPS 配置,Nginx 配置,都可以在网上找到相应的答案。

不管再忙都要坚持每天要至少保持3个小时以上的练习时间 。

你的打怪升级过程一定是一个曲折的,痛并快乐着的过程。

最后祝你升级成功。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 这是位新加入知识星球的读者问提的问题:机械工程专业零基础如何自学Python?因为平时分享得最多的是 Python...
    疯狂的程序猿丶阅读 1,192评论 0 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,413评论 25 707
  • 其实python非常适合初学者入门。相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易。自带的各种模块加...
    Python程序媛阅读 281评论 0 1
  • 老头儿油爆虾饭菜还算可口,菜量也不辜负食客。酱鸭香甜入味而不塞牙,黑米汁不薄不厚,还有一点幼滑。所在的淮海路陕西南...
    d11110d0172b阅读 194评论 0 0
  • 人到中年,不话沧桑 不知不觉,已人到中年,仿佛人生的很多问题一下子变得不再像曾经的那么简单...
    回首释然阅读 150评论 0 0