A suggestion when helping people

A suggestion when helping people
0

#1

Hello, I would like to mention something that I’ve noticed about this forum. It’s great to see that people help each other, share links, share different solutions and offer guidence. However, I would like to point out something about helping people. This comes from my own experience with learning programming, as well as hearing this from other people at University.

When learning to program, it is very important you do everything by yourself. Now I’m not saying you should not ask people for help. That should be encouraged. However, others should not just post a solution to your problem. This is super counter productive, because understanding the solution does not mean you will understand the problem or know how to solve it yourself.

It’s super great to see that there are threads that explain certain bonfire algorithms, especially those serving multiple solutions. That should be used after you solved the problem by yourself so you see a different perspective. But, I would really suggest that you refrain from answering peoples questions about problems with a direct solution. It helps them less than you know. You should instead point out an area where there might be a problem. You should explain the general idea behind the problem (in ex. explain what a LCM is, or post a mathematical formula about it, but do not give the solution to the problem).

What this does is that it forces the person asking the question, to rethink their own problem and actively search for their mistakes. They will learn much more that way and will thoroughly understand the problem. What my professors do at University is, that they mostly answer your questions with other questions. It might seem really frustrtating, but when you think about it, it really helps, because it forces you to solve your own problems and learn how to think correctly.

This goes for chat as well, not only forum. Again, it is very counter productive to give out a solution, because the person asking the question gets nothing out of it. You can, of course, guide them towards a solution or point them in the right direction. However, let them figure it out by themselves.

This is based on my opinion, and my experience, as well as experience from other people, when it comes to learning programming.


#2

I totally agree. As far as I am concerned, I use Read-Search-Ask process. But if I get to the Ask part, I am actually asking for hints. After getting the hint, I repeat the process, until I get the solution myself.

In my three weeks on FCC, this did wonders for me. I have done all basic, more than half of intermediate algorithms and I am using APIs and jQuery for frontend projects, all of which was totally unimaginable once I started.

A conclusion - help people with hints when they ask for it, and get help from people by asking for hints. A proven strategy to get yourself to be a much better programmer, especially if you are consistent!


#3

From tutoring in college, I tend to agree. However, I will say that some FCC lessons are very vague on what is needed, so occasionally a more in depth explanation bordering on giving the answer is appropriate.


#4

An indepth explanation is fine, but an explanation does not equal giving the answer. The person in subject has to finish the solution by themselves, or it’s counterproductive o.O


#6

I’m not sure that complete solutions prevale over hints, I haven’t been around for long enough. However, I have seen complete solutions posted as well as solutions to debugging, with a clear point to what needs to be changed as opposed to showing OP where he should look.

Of course, there are also only tips and hints. The forum is working as a great tool and medium for solving problems, I’m not denying that. I am merely reminding people that complete solutions are counterproductive, because, believe it or not, many people, especially people who are new to programming, do not know that understanding the solution when someone shows it to you, does not mean you understand the process behind it or know how to code it yourself.


#8

I understand where you are coming from with this post, and it is definitely something people should be mindful of when helping others.

That said, there are times when it is appropriate to give a fuller solution with a decent explanation. It is much rarer, but there shouldn’t be a hard line to say that one should never give the answers.

It’s been incredibly rare on this forum when I’ve felt someone has gone too far, too quickly in providing help. What I tend to see is a good mix of probing questions and nudges in the right direction. Occasionally, when those nudges are not enough, people might go a little further - but that is in the context of a conversation that has demonstrated more was needed.

Context is important. Not every learner is coming to this with the same experience. Uni is different because you can take a lot more for granted about the education students have had prior. FCC on the other hand is an extremely broad church. Sometimes just to get people over the initial block you have to give them more spoon feeding than most, but eventually they get past it and can be more self sufficient.

Learning is a very vulnerable and sometimes humiliating experience, and it doesn’t take much to scare some people away. If a little hand holding early on enables people to believe they can do it, then that is alright by me.

Finally, there are some problems that are so quirky that sometimes the only humane thing to do is to give the answer. Take the wikipedia api for example - that behaves in a way that is very odd and has seemingly contradictory parameters that are required to make it work, and the docs do a pretty bad job of explaining it. In that case I am more than happy to just hand over the appropriate ajax configuration options and a query string to copy and paste. Life is too short to grok one bizaarro edge case.


#9

Actually I’ve noticed one thing here in the forum - if someone asks lazy questions it doesn’t matter if you give him complete solution to his problem or just hints and tips, he won’t be around for a long time.

I maybe sometimes give too complete solution instead of just some vague hint, but for a forum format I think it is more optimal than constant “back and forth” (at least noone has told me yet to be more vague). And usually if I get follow-up question I may give (sort of) more in-detail explanation.

And as @P1xt mentioned, for non-native English speaker, it is easier to give couple of lines of code with some comments, than it is to write long eloquent explanations which asker (is this even a word?) maybe won’t even read.

P.S. Another thing worst than complete solution is no answers at all.


#10

Sure, no answer is worse… however… if you know the complete solution, and you understand it, you would also be able to give partial / hint solutions, would you not?


#11

Agreed, that is indeed true. The APIs are often a nightmare to work with -.- I was thinking more in the sense of giving solutions to algorithms and such, that really teach you the core principles of thinking. That is where, imo, is the biggest problem, when you receive a completed solution.


#13

Indeed. Like I mentioned before, I do think FCC is a great place where people help each other and it’s useful as hell. While being on the subject of beginners, people should be introduced to the idea that, in order to learn programming, you should do stuff yourself, because understanding the solution does not mean understanding the problem and they should avoid complete solutions.

