July 13, 2016
I’ve been developing software and programming computers since high-school, and never even knew I was doing it. I never even knew what it was called when I modified a python or xml file. Then I became a script kiddie in college, pounding away at a keyboard learning programming through visual basic.
By the time I left college, I thought I was all-that; hot-to-trot. I did a decent job as a programmer, always creative and pulling together unpredictable solutions to problems. I would sit down and learn a new language for a 3-month project then go on to the next thing. I built games and simple programs for myself, aspiring for the day that I could call myself a “software developer.” Then I wanted to jump from that to being a “software engineer.”
These bold dreams had another addition when I found out that some people call themselves “software architects.” Then it began to click for me and I began to categorize these different roles I’ve heard about. I made a hierarchy with a software-architect on the top and a noob on the bottom.
When I hear “software architect,” I think “the genius that knows exactly what to code and how to code it.” I’ve had the pleasure of meeting some people who could fit that role. 3-months’ worth of work from your average programmer can be imagined, created, and finished in 3 hours by a software architect. They’re similar in role to the producer on a musical album or the director in a movie. They make everything balance perfectly. They’re the best of the best to me.
After a software architect comes the software engineer. The engineer is like an audio engineer, a brain that knows as much as a software architect but no idea how to use it. They are simply people who can do anything and everything as long as they are given a direction. They do what the boss says and can write and debug the code in an instant. They only lack the heightened responsibilities that a software architect holds.
After the engineer comes the developer. The software developer is your run-of-the-mills person that knows how to code and is proficient enough with it to make a decent living. They take longer to get work done but work out great in teams. They help with workload-balancing and can be self-sufficient for all but the biggest problems. They are what the bulk of the computer programming world is composed of. There’s a reason why most programming teams are called development teams.
After the developer are less-eloquent forms of the developer. These are script-kiddies, noobs, and the computer-illiterate. The script-kiddie is someone who knows python, java, or html and flaunts some cool app they made to their friends. The only problem is that the app was copied from a book, stack overflow, or based off of concepts rather than practice. The noob is just starting out because they are comfortable enough with how a computer works to learn more. The computer-illiterate is what I was until I had to use a computer in high school.I’ve been a script-kiddie until recently, after my first full-on development internship. I’ve learned that I know very little despite how much I’ve acquired. Many times people will have over 15-17 years of experience and be the software architect. Others will not. Part is based on innate talent, the rest is based on the hard work you put in to be able to claim that title. In the world of computers, it’s easy to tell when you sit down at an IDE or terminal.