专栏 | 九章算法程序员
网址 | http://www.jiuzhang.com面试
对于软件开发人员来讲,保持编程的竞技水平是很是有必要的。算法
经过解决不一样类型的编程难题,迎接不一样类型的编程挑战,不只能让你成为处理问题的高手,帮助你了解编程语言的复杂性,还能让你学习到更多新的算法,变得愈来愈优秀。编程
下面是10个优质的编程网站,有利于帮助你们提升编程技能,准备技术面试,促进你们的职业发展。微信
1数据结构
TopCoder编程语言
TopCoder 是最先的在线编程竞技平台之一,该网站提供了一系列的算法挑战,在这里,你能够:编辑器
使用他们的代码编辑器直接进行在线做答。函数式编程
参加该网站举办的 SRMs 挑战项目。该比赛将会在每个月按期举办,做为参赛者,你须要以最快的速度,与众多其余的编程挑战者进行比拼。函数
他们还会赞助竞赛,若是你写出最好的解决方案,就能够拿到奖励!
2
HackerRank
HackerRank 侧重于**“计算机科学”**主题,在算法、数学、SQL、函数式编程、AI 等众多不一样领域为挑战者们提供了相应的编程题目。在这里,你能够:
直接在线完成挑战在线。
HackerRank 针对每一项挑战都专门成立了讨论区与排行榜。而它提供的大多数挑战都来自于社论,让你了解挑战内容的同时,思考如何提出解决方案。而且除了挑战对应的这篇社论,你目前没法查看其余挑战者在 HackerRank 上的解决方案。
3
LintCode
LintCode 收集了网上一些最多见、最高频的编程题目,支持中英双语:
相比其余的一些网站,LintCode 的编程挑战覆盖的领域更多,包括算法、数据结构,人工智能,系统设计等众多领域。
若是你在准备软件工程面试,在 LintCode 刷题是颇有帮助的,它的每道题都有详细的解答,能帮助你更好地理解。
LintCode 有一个模拟面试专栏,精选 Facebook, Amazon, Google, Linkedin 等IT企业的面试题,真实还原面试流程,专门为求职者准备。
LintCode 有《Cracking the Coding Interview》《剑指offer》等算法学习书籍的配套习题库,可供初学者练习。
LintCode 还有本身举办的编程比赛,不少算法爱好者会在这里PK,切磋技艺。
4
GeeksforGeeks
对于**“算法和数据结构”**主题,GeeksforGeeks 有不少很好的文章、解释和代码解决方案。在这里,你能够:
在在线编辑器中进行挑战。
在该网站的代码解决方案中,你会看到解题者是如何将一个复杂的问题分解成更简单的部分,并提出代码解决方案的。
若是你正在准备一个软件工程的面试,也能够用这个网站准备和复习更难的算法问题。
5
Coderbyte
Coderbyte 提供了200多种编程挑战。在这里,你能够:
使用10种编程语言中的一种进行在线挑战。
看到网站发布的大多数挑战的官方解决方案。
查看该网站其余80万用户为同一挑战提供的解决方案。
除了编程挑战以外,Coderbyte 还提供算法和数据结构、Web开发等编程训练营的预备课程以及一系列关于面试准备的相应课程,被不少顶级编程训练营所推荐。
6
Codewars
Codewars提供了大量由他们本身的社区提交和编辑的编程挑战,在这里,你能够:
使用多种编程语言像打游戏升级同样进行挑战。
经过在线编辑器直接完成每项挑战。
经过实战训练来提高编程开发技能。
查看关于每一个挑战的讨论以及每一个用户解决方案。
经过挑战来得到分数和排名。
7
CodeFights
CodeFights提供了一组编程挑战,在这里,你能够:
在在线编辑器中进行挑战。
在专门的用户挑战论坛中参与讨论。
与**“机器人”**比拼!
8
CodinGame
CodinGame这个网站很特别,他跟一些竞争性编程网站有所不一样。它不是简单地经过生成一组输出来实现编程挑战,而是以玩游戏的方式经过在线编程完成相应挑战。这是一个很棒的网站,有些游戏很是有趣,而且游戏界面和图形设计很是精美。
9
CodeChef
CodeChef是一家印度的编程竞赛网站,它提供了数百个挑战供你选择。在这里,你能够:
经过在线编辑器来进行编程。
根据自身的编程能力,选择不一样技术等级不一样类别的编程挑战。
在他们创建的程序员社区中进行交流并为论坛编写教程。
参加 CodeChef 的编程竞赛。
10
Codeforces
Codeforces 是一家总部位于俄罗斯的竞赛编程网站,它会按期举办在线比赛,而且竞赛选手是世界上一些最优秀的程序员。他们的挑战一般须要用到高等数学和算法,若是你是一个编程新手,他们的挑战极可能对你来讲难度比较大。