The Demise of the Art of Programming

K

Kevin Spencer

Is it just me, or am I really observing a trend away from analysis and
probem-solving amongst programmers? Let me be more specific:

It seems that every day, in greater numbers, people are coming to these
programming newsgroups and asking for ready-made solutions to fairly simple
programming problems. They either want someone to write code for them, or
point them to a ready-made chunk of software that does what they need to do.

Now, I'm all for productivity, and have all the latest and greatest
programming productivity tools. From time to time I do buy third-party
components, such as a managed Zip extractor. Yes, I could build my own Zip
extractor. The WinZip site publishes their algorithms. But it's quite
low-level stuff, and it would take me a week to write my own, whereas I
could buy one for $50.00 and get on to more important things. That seems
reasonable to me. If it is cost that is truly the issue, third-party
components are fine.

On the other hand, third-party components are only as good as their
designers. When you use a third-party component you are creating a form of
external dependency, over which you have little or no control. So, all other
things being equal, I would tend to solve my own problems and build my own
solutions.

But, for example, asking for someone to write a snippet of JavaScript...
well, that's just plain lazy IMHO. In the development tools that Microsoft
manufactures, there are enough tools and technology to build your own
Operating System. It is as if Microsoft has given you every tool you could
possibly need, and enough lumber to build the Hoover Dam, but if you need to
build a dog house, and you've never built one before, by golly, you'll just
go out and buy one. Now, how does that make you a better carpenter? And what
justifies the expense of buying a dog house when you already have all the
tools and lumber to build one? Especially when it would cost you the same
amount of money to build one (in man-hours) as it takes to buy one? At least
if you build it you've enhanced your capabilites somewhat. And if you need
to add air-conditioning to the existing dog house, well, you're all prepared
to do so, since you built it to begin with.

I mean, whatever happened to the ethic that programmers should study their
trade every day with diligence? I know I do. I probably spend an average of
an hour a day studying my trade. Any good developer should, it seems to me.

So, what's up with all this "just give me the codes (and stuff)" attitude?
Is it just me, or does this bother anybody else? Am I way off track here?

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
 
G

Guest

Could you give me the code to come up with a good reply?

Anyways, yeah, I agree. Not that I really answer that many questions, but I
try and leave things out of my answers hoping that people will just google
for the missing information because it would be faster than asking for more
info. It never works.

The really sad thing is that it's not just limited to code-monkeys, a lot of
people are asking high level architecture questions and expecting magic
answers.
 
M

Manohar Kamath

My take: As long as there are roads, there will be people to ask for
directions.

Kevin, while I see your point, I guess it is elitist to think of any problem
as small. In my opinion, people ask because they don't have an idea to
continue (whatever the reason maybe -- pressure, lack of education, etc.),
and not because they are lazy.

As per "programming as trade" -- the problem lies in the fact that most
developers now learn their trade on the job. I guess people need to
recognize this trend, and adapt accordingly. If anything, there are
opportunities here -- for authors of books, web sites, etc.
 
K

Kevin Spencer

Hi Manohar,
Kevin, while I see your point, I guess it is elitist to think of any
problem
as small. In my opinion, people ask because they don't have an idea to
continue (whatever the reason maybe -- pressure, lack of education, etc.),
and not because they are lazy.

Everyone has problems they haven't encountered before, and everyone needs
help from time to time. What I was describing as "lazy" is the tendancy to
ask for a solution, rather than to ask for direction. Direction is basically
pointing someone in the direction they need to look to solve their problem.
IOW, direction is not solving the problem for the individual, but enabling
the individual to solve their own problem. It seems that there are many more
developers out there looking for ready-made solutions than help in solving
their problems. Take a look at many of the longer-running threads in this
newsgroup, and you should see what I'm talking about. People give
directions, and the person who asks is not satisfied, or doesn't understand.
Instead of probing further for themselves, they come back and continue
prodding until someone gives them a ready-made solution, or writes their
code for them. Afterwards, the original person has their solution, but they
have no understanding of it. And they are no better or more independent as a
result. They have learned nothing. The shame of it is, I get the impression
many don't WANT to learn.

God help me if my career should ever become so - mechanical!

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
 
M

Matt Berther

Hello Kevin,

Very well said.

As with anything, it has to do with the level that the "bar" is at. People
generally tend to reach only as high as that bar is set. In order to build
and grow teams, that bar has to be constantly raised, forcing the individual
to either 1) do what it takes to keep up or 2) leave the organization.

Few people tend to constantly exceed the bar, however those that do are among
the best in the business. They are this way because they take it upon themselves
to learn and improve themselves. As long as people are content to just draw
a paycheck and not further themselves or their craft, we will continue to
see the problem you describe.
 
K

Karl Seguin

