Java算法

Java算法,java,algorithm,Java,Algorithm,我是一名服务器端Java程序员。在我最近的求职中,我遇到了一些帖子,其中提到:“在算法开发方面有经验的候选人将优先考虑。”。这究竟指的是什么?这是一个银行的帖子…所以不是一个研究实验室的工作…只是为了澄清一点。 我问我的猎头……他对此一无所知。 当我们在应用程序中使用Java时,我们使用实现算法的API…所以从技术上讲,我们不是在开发算法。对吗?错了 当然,这取决于项目。但是有很多平凡的项目不仅仅需要把标签A插入插槽B。如果你喜欢,考虑他们说的是“算法开发”,而不是“算法研究”。研究和开发是交易

我是一名服务器端Java程序员。在我最近的求职中,我遇到了一些帖子,其中提到:“在算法开发方面有经验的候选人将优先考虑。”。这究竟指的是什么?这是一个银行的帖子…所以不是一个研究实验室的工作…只是为了澄清一点。
我问我的猎头……他对此一无所知。
当我们在应用程序中使用Java时,我们使用实现算法的API…所以从技术上讲,我们不是在开发算法。对吗?

错了

当然,这取决于项目。但是有很多平凡的项目不仅仅需要把标签A插入插槽B。如果你喜欢,考虑他们说的是“算法开发”,而不是“算法研究”。研究和开发是交易的两部分——相关但不相同

并非所有算法都可以作为标准库使用。此外,算法的特定实现并不一定适合于每个应用程序。最后,即使在使用固定例程时,了解算法的工作原理通常也有助于了解如何正确使用它

因此,这些职位公告是为对算法有一定了解的人准备的。如何使用它们。如何使它们适应特定的目的。如何阅读一篇论文(可能是研究实验室的一个书呆子写的?)并实现其中的算法——或者拒绝它,继续寻找更适合当前目的的东西。而且,是的,非常偶尔,如何提出一些新的和不同的东西。

“算法开发”听起来很模糊。也许最初的技术要求是算法知识,在某种程度上,有人认为这听起来不够令人印象深刻,并将其改写为“有算法开发经验的候选人将优先考虑”

我不认为这意味着“从零开始创建新算法的能力”。相反,您需要能够识别程序何时可以从使用某些已知的算法或数据结构中受益,或者对某个算法或数据结构进行轻微修改,以及完成该操作的能力。这是许多项目的关键技能,尤其是那些速度很重要的项目


Java类库提供的泛型算法(如
Arrays.sort
)只占您甚至可以在中找到的一小部分。(我不是Java黑客,但有堆吗?

programmers.stackexchange.com