很多人说精通Python?对于精通我们存在哪些误区
如何才算精通Python?在Python学习中,我们都有哪些误区?相信你看完这篇文章都会得到解答。心灵也会得到释放!
专注于为中小企业提供成都网站制作、成都做网站、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业颍泉免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
如果不能,我希望这篇回答能让你意识到自己Python知识还存在哪些不足,在之后的学习中,从哪些方面去改进。
一、精通是个伪命题
怎样才算精通Python,这是一个非常有趣的问题。
很少有人会说自己精通Python,因为,这年头敢说精通的人都会被人摁在地上摩擦摩擦。其次,我们真的不应该纠结于编程语言,而应该专注于领域知识。
比如,你可以说你精通数据库,精通分布式,精通机器学习,那都算你厉害。但是,你说你精通Python,这一点都不酷,在业界的认可度也不高。
再者, Python使用范围如此广泛,一个人精力有限,不可能精通所有的领域。就拿Python官网的Python应用领域来说,Python有以下几个方面的应用:
- Web Programming: Django, Pyramid, Bottle, Tornado, Flask, web2py
- GUI Development: wxPython, tkInter, PyGtk, PyGObject, PyQt
- Scientific and Numeric: SciPy, Pandas, IPython
- Software Development: Buildbot, Trac, Roundup
- System Administration: Ansible, Salt, OpenStack
如果有人声称精通上面所有领域,那么,请收下我的膝盖,并且,请收我为徒。
既然精通Python是不可能也是没有意义的事情,那么,为什么各个招聘要求里面,都要求精通Python呢?我觉得这都是被逼的。为什么这么说呢,我慢慢跟大家分析!
二、为什么招聘要求精通Python
绝大部分人对Python的认识都有偏差,认为Python比较简单。相对于C、C++和Java来说,Python是比较容易学习一些,所以,才会有这么多只是简单地了解了一点语法,就声称自己会Python的工程师。
打个比方,如果一个工程师,要去面试一个C++的岗位,他至少会找一本C++的书认真学习,然后再去应聘。Python则不然,很多同学只花了一点点时间,了解了一下Python的语法,就说自己熟悉Python。
这也导致Python的面试官相对于其他方向的面试官,更加容易遇到不合格的求职者,浪费了大家的时间。Python面试官为了不给自己找麻烦,只能提高要求,要求求职者精通Python。
三、怎样才算精通Python
既然精通Python本身是一件不可能的事情,而面试官又要求精通Python,作为求职者,应该达到怎样的水平,才敢去应聘呢?我的观点是,要求精通Python的岗位都是全职的Python开发,Python是他们的主要使用语言,要想和他们成为同事,你至少需要:
1. 能够写出Pythonic的代码(什么是Pythonic的代码,请看我在另一个问题下的回答:怎样才能写出pythonic的代码? - 知乎用户的回答)
2. 对Python的一些高级特性比较熟悉
3. 对Python的优缺点比较了解
这样说可能比较抽象,不太好理解。我们来看几个例子,如果能够充分理解这里的每一个例子,那么,你完全能够顺利通过"精通Python"的岗位面试。
大家在编程的时候,经常会遇到这样的场景:先执行一些准备操作,然后执行自己的业务逻辑,等业务逻辑完成以后,再执行一些清理操作。
比如,打开文件,处理文件内容,最后关闭文件。又如,当多线程程序需要访问临界资源的时候,线程首先需要获取互斥锁,当执行完成并准备退出临界区的时候,需要释放互斥锁。
对于这些情况,Python中提供了上下文管理器(Context Manager)的概念,可以通过上下文管理器来控制代码块执行前的准备动作以及执行后的收尾动作。
我们以处理文件为例来看一下在其他语言中,是如何处理这种情况的。Java风格/C++风格的Python代码:
Pythonic的代码:
四、结论
这篇文章很长,但是,我相信对很多人都会有帮助。这里想说的是,Python是一门编程语言,使用范围非常广泛,大家不要去追求精通Python程序语言自身,而应该将精力放在自己需要解决的实际问题上。
其次,绝大多数人对Python的认识都存在误区,认为Python很简单,只是简单地了解一下就开始写Python代码,写出了一堆很不好维护的代码,我希望这一部分人看到我的回答以后,能够回去重新学习Python。
最后,对于一些同学的疑虑——招聘职位要求精通Python,我的回答是,他们并不奢望招到一个精通Python的人,他们只是想招到一个合格的工程师,而大部分的Python工程师,都,不,合,格!
很多伙伴也会问我Python有哪些岗位就业?好不好就业!
学 JavaWeb 的有必要学 PythonWeb 么?
目前市场开发的python更多是测试和自动化岗位吧?
web市场中,大型的项目被java占领,小型的有php,python如何在web市场分一杯羹?优势劣势在哪?
python在其他方面,比如爬虫啊,数据挖掘等方面的就业前景和学的要求怎么样?
这些都是总结下来伙伴们的问题 !
我在这里也跟大家做一个回复: 这个不是有没有必要的问题, 不论用什么语言都可以开发出web系统, python, php, java都行,如果单就从实现功能的角度来讲都没有区别, 都能实现 , 但是要考虑到开发效率, j ava是完全没法和python比的, 比如一个小的系统, 用java开发,你要去打开ide,配置maven, 下载spring等等框架配置好开发环境,编写代码然后编译成class之后再运行,这些其实可能一个python文件都能搞定的事情,等到你把开发环境搭建好,python都已经开发完了。当然这里只是拿了一个小系统做例子, 大系统也是一样的, 这里只是讨论了一个开发效率问题。如果单就从开发功能上来讲, 用javaweb开发出来之后如果你不考虑以后想提升开发效率的话,当然不用去学习python web开发。
目前市场上python的职位远不止测试和自动化岗位, 你如果去做云存储之类的就知道openstack实际上就是用python开发的, 很多只要涉及到这块的都会招python开发。实际上很多web项目立项之初用java立项的原因都是因为考虑到java人才容易招到而不只是java本身有多大的优势。实际上很多创业公司开始逐步转向用开发效率高的python和php作为web开发。而且java在web系统方面也在逐渐被python, go 和nodejs蚕食。
python目前在python和数据处理领域几乎都是首选语言,后期随着人工智能时代的来临, 很多公司特别是小公司会急于向数据方面考虑,首先第一个要解决的问题就是爬虫爬取数据, 所以数据和爬虫职位近两年应该会逐渐增多。
标题名称:很多人说精通Python?对于精通我们存在哪些误区
本文路径:http://scyanting.com/article/ijijcc.html