We both spend enough time in here to know that a lot of what you say is
true. Sometimes it's a real downer, sometimes it seems like just a few bad
apples spoiling it for the rest...I'm sure the number of people I've helped
once (and only once) in this newsgroup exceeds the number of people I've
helped more than once. For me, this implies that most people are giving it
an honest go, which (for now) is enough for me to keep helping out. Maybe i
haven't been around long enough, but I imagine this has always been true:
some people are "lazy", some aren't. I don't think there are more lazy
programmes today than there were 5 years ago....and if there are, I wonder
if .Net's harsh learning curve has anything to do with it...

--
MY ASP.Net tutorials
http://www.openmymind.net/ - New and Improved (yes, the popup is
annoying)
http://www.openmymind.net/faq.aspx - unofficial newsgroup FAQ (more to
come!)
 
J

Juan T. Llibre

re:
What I was describing as "lazy" is the tendancy to ask for a solution,
rather than to ask for direction.

That is a direct result of the way these public newsgroups
have bee defined : as a place to get solutions from peers.

"Getting solutions" is interpreted as "hand me
ready-made solutions to the questions I'm asking".

That means asking for code, instead of guidance.

How many times have you seen questions like :

"I want to do the same thing Hotmail does. Send me the code."

My approach :
If it's a simple thing requested, I'll provide sample code.

If understanding the question's anser entails more than that,
pointing the way to online articles which present solutions
to the question will do.

If the question goes beyond what a post can provide,
or an article can provide, I'll point the way to online
documentation or books.

We should strive to have the poster of a question *understand*
why the solution works as it does, instead of just mechanically
cutting and pasting from the sample to his/her code.

And, speaking of his/her, where are the lady programmers ?
I don't think I've seen too many posts by women here.

That's something else we should be concerned with.

;-)
 
K

Kevin Spencer

Hi Juan,
"Getting solutions" is interpreted as "hand me
ready-made solutions to the questions I'm asking".

That means asking for code, instead of guidance.

That might be true of newsgroups for Windows, Office, or other end-user
software. Who would expect an end-user to understand or care how their
software works? My wife doesn't understand how a car works, but she can
drive one as well as anyone. On the other hand, the engineers who build cars
ought to know both how and why everything in the car works. I'm sure you
wouldn't want to drive in one that was engineereed by someone without
knowledge of what he/she was doing, right?

A programmer is a technician. Therefore, a programmer ought to know how
their software works. And if so, they should not need anything more than a
little guidance, a shove in the right direction, etc. I certainly don't want
or expect more than that when I have a new issue to solve.
We should strive to have the poster of a question *understand*
why the solution works as it does, instead of just mechanically
cutting and pasting from the sample to his/her code.
Absolutely!

And, speaking of his/her, where are the lady programmers ?
I don't think I've seen too many posts by women here.

That's something else we should be concerned with.

That I can't agree with. For one thing, I'm not a woman. So, it's none of my
business what a given woman decides to do with her life. Beyond that, it's
none of my business what ANYONE decides to do with his/her life (except for
my children, and only up to a point). I have known a few female programmers.
The fact that few women decide to become programmers is not relevant, except
to them. I have enough responsibility figuring out what I should do next!

Who knows? Maybe that professor at Harvard had something...

--
Maybe not,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
 
K

Kevin Spencer

Hi Karl,
I don't think there are more lazy
programmes today than there were 5 years ago....and if there are, I wonder
if .Net's harsh learning curve has anything to do with it...

Interesting observation! I have been fostering high hopes that .Net's harsh
learning curve might turn some of these shade-tree programmers into the real
thing! But of course, only time will tell.

For anyone that thinks I'm being somehow "elitist," you should realize that
much of my frustration comes not from answering questions in newsgroups, but
also from personal experience. I have had to work a few too many times with
legacy code that was nightmarishly bad. About the best that could be said
for it was that it did accomplish its requirements. On the other hand, it
was poorly written, slow, full of hacks, and completely inextensible as it
stood. Unfortunately, programming is one of those businesses where you DO
get what you pay for, in terms of talent. If you hire cheap talent, it will
cost you much more in the long run.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
 
K

Karl Seguin

Kevin,
I absolutely 100% agree with you. My frustration is equal to yours, but not
because I have to maintain crappy legacy code, instead because I'm trying to
write brand new code in ASP.Net with people who just don't know fundamental
programming techniques. ASP and ASP.net are so different it's a painful
joke. The last 3 years of my life I've been dealing with people who just
can't make the transition. I've also had the pleasure to work with truly
exceptional programmers, but for the most part we are outnumbered ;)

I've been hoping that .Net's harsh learning cuve might turn some of the
shade-tree programmers onto different career paths :) I help here because I
believe that many of the people asking are truly interested in becoming the
"real thing"

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/ - New and Improved (yes, the popup is
annoying)
http://www.openmymind.net/faq.aspx - unofficial newsgroup FAQ (more to
come!)
 
K

Karl Seguin

