So you’ve probably heard of the word “algorithms” by now, either in a good or a bad light, but in my opinion, they’re just a tool, like any other. Oxford says that an algorithm is:

“A process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.”

By now you should realize, that you’ve already wrote a bunch of them previously.

So any code that you write, that has atleast one rule, like an if statement to see if your JavaScript fridge is running, like in the previous post - is considered an algorithm.

HackerRank

Of course you can write many types of algorithms, but if you wan’t a challenge in writing them (which helps in learning too) you can visit HackerRank which will give you tons of challenges to practice writing algorithms. Other stuff too! Data Structures, A.I., Databases and even an “Interview Preparation Kit”.

freeCodeCamp

freeCodeCamp also has a chapter for algorithm scripting and it has quite a few examples there. Don’t miss out on their “Thousands of horus of challenges” at the bottom of the learning list aka - the dashboard.

KhanAcademy

KhanAcademy also has a section on algorithms, which has even more pointers, where to learn more about them, at the very bottom.

Tips

My personal suggestion is to approach algorithms when you think you’re ready, because you don’t have to create genius-level algorithms every day, all the time. It can get frustrating very easily, especially if you’re in the “diminishing return” zone.

My suggestion, is that when you find yourself looking at your code and thinking - “I wonder if I can make it run faster or re-use it in some other way.” Then I’d say would be the best moment to go into them in more detail.

You might not be at that moment yet and that’s ok. Learning new stuff is important, but balance is more important. Don’t let an electronic device drive you miserable. Algorithms will be out there tomorrow too. For better or for worse.

Do you even Google?

Another suggestion about approaching algorithms, would be to google for “JavaScript Interview Challenges”, to get a taste of what you can expect from a job interview. “Web Development Interview Challenges” should be ok too.

But if you’re feeling like all of the previous stuff we’ve covered so far is way too slow for you, try out “Software Development Interview Challenges” though that might require more computer science knowledge, but it will give you a glimpse of what “back-end” development looks like.

Communities

One thing I haven’t mentioned so far, which is very underrated - the developer communities.

Instead of giving my opinion on them, I will just leave you with a list of links, where to find a community to be a part of:

15 Best Developer Communities Every Developer Should Join

The Best Developer Communities to Join in 2020, by freeCodeCamp

/r/learnprogramming on Reddit

The SitePoint Community

If you use Slack:

23 Slack channels for Software Developers

The Full List of 400 Slack Communities

46 Slack groups for developers

Or Discord:

Frontend Developers

Top 10 Discord Servers for Developers

Discord Programming Server list on top.gg

Props to everyone who’s involved in making these communities happen, and to the authors of the posts that I have linked to above! 🙌