This is a list of everything you need to have when developing in python, and some of these work for other languages (or even all!), and are things that you'll find you can't develop without after a while.
Well, duh! GitHub is the most basic thing any developer has. Since GitHub also has the largest community of developers, going there makes sense, since your code will reach a larger audience. However, there are arguments that platforms such as GitLab or BitBucket are better. Here's GitLab's official comparison of GitHub and GitLab.
No, don't go! But whether you use GitLab or GitHub, you obviously have to have Git. Git allows you to connect a "remote" (GitHub, GitLab, BitBucket, etc.) to your computer code, and commit changes you've made on your computer to the remote while saving all of the commits in the commit history. This way, if you stumble across a bug that was caused by the previous commit that could have been prevented, you can easily switch back to the commit. You can also create branches to seamlessly switch between different versions of your project, eg. I'd create a branch to work on a new feature, and then merge the branch with the main branch (often named "main" or "master"). I can also create releases, which git will save as tags, where you can also switch between to see previous versions. There are many more things that Git can do, but I won't go over it all now. You can download it here. Now, if you find Git too complex, but need the features, fret not! Git comes with a built-in GUI, which you can use, but, there are also git clients, such as GitHub Desktop, or Sourcetree. These supercharge git to allow you to be able to do things with a single click rather than multiple CLI commands.
Code editors are important. Very, important. They allow you to speed up your coding with snippets, debugging, and more, vs. coding on your computer notepad, yeah, I know, not very friendly. There are several code editors. And, it really depends on what you want. For python, I think it really comes down to VSC and PyCharm. PyCharm is for pure python development, but VSC comes in handy with support for many other languages, and is extremely customizable, with a busload of extensions. Although PyCharm also has extensions, as I said, it's purely for python. However, there's also Atom and Sublime Text, but these aren't as good as VS Code and PyCharm.
There are most likely hundreds of different python packages that you'll use when developing, but, there are a couple you almost need.
- Numpy, "the fundamental package for scientific computing with Python."
- Pandas, although this is not a requirement, Pandas comes in handy with data science.
- Matplotlib, for graphing and plotting data.
- Pillow, a python imaging library.
- Requests, for sending HTTP(s) requests.
- Tkinter, can come preinstalled with python depending on the version, for graphics and GUI interfaces.
- Pytest, a great testing library.
- Coverage, a code coverage tool for python.
- Pyinstaller, converts your python code to an executable to help you distribute it to your friends even if they don't have python.
You can install them all with this handy command:
pip install numpy pandas matplotlib pillow requests tkinter pytest coverage pyinstaller
That's about it! Suggest anything else you think that you should be added, and I'll check it out in the comments!