Code Jockey vs Software Engineer

Posted on 2001-06-04
Last Modified: 2010-04-06
My question has many parts, but they all tie into a common theme:

What are the distinctions between:

1)  Software Developer
2)  Software Engineer
3)  Systems Analyst
4)  Programmer
etc. etc. etc.

What are the distinct differences between someone who writes code all day vs someone who designs a software system at a high level?

What I'm getting at is the difference between someone who is a "Techie" vs an "Engineer"  -- a "Techie" can mechanically write the source code, but he is only implementing the design that someone else thought up - that someone else being the "Engineer"

I aspire to be the "Engineer" but I fear that I am really only a "Techie" at this point in my career.

I have 6 years of IT experience.  I am working on a degree, but it is 2 years away.

I know how to program in Delphi, but I feel like I am missing that certain something that would distinguish me from someone who writes code to someone who designs code.

Do I need to think a certain way?  Be a better problem solver?  Look at things differently?


Question by:Tom Knowlton
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 11

Expert Comment

ID: 6155007
Software design means that you can show that you successfully managed to create a working product.
That is yo were able to define what the program should do and that bears resemblance to usefulness :-)

There is only one way to learn that. Do it.
There are many jobs in it which have nothing to do with programming. GUI design, Telling others what to do, keeping a budget, tell the customer politely what he really wants etc etc.
LVL 14

Expert Comment

ID: 6155240
to get a 'feel' of how people design, maintain and manage software, try joining some some opensource projects.

Project JEDI,

Join in, be a part of the team of some projects that are going on... or if you want to be there from the beginning, look out for project postings in SourceForge that are in initial stage and are awaiting further input from other developers.

LVL 11

Expert Comment

ID: 6155321
Thanks DragonSlayer for mentioning Project JEDI :-)

Robert Marquardt
Director of JEDI
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Expert Comment

ID: 6155337
If you want a reasonable read get Code Coplete, its an MS book but prety good. It goes into who should o what in software dev lifecycle and what a coder should realy be doing.

As I see it the differences are

4)  Programmer
Codes and that's it. Someone tells them to write this in this way using this algoithm and it;s their job to do it.

1)  Software Developer
What the programer actualy ends up doing, ie everything. Conceives plan, implelents plan, tests code...

2)  Software Engineer
More andvanced programmer. Knows lots of languages, does tinkering under the bonnet and gets paid lots

3)  Systems Analyst
The person who does the conceiving for the programmer

LVL 17

Expert Comment

ID: 6155374
Hi Tom,
The systems analyst, working with the client, understands his needs and transfers them to a project. The analyst creates three basic specifications:
- functional: which describes what the project will do  (very important here is to mention that this part doesn't tell us how it will be done)
- informational: which describes the information flow (what kind of data the project has for input, how this info will be processed - algorithms, and what will be the results of processing - output data). At this stage takes part the database design (if there is a database at all) and all the manipulations to the database based on the information flow.
- program specification: dividing the project into a set of relatively small modules (pieces of code), everyone with its input, processing algorithm and output (result). These modules are further given to the programmers for practical realisation (coding). Combining already prepared and tested modules together creates a working project.

It is good idea to have interface designer involved to the project too, whos responsibilities include designing of the client interface (forms layout, etc) to produce one style looking product.

Basically, when speaking about a huge project, there is no need programmers to know it in deep, because everyone of them has a piece of program specification to code.

The technology, described above may vary (or be completely different) depending on the project, the quantity (and quality) of the project participants, the boss, the terms etc.

Regards, Geo

Author Comment

by:Tom Knowlton
ID: 6156376

I like your answer best.  Can you go into "Techie" vs "Engineer" a little more in depth?
LVL 17

Accepted Solution

geobul earned 100 total points
ID: 6156970

Well, in my opinion, every one task which has to be completed during the realization of a project, requires at first its own theoretical background (basis). And it is normal - if you  have to do something, you better look how other people do similar things first. It is somethimes called methodology. The basic methodoligies are usually parts of the computer science which is taught at the university, like:
- dividing a job into subjobs, these subjobs into functions which are clear and simple (and basically do only one thing);
- relational databases theory - how, from a given detailed text description of a problem, to define objects (tables), their attributes (fields), relations between the objects, etc.;
- levels of user interface (from one single empty box with a blinking cursor without anything around it, to ... (perhaps there is no end here, but extremely large amount of redundant information could be boring too);
- algorithms background - evaluating the number of the steps for completing an algorithm is very important here. Otherwise you can write a good-looking way of doing something which will end next year for a bit larger amount of data than you have tested it.;
- object-oriented programming - what the objects are and when they are applicable, how to design and use them, etc.;
- testing - how to create a complete and small enough set of test examples;
- team working;
- etc.

These and many other things will be improved when you get more experience but don't worry - we all had no experience when we started. These things can be learnt (or read from books). When you are ordered a task and you know the right way of doing it - success is yours.

And finally, excuse my English, I'm not sure if I expressed myself clear enough.

Regards, Geo

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Delphi selector screen 2 92
select query - oracle 16 101
How to debug For loops? 3 63
Firemonkey how to swip panel with finger tap 1 23
The uses clause is one of those things that just tends to grow and grow. Most of the time this is in the main form, as it's from this form that all others are called. If you have a big application (including many forms), the uses clause in the in…
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question