Skip to content

Latest commit

 

History

History
17 lines (9 loc) · 2.25 KB

README.md

File metadata and controls

17 lines (9 loc) · 2.25 KB

Hacking on Algorithms

This is a repo for me to hack around with some algorithms. I created primarily to help strengthen my understanding. Ultimately because not enough of my day is spent writing or using them, and yet I know how valuable a good understanding of algorithms can be.

Note : This repo is not intended to be a show of production code. it's a repo for me to hack and iterate.

Why JavaScript?

In case you're wondering, I decided to pick JavaScript for the following reasons:

  • Barrier to entry is low. No IDE's, no complex set up, just atom as my text editor, plain old JavaScript and node for execution. A low barrier to entry means I can focus more on algorithms and I'm more likely to achieve my goal.

  • JavaScript doesn't have the built in richness, data structures and syntactic sugar that comes baked in to other languages. C#, for example, benefits from Generics, Linq, Anonymous functions and Lamdas (to name a few). These are great features, but not having that richness means I can focus purely on solving the problems using algorithms alone. It also means I give consideration to algorithm complexity, The Big O, as well as applying techniques that often occur in algorithm usage/design, such as recursion.

  • It's pervasive. According to the 2018 stackoverflow survey JavaScript is still the most popular programming language. That doesn't necessarily make it the default choice, but it does mean that there's broad community out there that I have access to for help and feedback.

  • The lions share of my time is spent writing C# code, making infrastructure changes, deploying code, monitoring production applications, pairing, communicating with peers and attending daily/weekly ceremonies. The programing demands of any given project/product varies, but ultimately it makes sense to a step away from the language that I use the most. The intention being that it can only help me to grow. I've historically disliked JavaScript due to it's idiosyncrasies. Maybe my dislikes are/were valid, but I'm equally willing to challenge my own opinion by spending more time with the language that I've typically used when working on front end code.