4 ms·
Being a programmer implies a kind of mastery over the concepts, of the type that you only get with experience. You only get that experience by having experience
by enkiv2 12y ago
Being a programmer implies a kind of mastery over the concepts, of the type that you only get with experience. You only get that experience by having experience with a variety of tools.
Knowing how to use a hammer doesn't make you an engineer. Knowing calculus doesn't make you a mathematician. Knowing how to make a fist doesn't mean you know karate. Knowing C doesn't make you a programmer. Instead, to be any of these things in any meaningful way, you need mastery of a whole constellation of related tools and techniques and ways of thinking, as well as the practice and experience to make them work together.
You can do a lot of things with a hammer, just as you can do a lot of things with any given programming language -- both are very useful general-purpose tools. A programmer should understand the hammers of the programming world (C), the flathead screwdrivers of the programming world (python), the phillips head screwdrivers of the programming world (SQL), the power jigsaws of the programming world (prolog), the needlenose vice-grips of the programming world (awk), and even some of the nylon jeweler's mallets of the programming world (erlang, haskell, befunge) in the same way that you would expect even a relatively mediocre mechanic to recognize and understand the use of all these tools.
A language is a single tool. Concepts are concepts, and you can apply concepts with inappropriate tools just fine (you can write object-oriented code in c or functional code in java the same way you can remove a bolt with vice grips or hammer in a nail with the handle of a chainsaw).