堆栈溢出报错引发的思考

2015年底写的小文如今拿出来如今拿出来分享

Stack overflow

这几天开始看买了很久的一本书《javascript数据结构与算法》,我很后悔自己不早一点看这本书,打开书翻看之后我更后悔,后悔大学时期老师讲了一学期的“C语言数据结构”,那个时候对自己将来从事什么职业,哪一个行业根本没有概念,还曾梦想着成为那种脚踩高跟鞋,左手星巴克,右臂90度挎包行走在车来人往的CBD,呵呵,看看现在的自己,每天几近凌晨到家,第二天满满鸡血行走在键盘之间,每次清晨洗完脸后才会发现,oh 原来这才是生活以及镜中真实的自己,既然选择了这个职业也就没什么热爱不热爱的,只要你投入时间和汗水,它也一定会回报你买得起Chanel 和La Mer。

所以人生的哪一个时刻,当你在接触一些新东西的时候,都应该以“这是增长我技能”的心态去对待,说不定哪一个时刻你就会用到它,翻开我的书,那些似曾熟悉的名词一个个从脑中飘过,图,二叉树,动态规划...."好像那些知识和概念曾在老师的板书上出现过很多次,依稀还能闻到那些充满知识的粉笔沫,我以前觉得做前端是不需要用到这些知识的,现在我发现自己是多么的才疏学浅,我学的东西太浅了,而我需要学的东西实在太多了,或者换一种角度,这也正是自己进阶路上的宝石,和怪物,收获每一颗宝石,打倒每一个怪物就可以通关了(进阶)。

看数据结构与算法的主要原因是,一次递归调用事件引发的,递归调用应该是大家都熟悉和使用过的简单算法,虽然使用它并不能提升性能,但是使用递归更容易理解和少写很多冗余代码,而我之前也只是死死地记住了它的使用条件和简单实例

  1. 有反复的执行过程(调用自身)
  2. 有跳出反复执行过程的条件(递归出口)
  3. 实例有:阶乘,斐波那契数列

在真实的开发过程中,如果没有系统的学习和不断地实践,其实你根本想不到如何使用它,这就是为什么我曾经写过那么多的for循环和if判断,或者更直接的说“你其实根本就没有学会它”,在最近的一次调试过程中,我在终端执行gulp命令后,开始在浏览器中测试页面效果,然而控制台报了一个在我真正从事开发的这9个月中从未遇到过的error

Maximum call stack size exceeded

当时的我都没有过脑子直接copy到Google上面,按下回车的瞬间,各种各样的搜索结果映入眼帘,OMG当时我才发现,这不是我常常用来提问的知名问答平台stack overflow的名字吗?而我是多么的可笑,联为什么报这个错误都不知道,当时非常的沮丧,找不到原因,最后老大告诉我,我在子类中调用了父类的loader方法,但是父类找不到模板,继续loader之后,造成了无限递归调用,导致了:too much recursion,而就在前几天,老大刚刚给我和师兄讲了递归的用法,还帮我修改了我在类种写的冗余代码,而那天我只是搞懂了老大讲的内容,回来之后自己没有细看和深入学习真东西还是学不到的,一个平台给你学习和成长的机会,并且不断地push你,这样的机会也是要紧紧抓住不能放手的,所以你自己才是驱动一切事物的核心,如今这件事过去一周后,我翻看了我的《javascript数据结构与算法》,第十一章:算法补充知识中清晰的讲解了递归的使用,js调用栈限制,浏览器异常报错,异常捕获等,而这些我如果早一点看和学习,并且按照书中的例子去实践,估计老大那次给我讲的时候我会理解的更透彻,但如果没有这两次的经历,我也不会开始系统的学习数据结构和算法,正如当初我没有学好这门课程,如今我在这上吃了苦头,又如当初我发誓死也不当程序员,而如今的代码工作者正是自己,生活中简直太多的“如果,当初,要是”了,所以把握住当下的每一件事都本着“它将令我成长,它将为我所用”去做,才会活的更棒。即使今天的我在灰头土脸的敲代码,也要学会画精致的妆容,拥有敏锐的时尚气息,过有品质的生活,梦想就是用来实现的,难道不是吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值