原来学编程这么简单,如何理解程序的本质(今天听了【遇见狂神说】发布的《从HelloWorld到程序本质的思考》这个视频,有了自己的一些感悟,在这里和大家做一个分享) 一、抽象一下程序的生产过程,打个比方 二、我请的这些人分别有什么特长(主要讲解后端) 三、如何将这些人搭配起来干活 四、我们学习编程的目的是为了解决问题,解放双手,让程序帮我们干活

原来学编程这么简单,如何理解程序的本质(今天听了【遇见狂神说】发布的《从HelloWorld到程序本质的思考》这个视频,有了自己的一些感悟,在这里和大家做一个分享)
一、抽象一下程序的生产过程,打个比方
二、我请的这些人分别有什么特长(主要讲解后端)
三、如何将这些人搭配起来干活
四、我们学习编程的目的是为了解决问题,解放双手,让程序帮我们干活

1.程序的作用主要是为他人提供服务的过程,提供服务的方式分为两种(前端,后端)

2.用开餐厅打个比方:

  我是一家餐厅的老板,我想要创业,给客人提供美味的食物来获取利润,但是我一个人肯定忙不过来,所以我必须请人帮忙,请的这些人分别是谁呢?

  首先是前台的服务人员(vue,html,css,js等),接着就是后厨人员(java,mysql,redis,mq,es等),而作为老板的我,需要做的就是如何让这些人合理的搭配在一起干活!

3.那我们为什么要学这些技术呢?

  作为老板,我肯定必须知道整个餐厅应该怎么去工作,怎么去运营(也就是整体架构得清楚),所以我就得知道哪些人可以做什么事,而这些人就是我们程序中所用的技术,这是开餐厅的第一个成本!

  而第二个开餐厅的成本就是招人,招的这些人就是所谓的技术栈!这也是需要成本的(比如:购买云服务器ECS,云数据库RDS(mysql),云数据库Redis,MQ等等),

二、我请的这些人分别有什么特长(主要讲解后端)

1.如何将这些技术栈比喻成现实生活中我们要请的这些人

  云服务器ECS:也就是租一个店铺,有专门的人看守

  云数据库RDS(mysql):仓库,存货物的地方,也有专门的人看守

  云数据库Redis:也是仓库,也有专门的人看守

  MQ消息中间件:接单,派单的人

2.这些人都能干嘛

  其实这些人生下来,只会做一件事,就是自己的本职工作(很单纯的一群人),你只要说清楚让他们去做的事情,只要他们听懂了,就会照着你说的去做,很听话!

  然而这些人并不知道怎么和别人去搭配干活,所以作为老板的我,就得给他们分配好工作,给他们安排的明明白白的(这也是最关键的一步),事情做的漂不漂亮,还得看老板!(当老板最焦虑的地方)

三、如何将这些人搭配起来干活

1.通过开餐厅来举例(这是我目前的理解,不知道大家能不能明白,还望多多指教)

  客人来店里点餐(用户)===》服务员记录客人点的菜品(前端)===》将菜单交给接单派单人员(mq消息中间件)===》把单子给厨师去做菜(Java业务逻辑)===》厨师去仓库拿菜(数据库)

  仓库找到菜交给厨师===》厨师开始炒菜,做好的菜交给接单派单人员===》通知服务员上菜给客人

2.开餐厅本生也存在一些问题,比如

  厨师被油烫伤(抛出异常)

  没有这个菜了(库存不够)

  人员爆满(服务器崩了)

  仓库人员进菜取菜忙不过来(数据库服务器崩了)

  ......还有很多现实生活中的例子

3.除了这些餐厅本生可能存在的问题以外,还会出现更多意料之外的事情

  有人来店里打劫,有人来前台乱点菜,点完就走,有人去后厨捣乱(黑客攻击)

4.怎么解决这些问题呢,老板就该考虑了

  多请几个人,扩张店铺,多买一些菜等等

  每个客人进来都要扫描一下,跟过安检一样,给工作人员穿上更加安全的装备,如果遇到有人来打劫,马上打电话告诉老板,或者买一套智能防护的系统等

四、我们学习编程的目的是为了解决问题,解放双手,让程序帮我们干活

1.把编程当成是自己创业一样来思考,创业就是解决社会中的需求,编程亦是如此

2.这些仅限于本人对编程的一些感悟,不足的地方还需要和大家多多学习,欢迎讨论