Getting help#
Seeking for information online is necessary and helpful for programmers of any level. I would even argue that the best programmers are the ones who know how to efficiently find information online.
When encountering an issue, the first question you should ask yourself is: “am I the only person likely to be affected by this problem?”. The answer will be no in 99% of the cases. For these, here is a list of recommendations:
Stack Overflow used to be THE place for programming questions. Thanks to community based moderation rules, the good questions are more visible than bad ones, and good answers are rewarded. Take a tour of the site’s principles, and look for similar questions before asking your own one. Many of its content has been scrapped by generative AI (see below), and the model that has fueled stack overflow’s success over decades is at risk. Still, it remains an excellent resource to date.
Learn to ask the right question to your search engine. Naming this the correct way (semantics) is one of the objectives of this lecture, and I hope that in the end you will not only write better code, you will also speak the programming language a little better.
This class was developped before the rise of generative AI models like ChatGPT or Github Copilot. Today, these tools are omnipresent and are extremely useful for both beginner and expert programmers. I use these tools almost daily in my work. Feel free to use them in your learning journey - be aware however of their pros and cons. They should assist you in learning, not replace your own brain.
If every other thing fails (i.e the remaining 1% of the cases), then:
Ask a friend
Ask your professor
Ask a question on Stack Overflow. Before doing so, read what a Minimal, Complete, and Verifiable Example is and try to stick to these recommendations.
If you think you discovered a bug, than report it to the library directly. Almost all the scientific python packages are hosted on GitHub: the “issues” tab is where to report bugs. Read the excellent Craft Minimal Bug Reports article from Matt Rocklin before doing so.