您的位置:首页 > 编程语言 > Python开发

Python 的岗位本来就比较少,且要求高学 Python 入 IT行业靠谱吗?

2019-03-27 15:40 555 查看

这个问题,确实很有价值。

毕竟,掌握一门技能,是需要花成本的。决策之前,做个前景判断,衡量投入产出比,是应该的。

然而,一旦深入思考,你可能自己就会对学 Python 的价值,颇为疑虑。因为大部分人看待这个问题,是在判断 Python 学过后,能否提升自己的竞争力。

国人常说的俗谚,有一句“一招鲜,吃遍天”。也就是掌握了某种供不应求的技能,于是可以坐享这种技能带来的益处与红利。

你可以暂停阅读20秒钟,在头脑里,自行匹配满足上述条件的相应技能,或是代表该技能的证书。

想好后,咱们继续。这样的技能,确实是存在。但是,要达到“吃遍天”的效果,需要你衡量市场上的供求关系。我们都知道,近几年市场对 Python 的需求确实很高。许多岗位招聘条件里面,都有 Python 这一项。

然而,供求关系的另一方,也就是供给,情况如何呢?很不容乐观。我不是说供给太少,而是太多了些。别忘了, Python 最大的特点,就是简单易学。因此,没有门槛,没有护城河,连上小学的孩子,课本上都要教 Python 了。

需求再大,如果供给是这样的,价格也很难上去。

所以,如果你的打算,是学好 Python 以后,直接用它变现,那你一定要三思而后行。

这是不是说,你不该学 Python 呢?

恰恰相反,你真的应该学 Python 。

你可能会疑惑:老师,你这不是前后矛盾吗?

不是。Python 要学,但这项技能,真的不是这么应用的。

连接

Python 无门槛,这么简单,学会了也毫不稀奇,那学它还有什么用?

用处大了。

因为它可以让你和一张巨大的协作网络连接起来。这张网络的溢出效应,对你来说益处可谓巨大。

举个例子。机器学习听说过吧?最近很火的。从前人们做机器学习,用的工具叫做 Matlab 。直到6、7年前,当 Andrew Ng 制作后来成为经典的《机器学习》课程时,用的工具还是 Matlab 。

当然,因为当时 Matlab 很贵,所以 Andrew Ng 鼓励大家用 Octave (一种 Matlab 的开源实现版本)替代。我学这门课程的时候,很痛苦。其中最重要的原因,就是 Matlab / Octave 的使用。这是当时做的第 8 次作业,你看看为了做个协同过滤(Collaborative Filtering),需要多少个文件。

随便打开一个代码文件,是这样的:

结果是,大部分学员,根本就不知道,该如何完整撰写一个协同过滤算法的程序。大家只能满足于课程的要求,即在每个文件指定的位置上,做完形填空。

因此,那时候你要是打算使用机器学习,就必须要抱着一本 Matlab 的书啃下来。因为只有明白了它怎么用,你才真正能壮起胆子,尝试从头到尾,去实践自己从 MOOC 学来的机器学习技能。

然而,短短几年之后,事情就完全变了。

2017年,Andrew Ng 的 Coursera 课程《深度学习》推出,这次,他再也不提什么 Matlab 了,从头到尾都是 Python 。

Andrew 教起来轻松,大家学习起来开心。而且更妙的是,因为 Python 简单易懂,因此全部示例代码,你可以很容易看明白,并且知道当应用于自己的实际项目时,修改哪些部分,就可以复用。

其他基于 Python 的机器学习课程,也像雨后春笋一般遍地开花。

例如在 fast.ai 的课程里,实现同样的协同过滤功能,你再也不用写那一堆 Matlab 文件和函数了。你需要的,仅是以下这几行代码:

from fastai.collab import *
path = untar_data(URLs.ML_SAMPLE)
ratings = pd.read_csv(path/'ratings.csv')
ratings.head()
data = CollabDataBunch.from_df(ratings)
learn = collab_learner(data, n_factors=50, y_range=(0.,5.))
learn.fit_one_cycle(5, 5e-3, wd=0.1)

好了,搞定。

Python 没有门槛。但是通过掌握它,你可以用更短的时间,更高的效率学习和掌握机器学习,甚至是深度学习的技能。

注意,能以这么短短几行代码搞定问题,不是因为你学了 Python ,所以技能大涨。

那是因为这个巨大协作网络中开发框架的人,“刚巧”也是用 Python 来封装细节。你们在说同样的语言,因此你可以把他们的研究成果,“拿来”使用。

越来越多的高手都使用 Python 来编写框架、制作工具,因此会吸引更多人来用。

越来越多的人习惯用 Python 来完成某项功能,那么开发功能的人也被绑定在这个路径上,只能选择用 Python 来开发。

这样的一个正反馈循环,就像在滚雪球。

你可能很为那些好不容易掌握用 Matlab 做机器学习的人鸣不平,似乎他们才是会真功夫的人。而学了 Python 的人,都有作弊之嫌。

才不会。能掌握 Matlab 的人,都可以很容易学会 Python ,他们也可以立即加入这张协作网络,享受这种便利。

看这个曲线。


这是 Google 趋势上面,用“matlab machine learning”和“python machine learning”分别检索,得来的结果。

可以看到,如果今天你选择用 Matlab 来做机器学习,你的协作网络,和 Python 比起来,小得可以忽略不计。

这网络里面,包括为你打造工具的高手们,为你提供教程的人,也包括你潜在的合作伙伴……

你是希望自己的网络大一些,还是小一些呢?

方法

了解了 Python 的特点,你也就大略知道,该怎么去学它了。

我见过不少初学者,深吸一口气,摆开阵仗,恨不得投入一年的时间,“系统”掌握它。其实没必要这么如临大敌。

如果教材编写者假设,儿童都能在一个学期内学会 Python ,你一个受过高等教育的成人,学起来应该更轻松才对。

其实你看现在那些好的 MOOC 里面(主题包括但不限于数据分析、数据可视化、机器学习、深度学习……), Python 学习大概是怎么做的。


你千万不要用背单词的方式来学 Python ,那效率会低得惨不忍睹。

说句题外话,即便你用背单词的方式来学英语,我也不推荐。

你学 Python ,就应该是快速掌握一个最小核心技能集,例如知道怎么赋值、怎么判断、怎么循环,然后会自定义一个函数,可以输入输出东西……好了,可以上路了。

因为大部分的工作中,主要就用上述这些功能。

遇到不明白的,直接查文档。

Python 的文档,只要你不嫌弃它太详细就好。

查文档搞不定的问题,也没关系,反正这门语言,世界上有数不清的人都会,论坛上发帖问呗。

这是给别人提供实现自我价值的机会。

说实话,这机会不好碰到,说不定有人甚至会感谢你的提问呢。

"python学习交流群:7 8 4 8 6 7 4 5"

你看,这样一来,你的技能来自于对真实问题的挑战,这样学起来,你的动力更足,学会之后你的满足感更强。

而且,你的记忆,会更加深刻。

首先,Python 本身不是什么独门绝艺,不要被人忽悠,以为学了 Python 就能……;

其次,Python 是你连接到一个巨大协作网络的桥梁,网的正外部性会让你充分受益。偏偏这桥梁还没有守卫,因此你,即便是个听到技术就头痛的文科生,也可以轻松进入;

第三,学习 Python ,不要舍本逐末去死记硬背知识。;

“python学习交流群:7 8 4 8 6 7 4 5”

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: