我劝你学点编程,很简单的

朋友,来coding吧!

学习编程不仅在于可以解决当前的什么问题,更在于对自己思维方法的改变。

编程替代重复性劳动

编程能替代工作或生活中的大量重复性劳动。

比如偶尔偏离生活的轨道,真的是坏事吗?中的事例。

比如前一段我们有个工作是进行机构分类,查询文本文件中的机构是否为私募基金管理人。方法是在私募基金管理人综合查询网站中输入机构名称点击查询。但是有几十上百家机构的时候,手动从文件中复制再粘贴到网页中查询,是非常低效的。这时候,如果你懂点爬虫知识,只需要一段代码即可:

import requests  
import json

headers = {
    'Host': 'gs.amac.org.cn',
    'Origin': 'https://gs.amac.org.cn',
    'Referer': 'https://gs.amac.org.cn/amac-infodisc/res/pof/manager/index.html',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest'
}

url = 'https://gs.amac.org.cn/amac-infodisc/api/pof/manager?rand=0.7119720626937933&page=0&size=10'

data = {
    'rand': '0.7119720626937933',
    'page': '0',
    'size': '10'
}

with open('私募基金.txt','r',encoding='utf-8') as f:
    print('以下机构不是私募基金:')
    is_pe = True
    for org in f.readlines():
        org = org.strip()
        payloaddata = {"keyword":org}
        dumpJsonData = json.dumps(payloaddata)
        r = requests.post(url,data=dumpJsonData,headers=headers)  
        if r.text.replace(r'</em>','').find(org) == -1:
            is_pe = False
            print(org)
    if is_pe:
        print('无')
运行结果

这都是学习编程能带给人们显而易见的好处,也是非科班选手进入编程世界的原因,学习编程在这方面也确实可以给人满意的回报。

Python 为例,近些年 Python 的流行,对编程的普及起到了极大的推动作用。更多没有接触过编程的人也能偶尔写段代码解放自己的双手。 Python 语法接近自然语言,入门简单,但是功能却很强大,所谓

Python 除了不能帮你生孩子,什么都能做!

虽然 Python 也有其缺点,如入门简单精通却很难,如优秀的库太多不知如何取舍,如运行效率不如 C / Java 等。但是对于非科班想要利用编程工具解决一些实际问题的人来说,这都不是问题。所以我认为,非科班的初学者最好的入门语言就是 Python

入门简单精通很难

对于很多生活中的应用场景来说,编写简单的 Python 代码即可,根本不需要很精通。况且,Python 生态圈很活跃,网上有大量的现成代码,只需稍加修改即可应用到自己环境中。

我开始入 Python 的坑是因为想爬取豆瓣图书、电影的数据。我的学习路径是先学习 Python 最基础的概念,就是数据类型和函数。对面向对象的概念只做了最基础的了解,就是别人写的时候我大概知道那是在干嘛,但是自己写是写不出来的。

这些了解之后,我就直接在网上找免费的爬虫视频教程。那时候B站上的教学视频还没有那么流行,资源很少,我就找了一个爬取新浪博客的教程跟着敲代码,熟悉基础的操作。说到这儿,初学者我还是很建议跟着视频操作或者有人带,因为对于编程初学者来说,上来就看书可能会遇到很多细节上的问题。这些问题对于老手来说,可能以为不用解释,但是对于初学者来说,就可能是迈不过去的天大的坎。

视频中爬虫非常简单,没有用任何框架,甚至文本解析也没有用常见的第三方库如 BeautifulSoup 等,直接用的 find 函数查找关键字。这样的好处就是学习门槛很低,没有任何理解障碍,特别适合于没有任何编程经验的初学者。

我在学了这个视频教程之后,又阅读了几篇爬虫相关的博文,就开始爬豆瓣电影,没想到很快成功了,这给了我极大的信心。在学习的初期,信心也许是最宝贵的东西。虽然后来由于爬取量大,需要把数据装到数据库中,又学了点 MongoDB 的操作;由于担心多次爬取被豆瓣封IP,又简单了解了使用代理;由于使用 find 函数解析文本代码量太复杂,又学习了正则表达式,等等。

这些后续学习的内容包括最开始学习的 Python 基础概念,都是走实用主义路线,只要做成想要的效果即可,学得并不精通。这也导致同样的东西我后来又多次学习。但是这样做的好处就是可以及时得到正面的反馈,很有成就感,也就获得了继续下去的动力。而且,前期虽然学得不扎实,但是对于后期的再学习也还是有潜移默化的帮助的。

当然还有一种学习方法是上来就系统性地学习,学扎实。两种方法各有优劣,适用于不同的人群,此处不做比较。

要学习哪个库

Python 火起来的一大重要原因就是拥有各个领域的大量优秀的库。这些直到我将 Python 大量应用到生活、工作中后,才有更深的体会。

  • 想操作PDF,有PyPDF2pdfplumber等,PDF文件的分割、合并、加解密、文字提取等都不是事。
  • 想做数据处理,numpyPandas 肯定是首选。
  • 想做爬虫,RequestsBeautifulSoup等库也是必学的。而且,作为pythonic的优秀代表,Requests库的源码也是进阶学习的好素材。
  • ……

