6 个超酷的网站,专门用于学习算法

点击上方“五分钟学算法”,选择“星标”公众号

重磅干货,第一时间送达

6 个超酷的网站,专门用于学习算法_第1张图片

来自:程序员书库(ID:CodingBook)

书单来自:https://levelup.gitconnected.com/6-super-cool-websites-for-practicing-algorithms-learning-programming-4cda65a64b7e

最近一位有着15年经验的老程序员和我们他认为最酷的6个学习编程/算法的网站,以下为他的博客原文:

我是一位拥有15年工作经验的程序员,从高中毕业的第一年就开始学习算法,毕业之后出国留学,便走上了算法研究道路。

但是,工作三年后,我更喜欢做产品/软件而不是研究。我转向技术/工程而非算法。但是,我个人认为对于开发人员来说,了解算法仍然很重要。而且我不认为一个不了解算法的人可以通过谷歌/Facebook的面试。

6 个超酷的网站,专门用于学习算法_第2张图片

1. HackerRank

该网站在编程界非常出名,从初级到高级,开发人员到招聘经理等大多数程序相关岗位的人都知道这个网站。

6 个超酷的网站,专门用于学习算法_第3张图片

hackerrank上有很多算法题,难度从低到高,除此之外,还有各种算法和数据结构(甚至是SQL)的题。你可以直接在上面编写代码,直接运行并查看结果,还可以查看评论看看看其他人都是如何解题的。

在面试过程中,也有一些企业让我来这个网站刷题,因此,你可以经常到这刷题巩固知识点。

网站地址:https://www.hackerrank.com/

2. TopCoder

TopCoder是最早的程序设计比赛网站之一,其中就有算法挑战赛,你可以使用其代码编辑器在线进行操作。单轮比赛每月在特定时间进行几次,编码员相互竞争,根据分数和解题时间排名。

6 个超酷的网站,专门用于学习算法_第4张图片

在TopCoder上排名靠前的用户都是非常优秀的程序员,并且是经常参加各种编程竞赛的人。排名最高的人将拥有自己的博客,在那里他们可以写有关编程竞赛、算法、数学等所有他们想和大家分享的东西。

网站地址:https://www.topcoder.com/challenges/

3.Geekforgeeks

如果你在执行算法时遇到难题,在Google上搜索解决方案时,你可能会经常看到以下页面。

6 个超酷的网站,专门用于学习算法_第5张图片

这个页面说实话看起来有点丑,分类也不是很好,但是,它有许多常见算法练习的解决方案。每个解决方案包括许多不同的方法,以及每种方法的复杂性,这是一种非常有帮助的网站。

网站地址:https://practice.geeksforgeeks.org/

4. Leetcode

另一个很受欢迎的算法培训网站是Leetcode。这个网站的算法数量并不亚于hackerrank,它主要有3个难度级别,分别是Easy / Medium / Hard(有些简单的问题也非常困难)。

6 个超酷的网站,专门用于学习算法_第6张图片

算法面试都是从简单的问题开始,中级问题则是用于评估你的个人能力,困难问题则是为Facebook/谷歌面试而准备的,这个网站还有一个优秀的地方是它可评估你代码的性能,看看你的代码运行的快还是慢,是否可以进行优化等。

网站地址:https://leetcode.com/

5.Daily Coding Problem

6 个超酷的网站,专门用于学习算法_第7张图片

和其他网站不同的是,Daily Coding Problem上面没有习题列表,但是,如果你输入自己的电子邮箱,他会每天向你发送一种算法面试题给你尝试解答。题型同样也根据难易程度划分,Amazon / Google等公司的一些面试题就出自这里,假如你购买了高级套餐,就会获得解决方案。

网站地址:https://www.dailycodingproblem.com/

6.Exercism.io

如果说以上网站是让你刷算法题的网站,那么Exercism就是让你学习编程的好地方。

6 个超酷的网站,专门用于学习算法_第8张图片

尽管Exercism.io上面也有很多习题,但这些练习并不侧重于算法,而是侧重于编程语言的某一方面:

  • 使用if / else循环

  • 日期处理,字符串处理

  • 如何处理错误,编写异步代码等

我使用此网站来了解有关Golang和Elixir的更多信息,如果你已经编程了一段时间,想学习一种新的语言,学习一种新的思维方式,那就去Exercism.io吧!

网站地址:https://exercism.io/

以上就是我要和大家分享的6个超酷的用来学习算法的网站,我个人认为你不需要所有都去使用,如果想在面试之前进行练习,建议是用Skilled / Hackerrank / Leetcode。如果你是想学习一门新的编程语言那就直接选择Exercism。

---

爱分享,爱开源,GitHubPorn 现已正式上线!专注于为大家分享优质的计算机学习资源与开发者工具。

如果今天的推荐符合你的口味,请在文章点赞,以表示对我的支持,你们的点赞和转发关注,是我持续更新的动力^_^


你可能感兴趣的:(算法,编程语言,python,java,大数据)