完全掌握Python:一篇文章的深度解析

发表时间: 2019-09-23 13:57

这两年,Python势头持续增长,在多个网站发布的最新编程语言排行榜中,Python都已赶超Java。

截图自IT之家

Python崛起已经是一个不争的事实,随之而来的是,越来越多的人开始抱怨找不到工作。

其实Python应用非常广泛,比如在Web领域,有很多知名的互联网公司就是用Python开发,比如知乎,果壳,豆瓣等……。

目前几个比较流行的领域,也都有它的用武之地。

  • 云基础设施-Python/Java/Go
  • DevOps-Python/Shell/Ruby/Go
  • 网络爬虫-Python/PHP/C++
  • 数据分析挖掘-Python/R/Scala/Matlab
  • 机器学习-Python/R/Java/Lisp

Python应用如此广泛,为什么还这么多人找不到工作?

究其原因,无非是市场冷静下来的优胜劣汰罢了。程序=算法+数据结构。但现在大多数人学习Python,本质上都只是在学习使用一个工具,而不是在学习编程思想。

只要能力匹配,Python高级工程师还是非常受市场青睐的。

那已经学习完Python基础语法的我们,

该如何实现Python进阶呢?

想提高技能,首先得问问自己想要用Python来做什么?Github上@骆昊 把目前学Python后可能的就业方向分了几个领域,并把每个领域需要的技术作了一个简单的关键词摘要。

说明:以下数据参考了主要的招聘门户网站以及职友集

弄清了自己将来要做的方向,就可以开始有针对性的学习了。下面安利给大家一些Python学习资源,包含入门资料。

1. Python官网

www.python.org

推荐理由:这里除了可以下载安装Python,还有很多关于Python内容的优秀资源。


2. 廖雪峰Python教程

https://www.liaoxuefeng.com/wiki/1016959663602400/1016959856222624

推荐理由:他的教程有配套视频资源。


3.“从新手到大师”的百天之路

https://github.com/jackfrued/Python-100-Days

推荐理由:课程很系统,很全面。这是一位在Github上,名叫骆昊(jackfrued)的资深程序员,为读者规划的一条从“从新手到大师”的百天之路!这个项目已经在GitHub摘下59370星。

还有CSDN的知识图谱。

来自CSDN

4. Python参考书籍

https://github.com/jackfrued/Python-100-Days

5. Python练手项目 *

https://github.com/mahmoud/awesome-python-applications

推荐理由:Github上有大量的优质开源项目,其中不乏优质的Python项目,它对这些优质的资源进行了归类并提供了传送门。

//////////

就像上面提到的那样,已经入门Python的人,接下来首先需要学习的是:数据结构与算法

下面分享两本口碑爆棚的Python算法书。

1. 算法图解

全书涵盖400多个示意图,生动介绍了算法的执行过程。展示不同算法在性能方面的优缺点,教会你用常见算法解决每天面临的实际编程问题。

“你渴望像看喜欢的小说一样学习算法吗?如果是,本书正是你梦寐以求的! ”

——Sankar Ramanathan,IBM Analytics

豆瓣读者评论:




2. Problem Solving with Algorithms and Data Structures Using Python SECOND EDITION

“Python算法入门最佳!每一页都值得读! 一边翻翻这本书一边刷题开始了我*真正*对编程的入门和喜爱!”

这是豆瓣读者给这本书的评价。它还有很多好评,比如亚马逊4.3星好评。

豆瓣评分9.3等。

这是一本用Python描述数据结构与算法的开山之作!能让你洞彻数据结构与算法,真正精通Python。

如果把编写代码比作行军打仗,那么要想称霸沙场,不能仅靠手中的利刃,还需深谙兵法。Python是一把利刃,数据结构与算法则是兵法。只有熟读兵法,才能使利刃所向披靡。

它还是一本被众多高校采用的经典计算机科学教材,一本能真正帮技术人员解决编程问题的“答案之书”。

你肯定在学习解决问题的基本方法上投入过大量的时间,并且相信自己拥有根据问题描述构建解决方案的能力。你肯定也体会到了编写计算机程序的困难之处。大型难题及其解决方案的复杂性往往会掩盖问题解决过程的核心思想。

计算机科学被认为是一门利用计算机来解决问题的学科,了解数据结构与算法是透彻理解计算机科学的前提。这本书让我们可以掌握数据结构与算法的基本思想,从而有信心探索任何编程难题的解决方法。

它由在计算机科学领域深耕数十载,有着丰富实战经验的 Bradley N. Miller 和 David L. Ranum 合著。

布拉德利·米勒(Bradley N. Miller)

美国路德学院计算机科学名誉教授,曾获美国计算机协会软件系统奖,对Python课程开发有深入研究,由他创立的互动式教科书平台Runestone Interactive与全球600多家教育机构有合作。

戴维·拉努姆(David L. Ranum)

IBM Watson认知软件工程师,医学信息学博士,致力于利用自然语言处理等人工智能技术解决医疗问题,曾在美国路德学院讲授计算机科学课程近三十载。


当然,不看英文书,还有中文版可以选择。

本书中文版已由图灵引进出版,由Twitter工程师吕能和腾讯工程师刁寿钧联合翻译。



吕能

Twitter软件工程师,开源项目Apache Heron的核心贡献者。先后在浙江大学和美国加州大学洛杉矶分校取得计算机科学学士学位和硕士学位,关注分布式实时数据引擎系统的研发,热衷于普及计算机技术知识。

刁寿钧

腾讯优图实验室后台开发工程师,毕业于复旦大学。先后从事过广告业务与智慧零售、智慧社区业务的开发工作。热爱算法与数据库技术,曾协助组织IMG社区的技术沙龙活动。另译有《数据分析实战》。


本书结构

本书紧紧地围绕着运用经典数据结构和技术来解决问题。下面的组织结构图展示了充分利用本书的不同方式。


本文来源:图灵社区