velo4705/awesome-coding-challenge-sites
GitHub: velo4705/awesome-coding-challenge-sites
一个涵盖算法面试、竞赛编程、Web 开发及 CTF 安全等领域的编程挑战与练习平台精选清单。
Stars: 0 | Forks: 0
# 极佳的编程挑战网站 [](https://awesome.re)
编程挑战网站能帮你**磨练解决问题的能力**、**准备技术面试**,并**与全球程序员同台竞技**。无论你是正在学习第一门编程语言的初学者,还是目标直指 FAANG 的资深工程师,总有一款平台适合你。
CTF 平台让你通过真实场景**测试你的网络安全技能**,而**面试资源**则在练习与成功入职之间架起了桥梁。
这里列出的每一个网站都经过**安全验证**,并按**技能水平**进行了分类,方便你找到合适的起点。
## 目录
- [算法与面试准备](#algorithms-and-interview-prep)
- [竞赛编程](#competitive-programming)
- [全栈与 Web 开发](#full-stack-and-web-development)
- [前端开发](#frontend-development)
- [编程语言与垂直领域练习](#language-and-niche-practice)
- [数据科学与机器学习](#data-science-and-machine-learning)
- [CTF 与安全平台](#ctf-and-security-platforms)
- [补充资源](#additional-resources)
## 算法与面试准备
专注于数据结构、算法和技术面试准备的网站。
- [LeetCode](https://leetcode.com) - 首选的面试准备平台,拥有从简单到困难数千道题目。各大公司在面试时几乎都在借用它的题库。
- [HackerRank](https://www.hackerrank.com) - 集编程挑战、竞赛和招聘比赛于一身。涵盖算法、数据库、AI 等领域——许多公司在这里筛选候选人。
- [GeeksforGeeks](https://www.geeksforgeeks.org) 🇮🇳 - 一半是教程网站,一半是题库,提供详细的解释和真实的面试经验。当你需要理解解法背后的*原理*时非常有用。
- [HackerEarth](https://www.hackerearth.com) 🇮🇳 - 将编程练习与实际的招聘挑战相结合。题目跨越多个难度级别,他们还会举办黑客松。
- [InterviewBit](https://www.interviewbit.com) 🇮🇳 - 精选了反映顶级科技公司真实面试问题的题目。遵循结构化的路径,并会全程跟踪你的进度。
- [NeetCode](https://neetcode.io) - 专门为面试准备而构建的 LeetCode 风格平台。题集按公司和难度进行分类,让你确切知道该复习什么。
- [AlgoMonster](https://algo.monster) - 注重模式识别而非盲目刷题的结构化课程。如果你想系统地学习算法,这非常合适。
- [CodeSignal](https://codesignal.com) - 游戏化的编程评估,各大公司确实在使用它来筛选候选人。这是在实战前衡量自己水平的好方法。
- [Interview Cake](https://www.interviewcake.com) - 提供面试准备,拥有异乎寻常的详尽解释,带你理清整个思考过程。涵盖算法、数据结构和系统设计。
- [Codility](https://www.codility.com) 🇵🇱 - 被各大公司用于进行编程评估,但他们的培训课程也是很好的练习。在尝试挑战之前,先完成这些课程。
- [TryExponent](https://www.tryexponent.com) - 将练习题与模拟面试相结合,帮助你在压力下从容应对。专注于助你拿下顶级科技公司的工作。
- [Edabit](https://edabit.com) - 简短的挑战,一步步教你编程概念。在深入挑战更难的平台之前,这是理想的预热方式。
- [CodingBat](https://codingbat.com) - 专注于基础逻辑和递归的简明 Java 和 Python 题目。由加州大学伯克利分校的 Nick Partridge 为绝对的初学者创建。
- [Daily Coding Problem](https://dailycodingproblem.com) - 每天向你的收件箱发送一道面试风格的题目。无需自己费力找题,即可保持每日练习。
- [Learneroo](https://www.learneroo.com) - 提供算法练习和用于面试准备的结构化学习路径。沿着路径前进,获得有指导的体验。
- [Codeintuition](https://codeintuition.com) - 涵盖不同技能水平下各种编程主题的练习平台。可结合 LeetCode 进行特定主题的专项训练。
- [CoderByte](https://coderbyte.com) - 模拟面试题目的快速编程挑战。非常适合在其他学习间隙穿插练习。
- [NaukriCode360](https://code360.naukri.com) 🇮🇳 - 在印度很受欢迎的就业安置准备平台,提供题目、文章和面试经验。对于印度的求职者来说,这是 LeetCode 的好搭档。
- [Codemia](https://codemia.io) - AI 驱动的系统设计练习平台,提供可视化和同侪模拟面试。专为瞄准 FAANG 级别系统设计轮次的工程师打造。
## 竞赛编程
定期举办竞赛和算法问题解决比赛的平台。
- [CodeForces](https://codeforces.com) 🇷🇺 - 竞赛编程界的重量级平台,定期举办包含高难度算法题的赛事。以其快节奏的竞赛和强大的社区而闻名。
- [CodeChef](https://www.codechef.com) 🇮🇳 - 每月举办比赛,拥有庞大的题库和可靠的积分系统。支持多种语言,并举办周期更长的挑战赛,让你能真正深入研究问题。
- [SPOJ](https://www.spoj.com) 🇵🇱 - Sphere Online Judge 拥有涵盖你能想到的所有类别的海量题目归档。当你想攻克大量不同类型的挑战时,这里是绝佳选择。
- [AtCoder](https://atcoder.jp) 🇯🇵 - 日本最受欢迎的竞赛编程平台,以结构严谨、高质量题目的比赛而闻名。Beginner Contest 是一个很好的切入点。
- [Kattis](https://open.kattis.com) 🇸🇪 - 用于实际编程竞赛的题目归档。通过难度分数进行筛选,找到适合自己水平的题目。
- [UVa OnlineJudge](https://onlinejudge.org) 🇪🇸 - 来自巴利亚多利德大学的经典题库,拥有超过 4,000 道题目。使用 uHunt 按主题跟踪你的进度。
- [DMOJ](https://dmoj.ca) 🇨🇦 - 一个举办比赛并支持多种语言的开源评测系统。在加拿大的竞赛准备中尤为受欢迎。
- [Timus OnlineJudge](https://acm.timus.ru) 🇷🇺 - 俄罗斯的竞赛归档,包含 Timus 和 ACM 决赛的题目。“Timus Top 50”是一个不错的起点。
- [Aizu OnlineJudge](https://onlinejudge.u-aizu.ac.jp/home) 🇯🇵 - 来自会津大学的日本练习平台,包含当地编程竞赛的题目。Course 板块提供结构化的学习。
- [CSAcademy](https://csacademy.com/) - 交互式的算法学习,提供课程和直观的可视化编辑器。非常适合直观地理解复杂算法。
- [E-Olymp](https://e-olymp.com) 🇦🇿 - 供中小学和大学使用的带有题目和竞赛的教育平台。适合进行结构化训练。
- [LightOJ](https://lightoj.com) 🇧🇩 - 以数论问题闻名的多样化题库。除了常规算法外,也是很好的数学练习。
- [AlgoLeague](https://algoleague.com) 🇹🇷 - 注重实时比赛参与的定期算法竞赛。在时间压力下测试你的技能。
- [Toph](https://toph.co) 🇧🇩 - 孟加拉国平台,提供多语言的竞赛和练习题。有助于接触区域性赛事。
- [TLXTOKI](https://tlx.toki.id) 🇮🇩 - 举办国家赛事和练习题的印度尼西亚编程竞赛平台。是印度尼西亚编程圈的主要平台。
- [ACMHDU](https://acm.hdu.edu.cn) 🇨🇳 - 来自杭州电子科技大学的中国在线评测系统,题库庞大。可以在题目索引中按算法主题进行搜索。
- [CodeAbbey](https://codeabbey.com) 🇷🇺 - 题目从简单开始,难度平缓上升,对新程序员非常友好。在挑战更难的平台之前,这是一个很好的起点。
- [KEP](https://kep.uz) 🇺🇿 - 面向中亚社区的乌兹别克斯坦平台,提供算法题目和竞赛。包含你在西方平台上找不到的区域赛事题集。
- [Kilorova](https://kilorova.ro) 🇷🇴 - 罗马尼亚竞赛网站,收录了当地比赛的题目。有助于接触东欧的题目风格。
- [Serious-OJ](https://serious-oj.com) - 就像它的名字一样:专为觉得 CodeForces 太简单的人准备的难题。等你适应了 Div 1 的比赛后再来挑战吧。
- [Eldarverse](https://eldarverse.com) - 较新的平台,拥有简洁的编辑器和实时反馈。当你刷完了大网站的题目后,这里是不错的补充练习。
- [andgein.ru](https://2026.andgein.ru/?lang=en) 🇷🇺 - 俄罗斯竞赛网站,拥有独特的一年一度的新年比赛。这些题目的风格在西方平台上是找不到的。
## 全栈与 Web 开发
用于培养 Web 开发技能的交互式课程和教程。
- [FreeCodeCamp](https://www.freecodecamp.org) - 完全免费的全栈课程,包含编程挑战和项目,助你建立作品集。自学节奏,涵盖从 HTML 到数据科学的所有内容。
- [W3Schools](https://www.w3schools.com) 🇳🇴 - Web 开发的经典参考,涵盖 HTML、CSS、JavaScript、SQL 等。最适合作为快速参考,而非深入研究。
- [Codecademy](https://www.codecademy.com) - 提供多种语言的实操课程,并带有即时反馈。在学习新知识时,非常适合用来快速掌握语法。
- [The Odin Project](https://www.theodinproject.com) - 免费、以项目为核心的全栈课程,涵盖 HTML、CSS、JavaScript 和 Ruby。这是你不花钱能体验到的最接近训练营的经历。
- [Boot.dev](https://boot.dev) - 专注于后端的学习路径,提供 Python 和 Go 课程。通过项目培养真正的后端技能。
- [NewtonSchool](https://www.newtonschool.com) 🇮🇳 - 印度流行的编程训练营和练习平台。全栈课程与就业安置准备相结合。
- [SoloLearn](https://www.sololearn.com) - 专为移动端设计的简短编程课程。非常适合在通勤或休息时随时随地进行学习。
- [Codedex](https://codedex.io) - 面向初学者的趣味简短挑战,让学习编程不再像是在死读书。对于完全的新手来说是个很好的切入点。
- [CodeCrafters](https://codecrafters.io) - 你将从零开始构建 Git 和 Docker 等真实工具,从而深刻理解它们的工作原理。非常适合希望超越表面知识的工程师。
## 前端开发
用于磨练 UI 和设计技能的特定前端挑战与练习。
- [FrontendMentor](https://www.frontendmentor.io) 🇬🇧 - 难度递增的真实设计转代码挑战。从零开始构建作品,然后将自己的解决方案与他人的进行比较。
- [CodePen](https://codepen.io) - 用于试验 HTML、CSS 和 JavaScript 的演练场。非常适合用于构思原型和积累前端实验作品集。
- [GreatFrontend](https://www.greatfrontend.com) - 前端面试准备,涵盖 JavaScript、React、CSS 和系统设计。题目按公司进行标记,方便你针对特定雇主进行准备。
- [CSSBattle](https://cssbattle.dev) 🇮🇳 - 你只需使用 CSS 就能还原设计图。这是一种出乎意料地让人上瘾的提升 CSS 技能的方式。
- [FireCode](https://firecode.io) - 专注于前端的编程练习,涉及 JavaScript 和 React。适合进行有针对性的前端面试准备。
- [The Coding Train](https://thecodingtrain.com) - Daniel Shiffman 的创意编程教程,特别是针对 p5.js 和生成艺术。让编程变得充满趣味且平易近人。
## 编程语言与垂直领域练习
专注于特定语言、领域或创意编程方式的平台。
- [CodeWars](https://www.codewars.com) 🇬🇧 - 用几十种语言解决带有段位排名的挑战,并在过程中不断升级。非常适合通过结构化的重复练习来学习新语言。
- [Advent of Code](https://adventofcode.com) - 每年 12 月举办的活动,包含 25 道每日谜题,难度从轻松逐渐变得极其残酷。它拥有忠实粉丝是有道理的。
- [Exercism](https://exercism.org) - 在超过 65 种语言中练习,并获得导师对你代码的反馈。单凭这些代码审查就物超所值。
- [CodinGame](https://www.codingame.com) 🇫🇷 - 你通过编写代码来控制游戏角色并解决谜题。这是一种在不让人觉得是在干活的情况下学习新语言的有趣方式。
- [ProjectEuler](https://projecteuler.net) 🇬🇧 - 偏重数学的编程题,既考验编程能力,也考验洞察力。如果你喜欢数学与代码的交叉领域,这是完美之选。
- [CodeGym](https://codegym.cc) - 游戏化的 Java 课程,带你从完全的初学者成长为合格的开发者。最适合希望有一条结构化学习路径的 Java 学习者。
- [CheckIO](https://checkio.org) - 融入游戏元素的 Python 挑战——解开谜题以解锁更多谜题并获得成就。
- [Rosalind](https://rosalind.info) - 处理 DNA、RNA 和遗传学的生物信息问题。适合对计算生物学感兴趣的程序员的小众选择。
- [PyBites](https://pybitesplatform.com/) - 包含真实世界编程挑战的 Python 练习。“100 Days of Code”是培养连贯性的可靠方式。
- [4clojure](https://4clojure.oxal.org/) - 交互式的 Clojure 题目,用于学习函数式编程。如果你对 Clojure 好奇,这是个很好的切入点。
- [SQLZoo](https://sqlzoo.net) 🇬🇧 - 提供各级别的交互式 SQL 教程和练习。在尝试面试题之前,先做完这里的所有练习。
- [PythonCode.club](https://pythoncode.club) - 按主题分类的 Python 题目,让你可以针对列表推导式或标准库等特定领域进行专项训练。不错的补充练习。
- [Highload.fun](https://highload.fun) - 专注于并发、内存和优化的挑战。这是后端工程师会喜欢的罕见垂直领域。
- [Hackattic](https://hackattic.com) - 涵盖 Web 漏洞利用、密码学和逆向工程的实际黑客问题。比其他平台少些手把手指导,更强调亲自弄清问题。
- [SupeCoder](https://supecoder.dev) - 包含比赛和即时反馈的朴实编程练习。没有花里胡哨的东西,但非常实用。
- [CodeAny](https://codeany.me) - 极简的问题解决体验——没有让人分心的功能,只需选择一个问题并编写代码。非常适合快速的热身练习。
- [RepoVive](https://repovive.com) - 通过为真实的开源项目做贡献来进行练习。重心不在于算法,而在于阅读和使用实际的代码库。
- [CodenQuest](https://codenquest.com) - 游戏化编程,包含任务和成就,随着你的进度增加难度。让练习不再像是一件苦差事。
- [Vim Adventures](https://vim-adventures.com) - 通过冒险游戏学习 Vim 导航。通关各个关卡,你自然而然就能掌握 Vim 命令。
## 数据科学与机器学习
- [Kaggle](https://www.kaggle.com) - 数据科学社区的核心,集竞赛、数据集和课程于一身。在投入真正的竞赛之前,先从“Getting Started”级别的比赛开始。
- [StrataScratch](https://www.stratascratch.com) - 来自真实数据科学公司的实际面试题。按公司筛选,专门练习你将会被问到的内容。
## CTF 与安全平台
CTF(Capture The Flag,夺旗赛)网站用于练习网络安全技能和解决挑战。
- [TryHackMe](https://tryhackme.com) 🇬🇧 - 引导式的黑客实验室,带你逐步探索各个关卡。如果你是安全领域的新手,“Pre Security”路径是一个绝佳的切入点。
- [HackTheBox](https://www.hackthebox.eu) - 为更有经验的安全人士提供具有挑战性的靶机和 CTF 风格的实验室。从简单的机器开始,逐步向上挑战。
- [PicoCTF](https://picoctf.org) - 面向高中生和大学生的初学者友好型 CTF 比赛。如果你以前从未参加过 CTF,这是一个很好的切入点。
- [OverTheWire](https://overthewire.org) - 一系列 wargame(攻防游戏),从绝对的基础知识开始,逐步上升到高级安全概念。在挑战更难的游戏之前,请先完成 Bandit。
- [CTFLearn](https://ctflearn.com) - 社区驱动的 CTF 练习,包含所有类别的题目。按难度排序,按照自己的节奏取得进展。
- [CryptoHack](https://cryptohack.org) 🇦🇺 - 通过实操挑战学习现代密码学。先完成 Introduction 部分以打下基础。
- [W3Challs](https://w3challs.com) 🇫🇷 - 涵盖多个类别下 Web、系统和网络漏洞利用的安全挑战。有助于进行全面的安全练习。
## 补充资源
用于发现更多题目和竞赛的比赛追踪器和聚合网站。
- [Clist.by](https://clist.by) 🇧🇾 - 聚合网络上的编程竞赛,让你不会错过任何一场比赛。使用筛选器寻找符合你技能水平的比赛。
- [ICPC](https://icpc.global) - 国际大学生程序设计竞赛的官方网站。这里收录了历届决赛题目——其中包含你会遇到的一些最难的题目。
## 贡献
欢迎 contributions!请查看[贡献指南](CONTRIBUTING.md),了解如何添加新网站、更新描述、修复链接以及提出分类建议。
标签:学习资源, 算法竞赛, 精选列表, 编程挑战, 防御加固, 面试准备