Programming
Programming is creating works of art that do things.
How to learn programming?
In my opinion, the best way to learn programming is by developing programs to solve existing needs or desires, starting on simple ones and moving towards more complex ones as you develop your skills. You could start with a simple script to automate a boring task, or a game such as Tic-tac-toe or Snake. Perhaps the projects I’ve developed over the years could be a source of inspiration.
If you’re unsure, which language to start with, go with Python. It’s simple to install compared to e.g. C++, and you can get the simplest programs running with only a few lines of code.
My preferred way to install Python on Windows is with Miniconda, but it may be easier to start with Anaconda. On Linux, Python is included with most distributions, so there’s no need to install it to get started. You may probably want to install an IDE, though, as writing code with a mere text editor can be a pain.
The most important skill in programming is googling. There is no single source for all the knowledge you will need, and instead you’ll have to google it piece by piece as you need it. Many of the search results will take you to Stack Overflow, Stack Exchange and Reddit, where people have posted lots of questions on various topics and got many useful answers from fellow programmers.
If you’re a student, teacher or academic researcher, I highly recommend joining GitHub Education. This also includes access to Copilot.
IDEs
Neovim
I’ve heard lots of positive comments about Neovim, but haven’t had the time to properly set it up for myself. My preliminary config files can be found here in my linux-scripts repository.
PyCharm
PyCharm is a feature-rich IDE for Python development. Its professional version has comprehensive support for web development with Django and remote development functionality, which requires only SSH access to develop on a remote server as if the project were cloned locally. This is highly useful for development of software, where the unit tests require lots of CPU time. The professional version is free for university students, teachers and academic research. Unfortunately PyCharm is proprietary software, and I’m therefore looking for open source alternatives.
Please vote on the request to add support for automatic plugin updates.
Plugins
- .env files support
- .ignore
- Activity Watcher
- Batch Scripts Support
- ChatGPT - EasyCode
- Docker
- Fortran
- Full Line Code Completion
- Makefile Language
- PowerShell
- Requirements
- TeXiFy IDEA
- WakaTime
VSCodium
VSCodium is an open-source distribution of Microsoft’s VS Code. This is my go-to editor for other programming languages than Python.