What if you didn’t have to go around in circles, getting concepts from the two languages mixed up with one another? What if you could learn a second language faster, by building on the knowledge of your first language? What if you could write interesting programs right now, and then build on them later? What if you knew exactly when you should expand your horizons and begin learning a second language?
To explore these questions, we’ll revisit our good friend, the Theory of Constraints.
If you’re unfamiliar, the Theory of Constraints tells us that in any given system, there’s one bottleneck that constrains the throughput of the entire system. Increase capacity downstream, and you create waste. Increase capacity upstream, and you overload the system - potentially causing it to fail at the bottleneck. That’s one way to identify the bottleneck… but how can we identify it without causing systemic failure?
Deliberate Discovery helps us identify the things that we don’t know. In a nutshell, Deliberate Discovery addresses the fundamental truth that we begin projects at the peak of our ignorance, and we gain understanding as we work. Accept and embrace this principle, and you will uncover the hidden obstacles that will cause your project to fail. Ignore it, and you’ll constantly find yourself running headlong into obstacles, with no idea why.
If you’re thinking, “I need both to create web applications, so I should learn both!” then I urge you to take another look at the Theory of Constraints. Here’s a little experiment:
There’s no easy answer to the question - that’s why we apply tools like Theory of Constraints and Deliberate Discovery to figure it out. Here’s a heuristic you can use though: Can you consistently create computer programs using one language? If so, you might be ready to branch off and start learning a second. If not… you’re setting yourself up for failure by biting off more than you can chew. You simply don’t know what you don’t know, and it will bite you in the ass.
I could end things by giving you the classic consultant’s answer – it depends – but that doesn’t do you much good. If you knew what you needed to do, you wouldn’t have read this far. I’ll ask you one final question:
When you look at your GitHub, what do you see? Do you see a bunch of custom-built software that you know inside-and-out, or do you see a bunch of programs that you copied line-by-line from tutorials? Or do you see nothing at all…?
If you’ve already written lots of custom software, then you’ve addressed the primary constraint - you know how to program. If you don’t have any code you can call your own, then trying to learn multiple languages will only make things more difficult for you.