很多初学者的面对大量的 Python 库会感到眼花缭乱,感觉要学习的太多,担心自己坚持不下去,于是就劝退了。

但实际上,这些常用库基本都有相应的demo,稍加修改即可应用到自己的项目中。所以,丰富的库非但不是累赘,反而可以给自己带来极大的便利。

我以前也稍微用过 VBA ,但一直不喜欢它的编辑环境,所以使用次数并不多,只是在实在无法用别的方式实现的时候才勉强写几行代码。

但是 Python 给了我另一种选择,可以拥有漂亮的编辑器,如 VS CodeSublime Text 等,还用于远比 VBA 好用得多的代码补全等功能,这也是我一开始想学习 Python 的原因。至于用于丰富的库,对于小白的我,其实是没有啥感觉的。

但是后来随着学习的深入,用 Python 做的事情也越来越多,才渐渐体会到丰富的库所带来的优势。

我认为对于初学者来说, Python 相比于 VBA ,最大的优势就是简洁,这种简洁一方面基于 Python 语言本身的一些特质,比如好用的基础数据类型如 listdict 等,另一方面就是得益于大量的库。

如果你不理解库是什么,你可以认为是工具箱,或者是零件库,是别人将常用的功能组装好,你写程序时可以直接一句话调用的东西。

举个可能不太恰当的例子。要把大象装冰箱,需要怎么操作?

  1. 打开冰箱;
  2. 把大象放进冰箱里面;
  3. 关上冰箱门。

VBA 实现,你需要吭哧吭哧从底层实现怎么开冰箱,怎么拖动大象到冰箱里,怎样关冰箱门。

而有了库的帮助,你可以直接关注业务逻辑层面的问题,即只需要关注上面三步。至于每一步怎么实现,库已经帮你做好了,你只需要调用即可。这无疑大大减轻了初学者进入编程世界的门槛。

运行效率问题

不可否认,Python 语言的运行效率总体上是不如 C 或者 Java 这样的语言的。但是运行效率恰好对初学者来说并不是一个很重要的问题。一个手动需要10小时完成的工作量,用 Python 需要10秒钟运行出结果,用 C 或者 Java 0.1 秒即可运行出结果。

这其中的差距大吗?大,有 100 倍的差距!

但对于我们要实现的功能来说,多个 10 秒钟或者少个 10 秒钟根本可以认为没什么差别好吗?

而学习 Python 语言却可以节省很多时间,编写简洁的 Python 代码也会更省时省力。

编程带来思维方式的转变

讲话有逻辑、做事有条理是一个逐渐被大家高度认可的能力。但是逻辑能力的培养却不是一朝一夕的事情。

世面上有很多书讲如何提升逻辑能力,但是一个关键问题是,这种底层能力的提升都不是靠看基本理论书就可以,而是需要大量练习的。

那如何练习呢?

我觉得数学训练是有助于提高逻辑能力的。但让大多数成年人去学习微积分、复变函数等是不现实的。且不说有没有时间、有没有兴趣,就算这些都有,那得能学得会啊!

而学习编程可以给你带来的逻辑能力的提升,这可能是很多人开始学习编程时所没有想到的。

也很好理解。

如果你逻辑思维能力不强,写出来的代码就会bug不断。变量的初始化是在循环外还是在循环内?边界条件要不要做特殊处理?还有什么特殊情况没有考虑到?这些都会影响着程序的正确执行。

疫情期间我写过一段代码,爬取每天公众号发布的疫情信息,解析其中的数据并记录下来。这段代码连续很多天一直运行很好,突然有一天发现出错了。仔细检查代码发现是疫情后期,每天的确诊病例数和无症状感染者数量很少,甚至有时候完全没有。这时候疫情信息的描述就与有数据时不同,程序检测不到相应的固定格式,就会报错。

所以程序员的目标都是写尽可能健壮的程序,也就是尽量能适应各种极端情况,这就需要在规划程序时就考虑到方方面面。没有良好的逻辑思维能力,是很难完成这样的工作的。但与此同时,持续这样的代码训练,也会让你的逻辑思维能力有极大的提升。

最后

写完本文,我听到了一个播客,为什么要学编程。里面提到了My First Million Podcast的节目主持人 Sam Parr 以2200万美元的价格卖掉了之前做的hustle,一个 newsletter 平台。卖掉的原因是,他觉得写 newsletter 对他来讲变成了一个工作,而不是生意。前者需要持续投入时间的事情,即不投入时间,就没有收益。而后者是可以以钱生钱的事业。

播客的主播提到这个事情,是因为想解释他为什么开始学编程。

主播在做播客,写博客,但这些需要持续输出、持续运营。他想学习前端等技术,这样可以运行某些服务,如SaaS。一旦服务部署,有了用户,则后续基本不需要持续投入,即可有源源不断的收入。

其实这也是我前面写的编程可以解决重复性劳动的一种思路。

但是对于大多数初学者来说,前端需要涉及的内容较多、较杂,一旦学习遇到挫折,很容易丧失继续学习的信心。 Python 入门需要的知识则少得多,也能立即对自己的工作、生活起到立竿见影的效果。后续如果对于互联网服务有兴趣,既可以学习 JavaScript 等前端语言,也可以继续学习 Python。毕竟, Python 除了不能帮你生孩子,什么都能做!x

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容