Recently, I did a video about algorithms and whether it was a good idea to learn it or not. I see a lot of programmers making much noise about how to learn algorithms and well… In the end, it might not be ALL OF THIS for you to worry about it so much.
I know this topic divides opinions on the internet. Some programmers might say that learning algorithms will definitely make your career stand out from the crowd, while others might say that you should not invest your time in learning algorithms because it is useless.
An algorithm is a self-contained step-by-step set of operations to be performed. Algorithms perform calculation, data processing, and/or automated reasoning tasks. So, a lot of programmers started to ask me: Okay John, how do I learn algorithms after all?
In this video, I'll provide you the best resources on the internet for learning algorithms and everything you need to know.
John Sonmez:
Hey, what's up? It's John Sonmez from simpleprogrammer.com. I have a question here that a lot of people have been asking lately since I did this video on “Do I need to learn algorithms?” Now, the question is “How to learn algorithms?” Obviously, that was—I must have known that was coming. This question is from Ryss and he says, “I want to be able to know the best approach to efficiently learn and apply algorithms.” Okay. Pretty simple, straightforward question. I don’t know if I can give you the best approach, but I'll give you some ideas here.
I've recommended this before. I'm going to start with what I think is probably the best—I'm just going to give you resources here. I'm not going to go into a whole spiel about this. If you want to see how to actually learn algorithms and whatnot, I do have a Pluralsight course on job interviews where I talk about that and show you the actual technical process of doing it, but I'm going to give you some resources in this video.
The first one is this blogpost that I've mentioned before. It's from Raywenderlich.com. I actually interviewed him on this channel. He's a really cool guy. I got to meet him in person. He built a huge blog, by the way, and it's called “How to be a better developer with programming challenges.” You can check out that blogpost there and that's got a ton of resources. This is probably the best resources I found. It has a roundup of all the stuff that you can do to learn algorithms, especially algorithms that you would use in programming tests, online whiteboard, or whiteboard programing and online coding interviews, basically. I think that's probably the best group of resources that I found.
Now, next, I'm going to recommend one that I recommended a lot that I got my start on which is topcoder.com. You can check it out here and I did a lot of competitions, and I learned algorithms and how to create algorithm from Top Coder. You can just go into the single—It's called single room matches algorithms competition. They have a practice room there where you can practice on tests and you can actually compete as well, but that's a great way. Then I'm going to give you a site that a lot of companies use for programming challenges and you can do like, I think, one free one per month and you can look through some of their stuff. I think there might be even a plan for you to practice on, which is called codility.com. I highly recommend them. It's a good site. They have really good challenges and you can get a certificate actually if you can pass it in a certain amount of time or something. I forget. I did it a long time ago and got certificates if they still do that.
Then I'm going to give you 2 books here. The first one is called Cracking the Coding Interview and this is a really, really good book. It's obviously number one in Amazon in software development and I can't seem to just place it with my book. Hey, it's because it's a good job and it talks about coding interviews. It's got tons of information on the types of algorithms. If you go through that book and you go through and you do the exercises and the practice problems in there, you're going to be good at algorithms. I promise you. It's just a guarantee thing. I would highly, highly recommend that one.
Then finally, I'll give you kind of an old school book on this which is called Programming Pearls which you can find here. This is kind of an old school book. It's got a lot of interesting algorithm type of problems. Some of them are really, really difficult and it involve memory and optimization. A lot of stuff. Kind of different than the typical challenges that you might see in a coding interview, but will actually help you more in the job environment in developing algorithms and understanding algorithms.
That's it. I think those are probably the best resources, like I said, that Ray Wenderlich, one that I had given you at the beginning. That's probably got the most up to date of all. There's a bunch of different coding challenging sites and stuff like that, but that's going to be the best way to learn algorithm. You just got to do it. You just got to do code it up. Like I said, if you want to see me doing algorithms, if you want to see me teaching how to do algorithms, I do have a segment in my Pluralsight course on developer job interviews that you can check out and I show you how to do that. I'll probably do some kind of video actually, maybe on here or something or maybe a course showing how to do that. When I have time. I've got so many different projects I need to do.
I hope that helps you. If you got a question for me, you can email me at john@simpleprogrammer.com. If you like this video, I have a simple request for you which is to click that Subscribe button below. I would definitely appreciate it. Hopefully, you'll appreciate it as you get my videos everyday that I produce for you. I'll talk to you next time. Take care.