Juan:
I handle it the same as you, though I offer up a lot of code sometimes
(depends on my mood probably). If you guys have read my stuff, you know
that I try to go far beyond simple answers and actually provide explanations
about why it's like this. Those who want can skip everything and get the
answer, but I hope a majority take the time and try to understand....

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/ - New and Improved (yes, the popup is
annoying)
http://www.openmymind.net/faq.aspx - unofficial newsgroup FAQ (more to
come!)
 
S

Steve C. Orr [MVP, MCSD]

Why did you pay money for a zip library when there's already one built into
the .net framework?
http://www.thescarms.com/dotNet/JavaZip.asp

If you would have come here and asked the question first, you could have
saved your company some money. And maybe the knowledge would have made you
a better carpenter too.

Even if you already knew about the zip library, I hope you see my point, and
I see yours too. What I hate most is when it sounds like somebody is trying
to get me to do their computer class homework for them. Slackers!

I do understand though that there are a lot of people that ask questions in
here and maybe programming is not their usual full time job but they're
trying to find a quick, ready made solution anyway. I don't have a problem
with them.
 
M

Manohar Kamath

Kevin,

When a thread goes for more than 4 levels, I am usually out! Because then,
they are making you solve their problem, than ask you for a solution. Also,
generally when people ask for code, they are also happy if you can show them
where you can find it (that's been my experience, anyways).

As Juan mentioned, it is entirely upto people how to respond to questions.
If the persons asks you for a code, you may not be able to help. However, it
does not change the fact that the person is clueless, or outright lazy. You
also can't change the fact that the person will ask similar questions in the
future, or someone is willing to help the person.

Like most things in free economy, the market will choose how to treat
people. If you are a solid "technician" -- chances are you will make good
money. If you ask for code everytime, someday someone will find out.
 
K

Kevin Spencer

I've been hoping that .Net's harsh learning cuve might turn some of the
shade-tree programmers onto different career paths :)

ROFLMAO!

I never had the guts to say it, but I'm with you there!

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
 
K

Kevin Spencer

Why did you pay money for a zip library when there's already one built
into the .net framework?

Because I needed the zip library 3 years ago...

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
 
K

Kevin Spencer

Good points Manohar.

To tell you the truth, I started this thread just so that some of these
people might see themselves and decide to do something about it (for their
own sake). I have helped peopple in Micrsosoft newsgroups for almost 10
years now, and plan to continue for at least 10 more.

:)

--

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
 
D

dgk

Hi Juan,


That might be true of newsgroups for Windows, Office, or other end-user
software. Who would expect an end-user to understand or care how their
software works? My wife doesn't understand how a car works, but she can
drive one as well as anyone. On the other hand, the engineers who build cars
ought to know both how and why everything in the car works. I'm sure you
wouldn't want to drive in one that was engineereed by someone without
knowledge of what he/she was doing, right?

A programmer is a technician. Therefore, a programmer ought to know how
their software works. And if so, they should not need anything more than a
little guidance, a shove in the right direction, etc. I certainly don't want
or expect more than that when I have a new issue to solve.


There are many ways to learn. One that I'm best at is looking at code.
For instance, I'm new at ASP.Net and was wondering how to to set the
focus to a textbox. I was a bit surprised that there was no .Focus
method on a textbox.I found this code on the newsgroup:

Page.RegisterStartupScript("SetFocus", "<script
language=""Jscript"" > document.getElementById(""txtName"").focus();
</Script>")

I now know about RegisterStartupScript and getElementById and can go
from there. It also solved the immediate problem quickly.
 
K

Kevin Spencer

There are many ways to learn. One that I'm best at is looking at code.
For instance, I'm new at ASP.Net and was wondering how to to set the
focus to a textbox. I was a bit surprised that there was no .Focus
method on a textbox.I found this code on the newsgroup:

Page.RegisterStartupScript("SetFocus", "<script
language=""Jscript"" > document.getElementById(""txtName"").focus();
</Script>")

Sure, but on the other hand, if someone had told you to read the SDK on
RegisterStartupScript, you would have learned all about it, such as where in
the page it goes, and why, and you could have learned about
RegisterClientScriptBlock, and the other cross-references as well.

Still, I post a little code here and there too. Sometimes it's the best way
to get the point across. But that doesn't mean that there isn't a problem
with "professional" developers who don't want to learn.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
What You Seek Is What You Get.
 
S

Scott Allen

A programmer is a technician. Therefore, a programmer ought to know how
their software works. And if so, they should not need anything more than a
little guidance, a shove in the right direction, etc. I certainly don't want
or expect more than that when I have a new issue to solve.

I've always been curious what types of people show up here. What % are
programmers, what % are students, what % are accountants trying to
figure out a way to help the business be more productive.

That being said, I have a feeling the worst offenders all have
"developer" in thier titles....
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,566
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top