📜  竞争性编程——神话和令人兴奋的事实

📅  最后修改于: 2021-10-22 02:46:48             🧑  作者: Mango

竞争性编程一直是当今整个程序员社区最热门的活动。竞争性编程是在互联网上的不同站点进行的脑力游戏,编码人员通过根据给定的陈述和约束对其进行编码来解决挑战。但为什么大多数程序员都喜欢它,答案是:它不仅可以增加思维和逻辑能力,还可以推动大脑在具有挑战性的情况下尝试不同的方法来寻找解决方案。

竞争性编程神话和令人兴奋的事实

由于竞争性编程在目前获得了很多关注,大多数发现它很难或不熟悉它的人都在徘徊,学习竞争性编程是为了在科技巨头工作。好吧,有几个关于它的神话和不为人知的事实,编码人员在开始竞争性编程之旅之前必须意识到这些。所以来吧伙计们,让我们讨论这些神话和事实。

神话-1。竞争性编程是破解科技巨头的必修课

这是当今一代编码人员的普遍误解。在开始编码之前,每个编码新手都从很多人那里听说过,如果你擅长竞争性编程,你肯定会通过任何编码面试,但如果你不熟悉,你就会失败。

事实:

事实是,如果你不参与竞争性编程,但对数据结构算法概念有很强的了解,那么你会破解任何编码面试,因为在一天结束时,重要的是你解决问题的能力,而不是竞争性编程简介。要在竞争性编程竞赛中脱颖而出,必须具备数据结构和算法的知识。但这并不意味着竞争性编程没有用,它会极大地提高个人解决问题的能力。通过在竞争性编程中实现 DSA 概念,编码人员可以更好地学习 DSA 概念。因此,如果您还没有开始,请不要气馁,但是,如果您有足够的时间,那么您必须尝试一下,这将是一次很棒的体验。

误解 – 2. 竞争性编程必须是重中之重,而开发技能毫无用处

人们将竞争性编程过度炒作,因为学生之间形成了一种共同的心态,即个人应该在整个白天、晚上甚至整个单身期间都进行竞争性编程。掌握它而不学习任何其他技术(Web 开发、后端开发、机器学习等等)肯定会让你成为科技巨头。提高竞争性编程以外的任何技能都是浪费时间。

事实:

假设掌握竞争性编程是破解编码面试所需的唯一条件,这完全是一个错误的错误。一个体面的竞争性编程简介因为你很好的解决问题的能力而在让你进入下一轮比赛中发挥着重要作用,但是当你进入一家公司后,它不会让你解决编码问题。不同的技术用于构建不同的项目。这就是为什么大多数公司更喜欢那些应用趋势技术构建了一些现实项目的人,并且应该对项目中使用的技术概念非常清楚。因为这就是开发人员将如何开始他/她在公司的旅程。

神话 – 3. 竞争性编程程序员是最有天赋的

竞争性编程程序员被认为是准备进入 IT 公司的工程师中最有才华的人。在大学开始编码的人中,这是一个普遍的神话。如果他/她是一名有竞争力的编程编码员,那么他/她就被认为是聪明的。许多程序员只是为了在他们的圈子里很酷而进入它,因为他们错误地认为有竞争力的编程简介反映了你的智商。

事实:

从事机器学习、开发、道德黑客或任何其他领域的学生,同样努力工作,也可以比竞争性编程编码员更聪明、更有效率。的确,他们是很好的问题解决者,但仍然不是最好的,因为竞争性编程编码人员将大部分时间花在寻找挑战的解决方案上,但与此同时,也许其他人正在通过开发应用程序在现实生活中实施解决方案和楷模。

神话 – 4. 竞争性编程只能用“X”语言完成

大多数初学者总是在选择语言时陷入两难境地。他们认为只有 C++ 或Java或Python是最好的,所以我应该改用它还是继续使用他/她熟悉的那个。他们最终在这上面浪费了很多时间。

事实:

没有为竞争性编程指定语言,您可以选择任何语言。 C++ 的运行时间比Java和Python短也是一个事实,但使用Python也有其自身的优势。它的语法非常简单且适合初学者。您可以使用任何语言,但要专注于理解代码背后的逻辑。一旦你学会了在不使用预定义库的情况下自己实现数据结构,那么切换到任何语言都将是轻而易举的事。

神话 – 5.学生可以通过竞争性编程开始他们的编码之旅

菜鸟开始进入竞争性编程以顺应潮流,没有任何基本编码方法的先验知识,这不会使您的编码技能稳定,但您肯定会陷入麻烦并浪费大量时间。

事实:

首先,你需要学习一种语言的语法,其次是重要的数据结构和算法,然后学习如何实现它们。做完这一切,你仍然需要做很多问题才能抓住逻辑。你不应该期望在你看到问题的第一刻,你就会得到解决它的逻辑。您应该编写所有测试用例,找到极端情况,选择合适的数据结构,然后构建代码。精神上不可能这么快做到。不要为了快速的结果而浪费你的努力。努力工作没有捷径可走。要在特定领域掌握自己,您需要投入大量时间。

编码人员社区中可能存在更多关于竞争性编程的神话,但对于打算在知名 IT 公司进行编码面试的编码人员而言,最重要的是掌握一项技能,无论是竞争性编程还是开发,不会让你破解的。成为“万事通,无主宰”最终将一无所获。对你的目标有一个清晰的愿景,反省你的目标和为此所需的努力,不要随波逐流。

专注于数据结构和算法、核心主题和项目,然后如果您能涵盖所有这些,则开始掌握高级数据结构概念。如果您为这些领域做好准备,您一定会抓住任何机会。您当然应该尝试竞争性编程,但不是因为它是一种趋势或看起来很酷,而是将其作为一种爱好开始。

必读:什么是竞争性编程以及如何准备?