There are a few issues with this analogy. One is that it means the biggest movie buffs would make the best directors which I don’t think is always correct. Another is movies are subjectively enjoyable, or different people like different things. I like Inception’s complex plot, but my friend hates it and thinks its convoluted.
There’s a mix when it comes to software development. Some things are purely subjective, such as the classic “tabs or spaces” argument. Some are clearly not, like who wants a slow application?.
So the best directors do watch other movies, but that isn’t the only thing they do to become great. Directing movies also creates products that are subjectively good or bad, where as the best developers solve problems that have objective goals, IE, stable, fast, easy to use, easy to update.
The issues with studying best practices are that:
- They change all the time
- The are opinionated
- Can be too generic
They change all the time because tech and trends change all the time. What is “best practices” one day, becomes antiquated the next. Or, a technology comes and changes the landscape. So the best defense is to look into what your doing, see what the current ideas are, and stick with them as best you can. There are “best practices” everywhere for almost everything, as people have opinions on whats right/wrong all the time. So looking for a single site to study all “best practices” is like trying to find a site with all the answers.
This doesn’t mean there are some practices that stand the test of time and haven’t changed. Stuff like algorithms, data structures, clean code techniques are all things that wont really go away as the problems they focus on are the same, have been the same and continue to be the same. This is less “best practices” and more “fundamentals” however.
So maybe focusing on fundamentals and dabbling into what is considered the “best practices” of now from time to time is the best approach, rather than focusing on what are the best practices.