了解构建移动应用程序的算法是否真的很重要?我对开发工具和设计模式以及对OOP和MVC的深入了解有深刻的理解。
那么,是否需要了解硬核算法才能成为优秀的移动应用程序开发人员?
我可以理解,如果你想创造游戏,那么很明显,我们必须知道所有与AI相关的算法才能胜任。但我要求的只是简单的数据驱动的应用程序构建。
答案 0 :(得分:5)
您编写的每个计算机程序都实现了一种算法或一组算法。如果您担心程序的质量(故意模糊的术语),那么您必须关注算法的质量。
例如,如果您希望程序快速(这是程序可能具有的质量),那么对于同一问题,最好选择快速算法而不是慢速算法。如果你希望你的程序适合少量的RAM(另一个品质因数),那么最好选择一种在少量RAM中运行的算法,而不是用GB吞噬它的算法。
因此,软件开发人员的关键知识包括如何分析算法的速度,内存使用情况以及您可能有兴趣优化的所有其他质量因素的知识。当然,分析算法的一种方法是指告诉你想知道什么的文本。
我断言是的,您确实需要知道硬核算法才能成为一名优秀的开发人员,在移动应用程序开发方面,我认为没有任何理由可以修改我的信念。当然,我不希望你知道可能存在的所有算法,但是在所有基本教科书中找到的主要算法,以及特定于你的应用领域的算法, hell yes yes gotta知道那些流氓!
答案 1 :(得分:0)
我认为这与移动领域无关。你应该总是试图找到最好的解决方案(没有完美的解决方案)。特别是在移动领域,性能非常重要,因为我们所说的是小型设备,虽然近年来已经获得了重大的硬件推动,但您应该始终特别小心。我总是使用内存泄漏来检查我所做的事情是否有问题。我还检查堆内存以查看是否有消耗太多内存的东西。电池也是一个问题,您还应该测试您的应用程序是否使用过多。
目前我真的专注于应用程序的架构,目前标准中的工作应用程序(至少在我自己的应用程序中)是不够的。了解模式是一个强大的工具,你应该阅读这些(最好的是this之一)。维护成本是当今的一个主要因素,您应该尝试实现最大的代码可重用性和清洁度。始终假设客户端将更改规范并始终牢记未来的其他人将维护您的代码,因此避免使用长方法和复杂代码(除非您必须这样做)。还记得发表评论,即使事情真的很简单,也要谦虚......在一个月内,你可能不会发现那些“简单”的东西。当你从头开始一个项目时,这些事情很容易实现,但是当你需要在一周内开始生产项目的时候开始考虑这些事情时,这很痛苦。
至于您的问题:是否需要了解硬核算法才能成为优秀的移动应用程序开发人员?
我的回答是:不,它有所帮助,但除了算法之外,在开发时还有其他重要的部分。
答案 2 :(得分:0)
良好的算法可以直接影响手机的电池消耗以及手机的内存占用量。每个开发人员都应该尽可能地使用最好的算法,但这并不意味着它是绝对必要的。
答案 3 :(得分:0)
您的平台越小,资源越多,了解算法就越重要。所以在移动设备上它会更加重要。