Ask HN: How has knowing data structures and algorithms been useful to you?
As someone with no formal background in CS, I was unexpectedly thrown into the world of web development 3.5 years ago. All of what I have learned has been self-taught with the help of books, tutorials, trial-and-error, googling, etcetera. Something I have frequently encountered along the way is a call to learn data structures and algorithms. So far I have only glimpsed the tip of the iceberg with that topic, just enough to realize how immense it is and how much effort it would take to internalize it. Basically I am on the fence about whether or not to plunge in headlong. Specifically, I am interested to know how your knowledge of data structures and algorithms has helped you to do the job that you do.
On the flipside, while I am intellectually fascinated by the idea of data structures and algorithms, I am kind of put off by it as well. The reason being that I find programming to be an extremely creative (and therefore enjoyable) activity, and part of me thinks that acquiring this new knowledge will detract from that. For example: if I am to get from point A to point B and realize that algorithm x will do the job, the process of creativity and discovery between A and B has been replaced by the act of implementing algorithm x. While from a pragmatic standpoint this latter is obviously optimal, from a creative standpoint it is not.
On the flipside, while I am intellectually fascinated by the idea of data structures and algorithms, I am kind of put off by it as well. The reason being that I find programming to be an extremely creative (and therefore enjoyable) activity, and part of me thinks that acquiring this new knowledge will detract from that. For example: if I am to get from point A to point B and realize that algorithm x will do the job, the process of creativity and discovery between A and B has been replaced by the act of implementing algorithm x. While from a pragmatic standpoint this latter is obviously optimal, from a creative standpoint it is not.
What do you think?