Hey! I’ve decided to give coding a try again after about 30 years off and shockingly the landscape has changed in that time. I’m running the python track here on Exercism while simultaneously learning Git/GitHub and VS Code. In my mind they all work together with a synergy that optimizes my learning speed, but in reality they all fight over my last 34 brain cells and I confuse them. Has anyone run a setup like this, and if so can you walk me through the proper setup? I think I have them all talking to each other now, but I’m not sure if I should be initializing a new repository for each practice exercise or if I can somehow push them all into one big “Exercism” repo for simplicity. Basically I’m lost and overwhelming myself. Any help would be greatly appreciated!
You can do one repository per exercise or you can do one repository for all things related to exercism. That is up to you.
Your editor should not matter in terms of python as a language, but there are surely plugins or extensions that will support that language for your choice of editors. The programming language likely does not care that you are using VSCode or another editor, and so does not really need to talk to that editor.
Let us know what is causing some confusion, or hardships, and we may be able to help you out.
I’d really consider our Coding Fundamentals course if you want to have some fun and get the fundamentals in good shape: Bootcamp
Hi @JTMichelsen
I’m the maintainer of the Python track, and we’re happy to have you here on the Exercism platform!
As Jeremy has mentioned, we have a programming bootcamp that’s targeted toward beginners and anyone who’d like to improve their programmatic problem solving skills. We just wrapped the first (live) run-through, and it was really good! I had a lot of fun - even as someone who’s been programming for a while.
But … back to Python, VS Code, and Git with GitHub.
We have some documentation on coding and testing locally on the Python track that might be helpful to you.
But it is easy to get overwhelmed with tooling and setup. I recommend that you take each tool/bit by itself for a while before you integrate them.
For git/github:
Trailing on about Git
I like to remind folx that git is NOT github. git is a tool for source control that is installed on your local or cloud system. It’s designed to create and track changes to code and documentation — whether that be locally or remotely in services like gitlab
, bitbucket
, or github
. So you can use it to set up a repo locally that then talks to a remote repo in one of those services or elsewhere. Now – if you are going to use github
, they do have some excellent tutorials, a great desktop program for working with repos, and a tutorial for integrating with VSCode. But gitlab as all that same functionality, as does bitbucket.
All that said, I would recommend starting with the ugly, painful, command-line git. I feel like it is the only way to really get fluid with it and understand what is going on. I personally use git on the command line as much as possible. I consider it “self defense” — without daily practice, I forget things. Oh - and I also use Oh shit, git?!!? to get out of jams.
Also? You may switch IDEs or editors. But if you use git
on the command line, it won’t matter, and you won’t have to reintegrate things when you do. A prime example? PyCharm’s git integration is beyond irritating — but I don’t have to deal with it, because I don’t use it. I use PyCharms terminal to interact with git and I am on my way.
I’d also recommend creating a single repo for Exercism exercises. While you can do one repo for each, creating repos is not usually an issue for folx — managing branches (maybe a branch per exercise??) and changes (commits) and collaborating with others is the big deal. Also? There are 142 exercises on the Python track … 142 repos is a whole lot of noise without much benefit.
For VSCode, there are a few tooling plugins that can help you with things:
VSCode Plugins and Extensions
- Microsoft recommends the Python Extension. This will set up the syntax highlighting, and other features. There is also a tutorial here for setting up VSCode for Python.
- Some folx swear by the PyLance Plugin. I remain … skeptical. I learned Python well before Typehints stabilized, and so find static typechecking for Python of mixed utility.
- There is a plugin for PyLint (our analyzer on the website uses Pylint to make recommendations) - you may or may not find it useful. There is a MS tutorial here, although I tend to use PyLint on the command line and not inside my code editors – it’s just easier to see output and toggle things.
- There is a plugin for pytest (Pytest is the basis of our online test runner, although we also use
unittest
for test writing) – although MS has a tutorial for how to set up and run tests without it (there is also this tutorial from Pytest with Eric). I run pytest on the command line for the same reason I run pylint on the command line … but I am a bit weird, and I also use a couple of other IDEs in addition to VSCode, so it’s easier if I run tooling outside of them.
Some digressions on dev containers & VSCode in the cloud
One advantage of using VSCode/GitHub is that you can have a “cloud setup” that can sync to Github, Azure, and other places in the cloud. VSCode has a settings sync that will sync the plugins and options you make across machines. You can also setup profiles for each scenario. And there is a container extension that will manage containers and editor settings for you, should you want to spin one up on Azure or GitHub.
Finally (I am assuming you have this … but just in case) there is the Exercism CLI for downloading and uploading exercises to the website. Depending on where/how you install this, you can call it from VSCodes terminal app, and have it do its work.
WHEW! That’s a lot - so don’t go trying to digest it in one gulp. And let us know if you have any questions or issues - on this, or exercises, or the bootcamp.