Code Jockey vs Software Engineer

Posted on 2001-06-04
Medium Priority
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, http://www.delphi-jedi.org/
Delphree, http://delphree.clexpert.com/pages/default.htm
SourceForge, http://www.sourceforge.net/

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

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.


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 400 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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Suggested Courses
Course of the Month12 days, 6 hours left to enroll

752 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