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.
If you Google "Learn to code", or any similar type of phrase, you will probably be rewarded with a list of the top 100 programming languages to learn this year. Or the top 20 online classrooms. Or the top something. And that's it. You are left to your own devices as to how you will continue forward. More than likely, you will end up following the path of the most popular language currently trending, and not necessarily the one that is most convenient for you. Some combination of a JavaScript framework and node.js more than likely. Which isn't wrong. But it might not be so useful to your path. But you won't realize that until much later, when you have given a considerable amount of time to the venture.
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.
An example would be the latest and greatest JavaScript frameworks and libraries. While they make coding simpler by requiring you to type less actual code, they require you to learn the process of "how" to type less code. You now have to learn a new system of library and framework management, on top of the old system that is the code. And while that sounds confusing, that's because it is. But this is the new way. This is the path forward that we have currently set up.
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 Guevara is a Computer Scientist, software engineer, startup founder and previous mentor for a coding bootcamp. He has been creating software for the past 20 years.
Last updated on:
Have a question on this article?
You can leave me a question on this particular article (or any other really).
Ask a question