I’m by all means not a professional programmer or software developer. I do get paid to write code some times, which technically makes me a professional programmer, but I mostly write small tools to take care of repetitive tasks. As a supervisor, I also work with the pipeline in the companies I work for and write production tools for my teams. Over the years I have written a lot of small tools for Autodesk Maya. Maya happens to support Python (thankfully!) so my latest years have spun around this fantastic language.
I, therefore, consider myself an artist who knows how to code to help me be an artist. For me, some of the advanced setups become overwhelming so I have set myself up with what I feel is a nice and calm setup which I enjoy using.
In this article, I will be sharing some of my workflows with you.
In all fields, there seems to still be a fight between platforms. Linux, Mac, Windows. Which is better? In my world, it doesn’t matter. If you can’t adapt to an environment and use it to your advantage, go do something else. I have been working in all three environments, and all have their strengths and weaknesses.
I do most of my coding on a MacBook with macOS. I love the built-in Terminal and how it fulfills my needs out of the box. You might need to install a newer version of python, but that is quick and painless. (link to python.org)
Sometimes it can be a bit confusing for a beginner to work with environment variables on a mac. It seems like it can be spread out everywhere. Claudio Floreani had a nice explanation on StackOverflow in this thread. (link to thread) worth reading. The whole thread is worth reading actually.
I store all my files using iCloud so I can work with them on the go. Storing files locally feels outdated and I am surprised I didn’t start working like this sooner…
Windows also comes with a terminal you all know as the command prompt. In later years they have also introduced Powershell which looks a bit more like the terminals you are used to on the mac and Linux side, but in 2019, they also released Windows Terminal. It introduces tabs and is Open Source. Additionally, you can customize it to look and feel exactly like you want to.
You can either download it from the Microsoft Store or get it from their GitHub (link to the git repo)
If you want to have even more fun, you can use Windows Subsystem and run a local Linux shell interface in Windows without a virtual machine.
For both my environments I use one IDE. I have tried several, but I instantly fell in love with ATOM. This IDE is simple, supports tabs, window splitting and arrangements and can be customized to look exactly like you want. You can download user themes and you can also add a lot of extra functionality with packages. You have packages that can run code inside of Atom and there once was a functional PDF exporter. I hope that is fixed soon because I have needed it for uni work earlier and having that syntax go with the export would be nice.
Of course, you have smart autocomplete and syntax highlighting for your language.
You can connect to GitHub and one very interesting feature is how you can code together using their realtime collaboration setup called Teletype. This functionality requires all participants to be logged into GitHub
ATOM is fluid and fast, good looking and free. (link to the atom homepage)
OK, so that covers the work environment for the basic offline setups. When I started studying I considered getting an iPad Pro to do all of my tasks. What I was looking for was a device I could sketch on, take notes on and code on. I couldn’t find a nice and easy way to code directly on the iPad. That is when a friend of mine sent me a link to pythonanywhere.com (link to pythonanywhere.com). You have probably seen this already in some of my other articles. I didn’t end up with an iPad, but I use pythonanywhere a lot with my MacBook.
What you get with pythonanywhere is a virtual console and an IDE in one go. The free account gets you two consoles you can run at the same time and I have never reached the time limit. You can kill consoles when you need to free it up for another code to run. The free account has covered my needs so far.
Syntax highlighting is there, but no autocompletion (which, weirdly enough, I don’t miss that much)
Another interesting online coding platform is repl.it. This service is not limited to python only. You create a repl and choose your language. This setup also allows you to execute the code right in your browser.
You can choose between bright and dark themes, you have syntax highlighting, autocomplete and version control. It supports a wide range of languages and you can connect to your GitHub.
* I have had some issues with repl lately where it can’t load my code. It seems to be spinning in an endless loop looking for it and I have had to dig out some code from the version control. This made me return to pythonanywhere for a little while, but I will head back to check it out from time to time. It is a very nice setup.
From time to time you need inspiration. Youtube is obviously a place where you can find tons of info on python programming. There are a few favorites I would like to mention.
The first one is Kalle Hallden. He has a session where he codes your apps while streaming and he has a lot of interesting projects. It is a very motivational channel to go to if you are out of ideas.
Another channel that I think is great when it comes to learning python is Corey Schafer’s channel. I wish this guy was my teacher. He has the ability to explain all things, simple or complex, in a relaxed and professional way. He also has a ton of material on his channel!
Thanks for sticking around! I hope you found this helpful or inspirational. Feel free to comment with additional resources or alternatives to what I have set up here.