当前位置: 首页 > 科技观察

谁说界面开发不需要算法?

时间:2023-03-20 17:33:43 科技观察

什么是算法?简单地说,解决问题的步骤就是算法。刚开始接触算法大学的时候,刚开始学C语言。每学习一个知识点,我都会做下面的练习。一些练习将包括排序。其实我当时并不知道它叫算法,直到后来看了才知道。《数据结构与算法》看完这本书,才知道原来叫算法。其实我当时并不知道这些算法是用来做什么的。我自己不是软件专业的,所以出家自学了编程。既然什么都不懂,那就先一步步学习吧。除了排序,我还学习了队列、栈、二叉树等概念。除了做功课,基本没什么用。第一次面试就像我舍友说的,面试必然会考验你的算法,即使进去后不会用,你也要掌握,否则你连通过的机会都没有。还好在大学的时候做了一些算法题。面试官问的冒泡排序、二分查找等算法我都能回答。对那时候的我来说,算法只是一些理论知识,看起来没什么用,只是为了找份工作。开始工作后,我使用最多的算法是排序、搜索和队列控制。其他的完全没用。当时觉得自己做的就是客户端,业务不需要什么算法。工作都是在处理界面和交互,感觉算法太枯燥了,就没继续学了。久而久之,除了少数常用的算法,其他的概念几乎都被遗忘了。对算法态度的转变是一个偶然的机会,需要做一些日历相关的功能。届时要解决阴阳历的换算和与二十四节气相关的计算。这些东西我以前完全没学过,也不知道怎么做。无奈之下,在网上找了一些现成的代码使用。后来发现很多问题,比如有些日期的转换是错误的。这时,我下定决心要学好农历和二十四节气的计算原理,然后才能解决这些问题。在这个过程中,我首先感叹自然规律的奇妙。闰月、时辰、干支等都是从数学演化而来的。随即感叹古人的力量,竟然能把传统历法研究得如此深刻。研究过程充满乐趣。***解决了问题,也能带来满足感和成就感。原来研究算法也是一件有趣的事情。界面开发也有算法。有人认为客户端开发根本就没有算法。获取数据后,他们构建界面,然后就结束了。做界面有多难?一开始我也是这么想的,后来发现其实界面开发也有讲究的地方,还有需要用到算法的地方。以前玩魔兽的时候觉得很神奇。为什么他们走路时会自动避开障碍物,我该怎么做才能做到这一点?然后就想着做一个自动寻路的demo。那时候还不知道A寻路是什么。在网上查了资料,发现有个寻路算法叫A,然后参考算法思想实现了。一条可行的路径,它会找出来,而且是最短的路径。前段时间做了一个弹幕功能。弹幕需要考虑不同的播放速度,屏幕旋转时的过渡,内存占用,以及弹幕视图的复用。这些是算法。如果你不能解决这些算法,那么你只能以恒定的速度播放。旋转过程中没有转场,可能会有播放碎片,然后是记忆汹涌的弹幕界面。对算法的看法学习算法应该基于兴趣。如果你学习只是为了掌握算法,你可能会感到厌烦,失去所学。最近看了王小华的?书样章,很认同他对算法的定义,以及如何处理算法的问题。我一直本着兴趣和应用的原则学习算法。虽然我的算法不多,也没有什么高深的算法,但是已经足够让自己和业务满意了。