We have more resources today in terms of documentation, guides, video tutorials, and how to's than at any other time in human history. We are a query away from getting an answer to most questions that affect us in our daily lives and usually we can get this information for free. But in the same way that we can be in the middle of the ocean thirsty for hydration yet so far away from it, we can also be surrounded by an increasingly growing pool of information, and yet have nothing useful to take in and absorb.
Water, water, everywhere,
And all the boards did shrink;
Water, water, everywhere,
Nor any drop to drink. - Samuel Taylor Coleridge
And at some point, you will hit your wall as to what you can learn on your own. Concepts that are more theory and less practical, but that are required to grow and move forward. Things that only someone with years of experience can know and can teach.
Technology is constantly getting updates and upgrades, and we're constantly renaming things. While that process used to take decades or more, it now takes a few years or even months. We make up new rules that are required to move forward, but we don't get rid of the old ones in the process. If you are new to the process, you only see the new rule sets, which makes everything seem simpler. If you've been in the game for some type however, you are treated to a grossly growing beast that you must do battle with.
And while initially, this can seem like a faster and easier approach to coding and building something. The novelty of it will wear out relatively fast when something unexpected appears in your field of vision. Something that you might not be able to handle, but that is required to move forward.
The trick to surviving this never-ending stream of noise, is to go backwards. Go backwards until you can make sense of it. Then choose your next path accordingly. Take 1 step back and make 2 leaps forward. If you still get excited when something works, but you have no idea why it works, then you haven't gone backwards enough. And I've seen that too much from new developers. It's a weird sight. It's like driving a car and being excited about stopping at a red light. If you are by yourself, then maybe the excitement is warranted. If you are with others however, then maybe some slight embarrassment is more accurate.
The difficult part going forward isn't going to be taking in all of the input and making sense of it. That's a sure fire way to talk yourself out of becoming a programmer. That is difficult and challenging, so giving up on it becomes understandable. The big challenge is going to be learning what to ignore. It's going to be hearing about that new framework just released and choosing not to be a part of it. Letting it play itself out. More than likely, that framework won't be around more than 1 or 2 years.
It's about pure and clear focus on the goal at hand. And that is learning to engineer software in its various ways. Learning about logical concepts and theories created by great people before our time. Going deep into the mindset of designing a virtual environment that people can use with ease in order to accomplish a task. And while the technologies and toolsets used to create such things are important, they are only a small minute part of the whole equation. Tools are tools, they make doing things easier, more efficient and faster. But no amount of ink and canvases can make for a work of art.
Walter G. is a software engineer with over 10 years of professional experience. When he isn't blogging or being a CTO he enjoys coding randomly complex things that he hopes many people will get a chance to use one day.