Reverse engineer. Blogger.

Justin Kan about his first experience using programming on the job:

A couple more hours of applied effort and I had a macro that looped through all the images in a directory tree and laid them out in Excel. I spent the next four days surfing the web and handing out files.

The first time I did any programming it was more than likely a “Hello World” script in ASP. However, I do remember doing something very similar to what Kan did to automate a process which a fellow employee spent hours a day doing.

I worked for a brokerage and each and every day a fellow employee had to take about 100 stock ticker symbols and run reports on them and input that data into an Excel spreadsheet. This was circa 2000. This went on for nearly a year before I caught wind of what they were doing. On a break or at lunch I was talking to this person and they explained to me what they did nearly every morning for two hours. I was astounded.

When I got back to my desk I fired up my code editor (EditPlus I believe) and in about an hour I had built a very simple PHP script to pull the relevant information for all 100 stock tickers using Yahoo! Finance’s CSV creator. Then a simple Excel macro formatted the data the way that this person had been doing. In all it took the script and macro about 45 seconds to run and create an email with the new data as an attachment.

It wasn’t long after I shared this workflow with my boss that the person that had been doing that job needed to figure out something else to do or they’d probably be of little use to the company. Whoops. Not my intention.

Another co-worker and friend at the time bought me a sticker from Thinkgeek and stuck it to the side of my computer. It read “Go away or I’ll replace you with a very small Shell script.” (Now available in T-shirt form.)

There has been a lot of hoopla lately about the fact that people believe that everyone should learn to code. Some are taking that quite literally to mean that everyone should learn how to build applications or websites. I don’t take it that way. I think everyone should learn the “languages” that their applications speak so that they too can take advantage of working smarter rather than harder. If you are tasked with using Excel all day become the very best at it you can be. And that means being able to program macros. If you are asked to use multiple applications on a Mac learn how to use Services or Automator to do some of yourreoccurringtasks for you.

This type of programming won’t put you out of the job. It will free you up to get more work done. To use your time to do other things rather than the same thing every single day. If you do the same task more than once a week you should seriously consider learning how to automate it.