Log in

No account? Create an account
How can you call yourself a programmer if you don't know loops? - The tissue of the Tears of Zorro [entries|archive|friends|userinfo]

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

How can you call yourself a programmer if you don't know loops? [Feb. 18th, 2011|01:51 am]
[Tags|, ]

As a computer engineer, I've developed a reflex to help with my day-to-day survival. If in certain company, when I tell someone that I work with my computers, the next words to pour out of my mouth will be, "No, I will not fix your computer for free". Actually, sometimes there are variations; I leave out the "for free" bit. The general idea is that outside of friends, and the occasional trading of favours, I don't like doing my job outside the office, and not getting paid for it.

At least if you're a friend, you tend to get a free pass on that... IF you get around to describing the problem well enough for me to be intrigued. In other words, "it doesn't work" won't cut it.

However, I'm quickly developing another rule. Nobody's safe from this one. I always waver between it being harsh and it being reasonable. It sums up to, "No, I will not teach you how to use your tools (unless I already know how to use them)". This mostly is in a computer context, but applies equally.

Here's the thing: I know how to do what I need to do, and I know what I need to do it. I mean, I've kinda reached the point in my work where a computer is taken as a given. The tools I have amount to the programs and scripts that are written to make my job easier, or allow me to do things I would not be normally able to do.

There are some tools that, I will admit, I am not competant with. However, I still think I know what my tools can do in the hands of a skilled professional. For instance, if I was sculpting, one of my tools would be a chisel. Realistically speaking, I'm not going to be able to do anything particularly spectacular, maybe give you a very chipped cube, or a speck of sand that was once a giant marble pyramid that I kept messing up, and trying to "even out", gradually wearing the work down to the single white speck before you (or at least your mind's eye). That's the sum of my skill with a chisel. However, I know what it does, and what it cannot do. Firstly, no chisel would turn me into an instant artistic hit.

However, if some budding artist came to me and asked, "Right, so I'm putting a nose back onto the sphinx, how do I use just a chisel to do that?", they would earn my ire/derision/mockery (depending on how I'm feeling at the time). I, someone who has very little practical experience with a chisel, at least know that a chisel is to chip things away; it does not construct, but allows a controlled destruction/removal. It is not the chisel's responsibility to construct.

Now, if I'm talking to other professionals, I will swap tips about my tools; it's one of the best ways for me to learn. That said, they know what the tools in question do and do not do; they have gone to the trouble of learning the gross basics of the tool and its capabilities.

The problem is, when it comes to computers, they don't know where the computer (the thing I fix) ends and the tool starts; it's like how "the internet" is the mental label used for either "Microsoft Explorer" or "Facebook" in a lot of the technically illiterate.

The problem is, when someone is a professional, making money from or staking their identity in what their craft, they give up the privilege of ignorance of their tools. A mechanic who thinks they can bend large sheets of metal with just a screwdriver is useless; if a mechanic like that doesn't know the tools of their trade, why are they calling themselves a mechanic?

I am not ignorant of web browsers, as my job requires that I use one; more importantly, I know what I can reasonably expect them to do, and when they will fail to work (for instance, I happen to know that I won't be able to access my webmail without an internet connection). A carpenter should know what their hammer, nails, planks and all their other regular tools do. Musicians should know what a sequencer does, and when the problem is that of a sequencer. Similarly, a DJ should know when to blame their virtual DJ when a song skips and when to blame Windows/Linux/MacOS/Xenu. Internet PR people should know their way around twitter, facebook or whatever the social media du jour happens to be.

Similarly, a DJ can happily remain ignorant of the finer points of hammers and nails, and is allowed the luxury of thinking that you can reconstruct the nose on the sphinx with just a hammer; I'm cool with that, because nobody knows everything.

The main point is, there are tools I know how to use. If I can, I'll help you get up to speed with tools that I already know how to use. Otherwise, I reserve the privilege of invoking and hiding behind my shroud of wilful ignorance. Sure, I'll make sure it's not a problem with your computer but otherwise, like a bad workman, I'll blame your tools. This is because "knowing computers" doesn't make me an instant expert on all of the myriad of programs out there.

However, if I know even what a tool is for, even under my cover of ignorance, and you stake your reputation/identity on a profession or craft that uses that tool, and you don't know its limitations or responsibilities, a diplomatic response may not be forthcoming from me.