sneakyvfxButton

The Secret to Life is Programming

(This post created for and first appeared on Samantha Gay’s blog, February 21, 2015.)

source code sneaky vfx

Twenty years ago I was depressed, confused, and out of ideas. Then I discovered programming.

I’m not sure how it started. It helped that the family had a Tandy TRS-80 at one point, and I ran into BASIC and Oregon Trail at school, so a flashing green cursor was never something to fear. But it wasn’t until my second try at college–after flunking out of a fine art program, getting treatment for depression, and realizing my total lack of real-world problem solving skills–that I was desperate enough to pursue the one degree guaranteed to get me employed and out of the house: computer science.

I can’t recommend this strongly enough.

No, I don’t remember the Internet protocol diagram. No, I haven’t written an Access database since 1998. But the thing that stuck was realizing anything you can do on a computer, you can automate.

Need fifty images exported as thumbnails? Automate that.

Want to port a website’s old forum to a new format? Automate that.

Want to find your insurance company’s best-rated primary care provider across four different ratings websites? Automate that.

Some people encounter programming and think, “Oh, no, I’m no good at math.” First, math takes practice, but anyone who practices can be as secure in math as I am in high heels: embarrassing but functional. Second, programming is not math. It’s logic. It’s sudoku. It’s a series of trivia questions you’re allowed to Google.

brain stimulation sneaky vfx

And anyone with interest and Internet can learn. Long-term success comes from research and habits. To do what I do you don’t even need a degree; it’s been handy for me to have one on my resume, but the older I get the less meaningful it is.

Through all my life’s subsequent mistakes, panics, stupidities, and do-overs, programming has been my saving employable grace. When I ended up in Los Angeles in 2008 (a move Sam Gay assisted) with a scheme to be an art director or storyboard artist or anything else that would get me paid, it was my failure to find any of that work that sent me back to the technology listings. Because of programming, I ended up with the best-paying, most flexible, least stressful, least physically demanding, least goes-home-with-you job I’ve ever had.

Working in technology gives me time to create.

I have a healthy freelance career in speculative fiction and illustration. I’m working on the second edition of my Meddling Auntie advice comics for kids, and working on the launch of a web platform for interactive fiction. I hit the gym, see the doctor, and clean the house. I have emergency savings and a retirement fund. I can go to an out-of-town wedding without getting heartburn over the cost.

(I also created Sneaky VFX, a webcomic about converting to the church of code.)

It’s been a really long time since I’ve eaten a potato old enough to take a handprint.

old wrinkled potato

There are other factors, of course, but that’s a subject for another day.

If that sounds like what you want, start searching; I could give you links, but 1) that would look like I was promoting a particular place and 2) Internet searches are 20% of a programming so you might as well practice. If you ever touched HTML, brush up on that. Look into Python. Dip your toe in JavaScript.

There’s never been a better time.

JDI on How to Ask a Good Programming Question

The coworker featured in this comic has written a post about the problem with short questions posted to StackOverflow. It is haughty and good.

For those that are immediately inclined to provide the complete code snippet to solve the problem, where do we draw the line? What if the question being asked would need 10 lines of code? 20? 100? And if you are also interested in frequently helping people, would you be willing to provide 5 lines of complete code to 10 people a day, knowing that each person probably didn’t learn much? Furthermore, after having given this individual a quick answer, you have now rewarded their lazy behavior, and more than likely just encouraged them to repeat the bad habit again.

WriteMyCode.net

That is all.

AndEngine Installation: Lessons from Last Night’s Tweets

Y’all may have noticed from my Twittersplosion that I had a frustrating time trying to install and run the AndEngine examples.

This involved 7 hours, 3 different tutorials (including 2 ones on video!) and at least 10 distinct errors requiring a stop-and-Google. At four in the morning I got the emulator to launch the example but then crash, and I gave up.

To be fair, my process had to include installation and setup of Eclipse, which I didn’t have on my home PC. Maybe a true Android developer would have had Eclipse and ADT all set up in the way it needed to be, and I should not have expected the AndEngine tutorials to address those issues.

Even so, I’m going to step away from AndEngine because this much trouble installing can’t bode well for development. I may come back to it after I try a couple of other things (HTML5! Akihabara!), but I’m really angry and frustrated with it right now.

So here are some takeaway lessons to help give merit to last night’s nonproductivity:

1) Set a limit. This is hard as hell when you keep thinking you’re 20 minutes away from “getting it to work,” when each solution is really 20 minutes until the next error. I understand now how planes full of passengers end up on the tarmac for 8 hours. But, since I wasn’t locked in to AndEngine or even developing for the Android, if I had decided at the beginning I was only going to Google three errors and then cut my losses and try something else, I would have saved myself four hours.

2) Because you have a limit now, treat each error as a separate investigation and UNDERSTAND the problem before adopting a solution. For me, the desire to get past an error and keep moving is overwhelming. I’m probably going to grab the first solution that shows up in Google and works and keep going. Unfortunately there is 90% likelihood it’s going to cause another problem later, and I’m not going to remember the change I made because I didn’t understand it fully in the first place.

This has already happened twice on this project. I managed to screw up my git install while doing a homebrew install. Yeah, that is possible.

3) Document what you’re doing. That way if something breaks later you have something to refer to. Also you have a concrete explanation if you make a decision to use something else, instead of just a fog of fury.

Nowadays half of programming is choosing a toolkit and installing it, so if I take these steps going forward I can save myself a lot of heartache. With this project I’ve gotten to the point where I can get willing to set aside the time to do the research. What I need to do is get willing to set aside the time to do the installation, too.

So I feel a little mellowed out now. But seriously until I successfully install SOMETHING it’s a fragile peace, so don’t provoke me. DON’T PROVOKE ME I SAY.