How to answer requests to repair newbie's non-working programs?
I am well aware this thread will not further my popularity...
But I recognize an increasing number of requests of the following kind:
Now what to answer?
The correct answer should be:
What some of us do now - with a considerable investment of time - is try to UNDERSTAND the code. Then - sooner or later - an obvious inconsistency turns up. The true helper becomes excited and informes the requester.
But what surprise!
The most time conserving thing would be to just write that stupid program for Helmuth, but that is really NOT didactical at all.....
Post Edited (deSilva) : 3/8/2008 3:41:59 PM GMT
But I recognize an increasing number of requests of the following kind:
This code is generally crippled by missing indentation, omitted "[noparse][[/noparse]" "]" and many "in-commented" lines of dead code.Helmuth said...
Here is some amount of code it took me now some days to debug to no avail... I just cannot find the bug! It has worked some time ago, but after adding the rest of the code it does not work any longer. I changed lines of code according to the principle of evolutionary improvement, but there is hardly any noticeable improvement. Can anybody tell me what I am doing wrong?
Now what to answer?
The correct answer should be:
But is that polite?Anonymous said...
Dear Helmuth,
what you are "doing wrong" is that you try to work on things you do not yet understand properly. Though the American way of "learning by doing" has shown great success in some areas - it is also bound to some didactical guidance: Don't try too much at the same time! It is obvious from your coding style that you have no clear understanding what certain language constructs are meant for. Start here! Put yourself a simple (mathematical) problem, as solving a linear system of equations and find the best way to code it!
It is also obvious that you have not the most basic idea of the collaboration of INA, OUTA, and DIRA; especially when different COGs are in the game. However this is well described in the Manual so you better start with all the LABs first. Don't underestimate experiments as Dimming an LED using two Bushbuttons, or determining the value of a resistor by unloading a cap.
Alas, some of the pitfalls of SPIN are less thoroughly documented. Note that you just cannot COGNEW a method in an external object directly, and that all WORDS and BYTEs in the VAR section are shifted after the LONGs. But this will make you wonder only long after the other issues have been fixed.
So just take your time! It took all of us years to become proficient programmers, mainly by reading other persons code, by reading Manuals, and by reading deSilva's most excellent "Programming the Parallax Propeller using Machine Code"!
What some of us do now - with a considerable investment of time - is try to UNDERSTAND the code. Then - sooner or later - an obvious inconsistency turns up. The true helper becomes excited and informes the requester.
But what surprise!
This can go on for a long time....Helmuth said...
Dear True Helper,
I did all you suggested, but there is no improvement at all! My program still does not work. I also exchanged more lines now according to the principle or evolutionary improvement. This also did not help! Do you need that upate? I will be eternally greatful for any help whatsoever.
The most time conserving thing would be to just write that stupid program for Helmuth, but that is really NOT didactical at all.....
Post Edited (deSilva) : 3/8/2008 3:41:59 PM GMT
Comments
Some just doesn't want to learn the basics of the programming language/platform they're using. Some doesn't even want to learn the basics of programming.
(And the code that 'used to work' was either doing so by pure luck, or it was a complete program downloaded from somewhere which has been slashed to bits in a misguided attempt to do something it was never designed to do)
The only thing more annoying is people who wants us to virtually design/write their whole project. Particularly those with a deadline at school...
I think I've 'blown my top' a few times, but frankly, not often enough, and not hard enough.
Sometimes 'tough love' is the only way to go.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Don't visit my new website...
Somewhere between "Read the manual" and "here's the solution" is the ideal answer for those asking. We largely have to guess the best type of answer to give and it's not always easy to determine an individual's level of skill or aptitude without playing twenty-questions.
I'm a great believer in self-learning by reading and studying what others have done but sometimes I just need it explaining. No end of reading works and simply having it demonstrated is like being hit round the back of the head with a bit of plank to fire the right neurons; D'oh ! That's crystal clear now, thanks.
I assume, maybe wrongly, that most people coming here are intelligent, are capable of learning and have tried to solve their problem. Most likely they have put a lot of effort into doing that, are at their wit's end and simply want 'the answer'. That turns the light on and they are back on their way.
I'm very more inclined to give them the answer they want or something close to it in the hope it enlightens them and clears the temporary blockage. For those who simply need that, problem solved, they are happy, the light comes on, they are back on track, self-learning as they normally would. For those who need more they will come back with further questions and answers can be tailored; that twenty-questions is played out as part of the process.
I agree; there is a tendency for people to try and do too much, get way out of their depth and to me the best response to them is to tell them to trim themselves back, get the fundamentals understood and then move forward again.
So for those types of question, they don't need a 'solution' they need to be guided into learning and understanding the basics. Letting people know they are out of their depth, cannot be helped only pulled back to safer waters, without upsetting or discouraging them is the art form.
Sometimes for the helpful helper who feels they are banging their head against a brick wall it is better to walk away for a while, let someone else deal with it. No one likes to leave the drowning man to their plight, but if the help isn't helping they will still be drowning and may be becoming more frustrated.
I really wish I could get across this concept:
Every minute you spend learning the basics is a minute less spent unsuccessfully writing/debugging your code, don't start by writing your dream program, work towards it
·
The whole purpose of these forums is to help people with their problems. It’s a fact that people have different levels of education, ability and resources. This is just as true for the responder as it is for the enquirer. Knowing the answer to another’s problem is not enough, it takes understanding, patience and the ability to communicate at the same level. If communication with a· “newbie” and their “stupid” code is going to frustrate a person to the point of being disrespectful or the task of solving the problem becomes too time consuming then they should not answer. There are many admirable people in these forums with a phenomenal knowledge base; there are also some huge egos and small cliques, which are not so admirable. I think hippy’s reply is considerate and the line of thinking that will maintain a healthy level of enthusiasm for all who subscribe to the forum. Some of comments in this thread, and a recent one of similar ilk, could possibly deter some newcomers or existing subscribers from posting their questions, in particular here in the Propeller forum as you have to wonder is this just a problem with certain individuals here or is it a general consensus more suited to the Sanbox
Jeff T.
Not to hijack the thread, but indentation drives me nuts...
I was thinking that a hot key which would toggle vertical lines on the left side
would be a handy addition.
Can one of the experts give some advice on avoiding indentation frustration?
OBC
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?
Getting started with the Protoboard? - Propeller Cookbook 1.4
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
Got an SD card? - PropDOS
A Living Propeller FAQ - The Propeller Wiki
(Got the Knowledge? Got a Moment? Add something today!)
I couldn't have said it better. I have received alot of help from deSilva, Mike Green &
stevenmess. I'm sure that they were "beating their heads against the wall :>) but if you look at where my code is now as opossed to 2 weeks ago, I think that you would have to agree that it has progressed to a level beyong what it would have with just looking at the propeller manual. Some of us interested in the Propeller are "Right Brained", sometimes the Math doesn't come easy but the ideas for the propeller may go way beyond the "Left Brains" imagination. It doesn't mean that we can't learn the code it means that we may have to be taught by someone that thinks like we do. Sometimes the problem is a persons ability to teach and not ones abilty to learn.
To all those who have helped myself through patience and understanding.
Thank You,
JMLStamp2p
I do not think you are wrong in thinking this. Most people are as you say.
But those people often find the answer and so do not post questions as
often. We end up seeing the skewed result.
But those efforts to answer these questions are not in vain. Your answers
get read by many others and you often solve problems for more than just
the person asking the question.
Don't give up. Your patience answers are appreciated by many more
than just the people unwilling or incapable of digging.
It would help a lot if they would fix the search though. I often find the answers
to my question, in the forum, by googling after the forum search gets zero
hits! What's up with that? -Chuck-
The ideal newbie post should be:
1) Polite - people here are under no OBLIGATION to help you and as has been said above, they often put large amounts of effort in.
2) Structured - a rambling post (as deSilva has said) doesn't inspire assistance!
3) To the point - i.e. we don't care what you had for breakfast just that when you run X line of code Y doesn't happen.
perhaps the newbies aim should be to "help us to help you"?
Javalin
What·kind of evil-minded campaign against my person is this?
Helmuth
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I am 1010, so be surprised!
I know there's been some concern expressed by Paul Baker and others, that some of the experts on this forum are not always coming across as polite as some people think they should be. But I also think it's not as big a problem as some people think.
I'm so new to the Prop that I have not even had many good questions yet. I'm the perfect example of someone who is probably going to ask some completely stupid questions from time to time, and may have already. But I WELCOME IT when someone feels that I should be told in blunt terms that I obviously don't know what I'm talking about - That I have stepped out of my element and bit off more than I can chew, and that I need to learn to crawl before I try to walk. Provided of course, that they point me toward a source of information about crawling.
I'm not reading this forum to have my hurt feelings sorted out. I'm here to LEARN. And some of my best learning experiences came from people who gave me what some call (incorrectly in my opinion) a "spanking". I say that all of us "newbies" should refuse to be babies and realize that if you really want to learn, it's good to be spanked, because it can really straighten you out and get you back on track with minimal time wasted. You may think the person who answered your question was less than polite, but don't forget that he did a FRIENDLY thing by helping you at all. Even just telling you that your answer is in the manual is still help - although some say it's not - IF the expert knows for a fact that the answer is there, AND he tells you specifically where to find it. Maybe I'm just a little too good at letting impoliteness bounce off of me, and maybe I should consider the fact that some people are not so good at it. Anyway, I ENCOURAGE all the experts on this forum to tell me when I've said something stupid, and not to waste their time putting a sugar coating on it.
Another thing my fellow newbies should never forget, is that not everyone on this forum is a native English speaker from birth. People using English as a second language might be completely unaware that the way they've worded something could come across as rude to an American or a Brit who has a habit of trying to read emotional content out of every grammatical inflection. We all could do more to give a break to an expert who may not have fully realized that you would think he was being rude to you.
For example I could myself as *relatively* experienced with the Parallax line - but still got prodded by the starter of the thread on something I didn't know.
I think we can all help each other, just some care required for the asker's to enable the helpers to assist without needed lots of time!
At the end of the day - politeness costs nothing.
Javalin
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
jazzed·... about·living in·http://en.wikipedia.org/wiki/Silicon_Valley
Traffic is slow at times, but Parallax orders·always get here fast 8)
to me it is this way:
I like it really much to answer concrete questions.
I don't like questions that are widerange general or somehow like "can somebody program for me...."
or a titel like "i need an expert"
I appreciate it VERY MUCH if the title of a thread brings the question to the centerpoint.
Just writing "question" says nothing
So to all newbies: you are REALLY welcome in this forum to ask as many supernewbie-basic questions
as long as it is a concrete question about two or three DETAILS per posting.
to me it is great fun to see somebodies skills growing step by step in a way of asking for a detail
understanding THIS detail go on some steps and asking again.
The main thing is that i can see he's really THINKING about it HIMSELF and tries a new STEP by HIMSELF
and then if it does not work asking for help.
General questions like "how do i program an serial LCD?" are always in danger to bee seen as a bad hidden
command like "can somebody (without paying) do the whole work for me to ....!"
best regards
always keen for concrete newbie-questions
Stefan
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"A complex design is the sign of an inferior designer." - Jamie Hyneman, Myth Buster
DGSwaner
I think we need a stickie in each of the forums with an explanation of how to post questions, with examples.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Don't visit my new website...
hm - if i would especcially like to learn more about patience and tolerance i would search for a more or less
psychological, maybe new age forum. Or going for a non-profit-job helping poor or mental handicaped people or something like that.
If a newbie has the MAIN-intention of making "the forums members " patience and tolerance grow - this is definitely the wrong forum !
hey this makes me upset ! although that i'm a person who has a lot of patience.
To me your posting sounds like "get infinitely patient with newbies let the newbies post like they ever wanna post"
still using friendly phrases to say welcome and good-by
sincerly yours and best regards
Stefan
There are things you can control and things you can't. What new contributors do is not something we can control. How we respond is.
So, the resolution to this problem really lies with each of us. Hit a personal limit of some kind? Go write some code or build stuff. You will feel better and so will the newbies. After a time, come back, feeling good and contribute what you can, when you can.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
Post Edited (potatohead) : 3/8/2008 9:54:13 PM GMT
What I say - 'Post at will - ask your questions - no matter how stupid you think they may be' - if others don't like it - perhaps they should save their time and energy to answer a question that they deem 'worthy' of a response .... I am with Jeff T (Unsoundcode) on this one ..
Regards,
John Twomey
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Necessity is the mother of invention'
A question to ponder
Do you really want to help Parallax promote and sell the Propeller, or are you more concerned about keeping yourself happy?
It is still basically new, and not as simple as some here make it out to be. Things are only simple when you know them already.
In trying to suggest patches to someone's ill-conceived or poorly-written code, I'd be promoting that which I wouldn't do in my own programming. So why reinforce someone else's bad habits? As a matter of practicality, I typically just avoid answering these kinds of posts, for fear of being sucked into the maelstrom.
-Phil
This is a very common problem with technology questions when non-technical people (and by that I mean someone who has never taken a course in either electronics or computers) attempts to use a technology based item (such as the propeller) to do something. Half the time the words just don't match up with what they know.
I think the propeller manual does a good job of introducing the concepts (for Spin, not so much for Assembly) and so for someone who is truly struggling a good approach is to point them at the manual, and then ask them to tell you what it said. If they don't understand what they read, then ask what didn't they understand? And dig down to first principles until you can at least talk about something and the same picture is appearing in both peoples heads. Some people have no time for that, and I can understand that too, but I suggest they hire someone to solve this issue. (trade money for time).
For some, and this was a huge problem on comp.sys.robotics back in the day, you just have to start ignoring their questions because they either won't, or can't, invest enough time to understand the answer. My favorite response was when a poster stated "The reason I've sent the same answer each time to your question is because it is the answer, while I understand that you do not understand the answer, it is still the answer to your question. Once you accept that and get to work on understanding the answer you will begin to make progress in your efforts."
At all times it is important to be compassionate (I can empathize with anyone struggling to understand something and failing to do so), to be courteous (they aren't trying to taunt you with their ignorance there is no reason to take it personally), and be consistent. Many people both directly (and as lurkers reading silently in their glowing caves) and indirectly will benefit from the answers to questions being available.
--Chuck
I figure that statement kinda wraps everything up, no further comment.
Also, there are not two classes of forum members as all of us are learning and even when teaching we are learning, isn't that so? Whether we ask or help we should treat each other with respect as fellow Propheads, there aren't that many of us. But also bear in mind that humility and maybe even courtesy is required when receiving as a sincere answer to a sincere question is a gift given freely.
*Peter*
Generally all the people here have been helpful. Or to put it another way, no one has been not helpful. A template or something for requests would not be a bad idea. It could have things like what board they have. Also, reducing the code to the smallest section that doesn't work. (Not just the method but the smallest code that will run and produce the error. I had a problem with graphics.spin that I thought was somewhere but was actually in the calling function).
When I'm asking a question I normally have done a fair bit of looking for the answer but sometimes the answer is staring you in the face and not obvious. In these cases the question can seem stupid but I just need someone else to point it out. I agree that there needs to be some balance between writing someone elses code and saying just read the manual but how do you find that balance?
An idea might be to have some subforums. I don't know if this is a good idea or not.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Hunger hurts, starvation works!