数据驱动的程序员:从结构到算法的灵魂之旅

发表时间: 2021-06-09 07:21

大家好,欢迎来到程序猿充电站,这里是专为程序员打造的知识学习殿堂。

今天将迎来算法与数据结构系列课,也是学习了各种框架知识,源码知识,数据库知识后的一个反思。程序员知识体系架构中究竟哪个是比较重要的?哪个是恒久不变的?哪个是区分中级程序员和高级程序员的分水岭?

可能是算法与数据结构……

什么是算法

算法是完成一个功能,需要设计的一个流程,这个流程就是算法。

你就说懂没懂?哈哈,心中一万个……在奔腾有木有?就不能说点儿人话吗?

要理解这句话就先要跳出计算机世界中的算法,从更广义的角度来看,算:计算,演练,找出一条最优解。法:方法,步骤,如何实现它。

就拿每天早起来说,早上你给自己安排了30分钟的洗漱时间,你肯定先估计一下,洗澡用多长时间,刷牙用多长时间,穿衣服用多长时间。然后评估时间够不够用,自己有没有改进的地方?比如洗脸和洗澡能不能一起搞定?相信有人这样做的。

这就是比较简单的一个算法了,有点儿感性认识了吗?

再比如,你暗恋了一个心仪的女孩儿,你想去追她,但不知道有没有男朋友,这时候你可能会找一个你关系不错的女性朋友,去问一下,然后就可以大胆出击了。

你看不出她年经多大了,这个时候女孩说你猜呀。我相信没有人傻到从1岁猜到30岁,你肯定会找一个看似接近的年经。然后问她,猜大了还是猜小了。如果猜大了,也没有人傻到每次向下减1岁的猜吧。这里就用到了一个著名的算法!

有知道这里用了哪一种算法的吗?

欢迎留言,告诉我你的答案。

什么是数据结构

数据结构是数据在计算机中的表现形式,根据逻辑关系不同分为线性结构和非线性结构两大类。非线性结构又可分为树结构和图结构。

现实生活中:

我们都知道,平时开会做笔记时,都是拿着一支笔,一个本字,记录下会议的重点,这个时候,字的内容通过纸张来记录了下来。

我们要让一位朋友转述你的话,你告诉他,他记了下来,之后说给另一个人听,这时内容通过语音来达到了短暂的记录。

那计算机如果想要记录各种复杂的数据要怎么记录下来呢?

大家常用的,excel,word,ppt都是计算机记录数据的一种方式,而它的底层是什么样的结构存储的呢?不要着急后续课程,会一步一步地给大家讲解。

程序 = 数据结构 + 算法

这个知识点呢?早在上大学的时候,老师就教给我们了,但直到现在真正理解的有几个呢?

想要更好的理解它,还是要跳出计算机思维。

我们想,程序是干什么的?都是解决某一个现实中的问题的吧,比如windows中的计算器,是用来做四则运算的;记事本是用来记录文本文件的;支付宝是用来实现数字化生活的;百度地图是用来指明途径的?

为了解决某一类问题而制定的一系列的编程步骤,结合数据以合适的结构在软件中展示。这不就是程序 = 数据结构 + 算法吗?

不知道大家理解得怎么样,本宝也是想通过更浅显易懂的方式,将知识展现给大家。如有不足的地方,欢迎批评。

喜欢的朋友,记录关注哦,后续还有满满的干货呢!