Jump to content
  • Advertisement
Sign in to follow this  
Nicholas Kong

Difference between software engineer and programmer

This topic is 2012 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

This description on the Internet makes it sound like the engineer play more of a Designer and the programmer plays the role of the Implementer.

 

Computer programmers write code to create software programs. They turn the program designs created by software developers and engineers into instructions that a computer can follow.

 

Share this post


Link to post
Share on other sites
Advertisement

(the senior programmers were better architects than the "architect")...

 

when you say than the "architect" are you referring to an architect that has a background in architecture? when you say "better architects" are you referring to a software architect?  So is it because their college degrees are different?

Edited by warnexus

Share this post


Link to post
Share on other sites

It means software architecture.

I'll try to answer it with a different direction.


There are people who generate code. That is a programmer. It doesn't necessarily take a lot of skill or talent, so it is very broad and inclusive.

There are people who generate systems. These are generally software engineers. Such a system can include code, but it also can include more complex features, such as being easily reused and extended, or being able to handle interdependencies in useful ways. For example, a software engineer might be responsible for a networking component in a single game.

There are people who build systems of systems. These are generally senior software engineers, software architects, or principle programmers. The things they build are more than a single system, they build an ecosystem of many different things going on at the same time. They are generally the leaders on the team who know how all the systems work together.

Is there a CS course or a book tailored to be able to build systems of systems? When you say things going on at the same time, are you referring to concurrency? Or is building systems largely a skill? The closest I have to building a system is for a hobby game project that has a simple health system that is scale able with the character maximum life value and a simple inventory that contained one item along with it in a arcade shooter game

Share this post


Link to post
Share on other sites

The "system" isnt just the software. The system might include aspects of the environment where the software works. Say, If you have a software for managing a depot, your system might not only be the piece of software you have to develop, but also the bigger system, the entire depot, who might depend on other systems, say, administrative sector, maybe there is another piece of software for sales that needs to interact with the depot's software, or even maybe a non-software part, like the dudes who work in there and do specific tasks that the depot system has to control.

 

A part of Software Engineering is system's engineering and system analysis. Which deals with how to tackle these kind of things. There is also project management, like deciding on what development technique fits best with the software you have to develop, do you need a non-functional prototype working in two weeks to get the client's feedback on it? Or you can present it on a few months with some functional parts already implemented? How many people you got? Have they worked on a similar project before? If its the case, can you reuse some of that code on this project? Does the client has the hardware needed to run the software you're developing? And a big etc.

 

Its a big topic, and entire degrees based around it, and all of them can teach it from different perspectives.

Share this post


Link to post
Share on other sites

I wouldn't pay too much attention Dijistra quote :D It's an example of the quarrels that go between scientists and engineers (also engineers vs artists).

 

Its your typical "Well, with only fancy theory you won't build the stuff we're building!" and then "But without the "fancy theory" you wouldn't have stuff to build!" Or on more simpler terms, the "practical stuff vs theoretical stuff" debate.

 

Its a bunch of nonsense really. They're all high up in their clouds looking down their noses...

Share this post


Link to post
Share on other sites

I remember reading a whole youtube page full of comments arguing if the Linux Kernel IS the OS or simply a part of it. 

 

I agree with TheChubu, those two words are so related, they are almost interchangable. They add nothing to any conversation, calling a Programmer a Software Engineer makes no difference whatsoever. Better yet, the usage of the words tend to change with time and culture. In my Region for example, you tend to call Programmers with a Bachelor/Master in Computer Science a Software Engineer.

 

IMO there are better ways to waste your time than with irrelevant word definitions.

Share this post


Link to post
Share on other sites

Is there a CS course or a book tailored to be able to build systems of systems? When you say things going on at the same time, are you referring to concurrency? Or is building systems largely a skill? The closest I have to building a system is for a hobby game project that has a simple health system that is scale able with the character maximum life value and a simple inventory that contained one item along with it in a arcade shooter game

There are some books dedicated to working with systems, but the skill is developed by many years of experience. It is also a trait, some people just happen to be really good at understanding and improving complex systems.

In a sufficiently large group of programmers, there are some who are 'go-to' people that everyone asks for help when something goes wrong. It doesn't matter if it goes wrong in networking, graphics, audio, UI, AI, resource management, concurrency, or anywhere else; people still say "Hey Bob, could you help with this?" These are the ones who tend to know how every system works and how they all work together.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!