| MadSci Network: Computer Science |
Bob, you asked, "What is a Software Developer?"
The simple answer is that a software developer is a person who develops software! But that's not very helpful without talking about what "develop" and "software" mean.
By "develop" I mean "create or work on a team to create". Because software is often very complicated there are many, many specialties that fall under the broad term "software developer" each of these specialties helps to create software by doing particular kinds of work. For example, the software developers who invent the overall structure of large pieces of software are called "architects," while those who actually create the code that software is made of are often called "coders" or "programmers". Other kinds of software developers include "high-level designers", "low-level designers," "database designers," "user-interface designers," and "systems integrators". High-level designers use the architecture -- that's what the architects create -- to create the overall structure of the program code. Low-level designers translate the high-level design into small pieces that the coders can actually write. Database designers, define how the data the software uses should be stored and retrieved. User-interface designers define the parts of the software people see when they use the software (the buttons and menus, for example) and the things they do (clicking on things and typing, for example). Systems integrators take several pieces software other people create and put it together to meet some need that none of the pieces alone met. For example, a systems integrator might use financial software, web server software, and several other pieces to build an on-line store.
Sometimes just one or two people do all of the work needed to develop a piece of software. In such cases, they will each need to do several different kinds of software development work to get the job done. It's sort of like building a house. One or two people can build a house, but then each of them needs to do a variety of different kinds of work, plumbing, carpentry, masonry, electrical and the like, to get the job done.
When large pieces of software are being built, people with many specialties come together in a large team to do the job. It's sort of like building a skyscraper. It's not really feasible for one or two people to build a skyscraper. There are too many specialties and too much work!
Let's turn now to what "software" means. By "software" I mean any of the many kinds of program that run on a computer. So software includes not only the "applications" like word processors, spreadsheets, and games, but also "infrastructure" software like operating systems, databases, and web servers. And by "computer" I don't mean just personal computers but also "embedded computers" (like the ones in a microwave oven, a DVD player, the space shuttle, or a traffic light controller) and big "mainframe" and server computers (like the ones that the hotels and airlines use to process reservations or that the Master Card people use to process the credit card charges and get the bills out each month).
So...a "software developer" is someone who develops software, but there are many specialties and many kinds of software. Sometimes software developers work alone or with a few other people, and sometimes they work in big teams. Sometimes you can see the software they build and know it's there (as with a word processor), but many times you can't. A microwave is just an oven, right? Who would guess there's software in there?
Hope this answers your question!
You might also find some of the information at the "webopedia" useful. For example, their definitions of "software engineer," "programmer, " "systems integrators," and "software" ; might be useful to you.
Try the links in the MadSci Library for more information on Computer Science.