A recent email said: "I enjoy your site for the Blogging and Self Employment articles, but I am not a programmer so all of that goes right over my head."
I disagree. You are a programmer.
Consider this: you start up your computer and check your email. If you see something from one of your friends, you probably look at it right away. If you see spam, you delete it or mark it as junk. If you see something business related, you read it and respond as needed.
You wrote that "program". That is, you have a sequence of actions that vary depending on the input (your email). You make if-then decisions (if this is from Big Customer Number One, I had better read it now) and you do looping (finished with that email, ok, what's next?). Those are exactly what any programmer does.
Oh, right, but that's nothing to do with the computer.. it isn't? Aren't you pointng and clicking to control the computer? And didn't you have to learn what to click and how (single click, double click, right click)?
Oh, sure, but that's just using what someone else wrote.. that's not programming.. or is it? The person who wrote the email program probably didn't actually write a lot of it: he or she used things that someone else wrote. The menus, the buttons - they probably didn't "write" any of that. They just used someone else's program.
Just like you do with "mail".
Well, OK, in that sense, fine. But programming is so complicated: there's all that MPI_Win_get_errhandler() stuff and includes and asserts and raises and lowers and who the heck knows what else! I am not a programmer, darn it!
Right. You aren't a C++ programmer (neither am I). You aren't a Perl programmer (not yet anyway). And maybe right now you aren't even a shell script programmer - though if you have done anything with Unix or Linux you have probably at least come very close to being a shell scripter..
But you should be a programmer. No, not necessarily a C++ or Java or even Perl or Python programmer. I'm not even suggesting that you need to learn the ins and outs of "awk". In fact, I'm only suggesting that you learn just a little bit of command line shell programming - just a teeny little bit.
Why? Because it will improve your computer life. You'll be able to do more, do it more quickly. You'll get more done, you'll get it done sooner, life will be good. It really isn't hard. Honest.
At Bash looping, I cover the basics of Bash looping. If you are using Mac OS X, you can open up "Terminal" and play with some of that. If you are on Linux, open up a command window, an Xterm or hold down Ctrl-Alt-F1 to get a console login. Learn how loops work - just that much. You might actually have one of those "Aha!" moments (Aha! I could use a loop like this to do..). If you don't see the use immediately, don't worry: you will. There will come a time where you want to do the same thing to a specific set of files, or when you want to do a series of things to one or more files, and you'll realize "This is a loop! I can do this in a loop!". You'll write your loop, the job will be done in a flash, and..
You'll be a programmer.
Yeah, maybe still not a C++ programmer, but you are on your way. Once you've learned looping and testing (the "if-then" stuff), everything else is just details. Most of the "complicated" stuff in programming languages is actually there to make things easier for you: to help you use other people's code, to help you reuse your own code, to keep you from making mistakes, to let you do incredibly powerful things with short sentences. So, yes, it may take a little effort to learn, but the payoff will be large.
But even if you never get that far, it's still good to have learned a little bit. A little shell looping, a little "if-then", a little "grep" maybe - little stuff like that can actually take you a long way. You can start by reading a few of these Shell articles, and Ellie Quigley's "Linux Shells by Example" is very good also (and not just for Linux people - Mac owners have bash and tcsh and really any other shell they want).
Go ahead. Learn a little. Be a programmer.
See Master of All also.
Got something to add? Send me email.
More Articles by Anthony Lawrence © 2011-05-05 Anthony Lawrence
The difference between theory and practice is that in theory, there is no difference between theory and practice. (Richard Moore)