前一段时间在网上看到非常多的推广,无一例外都是分享自己学python的经历,告诉你自己学了之后,无一例外都是说找工作好找,需求多,2个小时的工作5分钟就做完了,找资料要30分钟,学会之后只要3分钟云云。引起你的兴趣之后然后让你关注某公众号发学习资料,几百小时的学习材料免费分享,只需要你关注回复关键字。
这些资料看着很丰富,且不说学不学得进去,其实细看之下问题很多:举个例子,面向初学者的课程里面居然有flask和django的教程,还有机器学习,Hadoop的课程,这都基本是跨了好几个专业领域的内容,从建站到大数据分析、机器学习……日常工作真的能用上么?真的需要么?身边也看过好多报名学习这个的,最后实际上无非是学习了一些helloworld的程序,满足了部分朋友发朋友圈的目的之后也没见到有更多的分享了。至于能不能学到东西?
先说结论,我认为除了程序员和数据分析相关岗位的人,其实编程对于大部分人来说必要性不强,为什么这么说呢?
如果你是从事文字创作类的工作,或者设计类的工作,那么编程对于你的日常工作而言,是基本无用的;你如果是想入行编程,那就不要指望只学一门编程语言,程序员会python可能是加分项,但如果只会python那大概率是一个减分项。
那什么情况可以学,一是结合自身的兴趣,如果学习编程本身可以带给你快乐,那不妨去学习,又或者你可以从工作性质出发去考虑:你的工作是否有部分或大部分工作内容是高度重复而且变化很小的,并且没有现成的产品帮你解决这个问题;以我自己的学习经历为例,虽然我学习Python始于兴趣,但后续也因此而获益。
在以往的日常工作中,会涉及到营销活动的策划和执行,但频次并不高,一年大概也就一两次的大型线上活动,而且每次的规则和条件都有所不同。在活动进行过程中,我每天都需要对前一天活动的数据进行分析和调整,并且每周都需要对数据进行通报和总结,由于是海外活动,不像国内有很多成熟的平台可以提供很多分析数据,因此在一般情况下就需要我自己手动把数据导出并汇总,针对前一天的数据分析表现来阶段性调整活动的预算分配和广告投入。由于分析才是这个任务中最重要的部分,因此我不想浪费太多时间在数据导出和整理这种机械重复程度极高的工作上,再者,这个分析结果并不是自己查看而是需要共享的,因此在数据呈现上也不能过于技术。
最终我选择的是Python和Excel结合,恰好这两者也是我比较擅长的工具。另外在活动承载的平台上提供了二次开发的接口,我花了大概一天时间(不是程序员,调试起来比较费时间)写了个数据导出和预处理的程序。通过程序可以把数据从平台中导出,并且对原始数据进行预处理,例如原始数据里面是时间戳,我需要格式化成时间和日期两列,或者把一些不符合活动参加条件的数据进行剔除,以便后续进行分析。在此基础上按照导出日期分别存档和更新数据,最终生成一份Excel的原始数据表。
我以这个Excel表作为数据源,在Excel中以外部数据源的形式,建立一个新的文件,并且通过这个文件来生成统计图表,这样就实现了数据源和分析文件分离。这么做的好处在于我每天只需要定期运行一下程序,那么我只需要在分析用的Excel文件中刷新数据源,那么同时就会刷新最新的统计图表,我就可以把时间用在对数据的解读和分析上。原本需要半天的整理工作量直接缩短到 5 分钟,这就意味着学会之后就能像广告告诉你那样早下班了吗?这么想的话你还是太天真了,更快更好的完成工作只会带来更多的工作量(笑)
在此之前,我也曾经用爬虫的方式去收集招聘岗位,分析行情,并对自己心仪的公司和岗位进行分析,让自己在找工作的时候对行情和目标公司有进一步的了解。学习 python 的契机也是因为当初要处理大量数据,已经超过了当时电脑运行 Excel 的处理能力,所以才转向 python 进行数据处理,以 Excel 作为数据呈现的工具来使用。当时office 的 Power BI 套件还不是很成熟(有点暴露年龄了),放到现在来看,但凡学习一点 PowerPivot(不是 PPT)的知识,对于大批量的数据处理来说也是游刃有余的。
通过以上的例子可以看出,只有在重复程度比较高,并且工作内容相对机械的情况下,编程才对日常工作能够起到提高效率的作用,如果你的工作重复性并不高,或者手动处理并不花费太多时间,那么学 Python 还不如学好 Excel,况且学好 Excel 已经能应付至少日常工作中 80% 以上的数据分析和统计要求了。而真正有那 15%需求的,或者科学计算需求的人,也会在较早阶段选择 Python 或 R 作为分析工具进行学习,这就是题外话了。