「非程序员」编程指南

转载请注明,来自微信公众号:以为以为

编程往往不是人们感兴趣的话题。但它很有价值,除了专业的软件开发工程师,也就是所谓的程序员,很多人在工作中其实都会不同程度的涉及到。即使没有刚性的需求,很多工作若以编程适当助力,往往可以提升效率。并且,不仅仅是工程技术人员可以从中受益,早在 1980 年代,作家王小波就自己写程序满足日常写作的需求以及提高创作效率了。

我们今天要展开的就是针对「非程序员」编程的话题,让我们一项一项讨论。

1. 以解决问题为目的

编程不是说非要做一个什么系统出来,我们的目的是要解决问题,所以首先要想清楚解决的是什么问题。大多数情况,可以归结为两类:一类是,我们希望把那些重复的工作交给软件去完成,从而节约人的时间;另一类是,我们要针对特定领域进行特殊的计算和分析,我们对这个领域很熟悉,但需要借助软件解决这个领域的一些问题。

当面对的问题,没有成熟的软件帮我们解决时,我们可以考虑通过适当的编程工作来解决。问题分析清楚,解决问题的道路就会平坦一些。

2. 如何选择编程语言

编程语言的选择取决于要解决的问题。编程语言没有好坏,更没有尊卑,只有合适不合适,能解决问题的语言就是好的语言,这是大的原则。

在这个大的原则基础上,我们可以考虑以下几个方面:

学习曲线:学习曲线过于陡峭的语言显然不适合「非程序员」,主要是考虑投入的时间和获得的效果,同样的条件下要选那些易于使用上手的语言开始。

成熟度:不要赶时髦选择那些新推出的,尚未成熟的语言,往往有很多「坑」,会有很多不必要的麻烦。

库资源:要和想解决的问题匹配,不要企图自己重造轮子,一个语言的背后就是一个工具体系,要看这个工具体系里是不是涵盖了你的需求。除了语言本身的库,还要考虑整个语言生态上提供了哪些软件包可以直接拿来用,这往往是最有价值的部分。

文档和社区:文档是否全面详尽,是否有活跃的社区也很重要。当你需要帮助时,详尽的文档是最好资料,活跃的社区可以提供丰富的经验资料,当遇到疑难问题也更容易找到渠道去讨论。

3. 快速取得进展

明确了问题,选择好语言和相应的库、软件包等。然后,最重要的是以最快的速度写出第一个可以运行的程序,哪怕只是简单的输出一些信息。

因为走完第一步,才表明你选择的语言和工具等已经安装和配置完好,是可以实际运行起来的,有了这个基础,后续的所有步骤才会顺利。

然后,最好把你要解决的问题的关键部分提取出来,简化一下,写程序去验证下是不是可以达到预想的效果。用最简化的方式去验证最关键的部分,写出可以运行的程序。

在这个基础上去逐步完善,一小步一小步去丰富和验证,只到最终达到满意的效果。

不要一开始就大而全,不要过度设计,把问题的关键点找到,从这里开始,然后去不断的迭代完善。

4. 获取高质量的网络资源

最好从原始的文档入手,不要急于求成去看那些二手资料。大多数语言都有官方网站和官方文档,这些是最有效的学习资料。另外,还要推荐一个网站:

stackoverflow.com

这是一个软件开发的问答社区,人们开始用一个新的语言遇到的问题,在这个网站上几乎都有人问过,并且得到了很好的回答。如果需要,去相应的语言目录下去找即可。当然,也可以搜索想要的内容,如果需要可以开新的问题提问。

如果一定要用搜索引擎去查询一些问题,这里分享一个经验,通常,来自这两个源的内容质量还可以:

一个是来自网易博客,网址里含有:blog.163.com ;另一个是博客园,网址里含有:cnblogs.com 。这里还有一批软件开发业者坚持更新他们的 blog ,积累了一些优质内容。

5. 常见语言的特点和适用场景

VBA - 是微软 Office 系列内嵌的脚本语言,如果面对的问题和 Excel 、Word 相关,并且已有的功能解决不了这样的问题,那么可以考虑用 VBA 来写一些扩展来解决问题。

更多信息参见:

https://msdn.microsoft.com/en-us/library/office/ee814735(v=office.14).aspx

Windows Batch Script - 是 Windows 平台上的批处理语言。适合完成一些需要重复操作的任务,比如批量的文件处理,把不同命令行工具整合起来完成特定的任务等。

更多信息参见:

http://commandwindows.com/batch.htm

Python - 适用范围很广,学习曲线也比较平滑。拥有丰富的库和开源资源供选择,并且安装、运行都比较方便。

更多信息参见:

https://python.org

http://www.pythondoc.com

Java - 拥有广泛和成熟的资源,文档和社区也比较健全。唯一的缺点是,对于非工程化的应用场景显得过于繁琐,不像 Python 那么简单易于部署。

更多信息参见:

https://www.java.com/zh_CN/download/faq/develop.xml

C 语言 - 有着广泛的适用性,很成熟的一门语言。在用它之前,要彻底想清楚,用它解决什么样的问题。因为,大多数需要用 C 实现的事情都已经有了对应的其他解决方案了,也就是不需要重新造轮子了。

不过 C 可以写比较原始的数据运算,编译成命令行程序,和 Windows 批处理脚本结合起来应用是一个不错的选择。

更多详细信息参见:

https://zh.wikipedia.org/wiki/C%E8%AF%AD%E8%A8%80

R 语言 - 一种针对统计分析的编程语言。之前的文章里提到过,适用于做数据分析的场景。

更多信息:

https://www.r-project.org/

Lua - 一种小型脚本语言,很多游戏引擎里应用的就是 Lua 这种小而精悍的语言。Lua 可以和 C 语言无缝结合,是一种很灵活的解决方案,这个语言的接受度和普及度要小一些,但很成熟,也很实用。不过,学习曲线稍微陡峭一些。

更多详细信息参见:

https://www.lua.org/

更多其他语言我就不再列举了,下面这个网址列车了 2016 年的 20 大编程语言排行,有兴趣可以去了解下:

http://www.tiobe.com/tiobe-index/

转载请注明,来自微信公众号:以为以为

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

推荐阅读更多精彩内容

  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 10,984评论 6 244
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,103评论 18 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,210评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,574评论 25 707
  • 看过青春偶像校园剧的同学们都向往大学的生活,我也不例外。还是高中生的时候就听老师回忆大学时光,是个可以一边...
    大杰杰_5e7b阅读 201评论 0 0