n/a
n/a 表示暂时个人没有好的推荐(可能是因为学习的时候是东拼西凑);
又或者还不清楚,不下定论。
但是放在标题中表示这是需要学习->了解->熟悉的内容。
个人记录
个人记录 表示这是个人从各种途径知道的书籍(或内容),暂时还未阅读或深入了解。
记录在这里也是为了方便自己回顾已经整理过学习路线。
这是本人的入门书,并不一定适合每个人。
入门书国产Python 书应该还可以。学习了解一下就可以扔了。然后往我本文下面的书单进阶。
因为本人原本就有 C 的编程基础(甚至学 Python 的时候 C 已经不能算有基础了)
包括 Cpp 的基础。
所以在入门方面比较粗略,本篇博客的入门部分写不出什么有价值的内容,欢迎有见解的朋友在评论区指出。
注: 该书建议看前 6 章。第二章和“发布”有关的内容,可以跳过。
这本书个人也是相当推荐。可以仔细阅读。
1.2, 1.3 不分先后。
该阅读不要超过两周,建议一周读完。
a, b, c, … 推荐的阅读顺序不分先后
该书多线程一章是我见过的最好练习和理解的书。
该书的第二章 - “语法最佳实践 - 低于类级” 是我见过最好的理解 Python 列表推导这类进一步学习 Python 的书。
该书的第三章 - “语法最佳实践 - 类级” 个人觉得并不好理解,使用 Learning Python 一书学习更好。
2, 3 不分阅读先后
最好的 Python 学习书。案头书。
不过不推荐 0 编程基础的人立即看。
先看一些更简单的书籍或视频之后再看该书。
可以先翻阅/通读一遍,然后在理解练习。适合多次翻阅。
当然,“主题下的内容不分先后”
不是很推荐在没有看 Learning Python 一书就开始做真正的实践,比如做一个基于 django 的 web 应用。
原因是:到时候抛出一个异常你都不知道是怎么回事儿(不知道自己哪里写错了,语法错了等等)。
但是本人并非指要完全理解了 Learning Python 一书中所有章节才能开始。
至少通读一遍,理解半本以上。
推荐阅读/了解 《TCP-IP协议族》;《TCP IP详解卷1:协议》
中文翻译:《Python Web 开发:测试驱动方法》
Web 应用,测试驱动开发,一点点 Bootstrap 使用,包括部署。
这本书是很好的 django 入门文档(当然也是测试驱动开发文档)。
这个主题并不简单,需要的知识比较杂,个人人为比较适合其它语言转 Python 的人学 Python 用爬虫做练习(仅限个人观点)。
如果走爬虫方向,遇到一些知识盲区不要气馁。
?下载链接 ?
强烈推荐!
======= 中高级分割线 ======
本节阅读不分先后
翻阅/通读 -> 理解 -> 实践 --> 案头书
直接用 solution --> 案头书
每个现代的高级语言大多都有一本 programming XXX, 大概是学习该门语言的很好的书籍。
这本书从书名来看也是想要达到这个目的。但不幸的是,从本人个人角度,这本书在 python 的众多书籍中并不出众,最多是中等水平。比起同作者的 Learning Python 一书有着相当大的差距。
不过仍然值得翻阅一遍,对于有用的章节也是值得参考的。
跳转链接 ? - 待补
5, 6, 7 不分先后; 本节下不分先后
《Effective Python(编写高质量 Python 代码的 59 个有效方法)》 - 个人记录
学到这里,java 也是有比要基础语法学一学的。
Head First Java; Head First Object-Oriented Analysis & Design
中文翻译:《深入浅出 Java》,《深入浅出面向对象分析与设计》
? 推荐阅读和理解
《面向对象分析与设计》- 个人记录
这本书很好,但是有点儿缺点 - 缺点就是太概括了,细节/解释太少。而且需要有相当编程,实战经验的人看才会有体会(就像《人月神话》没有工作前看,是看不出什么感觉来的)。
但是总的来说,当用 Python 写一个软件,写到一定程度之后,看这本,效果会很好。
至于什么程度?
在你感觉一个项目各个 .py
文件有点不清楚怎么整理才是最佳实践,用着 Python 却感觉写不出来像各种库一样棒的代码,感觉 python 遇到瓶颈了,就可以看看这本书。
流畅的 Python 是从 python 语言本身,深入特性讲解的。这本书是基于 Python 的特性,以偏向软件工程的角度讲解的。
个人记录
《Head First 设计模式》(Java) - 推荐阅读
推荐阅读
个人记录
Introduction to Algorithms(A Creative Approach)
这本书也适合放在 8. 领域主题 下,
但是这本书里面主要也是说到不少 Python 本身的 库,特性(内建类型,函数)这类内容,所以更符合 Python 的高级主题。
需要性阅读。
itertools
在算法和数据处理中的示例?
functools
operator
需要性阅读
个人记录
推荐阅读
个人记录
====== 个人专业发展分割线 ======
不分先后,属于个人选择。可能不适合每个领域都看完。
吴恩达机器学习视频教程 ? - 待补 - 推荐观看
非当前流行深度学习框架。神经网络入门书。
个人记录
推荐阅读和理解
推荐阅读和理解
小心该书的“列表” “链表” 专业名词翻译问题。
技术翻译不太专业(是译者在网上翻译之后,出版社买下版权和该翻译),翻译没有提供除了一板一眼翻过来之外的任何帮助。书的内容 NLP 和 Python 都是从头开始的混搭,看着有些混乱。
内容是基于词性分析,同时/当然是针对英文的。
– 建议了解
个人记录
推荐阅读
个人记录
待补
该节的本主题下的内容是 领域知识和 Python 知识混合。需要有这方面基础的人阅读学习。
本节下的小节如 8.3.1, 8.3.2, … 不分先后。
基础:《TCP-IP协议族》;《TCP IP详解卷1:协议》
推荐书籍 - 《图解 TCP/IP》
┌--------------┐
| |
| 服务器 | ===╗
| | ┌----┐ H ┌------------------┐
└--------------┘ | 数 | T | 浏览器 |
┌----------┐ | 据 | M | 显示 HTML |
| | └----┘ L └------------------┘
|应用层|HTTP| \/ 为数据加上 HTTP 帧头 /\ 拆掉(解析) HTTP
| | ┌------┬---------┐ ┌------┬---------┐
├----------┤ | HTML | RFC7230 | | HTML | RFC7230 |
| | └------┴---------┘ └------┴---------┘
|传输层|TCP | \/ 为数据加上 TCP 帧头 /\ 拆掉 TCP
| | ┌------┬---------┬--------┐ ┌------┬---------┬--------┐
├----------┤ | HTML | RFC7230 | RFC793 | | HTML | RFC7230 | RFC793 |
| | └------┴---------┴--------┘ └------┴---------┴--------┘
|网络层|IPv4| \/ 为数据加上 IPv4 帧头 /\ 拆掉 IPv4
| | ┌------┬---------┬--------┬--------┐ ┌------┬---------┬--------┬--------┐
├----------┤ | HTML | RFC7230 | RFC793 | RFC791 | | HTML | RFC7230 | RFC793 | RFC791 |
| 数据 | └------┴---------┴--------┴--------┘ └------┴---------┴--------┴--------┘
|链路层|MAC | \/ 为数据加上 MAC 帧头 /\ 拆掉 MAC
| | ┌------┬---------┬--------┬--------┬---------┐ ┌------┬---------┬--------┬--------┬---------┐
├----------┤ | HTML | RFC7230 | RFC793 | RFC791 | RFC7494 | | HTML | RFC7230 | RFC793 | RFC791 | RFC7494 |
| 物理层 | └------┴---------┴--------┴--------┴---------┘ └------┴---------┴--------┴--------┴---------┘
| 物理信号 | || /\
└----------┘ ╚==================================================╝
(注:物理信号也有协议)
上图过程主要是为了展示早期门户网站的静态 HTML 页面显示过程。
客户端(以 HTTP 协议)请求一个网页(HTML),服务器直接向网络中以 HTTP 协议发送 HTML。
所以,对于 web 编程来说。网络协议的底下几层略有了解就好,实际上在编写程序的时候,只会和 HTTP 协议打交道。
正如前面所说,早期的网站都是静态的页面,现在也有,比如 博客,新闻 等等这类内容。静态网页的意思是,同一个 URL,今天访问和明年访问,显示出来的内容都是一样的。服务器不会对它修改。
但是这显然满足不了人们发展的需求。
以一个最简单的例子说明设想一下,如果有一个 URL 为你提供了你收藏的书籍,如:
http://example.com/我的ID/我的收藏.html
这里我使用了 我的收藏.html
表示它是一个静态网页,然后想象上面有一个输入框,输入框旁边有个”收藏“按钮:
可以想象现在这张页面是空的。
如果你输入了一个书名(如:图解TCP/IP),并且点击了收藏,
我们的客户端(浏览器)就会遵循 HTTP 协议 POST 这个"书名": "图解TCP/IP"
到服务器。
而服务器也正确地收到了这个消息,并且保存在了为我的ID
创建的一个某一个数据表中。
但是如果没有动态修改页面的技术,下一次请求 http://example.com/我的ID/我的收藏.html
这个路径,我们将看到的还是一个空空的页面只有一个输入框。
于是后来我们有了 CGI 技术,现在我们知道这回是一个动态页面,所以请求的 URL 修改为了:
http://example.com/我的ID/我的收藏.cgi
请求这个路径,服务器就不会只是简单地将 “我的收藏.cgi” 这个文件发送出去(这可能是个二进制文件,或者 python 脚本)。
而是执行它,然后将执行这个 “我的收藏.cgi” 它的”标准输出“当作响应发送给发出请求的客户端。
标准输出包含了 HTTP 的头部和正文内容。具体就不展开了。
再后来,CGI 技术也被淘汰了,特别是由于近些年被重视起来的 REST 协议(这个不是 RFC 协议),于是我们可以想象要获取这个页面我们将会使用如下 URI1来请求这个页面。
http://example.com/我的ID/我的收藏/
技能辅助:
由于 HTTP 协议本身也有“不足”,所以就会有新的技术来弥补这些方面,来提供更全面的 web 服务。
比如 HTTP 是”无状态的“,所以为了更好地在阅读书籍的时候理解一些名词术语,还要额外再做一些功课:
session 和 cookie:
安全问题:
HTTPS
- TLS/SSL - N/A剩下的,这里要说的,都能在以下列出的书籍中找到,所以就此打住。
超级好的一本书,不过,虽然书中作者说可以没有网络协议相关知识,但是实际上还是需要一定的网络协议知识才能更好地理解;所以本书也放在比较后面的位置。
? 强烈推荐阅读和理解
By the way:
《TCP/IP 网络编程》也是一本很不错的书,比较底层一点点的网络编程(socket)。
看一遍过去了解和熟悉一下应该还是不错的。推荐阅读/了解: 《UNIX网络编程卷1:套接字联网API》;《UNIX网络编程_卷2_进程间通信》
注意,这个 Web 主题是排在 4. 主题 一节之后的,没有学习过 4. 主题 一节里面说到的 Web 主题的东西,不推荐直接学习 8. 领域主题 > c) Web 主题 这节下的内容。
”没有学习过 ’4. 主题‘ 一节里面说到的 Web 主题的东西“ 这句话的意思 并非指需要将 4. 主题 里面的“所有” Web 主题的东西全部都要学习。
个人记录
8.3.2.4.1《REST 实战》(java) – 目前个人定位这本书为了解
XML(json)-RPC; REST-RPC, – 个人记录
RabbitMQ
Celery
《七周七并发模型》
推荐翻阅
英文版开源。中文翻译可在 github 上找到。
个人记录
推荐
☝️ 好书
Web 开发必备
可能有一定的编程经验的读者看起来会感觉很棒;而正处于早期学习编程阶段的读者可能阅读起来对书上的应用实例感觉不强。
仅以本人的角度出发,仅供参考。
推荐阅读
没有涉及语言,没有伪代码 解释过程详细,附图 - 推荐。
出现了两次?因为这本书放前面一点,早一点学习,比较好。后面这里在强调一下 – 强烈推荐。
? 看需要学习
仅个人写在这里做个记录。
推荐系统(技术、评估及高效算法)
本人这方面这是看看了解,没多少值得写的。
[美] Kenneth,A.,Lambert,兰伯特 著,李军 译
形式像大学教材。数据结构的内容较“范”,解释比较差。例子一般;
根 本 没 有 用 。
这里是不是写错了?应该是 URL 吧!
↩︎没有写错,但是你可以当作是 URL,这不会有其它问题。因为目前 REST 在事实上也就是在 HTTP 协议上遵循,而为什么要把原本的 URL 换用 URI 表示,说来话长。