U.S. CitiesCity-Data Forum Index
Go Back   City-Data Forum > General Forums > Science and Technology > Computers
 [Register]
Please register to participate in our discussions with 2 million other members - it's free and quick! Some forums can only be seen by registered members. After you create your account, you'll be able to customize options and access all our 15,000 new posts/day with fewer ads.
View detailed profile (Advanced) or search
site with Google Custom Search

Search Forums  (Advanced)
 
 
Old 09-26-2010, 05:09 PM
 
Location: Uncharted island
327 posts, read 939,546 times
Reputation: 405

Advertisements

What's the difference between computer programming and software engineering?

I thought for the longest time they were the same until my brother looked at me weird when i told him (although he doesn't know any better, only that they're not the same...big whoop)

My guess is that computer programming involves understanding things like C++, Java, Python, etc. No idea still what software engineers are or how they differ
Quick reply to this message

 
Old 09-26-2010, 05:51 PM
 
713 posts, read 3,172,318 times
Reputation: 546
Computer Programming is programming compilers and software at the computer level, example would be creating a ROM chip for the motherboard and bios since data of that kind is programmed at the computer level. Software programming uses pre-made compilers such as C++, JAVA, Perl, ext to write code to sell. Like making an OS would be software programming while programming a blank ROM chip you bought would be computer programming.
Quick reply to this message
 
Old 09-26-2010, 05:57 PM
 
Location: Union County
5,814 posts, read 8,542,119 times
Reputation: 4918
Computer programming - Wikipedia, the free encyclopedia

Software engineering - Wikipedia, the free encyclopedia
Quick reply to this message
 
Old 09-26-2010, 08:58 PM
 
Location: Uncharted island
327 posts, read 939,546 times
Reputation: 405
Quote:
Originally Posted by rgomez912 View Post
Computer Programming is programming compilers and software at the computer level, example would be creating a ROM chip for the motherboard and bios since data of that kind is programmed at the computer level. Software programming uses pre-made compilers such as C++, JAVA, Perl, ext to write code to sell. Like making an OS would be software programming while programming a blank ROM chip you bought would be computer programming.
ok, that makes sense, but i pulled this off of wikipedia's Computer Programming section:

"Computer programmers are those who write computer software."

so does that mean there is a difference between "computer software" engineers and just ordinary "software" engineers? i think this is what you meant by "at the computer level" but I'm still unclear what you mean exactly.

i understand that software programming is like writing code for a program (like Microsoft Word) to sell. Then what's an example of computer programming?
Quick reply to this message
 
Old 09-26-2010, 09:03 PM
 
Location: Las Flores, Orange County, CA
26,345 posts, read 83,917,082 times
Reputation: 17566
Software engineers get all the chicks.

Quick reply to this message
 
Old 09-26-2010, 09:25 PM
 
Location: Mableton, GA USA (NW Atlanta suburb, 4 miles OTP)
11,319 posts, read 22,738,087 times
Reputation: 3895
Quote:
Originally Posted by RobinsonCrusoe View Post
What's the difference between computer programming and software engineering?
When I started in the 70's, there wasn't anything called "Software Engineering" that I was aware of, but there were a few informal categories of "computer programmers" that were generally recognized:

Systems Programmers write compilers, operating systems, network stacks, and other similar low level things, and are generally focused on creating and maintaining the low-level tools that other programmers use. This involves a lot of "assembly language" programming in some cases, though not in others (many companies have developed their own high-level languages for OS development over the years, and some operating systems like UNIX or Linux have always been largely written in a language like C).

Application programmers write word processors, paint programs, and other bits of software for public consumption, with some of it available as shrinkwrapped software, Free and Open Source Software, or shareware, as well the thousands of different custom software programs found inside businesses. Banks, airlines, insurance companies, stick exchanges, manufacturing companies, government agencies, large retail companies, and other similar large entities still have a LOT of custom software that was built either specifically for them, or built specifically for their general type of business.

MIS or Database programmers focus on the problems and issues that centered around the creating, tuning, and maintenance of very large databases. Designing an efficient relational database requires knowledge which I do not possess even though I've been playing with software in various forms for over 30 years.

Game programmers tend to specialize on graphics-intensive stuff like games, gaming engines, artificial intelligence, and similar things.

Device programmers work on all sorts of things involving code that gets implemented as firmware in electronic devices. Some of these devices have very lengthy testing and certifications periods and can be quite sopisticated, and this stuff ranges from weapons targetting systems and aircraft avionics to the software that runs elevators and traffic lights.

When I was obtaining my Bachelor of Computer Science degree in the early and mid 80's, we had the choice of focusing in one of the first three areas, but there were also various classes focusing on the other areas.

I chose Systems Programming for my focus, and learned some basic stuff about language grammars and OS and compiler design, but I ended up working as an applications programmer for the past 22 years. It's been fun, though. I currently work with a mix of Fortran, C, C++, Perl, bash scripting, CALL scripting, Java, and PHP depending on context, but I've also dabbled in mainframe assembler on occasion over the years, written a simple precompiler for an older Fortran compiler to help optimize symbol table usage, etc.

