Software engineer or software programmer

Is a Software Engineer the Same As a Software Developer?

Is a software engineer the same as a software developer?  It’s an understandable question.  When you’re on the outside looking into the software industry, it can seem like we programmers (software engineers, software developers, etc) have a dizzying array of titles.  And we do.

So what does it all mean?  What’s the difference?  Is “software engineer” just a synonym for “software developer”?

Is a Software Engineer the Same As a Software Developer?

Yes.  Full stop.  These are the same.  Different companies have different title preferences, but the titles describe the same thing: people who write code for a living.  

Sure, being a software developer at one company will always be slightly different than being a software developer at another company.  But that’s true in any line of work.  Similar jobs vary from company to company because the companies are different, not because of the titles.

Now if you look around the internet, you’ll see that there isn’t necessarily a consensus about this question.  You’ve heard my answer, so for the rest of this post, I’m going to elaborate on why I think this is the case by responding to arguments I heard on the contrary.

Continue reading “Is a Software Engineer the Same As a Software Developer?”

Students graduating after obtaining education

What Education Is Needed to Become a Programmer?

If you want to become a lawyer, you go to law school.  If you want to become a doctor, you go to med school.  So if you want to be a programmer, you go to… programming school?  Meaning, you get a computer science degree or two, right?

Well, not so much.  It’s a little more complicated than that.

In this post, we’ll take a detailed look at the paths to becoming a programmer, focusing on what education you need, how much of it, and where to get it.

What Education Is Needed to Become a Programmer?  The Short Answer

The question of programmer education is a relatively complicated one.  But the answer to the question, “what education is needed to become a programmer” is actually kind of simple.

Shortest answer: none.

The second shortest one, long enough not to be flippant is this: unlike many other knowledge work vocations, programming requires no special certification or credentials.  Because of that and because programmers are in such high demand, there are no specific educational requirements.  If you can demonstrate an ability to program, you can get a job as a programmer.

So, as you can see, there’s a short answer, but not necessarily a simple one.

No Specific Education Requirements Doesn’t Mean No Education

If you have no programming background whatsoever, you obviously can’t just wander on down to Apple Headquarters and request a six-figure programming gig.  Incidentally, if you do try this, please record a video of the proceedings on your phone, because I imagine it’ll be pretty amusing.

So some minimum requirements exist.  They have to.

And they do.  It’s just that they’re situational and somewhat objective.  Whereas a medical license is your only (legal) path to being a doctor, a computer science degree is just one path to being a programmer.  Some companies may require it.  Others might not, and instead will hire people with degrees in other things or with a lot of previous work experience.

For the purposes of this post, I’m going to break down the path of a programming career into a few “buckets.”  This might not cover every human being that has ever programmed for a living.  But it will cover most of them, and it’ll give you an idea of your options.

So let’s look at the different paths to professional programming and what education you need.

Continue reading “What Education Is Needed to Become a Programmer?”

Programmers interacting

How Do Programmers Interact With the Rest of the Team?

Today’s question is an interesting one that people outside of the programming world ask me a fair amount.  Loosely speaking, this question is one of how programmers interact with the rest of the team.

But here’s the thing.

That question typically comes to me in the form of many more specific questions:  Should programmers test software?  Or how does project management work with the Dev Team?

So let’s today take these questions in aggregate.  Who are the rest of the folks that programmers interact with?  And how does the division of responsibility work?

What Are These Other Roles?

Before we can really address that, though, we need to take a look at who these folks are.  Software development isn’t just a bunch of programmers in a room.  Let’s see who else is typically involved with software projects, and what they do.

  • Testers—these are people whose role is to run the software and see if it does what it’s supposed to do.
  • Quality assurance—testing generally falls under this broader umbrella, and quality assurance people are more generally responsible for making sure the software product is up to snuff, across the board.
  • Project manager—the project manager typically deals with external stakeholders, keeps track of progress and schedule, removes obstacles from the team, and generally keeps an eye on the prize.
  • Development manager—this is the person in the organization to whom the team reports, otherwise known as the programmers’ boss.
  • Business analyst—this person shares some overlap with the project manager, but is primarily responsible for deciding what customers need the software to do.
  • Operations/support—people in these roles deal with issues related to the running and use of the software, as opposed to the programmers who build it.  (Note that a movement called “DevOps” drives at blending development together with this role.)

Please note here that I’m not getting into specific roles within the software world, which include things like architects, “back-end” developers, “front-end” developers, DBAs, etc.  All of those distinctions are topics for another day.

Today, we’re focused on answering questions related to the (typically) non-programming folks on the team.

Continue reading “How Do Programmers Interact With the Rest of the Team?”