Even if you are a beginner, even if you are scared of programming or frustrated because of being stuck somewhere, it’s much better to sit behind a desk and bang your head against the wall for two hours and come out with a partial solution, than look at a completely solved one. That does not mean complete solutions are not useful in certain situations.


#14

MDN and other documentation website often have short code snippets. I am baffled by FCC’s “Read - Search - Ask” formula. Those aren’t really sequential events. I don’t feel bad looking at other people’s solutions – if I spend some time reading and analyzing their code, I learn things about best practices and automated features of languages like javascript that I would otherwise have not incorporated into my code. It’s also incredibly helpful to see someone’s efficient solution after I’ve gotten about halfway through a complicated mess of “if/then statements”. I’ve only ever learned things about methods, variables, functions, etc. in javascript by seeing what other brilliant programmers have written and trying to break off pieces of their code to incorporate into my own projects. That doesn’t mean that I’m “not learning”, it means that I’m taking difficult concepts, analyzing how another programmer implemented them, and figuring out how the syntax applies to my own case – much more than the sleazy “Cmd+C Cmd+V” that so many people portray this as.

In general, I think there’s this culture of “DIY programming or else”, which is really confusing considering the whole open source / open access movement. No, you don’t have to know how to do everything yourself, especially as we move into a more collaborative programming/tech environment. And yes, sometimes there is a best way to code something.


#16

You dont need to do everything yourself, that is obvious. However, understanding someone elses solution does not mean you will be able to solve it yourself or write the code yourself for a similar problem.


#17

I think you should keep your opinion to yourself.
Just because you learn a certain way, doesn’t mean it suits everyone.
I personally sometimes look at answers and study them to see how the task was achieved.
I’ve since left bootcamp, mainly because there is no show answer feature.
I want to study, not wasting time trying to figure out things.


#18

Interesting, and here I thought that a forum was meant for sharing opinions. This is not only “my way”. Its been encouraged at the uni by professors.

Theres nothing wrong with studying answers if you understand the concept behind it. Someone might have a better, more elegan solution adn you can learn from that. If you understand the logic behind it. In most cases you wont learn any logic solely from his solution though.

You say you want to study and not waste time figuring out stuff… but that is exactly what programming is. You are constantly forces to figure stuff out. Unknown stuff. New stuff. Complicated stuff. Its an ongoing battle between fristration and success and you cant escape it.

We might learn in a dfferent way. However one thing stands true: understanding someone elses solution does not mean you will be capable of solving the problem.


#20

Ye, I agree, the environment is different, thus perhaps the strategy is different. However, I have a question for you. To me it seems that most of the people here are looking to change their carrer path / are interested in programming or design and want to get a job of some sort in this area. The questions is: When they start working on the job, what will happen, when they stumble upon a problem that requires banging your head against the wall until a solution is found? They’ll also be competing with people from a CS background (not exclusively tho), who have a bigger reach when it comes to problem solving skills.

I’m just curious, also, because I have no experience with applying for jobs and no interview experience, and would like to know any such experience you had, that is interesting in this context.


#22

The reason why the best of programmers come from Math or Physics majors is due to the fact that programming is, essentially, a lot about math and well, problem solving skills. People from those majors get these skills.

I agree with what you wrote. What you do works in your case because you have a lot of experience with mentoring people and you can judge the amount of help needed. Still, people who are new to the topic and help other people, should consider the fact that too much help is a thing and is often counterproductive.

“FCC got me my first programming job and I just finished the Front End Certification last week” ones. Personally, I don’t subscribe to the “what is the absolute minimum I can possibly do here in order to fake my way into a job” school of thought.

Ah yes, that can be an issue. Bare minimum will often backfire. Then again, one can grow alot under a good mentor, and if the job they applied to supplies one, it can be a great opportunity.


#24

When I first started programming I had to be driven one hundred miles to the nearest large town to buy a book or magazine about programming, and then back again once I had finished reading that book. Every line of code that I wanted to use had to be meticulously retyped from the book. Often there would be syntax errors in the book’s code, and my own typing added even more. I got pretty good at debugging that stuff.

I learned that more (books) sources of information is better since that one source may have a typo. There was no one keeping score about what or how I learned. I just picked up what I had to any way that I could. Oh; and it was assembly language to start with… very little in the way of debugging tools.

When I started working designing stuff I learned some management perspective;

  • How much will it cost?
  • Does it work?
  • When can we ship it?

At no time did the bean counters ever say “Did you understand how this thing works while you were designing it?” A significant amount of our designs came right out ‘cookbook’ component manuals provided by the manufacturers. We got no brownie points for reinventing the wheel. The sooner we delivered product the sooner the company could start making money.

So that is the main point right? Delivering something of value and receiving money in return as soon as possible. What is the main value of any code camp or academy? IMO teaching people to deliver code optimally. For example, mathematicians have been working problems for several thousands of years and there are good solutions to many of those problems. Should a student interested in speed become a mathematician and try to invent a new solution without looking at all the existing solutions? That could take thousands of years! Copying an existing solution within legal limits is a much better idea for product delivery, especially within a work group or company. Intellectual leverage comes from idea and code reuse.

Stepping back from the detail, understanding a class of problem is much more important than solving a specific problem, because there will be more problems like that that can also be solved the same way. We should have a clear understanding of why a certain problem is being presented and how the solution is classified so we can find the solution again when we need it, cook book style.

So back to the original question. How much help to give. Should you help a person during a professional competency exam? Definitely not! Is FCC in the same category as a professional exam? Probably not, because you can Google FCC and find other peoples solutions, and because at course completion you have no way to know for sure to what degree someone arrived at the solutions themselves. FCC is a learning tool. More help is better! Thank goodness for fewer hundred mile drives to the computer bookstore.


#25

I AGREE with all what you said.

Thanks for sharing this I will try to put this in practical.