17/07/2018

Programming Problems and Finding Solutions

Introduction

Quote:

This article does not contain any source code or technical discussions but it’s more of a guideline.

It’s been years (11 years to be exact as of this time of writing) since I am involved in various technical community forums such as forums.asp.net, codeasp.net/forums, aspforums.net/forums, forums.xamarin.com , c-sharpcorner.com/forums and most recently here in the CodeProject community. I’ve helped resolve hundreds or maybe thousands of questions from simple to very complex issues. Being in the community is awesome as I get the chance to learn and help fellow developers around the world. Most of the time, I’ve encountered questions that are unclear, duplicate questions and even more, questions that are very general in nature. So I thought I would share some of my thoughts on the topic and provide some guidance for those developers, most especially to the freshers who are looking for a solution to their problems.

Programming Problems and Finding Solutions

Figure 1: Image courtesy of Daily Mail

Problems are pretty much normal as human beings. Problems aren’t only for our personal lives but also apply in the programming world or any professions you have. If you are a student or a professional programmer, it is normal to deal with problems every single day. If you can’t accept the fact that problems exist, then you better quit ( ~of course, I’m just kidding 🙂 ). Problem is what makes us better and grow as a professional, if you just know how to deal with it.

So What this Article all About?

This article outlines some tips on finding solutions to your programming problems, how to properly use the community forums and how to contribute as an answerer to the forums.

Programming Problems and Finding Solutions

Figure 2: Thinking

How to Find a Solution to a Problem?

When we encounter programming issues and errors, the first thing that most developers might think is “forums”. Most of us know that community forums are the best place to talk about problems, but that doesn’t mean that you abuse it. Abuse? Yes. Forums aren’t your personal diary that you just simply write something to when you want to. So before starting a new thread in forums, consider following these general rules:

  1. Learn how to use the debugging tools to figure out what’s going on with your code and why you are getting the error. In most cases, debugging saves you a lot of time rather than finding a solution right away on the internet when your page breaks. For example, if you are on the .NET stack and used Visual Studio as your development tools, you can take advantage of the debugging features that it offers. See: Debugging in Visual Studio

  2. Use Google. If you are getting error in the middle of your development that you are not familiar with or wanted to know a specific technology. The vast majority of questions posted to forums and newsgroups have already been asked and answered. You may save a lot of time by searching. I find this works particularly well if you Google your error message or term that you would like to know about.

  3. If you are working on a project with your team, then try to ask your teammates about the issue that you are getting. One of them might have already encountered the same error you get and may be able to help you. This can save you lots of time instead of waiting for an answer in the forums and finding solutions in the internet. Asking something is the key to learning and it doesn’t make you dumb. Just make sure to ask the right question and make sure to do #1 and 2 first before asking something to your team. Keep in mind that they also have a work to do.

  4. If your question is general in nature like “How do I edit, update and delete in GridView?” or “What is MVC?”, then please try to read some tutorial first. Most likely, people will just give you links to tutorials if you post the same in forums. That can be a waste a lot of time.

  5. Make use of forums. If you already tried #1-4 and still didn’t get any solution, then that’s the perfect time to start a new thread in a forum.

Finding Your Way in the Forums

Programming Problems and Finding Solutions

Figure 3: Finding your way in the forums. Image courtesy of Corbis.
Quote:

Credits: I took a few tips from Mike on his post here about how to get your forum question answered. And I would like to reiterate those points here.

The very first step that you need to do is to find the appropriate technology forums. While some online communities provide a variety of forum sections wherein you can post general questions, it is still best to post your issue at dedicated forums. This will give you a better chance of getting answers. Take a look at this FAQ about the Correct Forums to Post at.

Whether you’re a new member to community forums or even if you’ve been there for a while, this post is intended to help you get the most out of the forums.

As with any online community, standard rules and guidelines should be followed. While this post doesn’t represent a complete set of forum guidelines, it covers some of the more common issues/questions you might come across as you begin to participate.

