Differences Between Software Engineering and Programming
Find out what makes the two professions different
Difference Between SE and Developer
A Reality Check
Software Engineers and Developer are two entirely different animals. They think differently, they behave differently, and most importantly of all, they code differently. Many people get the two confused, and that makes sense if you don't know very much about computers and software engineering. Of course, there is some overlap, but they should be differentiated.
If you're trying to decide what kind of technological career you want, you may be considering the question that often comes up "should I be an engineer?" And with good reason! When people think "engineer" their mind nearly automatically goes to a building engineer, because their work is physically tangible. However, software engineering is usually more abstract, unless you are doing front-end work. Neither a programmer, nor a software engineer gets into the field for their work to be seen, more often than not they prefer to remain in the background, away from people and in a dark room with a snack of their choice.
Software Engineer's Strengths
A software engineer codes things that require academic rigor. Such tasks include, but are not limited to, algorithm design, math-heavy programming, or programming that requires O notation, and worst of all, data structures. These are things only learned inside a classroom. Or, you may learn them in an online class program as well, but these are mainly tools that have to be taught in a more formal academic setting. Software engineers are good at problems that require "rigor." Most programmers wouldn’t know how to solve those types of problems. Programming is so much more than algorithms, data structures, and O notation. Software engineers exceed in scenarios where there is structure, while programmers generally do not. That can often get in their way of producing code, the thing they were hired to do in the first place. It’s a little ironic, and always seems funny to most programmers. The relationship between programmers and software engineers is pretty comical sometimes.
Beyond that, software engineers are good at writing the technical documentation that accompanies a codebase. It is in their nature to document everything, again from their rigorous academic training. Software engineers care deeply about their title and status in an organization, programmers do not at all. There are many more differences between the two groups, but those are the major highlights. However, they both write code, both go to meetings they don't want to, and deal with things they would rather not. However, both groups just grin and bear that fact.
Now a programmer is good at many things, some of these strengths include problem solving, thinking on your feet, and the tenacity to get the job done no matter what kind of code you have to write. Programmers are an interesting bunch. They are always learning something new, or trying to fix something old. Never are they in a state of contentment. Just doesn't happen. The best programmers in the world are the ones that actively look for problems to solve, because it is fun for them. Software engineers are handed them, they don't go looking for them.
Many programmers thrive on the challenge of being able to do something others considered impossible, it is their very nature to prove themselves to others. Programmers love a good uphill battle that requires 12-16 hour days. Software engineers prefer to take it easy and just roll with it. Above all else, if anything, programmers don't mind being called developers as well. However, if you call a SE a developer or programmer, they quickly correct you. Programmers do not care about title or rank.