When you start to learn a new programming language, it’s very easy to get carried away in the excitement of starting something new and overcommit yourself to learning too much. When you overcommit to learning too much at the same time, you’ll quickly find yourself getting stressed, overwhelmed and frustrated. If you throw a non-moving deadline into the learning mix, then you're setting yourself up for a very unpleasant future (trust me this is a voice of experience). In today’s post, I’m hopefully going to try and explain how people get themselves into these situations and what you can do to try and limit the amount of new stuff you need to learn at the same time. This issue if trying to learn too much at the same time doesn’t just apply to individuals. Companies are probably even more guilty of attempting this without realising the impact as well. Recently, for example, I was working for a client who wanted to update their website with a responsive design and some new functionality, as well as release a new mobile app with similar functionality.
The directors within this organisation put the mobile app in-front of the website. Even though the company in question didn’t have much experience with mobile apps, this was deemed as giving more business benefit in the short-term. These sort of decisions are classic examples of developers needing to learn too much at the same time. In this example, instead of only worrying about one problem, e.g. how to integrate/add the new functionality into the existing back-end systems. Putting the app first, meant the developers had to figure how this integration would work AND learn how to make an app at the same time. Doubling the complexity of the task and doubling the stress involved.
Obviously, I can’t predict the future, so I can’t say for definite one approach would have led to a quick end result than the other. What I can say is that if they had started with the website first (with the tech stack they understood), they could have figured out one piece of the puzzle first got that right and just concentrated on learning the app development side of things afterwards. In terms of odds, this approach would be far less risky with a lot less chance of missing deadlines.
The point of my little story is that when you try to learn something new, it’s easy to try and throw too many things in the mix. To give yourself the best chance to succeed, you want to try and limit the number of new things you need to learn at the same time. For example, I’ve been using C# for 13 years now. If I wanted to learn how to make a bowling game on IOS, my easiest path would be to build an app in C# first, figure out all the logic and all the hidden gotcha’s that are involved just in writing a bowling game with the skills I know. After I had the domain knowledge of bowling programs, I could then port that into IOS. Approaching my task in a two phase approach means my life now is a lot simpler as I’m not trying to figure out two things a the same time.
In the bowling example it might seem that you’re actually creating yourself more work, but, trust me; if you have a deadline and you need to learn too much at the same time… life is not fun. I think this side of taking on too much at the same time is often overlooked when people try to learn new technology. Instead of simply trying to learn one thing, people inadvertently make themselves need to learn 9-10 things. From my experience when you do this, you don’t usually seem to hit a deadline any quicker, your code quality suffers and your life is a misery until it’s all over. Next time you need to learn something new, don’t say I didn’t warn you!
Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge