“Engineers don’t have deadlines”, or so I overheard this morning while waiting for my breakfast bagel next door to the GoKart Labs office. There was a small group of young adults, probably college students in their final year, standing around and talking while they waited for their coffee. Not having much else to do while I waited for my morning treat I couldn’t help but overhear the inaccuracies of what they thought an engineer (and from the sounds of it, a software engineer) does for a job.
“Yea man, all engineers code in C, because that’s what apps are written in these days.”
I’ll say it’s close in that a good amount of desktop applications are written in C, but it’s far from “all engineers”. iOS apps are written in Objective-C, which IS a superset of C (making it fully compatible with straight C code), but Android and Blackberry apps are both written in Java. Web apps are written in a myriad of languages including Ruby, Python, and PHP. Database engineers might spend days at a time simply writing SQL queries.
“If you work as a scientist or engineer, it’s great because you never have deadlines.”
…..what? Are you crazy? Maybe you’ve confused “research assistant” with “engineer”, but even then you still have some form of deadlines to adhere to. App developers have tons of deadlines, whether they be self-imposed or demanded by a client, coding needs to get done by certain dates. True, I have a number of projects that have no deadline assigned to them, but those are the projects that aren’t making me money right now. If someone is paying you to work on a project for them, there will most definitely be a deadline. We don’t just sit around our computers just working at whatever pace we desire. Well, maybe when it’s a weekend project…
“You’ll get paid tons of money to just work in a factory programming machines!”
Yea, you might, but not everyone does. Some people do get paid great amounts to code manufacturing machinery, while others don’t, and location is a surprisingly large contributor to that. Also, generalizing that engineers get paid a lot of money is like saying all lawyers get paid a ton of money. As with any field, not everyone succeeds. Personally I enjoy heading over to Salary.com to see what other people in my industry are worth, and seeing how I compare. I’ve fallen in the bottom 10% before, and I’ve been in the top 25%, because like economics tells us, your pay will correlate to supply and demand. If there is a greater demand for your skill, and the supply is low, you can demand more for your salary. That applies to all jobs though, and not just engineering.
I think some people fail to grasp how HARD programming is. I’ve had a few non-tech friends tell me they want to program a video game, yet they have no prior experience in programming of any kind. Now I don’t mean to discourage those individuals (shoot for your dreams!!), but many of them really underestimate how complex computers really are. Everything in a computer breaks down to 1′s and 0′s. For example, in order for your monitor to display a single red pixel, your videocard must send it the color red. In “computer talk” (binary), that is
11000100 00100010 00010110. That’s just to display a single dot of color on your screen. Yes, most code libraries will handle this sort of action for you, I only bring it up to point out that there is a lot more to programming than just sitting at a keyboard and typing out something you think will work. Just take a look at the following bit of code:
Does that look complex? To me, not really, but I wrote it, so it all makes sense. And all that does is merge two arrays of calendar events. Programming things like games involves thousands upon thousands of lines of code and require much more physics calculations (yay math!).
Still, I love my job. I love being a software engineer, and it’s nothing I would ever want to change. Yes I have deadlines, but sometimes I find that a little pressure forces me to get creative with my code, and in turn produces some very interesting results. I love the environment I work in, the technologies I get to work with, and the people I get to work alongside.
If you’re a software engineer/programmer/developer in the Twin Cities area (or are willing to relocate) and looking for a job, check out the positions we have open here at GoKart. We’re always looking for talented individuals!