At the moment you put a feet in the cold water of software development, it's likely you scream and back away. You are probably overwhelmed with what it seems a forest of buzzwords.
While it's true that it's a big and fast evolving field, there are ways to benefit from that, and the how, it's what I want to talk about today.
The knowns and the unknowns
We can classify everything in:
- Known knowns: The things we know we know. For a newbie programmer might be to write a little script in python that reverses the input.
- Known unknowns: The things we know we don't know. For the same young programmer as before, may be send data over a network. He knows it can be done, he just doesn't know exactly how yet.
- Unknown unknowns: The things we don't know we don't know.
The first category is vital because it enables us to immediately solve real world problems.
But I think that the second category is underrated. The known unknowns have a very low entry fee and it enables us to learn something on demand in order to solve a problem.
Why invest time in the known unknowns
I wish I got everything in the first category, but it's just impossible. Things keep evolving no matter what, there are simply too many things and it's costly in time to learn it all.
What is possible though, is to have a broad second category, that is: Have lots of known unknowns.
It has a very high value for the time it costs and you are probably not going to need to know all of it anyway.
For example: I never had to implement an event driven architecture, but I am familiar enough with the concept and its use cases.
Don't get me wrong, the devil is in the details and I would have to invest an important amount of time to learn how to implement it, but knowing that exists and what problems solves makes you a better developer already.
Takeaways
- The software development field is too big, it's impossible to know every framework, tool or language that exists.
- But that's okay, just start making a breadth-first search: Take a look at some roadmaps for example.
- If you encounter any concept you don't know, spend 5 minutes reading about it and how could be useful to you in the future.
- When a perfect use case comes for something you know that you don't know, invest time to learn it.
- Learn something this way is easier, because there is a real reason behind.
Photo by θ‘ εδΊ¨
Top comments (2)
yeah, there are some really good points here.
I believe learning on demand is one of the key skills a developer learns over time. It's a skill you see many experienced developers leverage. In addition, you gain the confidence of using your past experiences to know you can pickup something new "when required".
Many beginners fall into the trap of being afraid of what you call "unknowns unknowns" but this fades away as experience is gained.
Great take. Completely agree. You are in the path to achieve great things!