今天给大家分享一位前辈整理的一个 Python web 学习路线. 这位前辈由于有编程基础, 所以采用了自学 Python 的方式. 学完后主要做后端开发. 希望对你有所启发.
整理的一个 python Web 学习路线, 这基本就是笔者自学后做后端的学习路线.
创一个小群, 供大家学习交流聊天
如果有对学 python 方面有什么疑惑问题的, 或者有什么想说的想聊的大家可以一起交流学习一起进步呀.
也希望大家对学 python 能够持之以恒
python 爱好群,
如果你想要学好 python 最好加入一个组织, 这样大家学习的话就比较方便, 还能够共同交流和分享资料, 给你推荐一个学习的组织: 快乐学习 python 组织 可以点击组织二字, 可以直达
入门基础
编程语言: Python
Python 入门相对容易又可以干很多事 (网站, 运维, 数据, 爬虫等), 是一门方便的工具语言.
2016 年 TIOBE 排名显示 Python 已经名列第四, 成为脚本语言之首. 国外的 YouTube,Instagram,Pinterest,Reddit,Dropbox,Disqus, Quora 等知名应用一开始都是基于 Python 构建, 国内的豆瓣, 知乎, 果壳, 饿了么, 搜狐等也是 Python 应用的典型.
这也给了国内 Python 开发者一阵强心剂, Python 的生态环境可以支撑起重量级的 产品. 这里不想挑起语言之争, PHP,Node.JS,java,Ruby 等都有丰富的生态环境.
不过目前来看, 技术选型用 Python 在招聘, 学习, 培训, 敏捷开发等方面还是一个比较折中的选择 (主要在于人, 而不是语言). python,Ruby 之类的动态语言优势在于其生产力, 你能在极短时间内就搭建出原型从而赢得产品竞争. 推荐一下几本个人认为比较好的 Python 书籍:
•《python-guide》 requests 作者写的 guide, 偏向工程方面
•《use python》 use python
•《A Byte of Python》 一百多页的小书, 可以快速熟悉 Python 语言.
•《Python 核心编程》 比较全面的 Python 书籍, 介绍了 Python 语言的方方面面.
•《Dive Into Python》 一本免费的开源书
•《Fluent Python》 Python 进阶的好书, 没有之一, 涉及了很多 Python 高级主题和实现特性.
•《Python3 Cookbook》 Python 进阶读物, 汇集了很多技巧.
•《Python 高级编程》 豆瓣工程师董伟明先生写的 python 高级编程 ppt
当然还有 Python 的官方文档作为参考, 不过有些文档比较晦涩, 还是推荐书籍入门. 网上目前也可以搜到很多免费的电子书. 如果有时间可以看看国内廖雪峰写的 Python 教程, 简单易懂, 就是跳跃有点大.
计算机网络
对于应用开发者来说大部分时间可能不太会接触特别底层的问题, 但是了解网络的运行原理还是必要的. 网上有个面试题 从输入 URL 到页面加载完成的过程中都发生了什么事情? 如果对其中大部分的概念都了解就算是入门了. 网络相关书籍可以随便找一本看看. Http 协议对于 Web 开发者来说比较重要, 需要深入了解. 推荐书籍:
• 《图解 Http》 一本小白入门 Http 协议的好书, 有大量图片示例.
• 《Http 权威指南》 Http 协议最权威的讲解, 大部头著作, 可以看看最基础的部分.
• 《网络爬虫教程》 非常不错的爬虫教程. 感谢原作者, 其实感觉这种把学习的内容总结成小书的方式很好.
• 《Python3 网络爬虫实战》
Linux 系统
大部分 Python 应用都是跑在 Linux 服务器上的, 大部分开源服务器软件使用的也是 Linux 系统, 即使日常工作不使用 Linux, 一些基本的 Linux 命令也要了解. 比如常用的文件操作, 目录操作, 进程操作等. 你可以使用类 unix 系统 Mac 或者 Linux 版本 Ubuntu 作为学习环境. 推荐:
•《Linux 工具快速教程》
•《CONQUERING THE COMMAND LINE》 掌握这上面的命令基本就可以满足日常需求了.
•《鸟哥的 Linux 私房菜. 基础学习篇》 浅显易懂, 入门 Linux 命令的好书.
数据库
现在网站业务后端用得比较多的有三种类型的数据库, 关系型数据库 (MySQL 等), 文档型数据库 (MongoDB 等), 和内存型数据库 (Redis 等). 三种数据库各有优势和特色, 后端程序员需要了解下不同类型数据库的使用方法和应用场景, 灵活应用到后端代码中. 关于各种数据库网上已经有不少资料, 读者可以自行搜索学习, 比较重要的是 MySQL 和 Redis.
python 相关库的使用
python 一大优势在于数量丰富的库, 灵活使用各种 python 库能帮助我们快速做出产品. 作为 Web 开发者, 你需要了解常用 python 库和框架的使用, 比如 django/flask/tornado/sqlalchemy/requests/pandas 等.
版本控制
目前最流行的应该就是 Git 了. 版本控制工具是多人协作必不可少的工具, 入门的程序员需要掌握基本的 Git 命令, 可以把 GitHub 作为个人练习的工具.
• 《语义化版本控制》
• 《Pro Git》
Web 服务器
Nginx 目前很流行, 使用比较广泛, 推荐学习和使用. 熟悉 LNMP 架构 (Linux + Nginx + MySQL + Python), 目前很多公司采用了都是多语言 + 微服务架构.
前端知识
基本的 html,CSS,java 需要有所了解. 很多后端工程师需要做一些工具或者管理后台之类的, 了解前端知识会有帮助.
学习和搜索能力
初学者碰到的大部分技术问题都是可以通过 google 解决的, 用好 google/Stack Overflow/GitHub 和各种技术论坛, 牛人博客等能帮助你了解最新的技术.
专业素养
公司做项目不是自己过家家, 需要你具备写文档, 注释, 单元测试, 沟通表达, 与人协作, 处理业务的能力. 如果你现在还不了解一个正规 python 项目都有哪些组建构成, 请去 GitHub 克隆一份知名的代码仓库, 花点时间仔细分析下它的项目结构和源代码. 比如著名网站 reddit 代码已经开源, 大部分 python 实现, 可以参考下.
另外很多著名的 python 库, 比如 requests/flask 等也可以作为参考. 从笔者短暂的从业经历来看, 大部分自学 python 的人不怎么遵守代码规范 (pep8), 不知道或者不重视单元测试 (写个函数 print 下就觉得 OK 了), 不知道怎么写注释和文档 (docstring 听过吗?). 所以希望学习 python 的你能遵守工程实践, 具备良好的职业素养和编码习惯, 推荐阅读《代码大全》《编程匠艺》之类的工程相关的书.
•《程序员的职业素养》
后端技术栈
对于技能需求可以在拉勾上搜一下 Python 的职位, 看看各个公司对 Python 的要求. 或者你可以写个拉勾网的爬虫, 对数据做一个简单的统计, 笔者当初找工作就是这么干的.
另外, 真正做项目还需要你熟悉 python 的各种库和框架, 比如 django/flask/tornado/requests/sqlalchemy/unittest/celery 等等, 掌握了合适的工具才能快速上手做东西, 公司恨不得你第一天入职第二天就能写项目.
所以, 在你入了门以后请尽快熟悉 python Web 的技术栈. 公司不管你会什么算法, 只在乎你的生产力 (有时候技术本身不重要, 它的价值在于对业务, 用户, 顾客的贡献).
推荐一些文章供参考:
• 《全栈增长工程师指南》
• 《Web 开发路线图》
• 《后端都要学习什么?》
• 《PYTHON 招聘需求与技能体系》
• 《PYTHON 后端相关技术 / 工具栈》
自学坑多, 如果希望快速入门, 还是老师带领最靠谱!
来源: http://www.jianshu.com/p/a1e34924263e