python学习路线--从入门到入土

入门技术博客javascript

进阶本身挑选php

入门基础
Python入门相对容易又能够干不少事(网站,运维,数据,爬虫等),是一门方便的工具语言。2016年TIOBE排名显示Python已经名列第四,成为脚本语言之首。
国外的Youtube,Instagram,Pinterest,Reddit,Dropbox,Disqus, Quora等知名应用一开始都是基于Python构建,国内的豆瓣,知乎,果壳,饿了么,搜狐等也是Python应用的典型。
这也给了国内Python开发者一阵强心剂,Python的生态环境能够支撑起重量级的 产品。这里不想挑起语言之争,php,nodejs,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教程,简单易懂,就是跳跃有点大。

算法与数据结构
编写良好的代码须要了解经常使用的算法和数据结构,虽然你可能不多会本身实现,可是对于Python语言中一些经常使用数据结构如list, tuple, set, frozenset, dict和collections模块中的OrderedDict, defaultdict, deque, namedtuple, Counter等应该知道何时用。最主要的仍是了解算法中递归,二分等经常使用思想,写出高效易用的代码。若是你想在线练习,能够作一些Acm基础题或者去leetcode等网站刷题。 推荐书籍:
《算法导论》 你能够挑选感兴趣的章节啃一啃,也能够去网易公开课看下视频教程。若是不是计算机专业的能够看下《计算机科学导论》这门公开课,正好也是以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,javascript 须要有所了解。不少后端工程师须要作一些工具或者管理后台之类的,了解前端知识会有帮助。
相关文章
相关标签/搜索