Learn Krita. David Revoy, artist of Pepper and Carrot, has a ton of great tutorials on using it.
post
It is tradition (and fun) to start your Blender journey with the Donut Tutorial.
Adding to that, since I work at a computer I was never motovated to stay at tbe same place to learn blender so I changed to Nomad Sculpt at the tablet and I love it, I can do it from my couch (or toilet lol). It is a different aproach tho
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.
Take up the synth, but using software on a computer instead of a keyboard. Learn how to write MIDI. 😌
Or get a keyboard (or digital piano), but hook it up to your computer via MIDI and then compose music with it.
It's a lot nicer using a real keyboard than trying to input notes with a mouse.
You can combine the two with something like Overtone (programmable synth) or similar
OpenSCAD. 3D modeling as code.
I've gotten a lot out of it, and their tutorial is excellent.
Is it perfect? Nope.
Is it useful? Yep.
Is it fun to play with? Most definitely!
I really like openscad! It maps well to how I think through modeling a part. I was just using it yesterday
How does this compare to FreeCAD or CAD in general?
It's very unique in the CAD space. It's almost more akin to a hardware definition language like VHDL than it is a traditional CAD solution.
You don't ever do any direct manipulation of your model through visual tools. There is a visualizer so that you can see your model, but all changes are done via plaintext editing of the model's definition file.
This has a lot of advantages, not the least of which is being able to version control your 3D models.
It has some disadvantages as well, in that some transforms that are easy in a traditional CAD software are a little more manual in OpenSCAD. I've definitely had to dust off my highschool trigonometry once or twice to get something the way I wanted it.
Specifically with regards to FreeCAD. I found FreeCAD to be a little inaccessible. It's unintuitive at best, and I found it unpleasant to work with, as it was exceptionally fiddly. OpenSCAD feels far more intuitive to me, but I also have a software engineering background. I think OpenSCAD may be trickier for someone without that, but it's hard to say.
It's quite different. I'm a programmer and find it substantially better suited to my mental model than FreeCAD. Don't get me wrong, I respect FreeCAD -- even envy it a bit and all the features -- but I need to imagine my shapes and describe how they fit together. I spend so much of my free time thinking of equations that product shapes (yay game dev) that it comes pretty naturally.
If you don't program or prefer a more visual, arguably professional, workflow, you probably won't like OpenSCAD.
Latex is worth knowing, its most commonly used for academic papers, but it opens up a whole world of scripting automated documents. But, to make it really interesting, throw in tikz and/or pgfplots for some interesting power tools. Tikz does A LOT, and is really powerful. But can definitely be overwhelming.
If all you want is to make documents and you don't have the constraints of academic publishing, I would rather recommend Typst. It's way more modern and less painful.
LaTeX is useful but the layers of abstraction makes it difficult to troubleshoot. I recommend the TeXbook and typesetting something with plain luatex, it's actually a joy to use. Maybe borrow some macros from OpTeX if needed, but those are philosophically aligned with Knuths TeX.
That is very true. If you just want to learn it, starting even at something like basic tex may make more sense. The latex ecosystem is where it starts getting interesting though, since there's been so much created and written for it. BUT that does mean you're stuck in a weird abstraction area. For when I'm just making documents (and not stuck to a specific journal format), I'm really enjoying org-mode and then piping its output to a tex PDF. I think markdown would work too, but org-mode inherits all the emacs modes, so you can get some pretty complicated in-document scripting done.
Plain TeX is simultaneously straightforward and impossibly complex. Want to change the left margin, just set hoffset to something, but if you want double sided output where the left margin changes depending on verso or recto page, then you need to redefine the output routine. Which admittedly is quite simple in TeX compared to the monster output routine in LaTeX, but still. To me, TeX is to LaTeX what C is to python.
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.
Docker can also be run rootless, though not by default.
True, but I personally don't see the point in adding a bunch of new packages to a system to make it work the way another system does when the migration process is minimal.
Using podman compose, I've migrated multiple docker compose to rootless with basically no required refactoring until I made it a quadlet so it would always just run.
Yeah I also switched all my docker containers to podman as well. I wasn't making any point for using either above the other
I wasn't making any point for using either above the other
I know, but I AM making a point to use podman over docker because it's rootless by default and requires less work/admin overhead to implement and maintain.
It's all well and good that docker can run rootless with a good amount of tweaking and configuration, but the juice isn't worth the squeeze IMO. I pulled the pin on that once I realized podman was the much better option.
I've never understood why Docker doesn't work like that by default.
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.
Thats why i struggle so much learning any type of programming. What's the point. Any software I'd want is super complex, and there's a billion simple tiny ones that have already been made.
I definitely look to see if the wheel is already invented, but I guess I started early enough when there wasn't a lot out there and had to make it work on my own. I totally enjoy having to hack together things and google answers (god, that's gotten a lot harder than it used it be), so that's also part of why I jump to DIY unless I find something that's perfect and already made.
A recent one where I stopped myself was automating backups. I was going to try to throw together something, but then ran across restic and Backrest and wow, it's so much better than what I could have done.
I think there's probably still room creatively, especially as a hobby.
I sort of see it as the opposite with software though, that popular options are bloated data-wise (and cost) and simple usage-wise, other options are small-ish data-wise but less user-friendly. It seems like the middleground (low data+easy-to-use) is less likely to exist, particularly for techniques that aren't as shiny/new. In some cases, it really does seem like certain workflows don't exist. (or perhaps for some things that we've seen before, implementations were always in-house rather than something that existed in a usable editor)
Which isn't to say stuff like that will be easy, maybe doable with limitation and if libraries can take you half-way there.
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.
Factorio
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.
Ardour, it's a FOSS Digital Audio Workstation
Bash. If you use Linux.
OpenFOAM. If you ever want to figure out the aerodynamic qualities of a cow. This may take more than a weekend.
Get your finances in order with Firefly III and Waterfly III (Android app, available in F-Droid)
I like numbers and was really tempted to go all in into this rabbit hole but this ends up being a lot of work and stress if you try to maintain it manually. It'd be ideal to be able to automate imports from your banking apps but those don't really exist, or depend on some possibly sketchy 3rd party services that I dont trust with my finances
I use a paid service (which might itself depend on one of those 3rd party bank syncing companies, idk), but it's wild to me that banks haven't figured this out yet and cut out the middleman. They can't want their customers to be exposed to more risk than necessary
Kubernetes (ala k3s) you can make any collection of computers a cluster and play with automation of apps and services
KiCAD play with circuit board design with FOSS.
FPGA programing! Tons of use case for when you need near line speed but can't afford the time and money it takes to build a full ASIC.
You can do really neat thinga in QGIS -- like make your own professional quality maps, make map animated gifs, etc
Try Proxmox Virtual Environment with community post-install scripts. It's a little virtual data center that you install on a dedicated small PC. You can run all kinds of services like a Linux VM, Pi-Hole, Copyparty, Romm, and stuff. It'll make !selfhosted@lemmy.world very happy.
SQL - understanding how to interact with databases will be an incredibly useful skill for whatever rabbit hole you next want to fall down.
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()
Obsidian (Free but not OSS) and PKM. Might help you improve how you build your knowledge, or might just trap you in an endless hunt for the perfect system.
NixOS if you’re looking for an endboss kinda thing.
Learn the basics of accounting by trying to use GnuCash (or KMyMoney) for your personal finances.
Or learn a proper text editor, such as vim.
ssh and scp (secure connection and file transfer)
grep (the standard command-line search tool)
sed (Stream EDitor, good for find-replaces once you learn how to use it)
awk (can operate on text files or command output that's organized in columns)
sc (terminal-based spreadsheet)
trash (safer replacement for rm that moves things to your desktop's trash directory instead of deleting immediately)
trash is a nice idea, but i guess it's hard to overcome the muscle memory, i might need to rename rm for it ;)
btw: does somebody else pronounces awk as awkward?
I was thinking that too, I wonder if rm can be aliased to trash. I mean it probably can as I do have alias rm='rm -i'. Wondering if it breaks anything.
You could get JOSM and become an OpenStreetMap editor. https://josm.openstreetmap.de/
Also install gentoo.
Learn the basics of a couple of FOSS audio-software staples.
LMMS - tracker
Audacity - Audio recorder
wow rekordbox looks nice! I've used Mixxx up til now.
One killer feature might make me switch: I see rekordbox allows mixing of spotify or apple music songs: do they also support navidrome? That would blow me away!
about the topic: what about home assistant? That should prove an adequate rabbit hole for you :)
KiCad takes around 5 minutes to learn and is some of the best software for designing schematics and PCBs.
Falstad is great for when you need simulations of schematics and don't want the headache of trying to use KiCad's built in simulation tools.
Both are FOSS.
CRRCSim (RC plane simulator)
Learn how to slope-soar a glider.
Best with the photo mountain scenery added in.
In many distro repositories too.
Slackware- Wait you said fun, nvm
Aseprite (you gotta compile it yourself if you wanna it free tho)
Lilypond. Its music software. Learning it will keep you occupied for at least a week.
One week of keybr.com to improve touch typing skills, which should serve you across all your IT endeavours... Unless you choose to learn gimp and drawing stuff :P
I learned a decent bit about how biometric authentication works (or at least this specific implementation) by installing, setting up, and tweaking settings for Biopass. I also learned about how when you do first login using this method, it can fail to unlock keyrings because the password authentication has been bypassed so no password has been provided to unlock the keyring. It includes anti-spoofing local AI models, and the dev plans to have the option for the user to download and use any model for anti-spoofing/recognition. Interesting stuff.
I recommend learning dc if you don't already know it, and either Octave or Python.
top 99 comments