Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations IamaSherpa on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Amateur Programmers vs. Professional Programmers 1

Status
Not open for further replies.

SkipVought

Programmer
Dec 4, 2001
47,487
US

I read an interesting paper by Thomas A Grossman: Spreadsheet Engineering: A Research Framework

In it I found many interesting concepts regarding the use of spreadsheets. But Section 5 was of particular interest to me; The Problem of Experience. Grossman quotes Gerald Weinberg's book, The Psychology of Computer Programming regarding reactions to programming challenges
Weinberg said:
The amateur, being committed to the results of the particular program for his own purposes, is looking for a way to get the job done. If he runs into difficulty, all he wants is to surmount it—the manner of doing so is of little consequence.
And then the professional
Weinberg said:
Not so, however, for the professional. He may well be aware of numerous ways of circumnavigating the problem at hand…But his work does not stop there; it begins there. It begins because he must understand why he did not understand, in order that he may prepare himself for the programs he may someday write which will require that understanding.
Isn't this observation confirmed every day by the questions and respenses on Tek Tips?

Skip,

[glasses] [red]Be advised:[/red] The dyslexic, agnostic, insomniac, lays awake all night wondering...
"Is there really a DOG?" [tongue]
 
Excellent link SkipVought. I can think of several additional forums in the technical areas where this would be equally pertinent.

Good Luck
--------------
To get the most from your Tek-Tips experience, please read FAQ181-2886
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein
 
By those definitions, I was a professional programmer long before I was ever paid to program, and a lot of paid programmers I've worked with are still amateurs.

I don't think Tek-Tips postings, or anything else, can confirm the observation. Consider:

Persons of type A exhibit behaviour B
Person exhibits behaviour B, therefore person is type A.

The second statement simply applies the first. The first statement has not been shown to be any more valid than when it stood alone, it's just been restated.

Now, if our Tek-Tip handles were always accompanied by an objective measurement of our professionalism, and our postings correlated in the manner observed by Grossman, then we'd be looking at something a bit more like, but not necessarily the same as, confirmation.

Rod Knowlton
IBM Certified Advanced Technical Expert pSeries and AIX 5L
CompTIA Linux+
CompTIA Security+

 
Thought-provoking stuff, Skip, but I can't offer a blanket agreement.

the manner of doing so is of little consequence.

I think even amateurs want to find the ideal solution, or at least one that not materially worse than the ideal solution (as has been mentioned here before, there is more than one way to skin a cat).

It begins because he must understand why he did not understand,

This sounds like goofy pseudo-intellectualism. It's meaningless. [blue]He needs to know why he didn't know??[/blue] [red]Because he didn't know![/red] Perhaps because he's never studied X, or encountered X, or even knew X existed.

in order that he may prepare himself for the programs he may someday write which will require that understanding.

This should apply to anyone who does not like reinventing the wheel. While it may be true at a higher level of consciousness for professional programmers, I believe it's true to a degree for everyone.

[end]Rant.[/end]

Tim
 
Sorry. They're Weinberg's observations, not Grossman's.



Rod Knowlton
IBM Certified Advanced Technical Expert pSeries and AIX 5L
CompTIA Linux+
CompTIA Security+

 
==> By those definitions, I was a professional programmer long before I was ever paid to program, and a lot of paid programmers I've worked with are still amateurs.

That's an excellent point RodKnowlton. There are multiple interpretations for 'professional'. In its strictest sense, a professional is one who is paid for their services. In a larger context, being a professional is about behavior, attitudes, and actions. There can also be an expectation with respect to quality when dealing with a professional.

Within the context of this thread, we may need to agree on what we mean by 'professional' so that any discussion can focus on the issues, and not on the semantics behind the word 'professional' or 'amateur'.

SilentAiche said:
I think even amateurs want to find the ideal solution
I think everyone wants to find the ideal solution. The difficulty comes in defining 'ideal'. To the end-user, the ideal solution is the one that works as painlessly as possible with the least amount of end-user effort. The end-user probably could care less how it's done. To the company president, the ideal solution may be the cheapest solution in the short-term. The chairman of the board may feel ideal is the cheapest long-term solution. To the sales manager, the ideal solution is the one that is easiest to sell.

How will the software engineer define ideal? Part of that answer may be the one which requires the least amount of long-term support.


Good Luck
--------------
To get the most from your Tek-Tips experience, please read FAQ181-2886
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein
 

SilentAiche said:
I think even amateurs want to find the ideal solution

I think that it's more like fully understanding the process in question and understanding the tools in the bag. I find that alot of people don't want to mess with that.

Often there's more of a question of why than how. But when it comes to the how, there's also a question of, "which how?" and the implication of the how road.

Skip,

[glasses] [red]Be advised:[/red] The dyslexic, agnostic, insomniac, lays awake all night wondering...
"Is there really a DOG?" [tongue]
 
Perhaps we should change the terms to "rookie" and "journeyman", except I don't like the temporal connotation of "rookie".

Is it possible to split a discipline that has by some accounts the widest range of competence of any displine into two classes?

Steve McConnell, in Code Complete, cites a study that found that productivity of programmers varied by a factor of 10 to 20 during coding.

As far as Tek-Tip postings go, what sorts of posts are we ascribing to which category, for the purposes of this thread?



Rod Knowlton
IBM Certified Advanced Technical Expert pSeries and AIX 5L
CompTIA Linux+
CompTIA Security+

 
I don't think two classes would be very representative of the breadth of IT. We could use the scale: Novice, Apprentice, Journeyman, Craftsman, Artisan, and Master. :)

I think we have representatives from all categories posting in Tek-Tips. I think also that within Tek-Tips, we have two disparate groups. There are IT professionals, and there are professionals from other disciplines asking IT-type questions.

