是什么在阻碍非专业人士的编程道路?

这篇是纯吐槽。昨天发生的一件事,让我开始反思是什么在阻碍一个非专业人士的编程道路。

其实很简单,我做了一个方便报销的小应用。用现成的工具包读电子发票的PDF,抽取其中的日期和金额,按月份加总输出。在我自己的电脑上,这些运行得非常顺利。但是当我试图把这个应用部署到公司服务器以供同事使用时,事情开始令我抓狂。

读取PDF包叫pdftools,在服务器上装的时候,提醒我缺少其他的依赖项,于是我按部就班地装了新东西。

之后还是不能运行,这个工具报错,大概是找不到对应的PDF上文字的字体映射。于是我Google了一下,结果非常少,但是可以通过装poppler-data这个包解决。

装了之后,还是报同样的错误。由于Google上对这个错误的解决方案仅限于安装poppler-data,我只能另外再换关键词搜,去搜更宽泛的问题。搜了半个多小时,大概有个不太明晰的Gist,说可能和环境变量有关,于是我尝试设置,依然没有解决。

然后我忽然意识到,难道是poppler这个包没有装?于是我尝试去装这个包,没想到它官方网站居然没有安装文档。当时我的反应是,「难道全天下人都天生知道怎么装这个包吗?」于是我又只能去搜索如何安装poppler,所幸Stack Overflow上有几个回答。但我一一照做,没有一个成功的,poppler版本更新之后,旧有的安装方法都失效了。

于是我开始搜索如何安装新版,半个小时,终于找到了解决方案。当我跟着流程走的时候,又报错了,说需要更新cmake这个包,公司服务器上的版本太旧了,不支持。

于是我又开始搜索如何安装cmake,中间又报了几次错,上网搜,解决,最后终于更新了cmake。然后重新装poppler,又报错了,大意是cmake的某个路径设置不对。

我当时就掀桌去睡觉了。今天早晨我还是不甘心,继续搜索poppler,发现它是基于xpdf这个包的。于是我试着装了xpdf,之后所有都好了,我的应用终于运行正常了。

但是,我的应用是做什么的来着?不过是抽取PDF里的日期和金额啊!我写这个应用总共花了一个小时,但是为了能让它上线使用,至少花了六个小时。我是非专业的编程者,大学学过一些编程基础,Python和R都是自学的,在公司写代码一年,也解决过一些服务器的问题,最后碰到这种无厘头的问题,还是忍不住掀桌想放弃。

——那么对于希望尝试编程的入门人员怎么办?

我想到我的一个朋友,想学习Python,努力了很久但是连Python都装不上。我想到以前我想学PHP,却发现官网文档一团浆糊,连怎么配置都没有。我也想到自己刚开始学Python写爬虫,必须的包却怎么都装不上,最后不得不放弃。我还想到,大学学JAVA的时候,老师让我们点开某个系统设置,点进某个选项卡,在环境变量中加上某个路径,当时好多同学一脸茫然。

有多少人不是因为编程本身而放弃了编程?有多少人也许本来可以写一些代码提高工作效率,却因为各种环境变量,最后连Hello World都print不出来?有多少人其实写的代码也不复杂,却因为这个那个依赖项被搞得精疲力尽,怀疑自己为什么要做这些?

并不是每一个人都能有高超的搜索能力,可以搜到每一个奇怪bug的解决方案。也并不是每一个非专业的人都会那么有耐心,花上六个小时甚至更多,去运行自己写的几十行代码。

这种感觉就像,为了吃上披萨,不能去必胜客,必须自己买原材料,自己组装烤箱,自己烘焙,甚至连电网都要你自己搭建起来。

而我不过是想吃个披萨而已。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181229G1IL4G00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券