A friend recently mentioned that in order to be an effective programmer, you need to know everything about a language. I thought about that statement for a few days and then finally responded, “Do you actually need to know everything or just be willing to learn anything?”*
On the path to know anything, even everything, you must know something. In the case of programming, you need the foundations of the language. This could be measured a few ways: Passing a certification exam, being able to do structural programming with limited reference materials, or simply knowing the difference between the for loop and the while loop.
But just knowing something is not enough. The pursuit of anything implies that you have a learning system in place that builds upon your foundation of knowledge, pushing you into new territory. Application becomes of utmost importance.
For example, let’s say I was using ActionScript to create an interface for playing a .FLV video file. I would look at a few tutorials in order to understand some of the video control functions in ActionScript, but it is up to me to transform that knowledge into a usable product matching the visual aesthetics and functionality of the project.
Something must be transformed into anything.
There is an infinite feedback loop between something and anything. The illusion is that everything will eventually be attained, but it actually functions much like mathematical asymptotes. If you graph y = 1/x, both x and y will never equal 0.
Everything is the asymptote of life. You will never arrive at the destination, you will get close, but infinitely far from where you want to be. There will always be something new. Best to develop foundational learning skills in order to prepare for this reality.
*You can replace programming with any subject and the logic of this post remains true.