「」老师都不会告诉你的,关于编程的秘密,看完以后恍然大悟,炸锅了( 二 )


这里我用一个比喻我觉得比较恰当:好比是农民伯伯种地用的锄头 , 一开始 , 农民伯伯由于体力优先 , 因此他会去优化锄头头 , 优化锄地动作 , 让锄地更加的方便 , 高效 , 从而节省体力 , 能够干更多的工作 。因为这个时候农民伯伯的体力是有限的 , 也就是说 , 计算机算力是有限的 。(锄头好比是编程语言 , 锄头头和锄地动作好比是数据结构与算法 。) 那么 , 现在我们出现了机械化 , 从某种意义上讲 , 我只要加油 , 就可以耕地 , 那么 , 我们考虑问题就会转变 , 转变为 , 我如果更多的耕地而获得更多的收益 , 因为有了机械化 , 我加油就可以了 。这就是工具的提升(机械化是编程语言) 。但是 , 这里面有一个问题 , 你再机械化 , 是不是也得需要一个类似于锄头的东西在耕地?这就是根 。如果再继续推理下去 , 所谓的算法是 , 我的这个锄头用什么样的力量锄下去 , 用什么角度锄下去 , 能够耗费的能源最少 , 获得的收益最高 , 这就是算法的优化 , 也是算法的根 。那么数据结构是什么意思呢?我的这个锄头的 头用什么样的材料?用铁?用铜?还是用其他金属?能够使得这个锄头用的时间最长 。这就是计算机的根 。
「」老师都不会告诉你的,关于编程的秘密,看完以后恍然大悟,炸锅了
文章图片

文章图片

既然是工具 , 那么如何能够学好呢?
这是一个很高深的课题 , 很多人会告诉你 , 你要多练 , 没错 , 多练是根本 , 我这里就不再赘述了 。可是我们要理解一个问题 , 这个问题是 , 仅仅是多练就可以了吗?
相信大家都看过一本书《天龙八部》 , 里面有个角色叫虚竹 , 到最后厉害吧?可是之前他如何呢?换句话说 , 仅仅是多练 , 没有很好的方法 , 没有理解是绝对不行的 , 因为招式的厉害是一时 , 当你不再年轻 , 体力不再好 , 那么伴随而来的是什么呢?淘汰!
还记得《天龙八部》里最牛的人是谁吗?“扫地僧” , 他呢?不年轻 , 招式几乎没有写 , 为什么大家都觉得他比较厉害呢?这就叫“内功” , “内功”是可以随着你的不断深入的理解而不断加深的 , 到一定程度就变为“无招胜有招”了!
现在整个社会过于浮躁 , 造成大家只重视招式的训练 , 而忽略掉“内功”的修为 , 这从某种意义上讲 , 也是为什么产生中年危机的原因 , 尤其是IT这一行!
「」老师都不会告诉你的,关于编程的秘密,看完以后恍然大悟,炸锅了
文章图片

文章图片

既然“内功”重要 , 我要如何修为“内功”!
我不是一个“专家” , 所以我不敢说的比较大 , 仅仅是建议吧 , 其实多听听“专家”的蛮好的 , 听的多了 , 再听听我的 , 有点帮助最好 , 建议、建议、建议!
无论你是要做什么 , 开始的第一步必须是打好基础 , 这你没有跑的 , 只有基础打好了 , 才有继续提升的根 , 根稳了 , 才能长的高 , 长的快!基础是什么?数学是基石 , 很多情况下 , 算法的思维借用了数学中的极限思维 , 比如:蚁群算法 , 蚁群算法的核心思维就是无限的蚂蚁一直爬 , 爬的多了 , 留下的最深的那条线就是最优解 。可能有小伙伴说 , 我数学不好 , 注意 , 我讲的是数学思维 , 很多情况下数学思维比数学解几道题重要!
其次 , 编程思维 , 编程思维也有很多很多“专家”讲过 , 大家看看 , 也可以参考一下我的 , 我认为的编程思维其实很简单 , 就是将复杂的问题分解掉 , 然后分别抽象出模型 , 之后识别模型 , 利用算法解决问题 。说的高大上是把 , 我们举个例子:包饺子(饺子是世界上最好吃的食物 。)我们需要干嘛?第一步 , 问题分解 , 面皮、馅料、合二为一 。然后抽象出的模型分别为:面皮、馅料、手法 。继续我们进行模型识别 , 面皮要通过和面、揉面、擀面 , 存放面皮等等 , 馅料需要剁肉、剁菜、调味、搅拌均匀 。手法需要正常包、花样包、机器包等等 。然后我们利用某种算法解决掉这个问题 。这其实就是编程思维 , 我们很多人都有这种思维 , 只是没有很好的利用而已 。


推荐阅读