Don't they both do pretty much the exact same things?

al salam alaykom

Any answer ..?

I also need to know if there any differences!!!

Thanks

That article is complete nonsense. The terms "software engineer" and "computer programmer" are interchangeable to some people, while others make a distinction and try to categorize people. There is nothing approaching a universal definition.

One doesn't not get a degree in computer programming, there is Computer Science, Software Engineering, Computer Engineering to name a few. Any of these degrees will require at least some programming skills, and an individual with on of these degrees could get a job that is primarily computer programming, but possibly not.
I'm taking Software Engineering I right now, and it focus on the entire software development life cycle (SDLC for short). The major phases include: Planning, Analysis, Design, Implementation/Testing.
Actually programming the system doesn't happen until the Implementation Phase.
I agree with Rashakil, the definition will vary from one context to another. I guess my point is that programming is only one aspect of software construction.

*does not* I kind of negated myself

Ya dude.....As my knowledge there has little bit difference...
Bcz...Computer Programmer mainly consider How to program given structure.
But Software engineer those who mainly consider SDLC.They have ability to enrol each & every part of SDLS....
In the other hand SE's role is more bigger than Com.Programmer's role...
System Engineer role is more bigger & critical than Software engineer's role.

No, they are all just fancy words. My job title was once "Software Engineer" and now it's "Systems Engineer" and there's no difference.

commented: Agreed. +14

Both are same and refer to similar kind of job.

Just a different terminology.

I once worked for a man who said "If you call yourself a software engineer you better have some engineering background". He rejected peoples resumes based on this thought.

I once worked for a man who said "If you call yourself a software engineer you better have some engineering background". He rejected peoples resumes based on this thought.

I see where he is coming from. Engineering has many specific divisions and software engineering is no exception. Engineering courses in general tend to have classes that focus on how to design systems.

I am transferring to Drexel from my local community college and have done research on both the computer science and software engineering programs there, as well as some web research to find out what people are saying about the big comp sci / software eng debate. From what I can tell, software engineering is less about coding and more about design, like a lot of the above posts suggest. It looks like comp sci majors who minor in any engineering program can migrate towards a career in software engineering quite easily, especailly if they work in the programming area for awhile and want to work their way up the software development chain.

Engineers, well, they have some programming experience but usually not as much as a comp sci person. Yet, they design systems that need to be programmed. So, engineers need a little more knowledge of what programming tools are out there but not as much actual experience in coding. It's the same with any engineering job (mechanical, computer, electrical, materials, etc) - know the tools that are out there and design a system that utilizes them, even if someone else has to actually implement the final construction.

For comparison, check out Drexel's comp sci and software eng programs for course differences:
Comp Sci - https://www.cs.drexel.edu/files/amn27/BS-CS%20TermbyTerm(09)_1.pdf
Software Eng - https://www.cs.drexel.edu/static/undergraduate/SE_BS_Curriculum_2006.pdf

You can try this comparison with the school of your choice, of course. But you'll notice more design and engineering courses than programming courses for the software engineering curricula.

Just a thought, I came across a degree know as Wireless Engineering(WE for short). WE splintered of Electrical Engineering as wireless technology began advancing. It has been a very similar process with the computer related fields. Right now there may not be much difference between the various degrees and titles, but in the future there could be a very big differences.
At one point in humanities distant past, one was just an Engineer. There was no specialization, but as technology progressed the need for specialization spawned a host of new types of Engineering.
To get back on target, we have several names that all seem to mean the same thing. I think that at some point in the future these names will be given a formal meaning and have distinct purposes.

Stuff about stuff and such, and ...

For comparison, check out Drexel's comp sci and software eng programs for course differences:
Comp Sci - https://www.cs.drexel.edu/files/amn27/BS-CS%20TermbyTerm(09)_1.pdf
Software Eng - https://www.cs.drexel.edu/static/undergraduate/SE_BS_Curriculum_2006.pdf

Note that your decision about which program to go into should be solely based on which courses you think you'll enjoy more.

Also, it should be noted that good software development teams do not have "designers" and "coders" in separate roles. Everybody designs and everybody codes. One does not get good at designing by designing. One gets good at designing by making programs.

