You can’t do an interview on Google or Facebook without knowing the algorithm. So why not study now?

I am a programmer with over n years of experience. From the first year of high school, I studied and worked a lot on algorithms. Before I graduated, I had been studying and was passionate about it. After graduation, I began to study abroad and took the road of research.

However, after working for 3 years, I prefer to do products/software rather than research. I turned to technology/engineering rather than algorithms. However, I personally believe that it is still important for developers to understand algorithms. Also, I think you probably don’t know enough about Google or Facebook to pass the interview!

> Photo by Fabian Grohs on Unsplash

HackerRank

From junior to senior, from developers to hiring managers, the site is well known in the programming world.

> hackkerrank.com

Hackerrank has many algorithms, from low to high difficulty, and a variety of algorithms and data structures (even SQL). You’ll write code, run it directly and see the results, or watch the discussions to see how people solved it.

In the course of my interviews, some companies asked me to come here for testing (algorithms + multiple choice + papers). So you can come here and do more practice and get used to it.

TopCode

> www.topcoder.com/challenges/

TopCoder was one of the first online “arenas” where programmers could compete against each other. It provides a list of algorithmic challenges that you can perform online using its code editor. Single-round competitions are held several times a month at specific times, with coders competing against each other to solve challenges the fastest with the highest score.

Top users on TopCoder are very good programmers and often participate in many programming contests. The top scorers will have their own blog, ALGORITHMS WEEKLY by PETR MITRICHEV, where they can write about coding contests, ALGORITHMS, math, and just about anything else they like.

Geeksforgeeks

If you have trouble executing your algorithm, you may see this page several times after searching for a solution on Google.

> practice.geeksforgeeks.org/

This Geekforgeeks page looks a bit… It’s ugly. The classification of these exercises is not very good. However, it has many solutions for common algorithm exercises. Each solution includes many different approaches and the complexity/memory of each approach. It is very interesting and rewarding reading.

So sometimes you can see the popular algorithm for this page/solution example on the home page!

Leetcode

Another popular algorithmic training site: Leetcode. This is no less than HackerRank, with three main difficulty levels: Easy, Medium, and Hard(some simple questions are very difficult).

> leetcode.com/

When I go to algorithmic interviews, I’m often asked simple questions that use intermediate to assess competence, while the hard ones are for Facebook/Google interviews.

This page is also a good way to measure your performance/runtime code compared to other pages to see if your code is running fast or slow and can be optimized.

Daily coding questions

I was introduced to this page while watching CS Dojo’s Youtube channel – a Google employee resigned to become a Youtube employee.

> www.dailycodingproblem.com/

Unlike the rest of the page, this site does not have a list of jobs. Instead, you enter email and they send you 1 algorithm a day to try.

These are also Easy/Medium, used by companies like Amazon/Google to interview candidates. If you buy the premium package, you will get the solution.

Exercism.io

If other pages need to practice algorithms, then practice is a good place to learn programming.

> exercism.io/

There are a lot of exercises, but they’re not so algorithmic, but they’re heavy on using programming languages:

Use an if/else loop.

Date processing, string processing

Method separation, class organization

How to handle errors and write asynchronous code

I use this site to learn more about Golang and Elixir.

If you’ve been programming for a while and want to learn a new language and a new way of thinking, go for it!

conclusion

In this article, I share 6 cool sites to practice algorithms and learn programming!

I personally don’t think you need to learn much, so if you want to practice before the interview, go to Skilled/Hackerrank/Leetcode.

After all, learning programming is the most important thing for us! The best time to plant a tree was ten years ago, followed by now. ** For those of you who are ready to learn programming, if you want to improve your core programming ability (internal work), you can become a promising technician in the future! ** might as well start now!

C language C++ programming learning exchange circle, **QQ group [981108780] ** wechat public number: C language programming learning base

Organize and share (years of learning source code, project actual combat video, project notes, basic introduction tutorial)

Welcome to change careers and learn programming partners, use more information to learn and grow faster than their own thinking oh!