欢迎光临seo外链资源网站,我们为你英文友情链接的信息及服务

seo外链资源

一个资源好的推广优化外链发布网站,为你解决外链获客难题

考虑自己是开发人员?你应该解决项目欧拉问题

作者:jcmp      发布时间:2021-04-24      浏览量:0
我将提出一个大胆的主张:每个开发人员(和

我将提出一个大胆的主张:每个开发人员(和有抱负的开发人员)都应该解决前50个项目Euler问题。

处理项目Euler问题的好处太大了,不容忽视:

他们将揭示你是否理解你正在使用的语言的基本操作,并且可以用任何编程语言解决它们 你将学习如何编写可靠的,标准的,香草代码。 不需要代码库,因此你不会依赖拐杖 你将不得不考虑如何在内存中存储和访问数据 你需要优化处理速度并仔细考虑算法 在这篇快速(<5分钟阅读)的文章中,我将阐述为什么你应该在你想要学习的每种编程语言中解决Project Euler问题。

从基础知识开始

传奇的美式橄榄球教练文斯隆巴迪将以(现在着名的)演讲开始每个赛季前的训练:

“先生们,”他对一个职业足球运动员的房间说,“这是一个足球。”他继续解释在比赛中打球和获胜的基本原则 - 跑步,传球,抢断和踢球。

同样的原则适用于软件开发。

任何编码挑战都将测试你使用变量,条件语句,循环,数据结构和编程语言的其他常见功能的能力。

然而,Euler项目是对你理解和掌握基础知识的特别严格的考验。 你必须将不同排列的基本原理结合起来才能解决问题。

基本面就是你所需要的。 如果你一直在编写Web应用程序,游戏或其他软件,那么你很可能已经习惯使用某些库来完成特定的,可预测的任务。

项目Euler带走了这些库并纯粹测试了你解释简单逻辑问题的能力,并编写了解决这些问题的简单代码。

培训难以教授的东西:优化直觉

这就是为什么每个计算机科学本科课程都包括算法和数据结构课程,以及为什么这么多公司在招聘过程中测试算法思维的原因。

编写优秀代码的核心是将最佳解决方案应用于手头的逻辑问题。

挑战在于知道何时花时间优化以及何时使用简单的解决方案。

有时直接的解决方案是最好的解决方案。

对其他人来说最易读并且直观有意义的解决方案通常是最好的。

最初的几个项目Euler问题将教你这一课。 它们涉及具有(相对)小上限的简单计算。 计算机速度很快,没有必要为自己创建过度优化前几个解决方案的工作。

其他时候,你需要进行优化才能看到真正的性能提升

大学里的理论算法课不能教你什么是等待慢速算法计算问题答案的感觉。

一个优秀的开发人员对效率有直觉。 随着时间的推移,经验丰富的开发人员为问题解决方案的次优实现开发了第六感。 你从经验中发展出这种直觉,而后来的项目欧拉问题是效率直觉的优秀教师。

如果算法经常被使用或者在大输入上使用,那么花费时间进行优化对于节省时间来节省时间是值得的。 但在其他情况下,优化仅用于小规模的解决方案并不值得花费额外的时间。

判断优化权衡是经验丰富的开发人员所拥有的直觉,而这是Euler项目可以开始教授的技能。

你将对你选择的语言变得更加流畅和自信

解决即使是少数项目欧拉问题,也会对你对特定语言的信心和流畅度产生奇迹。 这也是获取新语言或刷新你曾经知道的语言的好方法。

例如,在过去的几个月里,我一直专注于使用Python进行编码,而且我用C语言写了一段时间已经有一段时间 - 我在Python之前就已经知道了这种语言。

我开始在C中实现前几个Project Euler问题来刷新我的技能。 它创造了奇迹,带回我的技能并提醒我语法。 类似地,我使用Project Euler来学习Java的基础知识,因为Java的语法与C的关键方式类似但不同。

练习文档和测试的绝佳机会

(注意:多条评论提到,分享你的Project Euler解决方案是违反竞争规则的。如果你正在竞争当前的Project Euler挑战,请加入官方论坛并在那里讨论代码。

只需确保在开发自己的解决方案时不要看别人的解决方案! 这会破坏乐趣,意味着你不会学到太多!)。

完成解决方案后,检查变量和函数名称以确保它们是直观的,删除任何不需要的代码,并以一致的方式格式化所有内容。

项目欧拉!

如果你解决了前50-100项Euler问题,你将:

掌握编程基础知识 对所选语言的语法充满自信和流利 了解算法优化,更重要的是,优化直觉 获得使用良好文档编写干净代码的经验 有机会练习测试驱动的开发 在GitHub和产品组合中展示令人印象深刻的东西 我不知道任何其他一组适合教授和演示编程基础知识的问题。 项目Euler是任何开发人员或有抱负的开发人员必须做的事情。