00:00
那下边呢,呃,我们就来看一看这个,呃,函数式编程的基本部分。那么首先我们来看一下,就是为什么需要这个函数,就是我们在学习的时候,我们为什么要需要这个函数呢?它的作用是什么呢?其实这个可能老师以前老师在讲课的时候已经把这个讲的很清楚了,只是我这做一个系统呢,再跟大家聊两句啊,比如说现在我有这么一段代码,大家看一下就是呃,干什么呢?我要输入两个数。输入两个数,再输入这个运算符,比如说诶,我这嗯,这两个我先不要了,比如一输入一个运算符,加或者是减,要求返回结果,这个很简单,就是呃,接受两个数,再接收一个运算符,把这个结果返回来,我相信同学们都会做。啊,假如我们没有函数,我们会怎么做呢?请看代码,那就会这样写。N1N2运算符,哎,然后呢,一二判断肯定在没有函数的时候。
01:04
哎,你就这么去做了啊,那你这肯定做,那么问题是来了,当你这个计算工作完成以后呢,你突然发现做了很多工作,你突然发现这个需求又来了。你又需要对两个数求和或者求差,于是你把这个代码呢,复制了一份扔下来,所以看这样的代码就特别不好,为什么呢?代码冗余不利于代码的维护,所以说这些专家,这些计算机专家就觉得既然你的代码是反复重复的,那么为什么不把这个功能干什么呢?融合在一段代码里面去让别人调用就可以了吗?所以函数的这个出现其实就是这个原因。就是因为你你有一段功能要反复的去实现,比如说求和,比如说连接数据库啊,比如说操作文件等等等等,那这些功能是反复用的吗?你何必每次都要去重写一遍呢。那怎么办呢?诶这些专家很有意思,那就干脆这样子,我们把你的这个代码。
02:05
把你这个功能代码啪提出来,提出来我写到统一的写到一段代码里面去干什么呢?诶这个地方啊,我这插入一个小的代码啊OK,那你可以这样理解,就是把这个功能抽取出来。把这个功能抽取出来,抽取。抽取啊,抽取这个功能形成代码。啊,形成这个代码。形成代码,那这个时候呢,其实就是叫函数了,这个就是一段函数,那以后别人要用怎么办呢?调这个函数就可以了,就这么简单啊,就这么简单,所以你看我们在学这个知识的时候呢,呃,我有一个小建议,就是你看我这写了一句话叫学习技术的套路。
03:00
啊,讲到这儿呢,我呃,简单的给大家分享一下。怎么样去高效的学一个技术啊,时间不会太长,就拿五分钟说一下。我们现在有很多初学者呢,有一个问题,就学东西的时候呢,没有套路,就不知道怎么去学习这个东西,这是很可怕的,因为你们将来在这个工作中,如果你想,你想在这个工作岗位要要凸显出你的价值,或者说让你的领导重视你,再说的直接一点吧,就说。你将来想挣更多的钱。你肯定会承受更多的压力。你看为什么项目经理他的工资或者架构师的工资要比一般的程序员高呢?因为他会冲在前面。他会做技术攻关,你比如说遇到一个难难点了,技术上遇到一个很困难的。会困难的一个点,比如说一个性能优化的问题,或者一个业务,他业务上有两个业务有有有冲突的时候,怎么去设计让它更合理,谁来做这个事啊。
04:05
肯定就是你这个项目负责人在做。那你想想你怎么去解决呢?就是你的能力要体现出来,你才能体现你的价值嘛,所以说我给大家分享一下这个技术的一个套路啊,我简单画一个示意图,就是怎么去学这个东西呢?我的理解,包括一些学学员也是这么去做的,一般来讲呢,我们学东西,你的脑海里面应该有这么一根主线,就是什么主线呢?就咱学习一个技术。学习。一个技术或者或者知识点。知识点的一个流程吧,就是我分享一下自己是怎么去学的。那么有些同学可能说,哎,老师你学东西怎么那么快,而且学的还像还比较深入,对吧,我是这么学的。那当然很多同学也是这么去学的,包括以前我在公司里面,我也观察这些高数怎么学那么快。
05:01
对吧,因为以前我在大学里边有个哥们,呃,我我们都是这个大学嘛,我我就念了个本科嘛,念念完过后我就没也没去考研究生,因为说白了,那个时候家庭经济压力比较大,本身我还是可以去上研究生的,保送对吧,清华保送研究生我都没去。工作,因为没钱了,说白了家庭压力太大了,对吧,我们那个小县城,你赶紧得工作,不然的话我可能对不对,没准我就出国去了,我们隔壁有个哥们,平时看到挺挺猥琐的,后面人家到国外去了,现在好久没见,说是在那个美国,美国那家公司当当这个CCTO还是谁啊,以前我们都老看不起他,知道吗?现在你要混的很好啊,所以以后大家能出国。还是可以出下国的啊,我还是建议你们有机会出国到国外去看看,没坏事,但是你家庭条件经济不允许,那就没办法,你出国你首先得好几年不能挣钱嘛,对不对,然后呢,这个你你还要你还要付出很多东西,这个呢就是你们如我的意思就是能够出下国,比如混个一年两年出来还是好啊,但你这是你自己决定啊,我说一下,那么他是我观察这些人是怎么学的呢?他这么学的,他首先。
06:16
提出一个问题,他一般是有一个需求。有一个需求。他他学一个东西啊,他一定是有个需求,或者是一个问题导致学习的,那么对于我们来说,直接一点就两点,第一点就是说当你们在工作中,在工作的时候,工作时有一个问题,有一个技术难题来了。技术难题摆在你的面前,那么你要解决好第二种,你学一个技术或者学一个知识点的动力来自于什么呢?可能你要换一个工作。你换工作,工作或者是有个新的技术,新的这个技术的潮流,潮流导致你要去学习,你比如说区块链。
07:00
或者是大数据,或者是人工智能,肯定是这种,你要换工作好,这个就是你的原动力,就是咱们学一个东西的原动力就是这么来的,那么当我们有了这个原动力过后呢,那下一步我们怎么来玩这个东西呢?好,我的理解是这样啊,同学们看我的思路这样子的,那你这个时候呢,先不要着急去学,先不要着急去学,现在呢,你你要提出自己的解决方法,就是看现在呢你你的这个解决思路。你的解决这个思路怎么解决呢?好,解决思路可以这样子,第一个你先不着急,你先使用看看尝试,诶你尝试使用传统的方式,传统的方法来解决,也就是说用你自己现有的知识体系来解决,即用自己现有的这个技术来来来搞定来玩。来来解决,那这样就有两种可能性,两种可能性第一种可能性就是你真的能够解决,就是可以解决,但是可能不完美,就是这就有两种可能性,第一种是能解决。
08:09
能够解决,但是不够完美,不够完美就是可能是诶这个效率太低了。你你你用这个原先技术解决你效率太低了。好,还有一种可能性就是就真的解决不了了,就真的解决不了了,解决不了那这个时候你因为你你有这个思考的过程,对你有什么好处呢?你有这个思考的过程,你就会对你这个新的这个技术,你你有一种更彻底的理解。有些同学学完框架。学完这个大数据,他甚至都不知道大数据有什么好处。你学人工智能学一个算法,他都不知道算法有什么好处,你很难去真正的领领会这个知识知识的精髓,对吧,为什么那个学学那个降龙十八掌国经学完降龙48掌,他觉得降龙十八掌很牛逼呢,因为他原先没有学,对吧,他原先学跟着那个江南奇怪学的功夫,经常被人家打的头破血流嘛,是不是那打了打的满地爪牙诶,结果他学完这个洪七公的降龙十八掌,学了一个亢龙幽会,只学了一招,就把那个那那个那个叫梁什么。
09:15
就是那那个老欺负他的嘛,是吧,结果把他打的头部去,诶诶,这功夫很牛逼,于是他就下定决心天天去研究,最后成高手了嘛,那你不理解这个东西好处虽然也可以,但是呢,你总感觉不爽,好当你有了这个又有了原动力了,或者说老师真的好玩,现在我真的感觉这个东西好东西,哎,这个时候你又怎么学习呢?第三一步也不要着急看啊,你看。就是我的是不是就不着急啊,怎么办呢?这个时候你马上要学习的是它的基本语法和基本的运行原理。运行原理,你把这个要搞清楚啊,同学们不要认为基本语法不重要,有些同学学完了过后,突然问他一个基本语法,而是什么玩意儿,想不起来,就感觉学了一堆高大上的东西,当他问一些基础东西,根本不知道这是什么。
10:08
有这样的同学啊,以以前我有个学生我讲我讲那个,还在讲那个,我也我讲过Java和PHP,我甚至还讲过那个,呃,讲过个语言,我也讲过最早的时候那个就是那个,什么叫。叫那个这个就是iOS,我还背背背了一整套,后面刚刚背完那个,我们领导说,呃,这个iOS不火了,不讲了,我背了,我背了三个月不讲了,我我课都背完了一整套,他说不讲不讲算了嘛,对吧,这个东西你必须有那么。甚至有时候你学完这个东西,问他一个基本的东西,他不知道。感觉学了一堆高大上的东西,问一个基本东西,不知道你觉得合理吗?不合理,你要成长为一个真正的高手,你基本的东西其实很重要,所以说这时呢,你先不要去研究高度高大上的,你先把基本语法和基本运行原理搞清楚好,这就是你的第一步任务,搞把这个基本语法和基本原理弄清楚以后,你的下一步工作应该是什么呢?不要着急,马上来一个快速入门案例。
11:08
啊,这个呢,我讲的可能对基础弱的同学特别好啊,有些技术强的同学呢,可能感觉到不太不太有点无聊啊,这个地方你也不要去研究细节,你马上来一个快速入门案例。快速入门案例,这个案例你不用去写非常高大上的东西,就是很简单,比如说你选阿贾克斯,或者选杰克,或者选你的大数据的那个哈杜的,你不用写,就写一个最简单的,哪怕是个真删改查。哪怕是个人三改善啊,即使是一个c rud的操作,C rud最简单。好,你把这个搞清楚,至少到这一步的时候,你就知道这个东西是什么了,就你学的这个新技术是个什么玩意儿了,好,这时呢,下一步你再要做的工作就是细化工作,然后你就要进行下一步的对这个知识或者这个技术的一个细节和注意讨论,要注意没有,下面就要讨论什么呢?就是注意事项,要讨论这个点,就是该知识点或者该技术,该技术的使用细节。
12:17
第二个该技术使用的陷阱,可能有些同学不知道老师在说什么啊,说该技术使用的这个陷阱,说老师为什么还有陷阱呢?我给大家说一个最具具体名字,大家学过MY。水果卖狗老师一定讲过索引,讲索引了吗?讲索引了我问大家啊,索引用的不好,不但不让,不但让你的速度变的,不会让你速度变快,反而变慢了。真的,有些同学学完所以过后就觉得好牛逼,结果加完所以速度没有提上就变慢了。啊,比如说你们将来做一个优化的时候,你别人优化咔咔速度本身原因很慢是吧,人家咔咔咔速度一下就提升上去了,你咔咔咔服务器直接瘫痪。
13:01
对吧,结果你不但没有起到优化效果,结果把你服务器搞慢了,比如这样的人呢,比如以前同学有有同学学过那个hi,那个hi如果配置不好的话,变得非常慢。说这个东西使用陷阱就高,第三种就是如何使用这个技术,如何使用才是规范和高效的。这个地方叫你反复的一个,这个地方它有一个螺旋递增的过程,就是你在学这个东西的时候,大家看这条线。啊,这条线呢,它是这样的一个流程啊,同学们就是它在做的这个过程中呢,不是一步到位的,甚至你对一个知识点,你可能用了,诶用了我用了好长一段时间,我才发现它的精妙之处。可能他是学完快速入门,然后我在这样反复的一个过程,反复一个过程,反复过程,诶最后我终终于知道这个知识是什么了,大家应该有这种学知识的一种心得和体会,应该我我知道同学们有这样一种感觉,就有一个知识点,原先用的时候,诶感觉好像没什么意思,再用一段时间发现嘿,这个东西真的好,再用一段时间发现这个东西好像还是不完美,等等等等,你在这么是个螺旋递增的这个地方,就体现出你的编程水平。
14:15
啊,这个地方就体现编程水平。高低在这里体现的,一般来讲面试官问他,一般有些面试官可能会问一下基本的运行原理。快速入门,别人不会问,他直接就问,诶用的时候小心什么地方,你给我说一下。你们学完map了,问mapreduce怎怎么用更高效?比如说你们将来一个数据量特别大的时候,请问数据量特别大怎么解决?别人直直奔这个地方,就看你这个地方是躲不过去的,就工作了五年或者工作十年的人,或者说有项目经验和没有项目经验,这疑问就抛出来了,好,当我当你把这个细节这块反复螺旋递增过后呢,你再回头去看你这个东西就OK了,回到这个地方,诶,解决了。
15:06
对吧,一个完整的一个流程,你看。最后谢谢哦,工作工作的时候这个问题我解决了吗?工作解决好,这是老师给大家分享的一个学习技术和智定流程,你用这个方法我告诉大家一定会很快。你们放心啊,因为这个地方,这个地方你你有个大体的认识,甚至这个细节和陷阱你没有搞清楚的时候,项目已经可以做了,只是你的脑海里面还有个显说,诶可能我这种还有还有点危险,好这个地方你你就反复的递螺旋地,这只要你到这基本就可以写项目了,只是这个项目呢,可能不是那么优化,但是呢,你可以很快上手,很快上手,这是老师给大家分享的一个学习技术和知识链流程,希望能够帮助到大家。好,那这块呢,我们先截取一段时。
我来说两句