您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    为什么你该开始学习编程了?
    时间:2017-03-11 12:04 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    有一家饭店的大厨,烧得一手好菜,经过口碑相传,客人从五湖四海闻名而来。然而这对饭店的老板来说,并不单纯是一个好消息。因为客人不是奔着饭店,而是奔着大厨的手艺来的。老板必须想办法留住这位大厨,否则他一旦被别人挖走,饭店的生意就会一落千丈了。然而即便老板不惜血本保证了大厨的忠诚度,风险也依然存在:

    大厨休息或请假的时候,菜品的口味就无法让顾客满意;

    大厨只有一个,如果想在多个地方开分店,那口味也就不能保证了;

    大厨再厉害,同时也只能炒一个菜,而顾客越来越多,输出总是供不应求;

    大厨年纪大了总是要退休的,如果收徒的话,怎么继续保证徒弟的忠诚度呢?

    有一天,老板突然悟到,决定菜品口味的是大厨烧菜的过程,而不是大厨本人。如果大厨愿意把自己每个菜的菜谱都写出来,那不就可以请别的厨师来操作了吗?虽然别人按照菜谱烧出来可能达不到原味的100分,但90分总是能达到的,而这样的差距是一般的食客无法分辨的。这样只要菜谱在,饭店菜品的质量就能得到保证,扩张店面、开分店什么的就都不成问题了。

    于是老板和大厨谈了一个晚上,说服了他用菜谱技术入股。几年后,饭店生意越来越好,开了无数家分店,老板赚了很多钱,大厨也得到丰厚的分成,不用再天天靠手艺吃饭了。

    为什么你该开始学习编程了?

    什么是编程?

    在洗衣机出现之前,人们只能用手来洗衣服,需要经过浸泡、揉搓、漂洗、拧干的一系列流程。而全自动洗衣机的发明使洗衣服的工作人人都可以轻松完成,从而可以将原本用来洗衣服的时间解放出来去做其他事情。随着洗衣机的不断迭代升级,洗衣服的整个流程最终会被人们遗忘,只有设计洗衣机的工程师们了解流程,因为他们负责对其进行优化和改进。

    所谓程序,就是为了实现一个需求而设计的逻辑流程。大厨的菜谱和洗衣机的工作流程都是程序,只不过前者由人来执行,后者由机器来执行。正是因为有程序作为媒介,我们才可以分离设计者、调用者和执行者的角色。虽然程序的执行效果未必能让其设计者满意,但它已经可以脱离设计者的时间和空间局限而存在,可以被其他人执行、验证和改进。

    所谓编程,就是指编写程序。将烧菜的过程写成菜谱,本质上就是在编程。通过编程,我们更加透彻地理解并阐述了事物的本质,让曾经专属于某个人、某个团体、某个地方甚至某个时刻的东西,得以独立的存在和发展。从这个角度来讲,说编程是在创造生命也不为过。

    编程可以说是一种标准化的写作。标准化保证了服务和产品的质量,也使大规模复制和扩张成为可能。KFC正是依赖其详尽到炸薯条的油温秒数的食品加工手册,才将分店开满世界各地的。陶华碧如果不能将她的豆瓣酱配方和制作过程清楚地描述出来,交由标准化生产线去制造的话,那么今天“老干妈”最多只是一个小乡村里的作坊级产品,不可能走上我们的餐桌。

    我们每天的生活,都在和各种技术产品和服务打交道,比如导航、搜索引擎、聊天软件……你可曾想过,这些产品和服务背后的原理是什么?相信除了程序员群体之外,绝大多数人不会去想这些问题,因为:

    这跟我没有关系啊!我又不去干这行……

    应该只有专业人士才能搞懂吧,我可不行!

    能用就行了,想那么多干啥,多累呀!

    他们这么想并没有错,因为编程的本质就是:设计一个逻辑流程来实现指定的需求,使调用者无需了解实现细节即可达到目的。

    由于程序和编程的广义概念太过笼统,为不导致概念混淆,下文中提到的“程序”和“编程”,特指使用计算机编程语言编写,由机器来运行的程序。

    解放时间和注意力

    假设你已经在某岗位工作了一段时间,根据经验总结出来每天下班前有下面三件事需要做:

    A、在公司内网系统查询某业务当天的数据(约10分钟)

    B、整理成日报表并存档(约15分钟)

    C、把几个核心数据用电子邮件发送给领导(约5分钟)

    你可以在认真梳理过之后,将这个流程写下来,贴在办公桌前,或者记在脑子里。这自然比那些不知道流程的人要强得多,你可以确保每个步骤都不被遗漏地执行到(然而这并不能完全保证)。虽然你已经花了时间认真思考过,但每天这样枯燥乏味的流程都需要自己执行一遍……等等,这活我不可以找个秘书来干吗?

    当然可以,雇佣他人是一种用金钱换时间的解决方案。但是这同时又引入了许多新的问题:

    你需要花钱(废话)

    你需要把要做的事解释给秘书听,并确保他能听懂(沟通成本)

    秘书下班或休假时,这些事你还得自己做(有时间限制)

    你要为秘书犯的错误承担责任(质量得不到保证)

    每次秘书犯了错误,你都需要进行教育(培训成本)

    秘书会直接接触业务数据和信息,难保有泄密的可能(安全隐患)

    换一个秘书,以上的事情都得再来一遍……

    这不是把事情搞复杂了吗?人的成本太高,提供的服务又不可靠。而如果你会编程的话,也许你可以:

    编一个小程序来完成查数据、做报表、发邮件的流程,再配置一个定时任务每天自动执行;

    谨慎一点的话,可以让程序先发到自己的邮箱,检查没有问题后再转发给领导;

    必要的话,还可以让程序在运行出现意外时给你的邮箱或手机发报警通知;

    如果你愿意,甚至可以给内网办公系统直接加上邮件报表这个功能……

    假设你原本手工做完ABC流程需要30分钟,那么你的程序每执行一次,就为你节省了30分钟的时间。假如你写程序用了三个小时,那么一周就能收回成本,以后全部都是净赚的。如果程序运行的时间足够长,那么单次运行的均摊成本将趋近于零。可以看出,编程是一种用时间换时间的解决方案。

    当然,你需要将要做的流程写成机器能读懂的程序;如果需求发生变化,你需要对应地修改程序;如果运行时出了BUG,你需要调试修复……但更重要的是:程序不拿工资,不可能辞职,不需要休息,不会闹情绪,不可能犯错,只要你的流程正确,依赖的资源不出问题,它就可以7*24小时一直运转下去。

    每当我们写程序实现了一个需求,就好比造出了一把锤子。今后你遇到类似的问题,都可以拿这个锤子来解决。当然有时会遇到锤子不称手的情况,需要持续地升级和优化。但在大多数情况下,这个锤子都是可以直接拿来用的。也就是说:完全相同的问题,你只需要解决一次就好,不会浪费时间在重复的工作上。

    (责任编辑:admin)