Overwhelmed by the previous knowledge requirement rabbit hole?

Wondering how common this is for others: One of the things that heavily contributes to me feeling completely hopeless and overwhelmed is how I keep finding more and more things that are assumed to already be known before you try to learn something, but I only discover this as I go, so the list keeps endlessly piling up.

Say you want to learn Hot Towel, for example. Ok, well that’s built on Durandal, and Breeze, but oh wait, Durandal is built on Knockout.js and Require.js, and oh wait that’s built on this other stuff and uses the MVVM concept, and all that is actually running on MVC, and oh don’t forget that you also have to know all the conventions for AJAX and JQuery, and what do you mean you haven’t mastered HTML5 yet either, and so on and so on…OK, so now I need to stop what I’m doing and learn this other thing first so that what they’re talking about makes sense. But I need to stop learning that one because I need to learn these other 3 things before even that… ect, etc…

Every time I hit some term or technology I don’t know along the way, it adds to the confusion and the feeling like I’m not as advanced as I thought I was because I don’t know some foundational thing I should know to be working with this new technology I’m trying to learn. I end up feeling like I don’t know anything at all, and I’m completely overwhelmed by this exponentially growing list of things that I have to understand before I can even START learning the thing I actually needed.

But if you decide that you’re a completely ignorant lump and should just start over from scratch, you find that a degree course in software development doesn’t actually teach any of that stuff either. It leaves off long before it reaches most of the baseline things you actually need to learn in order to learn the useful things.

I feel like every course or technology reference should come with some kind of References folder or Include list or something. Here’s all of the other resources you need to load into your head in order to work with this new thing. Does any kind of tech tree like that actually exist out there? There has got to be a better way to figure out how to bridge this massive gap between introductory baseline formal education and the necessary skill set to be employable. I see far too many people flailing and lost to think it’s just me.

1 Like

I feel the exact same way most of the time. There’s just so much stuff already out there and more stuff coming out every week, it feels impossible to even stay current, much less ahead of the game.

Sometimes I hope / wonder if this problem is the worst in web development, which seems incredibly fixated on the new flavor of the week. I wonder if it wouldn’t be so insane to be like a MS stack desktop developer or a DBA or something instead… but I guess it’s going to be pretty bad no matter where you go in technology.

Stuff comes out and changes so much that it would be hard for even healthy people with self esteem to catch up or stick with something long enough to build a sense of mastery, but when you’re depressed/a perfectionist/have shit self esteem/otherwise mentally unwell it just makes it that much more agonizing.

I try to tell myself that the important things are the fundamentals. That there is an art of software development that supersedes any one language or technology or platform, and art in things like troubleshooting, debugging, interface / interaction design, dealing with businesses, etc. Those are the things that aren’t going to change every week.

I think it’s also easy to run into trying to do premature optimization in our knowledge. It’s really hard to remember that we don’t have to be an absolute expert on something before working with it or using it in a project (despite what our perfectionism or whatever might tell us). It’s way too easy for me to start on a project and be like, oh, I need to learn XYZ before I can do this, I’m not going to touch this until I’ve acquired and read books/screencasts on XYZ, read them completely, mastered the subject and then get back to the project. Of course, what really happens is that even if I get the book or tutorial or whatever, I just sit on it, never use it, and thus never go back to the project. I have embarrassingly huge piles of O’reilly/wrox/etc books sitting around untouched.

I think that’s just a form of avoidance or a fear of failure, or part of the [perfectionism/anxiety/depression triangle][1]. It doesn’t help that in the dev world there really IS a huge mountain of stuff you have to figure out and process and learn constantly. And inversely, the more you know the more you realize that you don’t know, and I think that in and of itself can create paralysis.

I wish I had more concrete advice to offer, this is something I’m battling with every day myself and I don’t really know how to break out of it.
[1]: http://www.psychologytoday.com/blog/crazy-life/201201/the-vicious-triangle-perfectionism-anxiety-depression

Just chiming into say ‘me too’. I would add that the feeling is worsened by the internet famous rockstars who seem to know everything and are writing the tools / building the stacks that we are too paralysed to learn. I get trapped in ‘do-nothingism’ - a phrase I encountered in this book yesterday.

I have been a freelance web developer for 10 years and must have done something right to have been paid for my work during that time but only remember the failures and the jobs I didn’t get, which presumably went to gurus of their craft who can keep up with all this stuff.

I also think that the problem is worsened by obsessively checking news feeds (hacker news anyone?) in an effort to keep up with the latest and greatest. I think this just fuels the fear that we don’t know anything and can’t possibly keep up. I plan to try and limit my tech news addiction in the new year.

Hey. Been programming for about 10 years now. There is A LOT of stuff and it can seem overwhelming at times. But after a while you realize almost everything was invented already by the 60s. It’s just constantly rehashing and refining the same old things. Dependency management tools, source control, your favorite design pattern for X, whatever, it’s mostly all ancient stuff. You start to feel like a hamster going around in a wheel after a while , relearning the same thing but for a new language or framework or something. So it does get much faster and easier to learn all the new things in my opinion.