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.
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 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 also has a section on algorithms, which has even more pointers, where to learn more about them, at the very bottom.
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?
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.
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:
If you use Slack:
Props to everyone who’s involved in making these communities happen, and to the authors of the posts that I have linked to above! 🙌