I better stop before I go on a long rant about how every "software engineering" program is completely wrong and that any real software engineering program would be structured completely differently.

Also, it should be noted that good software development teams do not have "designers" and "coders" in separate roles. Everybody designs and everybody codes. One does not get good at designing by designing. One gets good at designing by making programs.

This is probably the very reason I decided to go the computer science route - engineering can always come later as you get better at doing whatever it is that needs to be engineered. :)

There is no "engineering" anyway unless you work on something like flight control systems.

Software engineers may be software designer...he has knowledge programing too..
But as above mention, may be there aren't separate role; May be have!!!
Its depend on company or organization..

Whatever the difference is in the actual programs that are offered at different colleges, I don't think anyone can go wrong picking one degree over the other. Software engineering is only starting to really be defined more explicitly in recent years.

A software engineer uses rigorous, repeatable, provable methods to design and construct software systems. They are capable of building the most complex systems from scratch that will function as designed. The language used should not matter to them.

A computer programmer knows the syntax of one or more computer languages, and is capable of writing programs and functions in them that are clearly specified in advance. Their software architecture skills are likely to be weak, and probably need a considerable amount of oversight.

So, if you tell a civil engineer that you need a bridge across river X that can carry Y amount of traffic across per hour, and has to handle loads up to Z tons at any given moment, they can go away and come back some time later with a design that mathematically will meet the specifications. You then take that design to a bridge building contractor and their workers can build it to those designs and specifications, with the engineer overseeing their work.

If you tell a software engineer that you need an application server that can process X transactions per second, and store/retrieve Y megabits of data per second, handle requests in Z format, and has to provide 6-sigma availability. They can go away and come back some time later with a design that will meet those specifications (class models, finite state machines, work-flow specifications, recovery mechanisms, etc). Those specifications and models can then be given to a team of programmers who can turn it into testable code, with the engineer overseeing their work.

The engineer has to take ultimate responsibility for the resulting product, including issues of safety, reliability, and such. Computer programmers are generally not allowed to become members of professional engineering organizations such as the IEEE. Software engineers are. I speak as a software engineer with 30 years professional experience, 20 years as a member of the IEEE, and chairman of an IEEE consultant's network.

commented: Great Post +1

@rubberman Your analogy has very good points :)
Compared to the traditional engineering fields, you have some one with a BS(or higher) design it but you have a factory worker or construction worker build it.
This is not the case with Software Construction. It takes a BS(or higher) to design it and it takes a BS(maybe an AA on occasion) to build it.

I am about a year away from a BS in Computer Science. I am in Software Engineering I right now, and will have to take the second one as well. Many of the people in my programming classes are Software Engineers. Really the only classes that I don't have in common with my SE classmates are a few of the higher level classes. Do 3-4 classes really make that much of a difference? Its not like I'm allowed to concentrate in basket weaving :)

Now I agree that an engineer would definitely be in charge of a mere programmer. But what colleges of a BS in Computer Programming?(This is a point I brought up earlier in the thread)

This thread got me thinking about what computing actually means. Normally I don't rely on wikipedia but they quoted from Computing Curricula 2005, which was authored by members of IEEE and ACM(Association for Computing Machinery)

In a general way, we can define computing to mean any goal-oriented activity requiring, benefiting from, or creating computers. Thus, computing includes designing and building hardware and software systems for a wide range of purposes...

I will be a scientist of computing. Computing includes designing(i.e. class, sequence, state, communication diagrams/charts) and building(i.e. programming).

Classically your analogy is right and I'm not trying to single you out. Half of my family are engineers(all MEs) so I get looked down upon quite often for not going the ME rout :( so I feel compelled to state my case. And yes my design skills are quite weak right now, but that will be fixed in the coming days :)

@rubberman Your analogy has very good points :)
Compared to the traditional engineering fields, you have some one with a BS(or higher) design it but you have a factory worker or construction worker build it.
This is not the case with Software Construction. It takes a BS(or higher) to design it and it takes a BS(maybe an AA on occasion) to build it.

