查看原文
其他

当我们学Python时,我们学什么?

2016-08-04 向右奔跑 编程派

编程派微信号:codingpy


很多朋友学习Python一段时间后,觉得有点入门了,但是不知道接下来该怎么做。如果其中有人是为了找工作而学习的Python,那么你其实很容易就可以找到自己学习的方向和目标。


这也是我为什么要分享今天这篇来自简书的文章的原因(已获作者授权)。文中作者爬取了大量Python岗位的职位要求,对于你该学哪些东西有很好的参考价值。


以下是正文,作者信息见文末,希望对你有所帮助:


虽然有时觉得Python简单得不像编程语言,知乎上也有人说,“requests 好用的让人想哭”。但当我们学习一门编程语言时,要学习哪些内容,怎么学习,还是很值得深入探究的。


先看一下Python官网上的说明:




powerful, fast, easy,  对,这就是赤果果的广告。不过我用下来的感觉确是如此,最大的问题是在于它太强大了有太多的库,貌似没有一个地方可以集中查看所有库的文档( 算吗?)。那Python究竟能做些什么?


还是先看一下官网上的说明:


The Python Package Index (PyPI) hosts thousands of third-party modules for Python. Both Python's standard library and the community-contributed modules allow for endless possibilities.

  • Web and Internet Development

  • Database Access

  • Desktop GUIs

  • Scientific & Numeric

  • Education

  • Network Programming

  • Software & Game Development


再看一下,大家都用Python做什么?


  • 做网站后台

    有大量的成熟的框架,如django,flask,bottle,tornado

  • 写网络爬虫

    Python写爬虫很简单,库很健全

  • 科学计算

    参加数学建模大赛,完全可以替代r语言和MATLAB

  • 数据挖掘,机器学习

    Python的机器学习包很多

  • 数据科学

    最近spark,Hadoop都开了Python的接口,所以使用Python做大数据的mapreduce也非常简单

  • 做系统部署,日常维护的脚本


看到Python的功能强大了吧。现在工作需要的一些网络数据抓取,我都用Python处理了。对于一个小白来说学习Python要注意些什么,哪些是重点,如果自学Python找一份开发的工作,重点又该是什么?


还是用数据说话,我用Python写了一段代码,把51JOB上上海地区Python职位的要求爬取下来,看看公司里对Python开发的要求是什么,这样你学习起来才更有针对性。




一共抓取了194个Python开发岗位


一、自学中一个最大的问题是,你没有找到应用的场景


大多数同学在自学一门编程语言时,是没有应用的场景感。就是不知道学了做什么用,讲不出具体、合理的应用。如果是有老师教,老师带着你学,是没有关系的。因为每一阶段做什么练习,做什么项目,知识点学到什么程度,老师都会帮你规划好。自学不一样,最好每个技能点都要有明确的应用场景感,这样学习起来目标、目的更强,不会出现看不到进步,自我否定而放弃。


学习Python,比较好快速找到应用的场景。如果马上可以找到解决工作生活中的问题,用Python来实现,学习的效果和效率就会立马得到提升。这种学习方法,采铜称之为“设计式操练”。


还是回到刚才知乎上的回答,有的人拿Python写了一个12306余票检测脚本;有的人用Python爬取图片和电影资源... ... 这些就是具体应用的场景感,然后分解功能,一步一步完成,Python可以用最少的代码来实现。


二、当我们学Python,我们学什么


1)如果学Python是想了解编程语言,做一些实用小工具来提高效率,那学习的主要内容应该是Python的网络访问(urllib, urllib2, requests),爬虫相关的库,正则表达式,  BeautifulSoup,XPath,Excel,数据库MySQLdb模块等,了解html网页。


这些知识熟练应用,从网络上抓取数据,再进行分析处理,完全没有问题。


2)如果你想学习Python语言找一份开发的工作,那看企业的岗位中有哪些要求。(一共194个Python开发岗位)


  • 84个Python开发岗位是要求Web开发(后端开发)占43.3%,其中81个岗位明确需要django

  • 118个岗位对Linux有明确的要求,占60.8%,74个岗位要求有Java开发经验占38.1%

  • 26个岗位对PHP有要求,占13%

  • 运维岗位4个,测试岗位3个

  • 高级工程师岗位是26个,占13%

  • 工作经验一般要求2年,一些岗位明确要求Python经验2年以上。

  • 爬虫、数据分析相关的岗位17个,占8.7%




再看一下岗位需求量,我把Java的也列出来作一个对比:


城市Python岗位数量(个)Java岗位数量(个)
上海2879993
西安101309
武汉232018
乌鲁木齐055
北京34712235


结论:


  1. Python语言作为工作中效率提升的工具,非常好用的。

  2. Python好用易学,但作为程序员主力开发语言,要求比较高,大多需要其他语言的使用经验。Python作为程序猿的想扩展的新语言非常合适。

  3. 如果没有编程语言基础,想学习Python后从事开发,要求偏高。重点要放在Web学习,框架学习上。打好Linux基础,多了解一些Java还是比较好。


文/向右奔跑(简书作者)
原文链接:http://www.jianshu.com/p/0d072583ed4c
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。


【近期热文推荐】

《Think Python 2e》中译版电子书分享

践行这5条原则,构建优秀的Python包

好用!在 Notebook 中使用 Sublime Text 快捷键

如何测试代码覆盖率:coverage.py 简介

Jupyter Notebook 快速入门(上)

Jupyter Notebook 快速入门(下)

更多精彩内容,请扫码关注编程派

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存