When you start programming, you write or copy code, and there's no way you can understand how it works. You just have to accept and hope that some other programmer put enough time and energy into the language that the text you plopped into the editor will somehow magically work.
Over time, you learn more and more, and after some tipping point you begin to understand most of what you type. In the least, you can describe what would happen to your program if you modified any given line of code. So, you get to the point where you are code literate.
Being a semi-literate coder will only take you so far. At some point, you want your code to do more. You want it to perform faster, with less resources. You want it to be clear, concise, and understandable. You want to reuse it for other applications.
So you start asking yourself low level questions like "which smart pointer should I use and should I be passing it by reference?", and head in the clouds philosophical things like "who should really own this object"? Through these questions, you realize that there's a lot that you don't know.
And so, you find yourself in a familiar place, thinking that there's no way you can understand how it all works.
Lucky for you, you've been here before.
No comments:
Post a Comment