In my opinion, it's the sheer amount of options available. It's overwhelming.<p>First of all, the tooling. Should I use NPM, Bower, Gulp, Grunt, Webpack or something else?<p>What text editor should I use? Visual Studio code? Sublime? Vim? Emacs? Something else?<p>What Javascript framework should I use? React? Angular.js? Angular2? Vue.js? Do everything with jQuery? Something else?<p>What CSS framework should I use? Bootstrap? Semantic UI? Material Design? Something else?<p>Should I just use ordinary CSS? SASS? LESS? Something else?<p>Should I use plain Javascript? Typescript? Dart? Something else?<p>All of the above have a learning curve (which means spending your valuable time learning the specifics of each choice). And no matter which combination you choose, somebody will come along and tell you that you have made all of the wrong decisions and should start again with X, Y and Z instead, which is incredibly frustrating when you just want to build something.<p>I've learned that, if you have learned X and are using it to build something, and somebody comes along and says, <i>What are you using X for, everybody is using Y now, X is dead</i>, you just need to have enough backbone to say, <i>X works for me, I know it inside out and I can use it to build a mean product, go away</i>.<p>It reminds me of the old but still relevant Joel Spolsky blog post, <i>Fire and Motion[0]</i>.<p>[0] - <a href="https://www.joelonsoftware.com/2002/01/06/fire-and-motion/" rel="nofollow">https://www.joelonsoftware.com/2002/01/06/fire-and-motion/</a>