Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win


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
Technology Partners: 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 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

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

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

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Are you ready to place your question in front of subject-matter experts for more timely responses? With the release of Priority Question, Premium Members, Team Accounts and Qualified Experts can now identify the emergent level of their issue, signal…
Suggested Courses

610 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