top | item 22623343

(no title)

jee1shi | 6 years ago

What's the difference between a software engineer and "just" a programmer?

discuss

order

SeanAppleby|6 years ago

IMO engineer implies the same direction of thing it implies anywhere else: a deep understanding of the fundamentals of what you're building, an ability to rigorously model and optimize for the key aspects of your problem space and turn them into a solid design that meets them (whether that's performance, scaleability, reliability, latency, throughput, memory use, etc)

Programmer moreso implies just making things work, like a carpenter, by putting together something good enough using existing tools, possibly constrained by the tools available to you, in my opinion.

That said, everyone's understanding breaks down at some level of abstraction, so it's a spectrum, and you can be plenty productive and useful operating at a high level of abstraction.

DeathArrow|6 years ago

At university I've studied Computer Science, that's what is written on my diploma and I consider myself a computer scientist even if I do lots of engineering and programming.

And it's not because of the diploma but because I am highly interested in the fundamentals of computer science, formal languages, automas, formal semantics, algebra, algorithms, data structures, coding theory, game theory, symbolic computation, graph theory.

But that doesn't make me an efficient coder since all that is required is to know a particular framework and programming language well and have lots of experience with it.

So, while I can understand the theory better, there will be many people coding faster and better than me.

I do however have the advantage of being able to pick up and learn stuff fast. Since I like to learn about new thinks I've also fiddled with lots of tech stacks and while I didn't mastered them, I've picked up enough to know what might be the best tool for a particular job.

So, beside stuff I use currently and which I am at a decent level, I am more of a jack of all trades. I don't know if anyone ever needs a jack of all trades at a company since everybody seems to be hiring highly specialized staff.

But I think my skill set might be of value when I'll be starting my own business.

morenoh149|6 years ago

To me software engineer means being able to translate business requirements into working solutions. That would be programmer by your definition. But I think it takes more than coding to do this well. Agile prescribes a conversation between the customer and the implementor.

dionidium|6 years ago

In reality? It's totally nebulous, the terms aren't standardized, the distinctions aren't agreed upon, and people use these words -- developer, engineer, programmer -- interchangeably and/or inconsistently. You can't actually tell anything about someone by which term they use.

But in practice, as you'll see in this thread, some people have very strong (and totally arbitrary) opinions about those words, for reasons I cannot fathom. Knowing this exists is important, I guess, because some people will (maybe silently) judge you for using the wrong one in the wrong context, and you should at least be aware that can happen.

_bxg1|6 years ago

Lately "software engineer" feels a bit pretentious to me, with all the articles about how we're co-opting the word "engineer". I've started using the word "programmer" just to avoid the pretention and because it has a nice old-school ring to it.

I kind of doubt employers read it as such a technical term that it would factor into the hiring process.

arvinsim|6 years ago

Engineer seems too pretentious. Programmer seems....low trade?

If so, why not just use developer?

kojeovo|6 years ago

My HR friends say it matters to some. That engineer looks better

moltar|6 years ago

The same as brick layer vs architect.

proc0|6 years ago

It involves solving and creating "engines", i.e. an app framework, a development platform, a game engine.