Solved

Code Jockey vs Software Engineer

Posted on 2001-06-04
7
146 Views
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?

Thanks,

Tom
0
Comment
Question by:knowlton
7 Comments
 
LVL 11

Expert Comment

by:robert_marquardt
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.
0
 
LVL 14

Expert Comment

by:DragonSlayer
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.



DragonSlayer.
0
 
LVL 11

Expert Comment

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

Robert Marquardt
Director of JEDI
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Expert Comment

by:mike_tipping
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


0
 
LVL 17

Expert Comment

by:geobul
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
0
 
LVL 5

Author Comment

by:knowlton
ID: 6156376
geobul:

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

Accepted Solution

by:
geobul earned 100 total points
ID: 6156970
Thanks.

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
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

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 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…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
This is a video that shows how the OnPage alerts system integrates into ConnectWise, how a trigger is set, how a page is sent via the trigger, and how the SENT, DELIVERED, READ & REPLIED receipts get entered into the internal tab of the ConnectWise …

932 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now