热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我需要学编程吗?

我原本是没打算写这篇博客的,但今天的事情迫使我回忆了以前发生的许多情景,它们提醒我同一件事:仅仅需要一点点编程技能,许多烦人

      我原本是没打算写这篇博客的,但今天的事情迫使我回忆了以前发生的许多情景,它们提醒我同一件事:仅仅需要一点点编程技能,许多烦人的事情都迎刃而解,所以,我迫不及待地要在开篇就回答标题的问题,是的,需要!

      那么现在,为了挽留我的部分读者,你们不喜欢鼓捣计算机更不喜欢编程,请稍等一下,这篇文章就是为你们写的,倒是程序员们现在可以回去洗洗睡了,你们编了一天程也累了,我这里说的东西你们都懂。

      为了说服你们,我先说说我经历的几个情景吧,说不定你也遇到过呢。

      情景一:也就是今天写这篇文章的最终动力。我女朋友十万火急地打电话给我让我帮他解决一个问题,她需要在一个统计软件X中处理一堆数据,而问题十分简单,有几百号人做了15道选择题,需要找出在所有题里都选了C的人的比例,但难的地方是这个统计软件X我完全没接触过,不可能在几分钟之内在网上找到这个软件,下载下来学习一下,然后再google搜索怎么使用该软件X完成这个简单的功能。当然,我这样干这事儿的结果可想而知。

     情景二:在做产品开发时,我有一个同事需要统计某个目录下所有pdf文件的页数,manager希望她找个开源软件来统计,而她宁愿一个一个打开所有文件(大概30~40个,我记不清了),人工统计,显然30~40个文件也不是很费事,她不到5分钟就搞定了。

     情景三:举个不一样的情景。我一个哥哥是一家照明公司的老板,有一天他打电话问我怎样在公司电脑建一个文件夹,让办公室的同事都能查看里面的文件。我立刻明白他需要的是一个文件共享功能,我告诉他怎样共享一个文件夹,但他完全找不到我说的按钮在什么地方,oh,他当时用的是windowsXP,而我用win7,由于不允许远程控制,我只能在虚拟机里装了个xp再一步步告诉他怎么做。但这已经是最简单的方式了,如果我告诉他如果需要复杂的共享,就需要安装一个文件服务器,他肯定会直接挂掉电话的。

    好了,以上三种情景,如果使用一点编程,不到10分钟,就可以解决问题,而且永远不用为类似的问题而烦恼。

    但是你们为什么还是不愿意学呢?我知道大多数人的回答是:我有功夫学那东西,早就搞定了。是的,第一次遇到这些问题,人工解决和编程花费的时间差不多,而且,通常编程更加耗时。也就是说,学习编程的时间成本太高了,那么是什么导致时间成本的急剧增高的呢?

    1.厌恶。是的,对许多人来说,“去编程”就像是说“去给阁楼里恶臭的老妇人洗脚”一样,是一种从心底的抵触情绪。尤其是从小厌恶学数学的一些girls,你怎么可能期望她们再去书写一堆符号去做事。

    2.编程语言。天哪,竟然有那么多种编程语言,这些搞计算机的怎么想的,弄一种语言不就好了吗。大家都说普通话了,你们怎么还搞这么多语言,我学了粤语解决了广东的问题,我明天到陕北又搞定不了,算了。

    3.编程规则。好不容易选了一种语言,还要记一堆的规则,还要下载一些奇奇怪怪的软件,搭建什么听也听不懂的开发环境,编译?火星词汇吧,天呐,彻底崩溃!

     对于第一点,我遗憾地告诉你,你需要实际地去开始去学一种编程语言,你才会发现编程也没那么讨厌,但我可不敢保证你从此就不讨厌编程了。我可以告诉你的是一种讨厌缩减方式,就是你需要做一件讨厌的事:花一天时间学编程,从此拒绝情景描述里所有讨厌的事。

    对于第二点,答案很明显,选择一种类似普通话的语言,它既能解决今天数据处理的问题,又能解决明天文件共享问题,而且解决起来都很简单。

    对于第三点,我保证,你聪明的大脑里记10个左右简单的规则并不难。

    Everybody should learn a programming language. 这句话最近被很多大佬说过。这些人发起了一个网站Code.org,该网站倡议每个人的一生都应该学习一种编程语言,因为它教会人怎样思考。发起人都很重量级,比尔盖茨,扎尔博格等等都在其中:

 

          甚至,在最近流出的乔布斯生前未公布的视频中,他也觉得每个人都应该学习一种编程语言。

          所以很多人受其激发,兴致勃勃地想要开始学习,但做完网站上的教程后,发现还是解决不了日常遇到的问题,这是因为他们想要传达的是一种编程思想,但它们却没有给出具体的语言,导致学习者还是无从着手。所以最后,我要弥补一下,我要推荐的编程语言是Python,这种语言非常简单但非常强大,日常工作中的大部分的需求它都能满足。但我要强调的重点却不在这里,重点是使用方便。你只需要从Python网站上下载一个不到20M的安装包,双击安装后,用记事本就可以编写程序了,就这一点足可以秒杀大多数语言。

      我就描述一下如果使用python,怎么去解决文首列出的三个情景。

      对于情景一,我可以让女朋友将软件X中的数据导出为Excel或者XML,我相信这是大部分数据统计软件都具备的功能,然后我可以写一个不到20行的程序,完成这个简单的计算。这样,我完全不需要去学习这个统计软件X,而且以后也不需要为她其他的数据处理而烦恼了,我也不需要去Google找回我那早已遗忘的Excel知识,一招走天下。excel高手可能会冷笑,但是如果面对一个几万行的txt数据文件你可能就笑不出来了。

     对于情景二,同样写一个不到30行的文本文档,就可以解决。同时以后再有什么统计文件夹下的jpg格式图片,或者将文件夹下300个txt小说章节(这一定是一本网络仙侠小说,哎)复制为一个txt文件,你都可以在5分钟之内解决。

     对于情景三,甚至只需要写一行代码,保存成一个文本类似的文件,大小不过1kb,传送给我哥之后,他就可以双击这个文件就建立了一个文件服务器了,他根本不用去找什么共享选项,我也不同担心我在win7上写的他的xp能运行吗?

    让我们再来总结一下以Python学习编程的优点吧:

    1.安装配置简单,下载一个17M左右的文件,就可以开始编程、运行。这很好,我曾经花了两天两夜就为了配置一个环境,这是非常痛苦的,尽管我很喜欢那种编程语言。

     2.编写运行简单。一个windows记事本就行,写完双击就能运行。我相信没有人愿意花时间去熟悉复杂开发工具,完了还得学习编译执行。

     3.一招定乾坤。对于那些被项目逼迫的朋友,你老板可能并不清楚到底要用什么语言来做,如果不是他强迫你使用别的语言,就用python吧,因为C#能做的python能做,VB能做的python能做,Java和C能做的python也能做,ruby能做的python也能做,matlab能做的python还是能做,python可是号称万能胶水啊,所以就算你的同事用别的语言,你的python程序也能和它们协同工作。(哦,好吧,我不得不再次重申,这是写给不爱编程而不得不学编程的人看的,在此讨论各个语言在领域内的优劣势没有意义的)。

     4.易于再次利用和show off。我相信,你辛辛苦苦写的文件拷贝程序保存在u盘里,不希望发现重装电脑后就不能用了,或者当你把这个程序传给你老爸解决同样的问题,正等待他的夸赞时,却发现他的电脑根本执行不了。更不用担心提示什么“.net版本过低”或者“找不到jdk路径”这种火星问题了。而使用python是非常利用重利用的,我相信当你使用几年后,你的u盘可能会是这样的(虽然程序员看着可能觉得很恶心,但我知道,这是你成果丰硕的工具箱):

     最后,我要强调的一点是(当然这是写给python爱好者的,防止他们骂我):python非常强大,不要以为我推荐它为入门语言而低估它,即使在各种大型软件开发中也屡见身影,大家喜欢的“豆瓣网”就是用python写的,它甚至是顶尖黑客最喜欢的几种语言之一。


