8 Ways to Explain Software Development to Non-Programmers

I’ve recently been to a lot of parties with a lot of people who do things not at all related to software development and our conversations go a lot like this:

THEM: What do you do?

ME: I work for a consulting company doing software development!

THEM: 

Instead of stammering and saying, “uh, it has to do with computers,” I tell them that software development is a little bit like…

8. Writing an Essay

I’m in front of a computer all day typing at a keyboard. If my periods and semi-colons are in the wrong places then nothing will work. I absolutely understand the importance of the difference between curly brackets { } and square ones [ ], and quite honestly I probably use the ampersand more than anyone else outside of my career. There are particular style guidelines to follow and a well written piece of code is like a well written essay – a glorious, glorious experience. Other days it’s more of a struggle.

7. It’s basically philosophy

“I think therefore I am.”

Descartes would have been an amazing programmer. Programming is all about logic, and in fact, it doesn’t work without it. I look at the information I have available to me and figure out what I can do with that. I can’t pull data out of nowhere, I can’t just write down stuff because it, “sounds,” good, I need cold hard logic to determine what will or won’t work… but.. every programmer has a different idea of what logic should look like… and sometimes we throw in the towel and just use something even if we don’t quite know how or why it works.

6. It’s like being a professional chef

There are a million different languages, frameworks, and technologies to learn and use and try to fit them together, and I’m supposed to do it well. Did you know that cheese and jam actually go together well? I didn’t! Did you have to wait thirty minutes to see if you’ll actually re-use this recipe? I’ve absolutely been there. Sometimes there are recipes for the things I do and I just have to put all the ingredients together, and sometimes I’m trying to make creme brûlée from scratch without an oven. Everyone knows how to make chocolate chip cookies, but no one uses exactly the same recipe.

5.  Sometimes it’s like being a CEO

Programmers are notorious for our not-so-spectacular people skills, but that doesn’t mean we’re bad at communication. In fact, we have to communicate effectively in order to get anything done… just… with a computer. There are a hundred different pieces to manage and if I don’t say the right thing, the program won’t have any idea what it’s supposed to do. I might think I’m saying the right thing, but if the computer disagrees, then I have to find a different way to say it to get what I want. Also, if I leave it alone for an hour it’ll probably self-destruct.

4. It’s like learning a foreign language… or eight

I’m fluent in Java, Javascript, Python, R, HTML, XML, Scala, and a handful of other languages. Never heard of most of those before? It’s because I speak computer. Depending on what family they’re in you can do similar things with every language, but certain languages are better suited for some things than others. French is better for romance and CSS is better for making webpages look aesthetically pleasing. Even though a lot of the languages are similar, there’s still a huge learning curve trying to figure out what the syntax (and grammar) of a particular language is.

Also, the people around me are constantly using words I don’t know but feel like I should… Angular? Full stack? Jira? Grunt? Gulp? Jenkins? Help.

3. Like math, there are always more problems

There are very few days when I can leave my job and say, “I have nothing more to do today.” Every day I have problems to solve, and every time I have a problem it’s probably because of something I don’t know – whether I don’t know the syntax well enough, if the logic has escaped me, or maybe I just wrote something haphazardly and forgot about it. The moments of success are buried in hours and hours of frustration and the only person I can blame most of the time is myself.

2. I’m an artist

Every day I go into work and I create something from nothing. I turn little pulses of electricity into flashes of color. I use my mind to produce things which can be seen, and used, and appreciated, by hundreds or thousands (or millions) of human beings all across the globe. I can make a geo-map of human rights violations and make people feel things about the world. I can make a chat system that’ll let a husband and wife communicate across continents. Programming is so much more than typing words on a computer screen.

1. It’s an addiction

My job is 9 to 5 but when it comes time to leave the office my brain doesn’t stop working. If I have a problem I’m working on there’s nothing that can stop me from thinking about it. Take me to dinner and I’ll be writing logic statement diagrams on the napkin; you’ll find me working in a coffee shop on a Sunday at eight in the morning just because I want to.

It’s stressful, but you can’t keep me away from it.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s