17个编码挑战,以锐化您的批判性思维
如果你想提高你在现有或新的编程语言中的技能,其中最好的方法之一就是通过编码挑战来实现。
多年来,许多平台和网站已经提供了各种刺激性的挑战,适合各种级别的编程人员。不管你是要学习一种新语言,还是想在紧张的情况下测试自己的智力,编码挑战既有趣又能成为一种测试。
除了明显的好处之外,参与这些挑战还能提升解决问题的能力、深入理解编程语言,并享受学习新算法的乐趣。正如你所知,算法在招聘过程中并不少见,所以有些竞争优势可能会让你更有利。
本文介绍了一些最好的编码挑战网站和平台。有些适合初学者,而其他一些则适用于更有经验的用户。我们还添加了一些可以向孩子们展示的内容,因为友好的编码也变得越来越受欢迎。
edabit
学习新事物最简单的方法就是与你想学习的东西保持一致的互动。编程也是如此。除非你将书中的知识付诸实践,否则阅读最好的书籍也只能给你带来零知识。
edabit是一个既定的平台,提供了易于应对的编码挑战,可以快速提高你的编码能力。
codingame
游戏作为学习平台并不是一件全新的事情,但现在似乎有更多的参与者在这个领域。codingame只是众多提供通过游戏化体验进行编程挑战的平台之一。与其直接编写代码,你更多地是构建一个游戏环境。你编写的所有代码在某种程度上都会影响到“游戏”的进行方式。
事后看来,像codingame这样的平台可以帮助技术开发人员更好地理解因果关系,以及特定决策导致特定结果的方式。
codingame不仅仅是一个你可以随意编写杂乱的javascript代码的廉价网站。它涉及一些顶级算法,并有无数世界级的编程人员帮助新的和有经验的开发人员提供解决方案。
hackerrank
hackerrank是一家专注于为个人和组织提供编码挑战的初创公司。根据挑战的不同,你通常会收到一个需要完成的项目的说明,而如何完成则取决于你自己。
目前,开发人员可以使用java、python、javascript、php、c++和sql来解决提供的挑战。
每当你提交解决方案时,平台会根据准确性等因素自动评分。之后,你会进入全球排行榜,同时在过程中获得成就(徽章)。还有“冲刺”(sprints),这是平台主办的比赛的另一个术语。
house of codes写了一篇有趣的文章,描述了在hackerrank中找到的前50个挑战。如果你对此感兴趣,它是一篇值得阅读的文章,提供了大量的例子和材料。
coderbyte
coderbyte是一个基于现代编程实践的独特应用。其核心功能是编码挑战,帮助全球数百万人成为更好的开发人员。与市场上类似的应用不同,coderbyte致力于帮助人们解决行业级别的问题。
使用这个平台的好处之一是它与一些领先的软件品牌合作。例如,谷歌、logmein、hbo、pwc等。如果你想在这些公司找到工作,那么可以放心,coderbyte可以为你提供所需的挑战来测试你的技能。
注册后,你可以选择挑战和算法。这里有数十万个用户提交的解决方案,可以帮助你更全面地了解特定的编程主题。
组织可以注册并管理他们的筛选过程。成为注册组织后,你将获得额外的工具,可以帮助你对每个开发者进行独立的筛选。
codewars
持续进行编码实践的美妙之处在于,你总能想出解决问题的新方法。codewars就是利用这个想法。基于“katas”,该平台提供了多种语言的练习和挑战。
当你完成这些练习时,你不仅可以得分,还可以查看其他程序员是如何解决特定问题的。
如果你想练习一门新语言,那么codewars是一个非常好的网站,可以添加到你的书签中。
这里是一些支持的语言:
- clojure
- rust
- swift
- python
- haskell
- shell
- javascript
- php
- kotlin
- scala
还有很多其他语言正在beta计划中,可用但可能存在瓶颈。
基本上,edabit希望提供一个能够弥合初学者和高级编程者之间差距的平台。你可以查看路线图以查看完整的功能列表。
hackerearth
hackerearth是一个著名的平台,举办黑客马拉松、编程挑战和各种比赛。
这也是一个让你了解现代公司招聘流程的地方。hackerearth数据库中的挑战并非全部,但其中很多挑战有可能在你未来的工作面试中被问到。
这是怎么可能的呢?主要是因为hackerearth的真正努力是为顶尖科技公司提供招聘解决方案。如果你想被认为是最好的,你就必须和最好的人在一起。这对你来说是双赢的局面。
programmr
programmr是一个适用于各个级别开发者的动态数字实验室。通过programmr,你可以直接从浏览器中编写、编译和执行项目。该平台支持当今使用的所有主要语言。无论你想运行一个移动应用程序还是一个数据库结构,programmr都有能力支持它。
在挑战方面,programmr针对java、c++、php、c#、ruby、python和ios等语言有一套自定义的挑战。每套挑战包括100多个挑战,可以按照受欢迎程度(基于用户投票)和其他因素进行排序。
这些人与其他人的不同之处在于,您可以利用新获得的经验获得即时反馈,无论是针对特定语言的证书,还是现有用户的反馈。
the coding train
daniel shiffman是一位自给自足的个人军队,他在编程方面创作和制作了很棒的材料。daniel的个人youtube平台——the coding train是他分享有关解决编程问题的激动人心和有帮助的视频的地方。
但是,他有一种有趣的方法。与其将所有内容都托管在自己的网站上,他使用youtube作为挑战的平台,使用自己的网站作为解决方案的平台。
请注意,他的挑战是基于p5.js和processing的——这是两种用于艺术和图形设计的流行解决方案。
wolfram challenges
wolfram是世界上最著名的计算机科学公司之一。他们的平台的可能性让许多人目瞪口呆。
尽管我们的重点不是wolfram alpha,这是在2018年初推出的一个新领域——wolfram challenges。
有很多可以想象的挑战示例,其中包括找到“最低成本解决方案”或“最佳匹配”。与典型的机器学习任务类似:找到在某个测试集上表现最佳的函数(例如基于神经网络的函数)等。
与本次综述中的其他网站/平台相比,wolfram涵盖了广泛的挑战领域,而不仅仅是编码。总之,如果您想提高批判性思维能力,这将是一个很好的平台!
leetcode
leetcode是一个产品,这意味着它不仅仅是一个托管随机挑战的网站。相反,leetcode是为未来可能性做准备的一种方式。
该平台提供现代化的学习、复杂的挑战和出色的仪表板,以完成所有任务。
还有文章、讨论板和其他社区方面的内容,以鼓励无缝体验。许多leetcode用户已经“毕业”,并在uber、amazon、stripe等公司工作。
codeforces
codeforces是为所有热衷于编程的高级程序员提供的平台。想想软件工程师、渗透测试人员、人工智能爱好者和机器学习迷!作为一个面向高级程序员的平台,codeforces以其臭名昭著的排行榜和竞争精神而闻名。
入门比你想象的要容易。
exercism
很高兴看到许多编程挑战平台背后的倡议。
而exercism也不例外。创始人katrina owen表示,她的目标是“帮助人们通过exercism学习足够的编程知识,以便能够找到开发工作。”
在撰写本文时,有48种语言的2600多个练习题,全部免费!您想学习kotlin,或者想更多地了解vim吗?现在就有机会通过有趣的挑战学习一些新技能!
codier
对于你们中的一些人来说,令人惊讶的是,前端开发中仍然存在编码!
这里的挑战主要是由用户共同面对的。例如,有人可能发布一个“material design card”,并向你提出改进或创建类似变体的挑战。
结果是你能够获得一些创意思路。同时,看到其他人实时处理类似问题的方式也很好。你始终可以在自己的项目中重用他人提交的代码。
flexbox froggy
说到前端,你对flexbox的理解如何?及时进行一点记忆恢复,以保持自己敏锐和准确!
flexbox froggy是一个不错的小游戏,带你走过28个不同的flexbox用法和对齐方式。也许这不仅仅是一个挑战,更是一个提醒,但你能够在不查找答案的情况下完成所有关卡吗?
grid garden是一个非常类似的游戏;唯一的区别是你使用的是grid功能,而不是flex。
pybites
python被广泛认为是最简单的学习语言。并且通常建议新程序员首先探索它。但是,不要因此而不相信python的能力。
如今,许多机器学习和数据集生成工作都是使用python专门完成的,这可不是一件小事!
pybites让你及时了解最新的动态。文章,编码挑战以及其他关键信息,帮助你提高智力。每个挑战都包含一个后续评论,你可以在其中比较自己的代码,并探索解决问题的正确方法。
codecombat
codecombat是另一款提供动态和具有挑战性编码环境的编码游戏。与类似的产品codingame的区别在于codecombat专注于教师。因此,您可以使用此平台在学校教授编程和问题解决。
这里还有专门为此目的量身定制的工具,材料和其他资源。而且非常有趣。你构建的codecombat游戏既有趣又令人惊叹。而游戏已经在孩子们中非常流行。让孩子们挑战自己开发虚拟环境可以激发他们未来构建令人惊奇的东西的灵感!
tynker
简单提及一下,我们为所有父母准备了一些内容。 tynker是一个有趣的小平台,可以帮助孩子学习编程。它基于一个非常简单的拖放界面,孩子们可以在选择之间切换,并希望解决提出的问题。
不要误解,tynker比你想象的更符合现代标准。如果你有正在步入十几岁的孩子,你可以让他们使用python或javascript编写解决方案,而不仅仅使用块。
结束语:挑战自己!
总共,所有我们列出的网站和平台上可能有数万个独特的编码挑战。不可能一下子全部完成。
相反,我的建议是找到一个你认为最适合你需求的平台,只专注于那个平台。你可以建立友谊,学到新东西,而且谁知道 —— 你可能还能够在一家高薪公司找到一份新工作!
你也可以考虑使用 datacamp 学习数据科学,其中包括编码挑战和项目。
接下来,你想知道如何在流行的编程语言中 添加注释 吗?