I am about a year away from a BS in Computer Science. I am in Software Engineering I right now, and will have to take the second one as well. Many of the people in my programming classes are Software Engineers. Really the only classes that I don't have in common with my SE classmates are a few of the higher level classes. Do 3-4 classes really make that much of a difference? Its not like I'm allowed to concentrate in basket weaving :)

Now I agree that an engineer would definitely be in charge of a mere programmer. But what colleges of a BS in Computer Programming?(This is a point I brought up earlier in the thread)

This thread got me thinking about what computing actually means. Normally I don't rely on wikipedia but they quoted from Computing Curricula 2005, which was authored by members of IEEE and ACM(Association for Computing Machinery)

In a general way, we can define computing to mean any goal-oriented activity requiring, benefiting from, or creating computers. Thus, computing includes designing and building hardware and software systems for a wide range of purposes...

I will be a scientist of computing. Computing includes designing(i.e. class, sequence, state, communication diagrams/charts) and building(i.e. programming).

Classically your analogy is right and I'm not trying to single you out. Half of my family are engineers(all MEs) so I get looked down upon quite often for not going the ME rout :( so I feel compelled to state my case. And yes my design skills are quite weak right now, but that will be fixed in the coming days :)

Well, I started out in ME as well... :-) That was back in the dark ages of Fortran IV and mainframes w/ punch cards. School can only get you started. It is the practice of the disciplines you learn in school that make you an engineer, of whatever field you choose. In any case, I wish you well in your chosen endeavors.

rubberman, you make a good analogy. But people who are studying computer science are learning much more than mere programming. It is true that a lot of students that graduate with a computer science degree go on to do simple programming but it doesn't mean they weren't trained in other computer science disciplines. Computer programming is just one little part of the bigger topic of computer science. Computer science programs do include a decent amount of classes that teach about design. And some of them include some basic engineering classes. It is for this reason that I believe that those getting a degree in comp sci can later get promoted into engineering positions, especially if they go on to get a master's in engineering.

rubberman, you make a good analogy. But people who are studying computer science are learning much more than mere programming. It is true that a lot of students that graduate with a computer science degree go on to do simple programming but it doesn't mean they weren't trained in other computer science disciplines. Computer programming is just one little part of the bigger topic of computer science. Computer science programs do include a decent amount of classes that teach about design. And some of them include some basic engineering classes. It is for this reason that I believe that those getting a degree in comp sci can later get promoted into engineering positions, especially if they go on to get a master's in engineering.

As a discipline, CS in my mind is a qualifier to be a software engineer. It would qualify the holder to become a member of the IEEE and the IEEE Computer Society. So, I guess that I wasn't being clear. A person with a BS or MS in computer science is (or should be) more than a simple programmer. In fact, Software Engineering as an engineering discipline is still quite new and, as far as I'm concerned, a work-in-progress as a true engineering discipline, unlike electrical, mechanical, or civil engineering that have clear requirements to meet. In fact, a lot of states will not allow a person to declare themselves a "Software Engineer" as they do not yet recognize software as an engineering discipline. That is slowly changing, but is still the fact of the matter.

Here's what i think.

A software engineer - is a position. A software engineer can be a tester or a programmer.

A programmer - is a role.

Like in our company, my position in my company is a software engineer and my role is a programmer.

rubberman seems to have the basic idea down as I see it, as well, that software engineering as an official, industry recognized "engineering" discipline is still being worked out. Those getting SE degrees right now may or may not benefit from the IEEE but in the near future this should be changing.

You can say that software engineer is a more fancy term for computer programmer though their work is the same.

how you say it?
Computer Programmer & Software engineer is different roles..

That article is complete nonsense. The terms "software engineer" and "computer programmer" are interchangeable to some people, while others make a distinction and try to categorize people. There is nothing approaching a universal definition.

nope there is huge diff. computer programmers are the one who do all the coding they are not involved in any documentation. where as the software engineer is the one who make all the documentation of the project write down use cases, its entity relation diagram and state transition diagram

Simple: The programmer reports to the software engineer. The engineer reports to the computer scientist. Any other questions? Now get back to work!
;)
- Ed.

Software engineer follow the software architecture's guild-lines...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.