I need to quench my thirst for knowledge and learn something new just for the sake of it.
I’ve already learned:
-
Equations and pivot tables in Excel
-
Vector graphics in Inkscape
-
Music mixing in rekordbox
-
Personal VPN on a raspberry pi 4 with OpenVPN
-
LAMP stack web hosting
-
Streaming & video capture with OBS
-
Manual & automatic backups with FreeFileSync
Things I’m open to:
-
FOSS (even beta) or free-as-in-beer software
-
A high or low learning curve
-
Tools for niche fields that I’d otherwise have no reason to learn
It is tradition (and fun) to start your Blender journey with the Donut Tutorial.
Nice I haven’t done that one! Haven’t even touched blender in years, but I’ve gone through like 3 of his donut tutorials over the past decade or so. They’re really fun and show off how impressive the program is.
OpenSCAD. 3D modeling as code.
I’ve gotten a lot out of it, and their tutorial is excellent.
I really like openscad! It maps well to how I think through modeling a part. I was just using it yesterday
One thing I want to learn which seems important to me career wise is HEC-RAS, a hydrological River Analysis Software. I think it’s free?
From this you can build your own predictions of when flooding (or drought!) will occur in your local area
As a professional water engineer it seems unfathomable to me that someone would learn HEC for fun, but it’s really cool that you want to! Yes, it is free and maintained by the US Army.
Godot. Start with an idle game, move onto more. Just don’t make a horror game, way too many of those and a lot of them are bad.
My suggestion already submitted was Blender, but any of these ideas require a purpose. I don’t think you truly learn an application or language (even human languages!) if you don’t have something you’re trying to do with it. Even music (it’s a language), you can learn how to play something, how to put together notes and sounds, but you really start figuring out how to do things when you have a need to accomplish.
I would say 90% of my coding and application knowledge comes from decades of having a need or inspiration to do something, and having to find the right tool and learn how to use it to make my idea become something (even if it doesn’t get finished). When that purpose or desire disappears (for whatever reason) I stop wanting or caring about learning more about the tool I was using to do it with.
Your initial request seems to point to a different style of learning, wanting to do it for the journey itself. That’s cool, I just wonder if you had a reason for doing it, would it make the effort more fun and worthwhile.
Since you already recorded something with OBS, you could try your hand at video editing with something like kdenlive
I thought so too. KDEnlive a solid base that is used by many FOSS youtubers akin to Veronica Explains. It’s capable of things up to rotoscoping/chromakey deletion, it also closely resembles how most video editors work, except maybe for trendy node-based tinkering in effects - that would be covered in full by Blender/Godot further down the line. Example project: make a short explanatory vid about one of the tools already learned.
Meshtastic (Software and hardware).
- MuseScore 4 is a (the!) free music notation software. It is genuinely fantastic. It’s also a lot of fun, if you know some notation basics and want to play around.
- Darktable is a Raw photo editor in the vein of Lightroom. Except where lightroom is sleek, polished, user friendly and Adobe (🤮), Darktable is FOSS, and clearly so both in the design and functionality: it could easily make a UX designer cry, but if you’re willing to give it a try, there does not exist a more potent raw editor on this earth. Lightroom is a toy in comparison. (Now whether you need that is another question… But I’ve been using it for more than 10 years, and am still finding new, incredibly useful sub-menus, drop-down contexts on hidden sliders,…)
- rmpc is a really cool TUI music player
Python, and you kind of want to take the long way around.
Get it up and running in its own virtual environment. On Linux and Windows this’ll just be a directory its in, and once you’ve activated that install via a terminal command everything stays self contained. It has a package manager called “pip” that will handle package and dependency management. Use pip to install spyder, pandas, matplotlib, numpy, scipy, and openpyxl. If you install anaconda this is what it’s doing under the hood, but there are licensing hiccups with using their package repos.
Anyway, however you get up and going, numpy is fast numerical storage, scipy is a lot of scientific algorithms, pandas is a data analysis library that rides on top of numpy, and openpyxl is an interface to excel files from python. Pandas will get you one line CSV file reads and writes and more complex manipulation of Excel spreadsheets. Openpyxl gets you cell by cell manipulation of a spreadsheet. Spyder is a development environment.
It can do much, much more.
I asked an LLM for a small python example with pandas and matplotlib. Load it into spyder and run it and see what happens (tip, go into the settings/preferences, IPython Console, Plotting, and change the Graphics Backend to “Qt” to get the plots in their own window).
Python Example
import numpy as np import pandas as pd import matplotlib.pyplot as plt def generate_damped_signal(): # 1. Setup Parameters fs = 50 # 50Hz Sampling frequency t_max = 6.0 # Run for 6 seconds to clearly visualize it hitting 0 at 5s freq = 2.0 # Oscillation frequency in Hz # 2. Generate Independent Time Axis # 50 samples per second from 0 to t_max time = np.arange(0, t_max, 1/fs) # 3. Generate Dependent Damped Signal Axis # Using an exponential decay constant of 1.0 ensures that at t=5 seconds, # e^(-5) drops down to ~0.006, effectively decaying the signal to zero. amplitude = np.exp(-time) * np.cos(2 * np.pi * freq * time) # 4. Create Pandas DataFrame df = pd.DataFrame({ 'Time_Seconds': time, 'Signal_Amplitude': amplitude }) # 5. Export DataFrame to CSV File csv_filename = "damped_signal.csv" df.to_csv(csv_filename, index=False) print(f"Successfully generated DataFrame and saved to '{csv_filename}'") # 6. Plot the Data Using Matplotlib plt.figure(figsize=(10, 5)) plt.plot(df['Time_Seconds'], df['Signal_Amplitude'], label='Damped Signal', color='cyan', linewidth=2) # Visual Anchors for the 5-second decay mark plt.axvline(x=5.0, color='red', linestyle='--', alpha=0.7, label='5-Second Decay Target') plt.axhline(y=0.0, color='gray', linestyle='-', alpha=0.5) # Labeling and Grid Configuration plt.title('Damped Signal Decay Over Time (50Hz Sampling Rate)') plt.xlabel('Time (Independent Axis - Seconds)') plt.ylabel('Signal (Dependent Axis - Amplitude)') plt.grid(True, linestyle=':', alpha=0.6) plt.legend() # Display the Plot Window plt.show() if __name__ == "__main__": generate_damped_signal()
Docker and Docker Compose. Once you know that, you’ll be able to self host almost any FOSS.
Take it one step farther and learn podman and quadlets. It’s like learning docker/compose, but it’s also rootless if you do it from userspace.
Inkscape
I know you said software, but I would like to suggest a musical instrument. They still require learning a new language and typically provide a huge level of self satisfaction. A cheap keyboard or guitar can provide literally thousands of hours of study.
Slackware- Wait you said fun, nvm
Aseprite (you gotta compile it yourself if you wanna it free tho)
I’d say GIMP for photo editing would be a good one to learn. It’s come in handy in a pinch both at home and at work when I’ve needed something done up real quick.