Good Luck
--------------
To get the most from your Tek-Tips experience, please read FAQ181-2886
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein
 

I find the distinction to be useful this way:

An amateur programmer writes programs that he/she will use personally.

A professional programmer writes programs that someone else will use.

(Of course the professional will also write utilities etc. that wil be used personally. Please don't nit-pick -- these are only generalities.)

The point is, the amateur does not concern himself with the niceties of error detection/correction, logging of transactions, security, on-line help, documentation, ease of maintenance, or any of a number of other considerations that the professional is expected to handle.

Example: When someone in the HR department writes a lengthy unstructured, undocumented Excel macro, she is doing amateur programming. Her replacement will have a very difficult time picking up where she left off. That's when the macro is either thrown away, or a professional from the IT department is called in to pick up the pieces.
 
Zathras said:
Example: When someone in the HR department writes a lengthy unstructured, undocumented Excel macro, she is doing amateur programming. Her replacement will have a very difficult time picking up where she left off. That's when the macro is either thrown away, or a professional from the IT department is called in to pick up the pieces.
I could not agree more. A professional will comment and document the code because s/he has had to work on onther people's code and appreciates just how important this is. I'm sure that many of us have had the nightmare of unpicking the amateur written code that has become a vital part of the daily routine.

Roving off topic, try explaining to the amateur why ten cells in an excel spreadsheet, each containing the value 0.1, when summed do not test true when equated to 1.0. Sorry about the clumsy language, I'm trying to be precise without being able to remember the code. You can talk to the proffesional about rounding errors in floats and doubles and suggest that the base unit is a tenth of a day, not a day. The amateur insisted that it was a bug in excel.

Columb Healy
 
Going back to the original post I believe that these statements cannot be universally applied.
From my own experience.
The program I am paid to write, tend to be much less well documented and commented than the programs I write at home, hoping to sell on the Internet (some would say this is an amateur endeavour)
At work I have much less time for that sort of thing, and there is no policy in place to insist that I do it!
At home I take great pride in ensuring that I write to the highest possible standard.
Also from time to time we are passed source code written in much larger organisations, sometimes sophisticated version control system have been in use.
I have to say that I have never seen this professional written perfectly documented code it's often and unreadable mess.
The statements might also be implying that you only learn from your mistakes if you are being paid, this is clearly a nonsense.



Steve

Life is like a Grapefruit, sort of orangey-yellow and dimpled on the outside, wet and squidgy in the middle, it's got pips inside too. Oh and some people have half a one for breakfast. Ford Prefect.

Want to do more with TGML Download Star
 
I'd agree with a lot of that. When I'm programming professionally I try to write the best quality code I can, but time pressures and other factors often make that difficult, if not impossible.

However when I'm writing code for myself at home, whether I'm hoping to sell it on the internet or give it away on Tek-Tips, I try to write the best quality code I can. I have all the time I need (or want to take) to do it. I also try to comment/document the code at least to the extent that a reasonably intelligent programmer can make sense of it (and that includes me if I have to go back and try to remember why I did something a particular way).

Which of those is the amateur behavior and which is the professional behavior?


Tracy Dryden

Meddle not in the affairs of dragons,
For you are crunchy, and good with mustard. [dragon]
 
In my experience, most professionals try to be neat and standard, because the next person to look at that code will either be them or someone they meet face-to-face.

Contract programmers are mostly an exception. Their stuff works, but try figuring out why.

------------------------------
An old man [tiger] who lives in the UK
 
I think even amateurs want to find the ideal solution"
At home or work, it depends on the particular need.
If it is a quick hack, I just want it to work "well enough".
If it will be re-used, or is part of a bigger project, then I'll be more concerned with elegance and performance.

"Good enough is the enemy of better"
- Jerry Pournelle

cheers
Jay
 
A professioanl gets paid for the work. An amateur does it for free. Does anyone remember this very debate concerning the Olympics?

Calling sloppy code "amateurish" is only a slur. We have all seen dreadful code and great code. Knowing whether a professional or an amateur wrote it cannot be determined by its quality.

__________________________________________
Try forum1391 for lively discussions
 
Dimandja: you're quite right. I've seen some "professionally written" code that was simply horrid (you can insert your favorite Windows bug story here). I've also seen some code written by "amateurs" that was quite elegant.

I think there is a big difference between describing a person as an amateur or professional, and describing code as being of amateur or professional quality.

Aside from the issue of programmers:

Being a "professional" at something simply means that is what you do for a living. I.e. it is your profession. Just because someone does something for a living does not mean they do it well. Otherwise there would be no need for malpractice suits or any other kind of consumer suits. I'm sure we've all known "professional" somethings that were terrible at their job. Any connotation attached to the word "professional" is simply marketing hype.

Being an "amateur" simply means that you do not get paid for doing it. You do it simply because you like to do it. Frequently this means that the "amateur" is as good as, or better than, the "professional", but that's not specified in the meaning of either word. Any negative connotation attached to the word "amateur" is, again, marketing (anti-)hype.

(who wants the soapbox next?)


Tracy Dryden

Meddle not in the affairs of dragons,
For you are crunchy, and good with mustard. [dragon]
 
I agree with Dimandja and tsdragon if you limit 'professional' to only being one who is paid for their efforts.

However, professional also has connotations of both attitude and work ethic, regardless of pay status. The confusion comes when you're using professional with respect to attitude and work ethic.

You can handle a situation very professionally without compensation being part of the mix.

Put another way, there is a difference between amateur being the antonym of professional, and unprofessional being the antonym.

Good Luck
--------------
To get the most from your Tek-Tips experience, please read FAQ181-2886
As a circle of light increases so does the circumference of darkness around it. - Albert Einstein
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top