推荐阅读
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 测绘程序设计Excel度分秒转换模板附代码超实用版
    本文介绍了测绘程序设计Excel度分秒转换模板附代码超实用版的相关知识,包括准备工作、编写表达式和注意事项。在实际工作中,将GPS实测的经纬度度转换为度分秒是常见需求,本文提供了在Excel中快速进行转换的方法,以提高工作效率。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文探讨了C语言中指针的应用与价值,指针在C语言中具有灵活性和可变性,通过指针可以操作系统内存和控制外部I/O端口。文章介绍了指针变量和指针的指向变量的含义和用法,以及判断变量数据类型和指向变量或成员变量的类型的方法。还讨论了指针访问数组元素和下标法数组元素的等价关系,以及指针作为函数参数可以改变主调函数变量的值的特点。此外,文章还提到了指针在动态存储分配、链表创建和相关操作中的应用,以及类成员指针与外部变量的区分方法。通过本文的阐述,读者可以更好地理解和应用C语言中的指针。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 用PHP连接MySQL代码的参数说明【PHP】
    后端开发|php教程PHP,连接,MySQL,参数后端开发-php教程代码是这样的:大图标网站源码,怎么在vscode中调试css,ubuntu退出命令行,系统默认开tomcat, ... [详细]
  • 零基础用Python打造Android字符串资源翻译器(五):增加图形化界面
    目录 ... [详细]
  • 导读:在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。和那些 ... [详细]
author-avatar
手机用户2502923017
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有