Now Down to the “meat”

  1. Avoid thread-jacking. Thread-jacking is the practice of appending your question to an existing thread in a forum and reviving old and resolved threads. Adding your question to a current thread might be considered very rude. It’s a bit like walking in on someone else’s conversation and shouting “Hey, can you look at this?”. If anyone answers your question, the thread is likely to get very confused and mixed up, and no one will be quite sure who is addressing which problem. So please create your own thread for your own issue.

  2. Post your question to a more specific forum section. This means that don’t post SQL Server question to ASP.NET Web Development forum section. It’s not uncommon to be a bit overwhelmed at first by the number of individual forums in any online community site. Finding the correct forum to submit your post plays a very important role in ultimately receiving an answer to your question so go ahead and take a moment to look around and familiarize yourself with all that’s available.

  3. Avoid duplicate post and don’t post the same question to different forum section. This will help you easily manage your thread and focus only to a single thread. Remember: Always pick the most specific forum that relates to your question.

  4. Provide a meaningful title to the post. “I have a problem! Help!!” is not meaningful. “URGENT!” suggests you are late with your homework and no one is interested in that. Also adding exclamation point “!” to your subject is a bit rude so be careful.

  5. Make the title relevant to your problem. “GridView Problem” followed by a description of the failure to update a database will get the wrong people looking at your post.

  6. Be specific. Don’t just say your code “Doesn’t work” or “is broken”. Explain what you are trying to achieve. What steps did you take? What happened? What have you already tried to resolve the problem? Please note that you are looking for a solution and not giving details about your problem is just a big waste of time and 99% you will not get any answer.

  7. Please state what you’ve tried so far to fix the problem. I’ve seen so many times where people reply to a post with suggestions, and the OP/TS replies with a “I’ve already tried that!!” That is a huge time-waster.

  8. Show the relevant code and error message if appropriate. By relevant, I meant sufficient to see the lines of codes that produced the error in the context. Not unless if needed, posting the whole source code or attaching the whole project is just a waste of time as most contributors have a limited time only and don’t have time to figure out the whole code by themselves.

  9. Paste the actual code you are using – not a typo-ridden syntactically-rubbish “something that looks like it”. How could someone help you with codes that are not readable? Also make sure to always format your codes when posting it to make it readable. No one is interested in looking at code that is messed up.

  10. If you need to use an image as part of your post, be sure to preview it to make sure the link works.

  11. Specify which language you prefer, if not obvious from your code. Also state which database type and version you are using, if your question is database-related. Remember: Be specific.

  12. Don’t mix your thread with different questions as it can be very confusing to people reading it. Also answers on the thread will get mixed up and future readers will be having a hard time finding the right solution that helps you. Instead, create a separate topic for each of your questions.

  13. Read what you have written before submitting your post. If English is your first language, and you haven’t taken the trouble to ensure that your post makes sense, no one is going to spend time trying to make sense of it for you.

  14. Don’t apologize for being new to anything. Everyone was once.

  15. Don’t get frustrated right away when you don’t get a response from members in the forums. You should keep in mind that most members are just volunteers (unpaid members) just like you and me. So you can’t really expect to get a prompt response especially if your query is more complex and unfamiliar that would need more analysis and time. Volunteers like you also work for a living. So just be patient 🙂

  16. Finally, when you get the answer to your question, be sure to mark the post(s) that helps you as the answer. This way, future reader that might stumble on your thread looking for the same solution can easily determine which post actually helps you. Don’t just abandon your thread when you got an answer. Note that forums are community, so please do your responsibility as an “asker” or “thread- starter”.

Contributing to Forums

Technical forums are a very important part in the community as it is where you can ask for help and at the same time, share your solution to a particular problem. To tell you the truth, the developer community helped me to become a better developer. I am a self-taught guy. I remember when I got my first job; I had been assigned to develop solutions using .NET, and it scared me because I didn’t have any experience in the framework and the worst was not being really familiar about the web and how stuff works in a stateless world. I struggled a lot during those times and with the help of the technical community, I was able to understand the basics and learned something each day. In turn, I tried to give back to the community by helping other developers solve issues.

If you think it’s about time for you to transition from an “asker” to an “answerer”, or if you wish to give back to the community by contributing to the forums, then here are a few tips for you.

The “answerers” play a vital role in the forums as these folks are the ones providing answers to your issues or at least guiding you to the right direction.

If you contribute as an “answerer”, then these are some of the tips that I would like to point out:

  • Don’t try to answer if you are after points. I know points help motivate members in participating more but it can also lead to the wrong way. Remember that when you help someone, you should forget about points; instead focus on giving a quality answer to a question. The real reward for answering is that you resolved the issues.
  • Give quality answers. It’s okay to post a link as a reference for as long as you support it and it’s relevant to the question. If your answer requires a sample code, then feel free to give a code snippet with an explanation to your code.
  • Be kind to others when replying and respect each other. If you see someone who’s rude and disrespectful, then feel free to notify the site admin.
  • Read the question carefully before giving a reply. I often see people who are just giving links and wrong information; this is because they will just read the question title and not the details of the question. This can result in flooding the thread with meaningless replies and helpful replies will not be noticed.
  • Don’t post a duplicate reply. I’ve seen cases that someone will just copy the answer of the previous answerer. This doesn’t give any value to the thread and to the “asker.”
  • Don’t stop contributing to forums. Being involved in forums can really help you grow as a professional developer. You will learn many things over time and test your skills in solving real-world problems.

Forum Courtesy

With so many members and so many points of view, we cannot hope to always agree on what the right answer to a question might be. In fact, it is often these different opinions on a topic that ultimately connect a member’s question to a truly helpful answer.

If you see a current topic for which you disagree with the opinions expressed in the existing posts, go ahead and post your opinion too. But please keep all posts polite, courteous and on-topic.

Disclaimer

Some of the opinions expressed in this post are taken from Mike’s post, the rest are just my own personal opinion and I hope that would at least guide developers finding solutions to their problems.

Other References

That’s it! If there’s anything that you’d like to add in the list, feel free to drop a comment, and I will update the article accordingly. Thank you. I hope this article helps.