Disclaimer: the terms above are ones I'm pulling out of thin air, and while some like "systems programmer" and "applications programmer" are widely recognized, there might be better terms for some of them, and there are probably entire categories I'm not thinking of.
Quick reply to this message
 
Old 09-27-2010, 10:44 AM
 
Location: USA
701 posts, read 994,092 times
Reputation: 651
what rcsteiner said.

I have a similar background. But went from PC programming to mainframe programming. The experience has been very rewarding.

Personally, I still prefer "computer programmer" myself. At work, I'm the "dinosaur", surrounded by "software engineers", "software architects", "application developers", etc .... they're a dime a dozen here. They build all the nice screens, interfaces and links. But our 10-to-15 year old "legacy" programs still run at the core of the business, executing millions of transactions every night. There are actually some assembler and cobol code still running that are older than some of these kids coming to work.

Hardly anyone can read a memory dump. I admit, I've lost a step at reading dumps, but I still know enough to trace through it to find the offending instruction.

Charles, is that IBM or Compaq AT computer and a dot matrix printer? Yep, that will drive the chicks wild!
Quick reply to this message
 
Old 09-27-2010, 04:29 PM
 
13,072 posts, read 11,577,126 times
Reputation: 2608
From my experience and understanding, a programmer is someone who is simply an interpreter to whatever device they are working with. They may or may not apply strict structure and format in their function. Their focus is more on the element of implementation rather than design. I tend to think of them similar to a construction worker or sub contractor. They may do some pre-planning in their implementation, but they are often more focused on implementation.

Software engineers tend to focus on the design and planning aspect of development. They apply theory of their subject to better account for future occurrences such as scalability to meet changes and demands of the client. They focus on documentation, optimization, etc... and evaluate important technology shifts and enhancements for future compatibility and growth. Just as the programmer is a construction worker or sub contractor, the engineer is more of an architect or structural engineer. That is, they design and develop and then work with the programmers to implement operate and optimize those designs.

In the past, and depending on the shop, these roles will be segregated or one and the same. In the past, these concerns were the concern of the programmer, but as programming has expanded and became more complex both in the tools and technologies that exist, these duties will often be split up to insure that adequate time is spent to achieve a viable product.
Quick reply to this message
 
Old 09-27-2010, 05:06 PM
 
Location: Itinerant
6,795 posts, read 4,379,314 times
Reputation: 5109
IMHO based on many years as a software engineer...

Programmers:- Code Monkeys, can write incredibly obfuscated code that is unmaintainable, occasionally have flashes of brilliance that reduce a function from O(n) to O(Log n). Anyone who is familiar with 1970's Cobol applications knows exactly what I'm talking about. Will take a requirements document and sit down and code it up. This often results in a failed product.

Software Engineers:- Can write code, and design software so that it is maintainable. Focusing on maintainability, data abstraction, external dependencies and code reuse. Will take a requirements document and spend 6 months developing a UML diagram to describe the information flow through the system, then spend another 6 months implementing, and then be delayed for another 3 months while external dependencies get their act together. This will result in a product that is at least 12 months behind schedule, and have all priority 2 and below features cut. This often results in a failed product.
Quick reply to this message
 
Old 09-27-2010, 08:42 PM
 
13,072 posts, read 11,577,126 times
Reputation: 2608
Quote:
Originally Posted by Gungnir View Post
IMHO based on many years as a software engineer...

Programmers:- Code Monkeys, can write incredibly obfuscated code that is unmaintainable, occasionally have flashes of brilliance that reduce a function from O(n) to O(Log n). Anyone who is familiar with 1970's Cobol applications knows exactly what I'm talking about. Will take a requirements document and sit down and code it up. This often results in a failed product.

Software Engineers:- Can write code, and design software so that it is maintainable. Focusing on maintainability, data abstraction, external dependencies and code reuse. Will take a requirements document and spend 6 months developing a UML diagram to describe the information flow through the system, then spend another 6 months implementing, and then be delayed for another 3 months while external dependencies get their act together. This will result in a product that is at least 12 months behind schedule, and have all priority 2 and below features cut. This often results in a failed product.
*chuckle*

All too true.

One is "code from the hip" and the other falls victim to design paralysis.
Quick reply to this message
Please register to post and access all features of our very popular forum. It is free and quick. Over $68,000 in prizes has already been given out to active posters on our forum. Additional giveaways are planned.

Detailed information about all U.S. cities, counties, and zip codes on our site: City-data.com.


 
Please update this thread with any new information or opinions. This open thread is still read by thousands of people, so we encourage all additional points of view.

Quick Reply
Message:
Over $104,000 in prizes was already given out to active posters on our forum and additional giveaways are planned!

Go Back   City-Data Forum > General Forums > Science and Technology > Computers
Similar Threads
Follow City-Data.com founder on our Forum or

All times are GMT -6.

© 2005-2019, Advameg, Inc. · Please obey Forum Rules · Terms of Use and Privacy Policy · Bug Bounty

City-Data.com - Archive 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 - Top