Like I wrote in my last article, as a developer sometimes you get stuck on a problem for a few hours or a few days, your code won't work, and you think nobody can help you 😿. This can be very frustrating, but fortunately, there are plenty of ways to look for a solution or to seek help. You are probably already using some of them with success, yet there may be some you don't think of and that could help you a lot. That is the topic of this article.
Use the obvious but efficient ways to overcome your programming problem
There are many obvious ways to find a solution to a programming problem. And as you must be already familiar with them, I won't spend too much time talking to you about them.
I guess every developer knows about "rubber duck debugging": sometimes just explaining your problem to someone or something 🦆 can help you understand what is not working correctly. I think there are two interesting ideas to draw from it:
- it's important to clearly state what your problem is and what did you try to solve it 🔍
- sometimes you can find the solution to your problem just by looking at it from another perspective 🔭
If you know how to quickly explain what your problem is about (and even better if you have written it down), what you tried, what worked, and what did not work, then it will be easy to ask for help from your colleagues. It will also help you if you need to ask your question on a Q&A website like StackOverflow. These are two common things people do to overcome their issues and they often work well.
Another obvious one is to use your favorite search engine (Google, Bing, DuckDuckGo, Qwant, ...) to find a solution. I often think that part of being a developer is to know how to efficiently use a search engine (if you are interested, there are many articles on the internet that give tips about how to better use a search engine) and how to quickly identify the search results that can help you.
If you have been stuck for a lot of time, just take a break. Go for a walk 🚶🏽♀️, go cook something, go play sports, in short, do something else to let your brain rest. Sometimes your brain needs time to process information 🧠. Maybe you just need a good night's sleep before you tackle your problem again. You might even be surprised to find the solution while doing something else. For example, I know that some people (myself included) get a lot of new ideas or find solutions when they take a shower (of course, think of the planet 🌍 and do not take big showers just because I said that).
Now let's talk about less obvious tips to get unstuck.
Look for help in your company
I have already talked about asking for help from your colleagues. Usually, that is the first thing we do. But we often only ask our close colleagues or the colleagues in our team. If you are working in a big company, many people that might help you even if you don't know them personally. So how to contact them?
If your issue concerns a specific topic and there is a Subject Matter Expert for this topic in your company, maybe you can contact him directly by email or by chat. There might even be a community of people interested in this topic that discuss it on Microsoft Teams or Slack channels (or whatever messaging application your company is using): join the conversation to raise your point, people are often happy to share their knowledge on a topic they like.
I am sure there are many other ways to ask for help in your company that you know but don't think about using. For example, your company might have an enterprise social networking service like Yammer. In my current company, we have Stack Overflow for Enterprise (it's like a private instance of Stack Overflow for a company) and it's great to discuss technical questions inside the company, even with colleagues from other countries. Don't hesitate to use your company communication tools to seek advice from experts, someone may be able to help you!
Ask questions in specialized forums and Q&A platforms
Yes, I know you already know and use StackOverflow (by the way, do not only search your solution in answers to existing questions, take the time to contribute too by asking questions and answering some). However, there are plenty of Q&A platforms, maybe less famous than StackOverflow but more specialized. For instance, if you are facing a problem with an Azure service you can use Microsoft Q&A which is the official Microsoft site for technical questions on Microsoft products and services. People from the community will try to help you as well as people from Microsoft. If you have a question about Vue.js you can ask it on the Vue.js forum.
Reddit is another interesting platform. It's kind of a collection of forums/communities, where each forum/community is about a topic. It's popular among developers so there is a community for almost every developer topic/framework/stack you could be dealing with. Therefore you should find a community where to report your problem and some people might give you some answers or some leads to exploring. Please note that it's sometimes complicated to get visibility for your question because its visibility will depend on whether it is upvoted a lot or not.
I almost forgot to talk about GitHub Discussions. GitHub Discussions is a collaborative communication forum you enable or not on a GitHub repository so it might not be present all the time. But when your problem is related to an open source project on GitHub that has GitHub discussions enabled, it's a great place to ask questions. The issues tab of a GitHub repository are another place you can ask questions but it might be less suitable to discuss your problem, it depends on the repository and what the maintainers of the project prefer.
Talk to community members where they met
When you are stuck with a programming problem it's often related to the software (framework, library, tool, ...) your code is using. Therefore the people best able to help you are the maintainers or other users of this software. And whether or not they are part of a company or an open source community, they often use communication tools like Slack or Discord to talk. So, a good idea 💡 would be to join the corresponding Slack workspace or Discord server (generally they are open to everyone to join) and talk to these people through the appropriate discussions/channels. Most of the time, channels/discussions are categorized by topic and there are sometimes some dedicated to people looking for help. Each community has its rules and ways of communicating so be sure to follow them but generally, people are welcoming and happy to help 😀.
Just to give you a few examples of communities:
- Azure Functions has a discord community
- Nushell has a discord community
- Pulumi has a slack community
- Nuke has a slack community
- Redis has a discord community
- Vitest has a discord community
You can see there are companies behind some communities (like Redis or Pulumi). In any case, communities backed by a company or not, Discord and Slack communities are a good place to discuss with people building the software you are using. There are a lot of communities whether it be on Discord, Slack, or on other tools. So I'm sure that whatever you need help with, you will find a community to join.
💡 If you want to know more about that, you can check the third article of my series "How to do a technology watch?": Be part of the community.
Use Twitter to get some help
I don't know if you use Twitter for technology content but it's an amazing platform for everything related to IT. Not because it's a better microblogging platform than others (I know that Twitter is quite criticized right now because of security and privacy concerns), but because of all the people and organizations that use it. Lots of software products or frameworks have their own Twitter account and there are even some dedicated support accounts.
Hey there, thanks for reaching out to us. The following documentation may help: https://t.co/pHibXF54v2 Alternatively, you can reach our subject-matter experts by creating a forum post here: https://t.co/QT9OUzsOJZ ^TL— Azure Support (@AzureSupport) August 13, 2022
On Twitter, you can also join Communities which are spaces created by people to engage with others who share interests. For instance, if you are struggling with C# code, you could join the dotnet community and tweet your question, some might have encountered the same issue and know how to solve it.
What I find extraordinary with Twitter is to be able to reach some people that I could not have reached otherwise. And I am not talking only about developer advocates who are easier to approach, but people building the products I am using. When someone from a team building Xamarin, Azure, winget, or GitHub takes the time to explain to you something you are struggling with just by answering your tweet it's always nice. Of course, sometimes people don't see your tweet or don't have the time to answer. However, by experience people on Twitter are usually very kind and answer. Obviously, I don't spend my time harassing developers on Twitter with my questions but I had interesting answers to my tweets and some nice exchanges by private message too.
👋 what kind of filters would you be looking for here?— courtney claessens (@sidewalkballet) August 17, 2022
I hope you learned something and that these tips will help you get unstuck next time you face a programming problem. To finish I want to give you one last tip when stuck with a difficult programming problem: once you find the solution write it down somewhere so that you can find it later when you face the same issue again (because you might not remember what was the solution). You can write it in your notes 🗒️ with links to articles that help you solve the problem, or even better you can write a blog post about it.
This article is part of the 4 articles in 4 weeks Hashnode writing contest.