I’ve always wanted to understand what is actually meant by this. I have wanted to get into programming for years, did some basic python and c, but could never really progress. Not necessarily a linux question but I know since most distros come with libraries already, it’s popular to use for programming.
I have trouble understanding what people are actually programming if it isn’t their job. Like, you go to your computer and start working on…what? I don’t know enough to make an entire program or debug a game, so im just unsure what people do especially when starting out.
Also I don’t really want to learn it for a job. I just want to learn it to know it. But im not sure how to apply it to anything realistic.
I like to automate processes I keep repeating on my machine. For example, there are some documents I receive every month, like bank statements and phone bills. Since the naming conventions of those files are atrocious, I wrote a little program to automatically fix those for me
Some people also like participating in the development of open source software. That requires you to be a somewhat decent programmer already, though, as you’ll have to work with integrated systems
The short answer is: it depends on what you’re doing.
Most servers run on Linux, so anything related with web backends or high performance computing (rendering, complex algorithms) will likely be deployed on Linux in production, so the devs may choose to do the whole program lifecycle from there (even if the language/framework is OS agnostic and could be developed from anywhere).
Other kinds of programs like video games may need a windows for their entire lifecycle, and iOS apps need macOS.
There is likely no “need” to develop from Linux, and it’s not necessary better, but some people may choose it for the entire lifecycle anyway
That’s the most difficult problem in hobby programming: finding a project. Most interesting things seem to complex to start.
The solution is to say f it I’m going to try. Right now I’m very slowly making progress learning Rust by writing a program to trade cryptocurrency. It took a while for me to even take my goals seriously as something I am capable of. It’s half gambling and half skills development but 100% interesting enough that I have consistently come back to it. I’ve come to terms with the fact that the only money it will make me is if I get a better job by becoming a rust developer.
The Linux side of programming only really comes into play when you want to do networking, drivers, or esoteric filesystem intensive stuff. Windows and MacOS are capable of basically the same things. The main benefit of using Linux for development is that most open source projects are built by developers for development on Linux based systems, so getting dependencies has an easy one line command someone already figured out. For your situation I suspect the most important thing is how cool it feels when you use it. There’s something about setting up an operating system the way you want that keeps me coming back for more.
It depends on what you are interested in. For me it is a mix of stuff that I need or stuff that just interests me. I’m on and off working on a gameboy emulator, or I’ve written a command line parser library because I wanted so see how it works internally, or a terminal emulator
Like, you go to your computer and start working on…what?
Most of my work goes into an opensource game.
what people do especially when starting out.
Make some apps for yourself. You’ll probably not use them, or even share them, but it’s a good thing to have a vision of what you want to make.
I just want to learn it to know it.
Being a good programmer takes ages. And even then you’ll probably only know a handful of languages and focus on specific branches. If you just want to know it, you’ll lose a lot of interest pretty soon because sometimes it takes days to fix something and you really need to be able to push trough those rough patches and that’s hard without a goal. Imagine trying to become good at woodworking without actually making furniture.
But im not sure how to apply it to anything realistic.
A lot of stuff already has apps for it. And a lot of things are being worked on. People saw the money and a lot of people jumped on the wagon.
The most realistic thing one can do with programming is to make something that does exactly what they want. And that can even be something small. Like learning how to write scripts that automate simple tasks. I suggest high level languages such as Python, PHP, C# or Java to get going. And only look at low level languages such as C, C++, or Rust when you actually start to understand it.
Make some apps for yourself. You’ll probably not use them, or even share them […]
Or even finish them. It’s still valuable experience.
Sounds like you want a project.
You could try making a game. Python has pygame. Godot is a bit of a steeper learning step but has a lot of capabilities. I’ve messed around with each for fun.
Web dev can also be fun, and a very different style of coding. I’ve made things for a loved one who wanted some things for a site they run. Each thing they asked for took me no more than a day but saved them having to hire someone. I also made a little one-file site that I could share with some people as an RPG reference.
There are also coding games, as in games where you write code as part of the gameplay. These can help in that they give you a goal. Known names include computercraft mod for minecraft, screeps as both mmo and arena battle, Shenzhen I/O and other Zachtronics and zach-like games, The Farmer Was Replaced, etc.
And of course, you can always just think of something. I’ve written a few scripts to do simple edits to files, like ‘open each file in the folder this is run in and change blahblah to bloobloo and increment the version number’ or batch renaming files. Did one to find duplicate files and list them for organization/deletion.
I have other things I’ve started but never finished, but I enjoyed working on them, and they weren’t my job, so no worries.
I write Python for fun, I’m not a programmer. The more you learn, the more you can do. I’ve written a lot of scripts and tools to help me automate tasks I do frequently. It’s a lot of fun to dream up an idea and then make it real, and then later add random features that pop into my head. Windows sucks.
There’s a mix of reasons to start a hobby project.
One reason for starting a hobby project is the learning experience. For example, learning a new programming language or a particular tech stack. The goal isn’t to build something useful. Often it can be building things that already exist. For example, a Minecraft server or a Gameboy emulator.
Another reason is to build something useful for you. Maybe you have an idea of a program you feel should exist. Or maybe a program exists, but not in the way you want. Building it yourself can bridge this gap. Hopefully someone else might find your program useful.
Then there’s also the people who do it for fun. It’s kind of like building a model railway. The process of building it can be more fun and rewarding than actually using it.
Regarding Linux, it’s mostly a matter of preference. There are some things that are easier in Linux. Mac and Windows can sometimes be ” overly protective” and prevent the user from doing particular things. Linux has generally fewer of such barriers.
This feels more like two questions, so I’ll answer them both:
- When I’m not programming for my job, I’m programming one of many side projects I have going on at any time. Same with any other professional who has a career in their hobby. These are often projects I think would be useful to me and I believe would let me learn new skills.
- I use Linux (and MacOS) because the Unix environment, particularly the command line tooling is far superior to Windows. Developers often work on Unix, so they build their tools for the platform and thus improvements stack up. I also just like the FOSS philosophy underpinning most Linux.
If you’re trying to learn programming and know at least some basics, my only advice is to pick a project you’re even a little interested in and get started. Don’t worry about operating system, it doesn’t actually matter that much unless you’re working on iOS or MacOS! A weather app for whatever language/platform you’re working with is usually my first suggestion for students.
I started out with games and simulators. I tended just to come up with some game logic and then see what happened when I let it play out with many entities. When I started my computer science degree at uni I tended to write more code that had something to do with recent lecture material. Implementing Distance Vector Routing, messing around with compression, applying reinforcement learning to my own games.
Now that I have a job it’s a bit harder to stay motivated for all this, but it’s still kinda the same. I just write whatever my brain comes up with.
I just want to learn it to know it
Acquiring a skill just to have it isnt how it works. Skills are perishable, meaning you will unlearn them just as easy. Of course much experience would take a long time but still.
I suggest imagining what you could do with programming. What little problems do you face that could be solved by programming?
You also dont need to write another operaring system or debug “a whole game”. If you decide you want to learn programming (because its fun or because you like to create and fix shit), you can make an app run on your computer or phone that didnt run before. I did exactly that and my programming skills are pretty small. You dont have to know all the algorithms or study it to do useful stuff with it.
I made a couple text based games, solved some advent of code riddles and so on. Its fun and it helps seeing the world as a canvas instead of a fixed structure that is applied to you.
The best way to learn it, is to set yourself a goal/problem, define as best as possible how many unique issues that problem can be broken into, then start solving them one-by-one, periodically stopping to evaluate how they fit together.
Learning the best languages and structures to use will come as result of this.
I don’t care about which operating system, but my hobby projects have always included things that help myself. E.g.
- Software to collect/archive/analyse real life data (e.g. real estate data from various sources).
- Scripts to parse and structure data that I need e.g. for learning other things.
- Firmware for small embedded electronics.
- Home automation.
So my suggestion is to think of something that you need, but there isn’t a perfect solution yet. Although this advice comes from someone who has been working in software development for two decades now.
If you haven’t programmed before, think something very very small first.
Thank you to everyone who commented. You guys are basically geniuses as far as im concerned, and I have a good library of content to look back on now when I have time to get into it. The hardest part will be coming up with a project so simple that I can do it, but one thats interesting enough for me to actually stick with. Maybe something at first like, at 6 pm on Tuesdays, it flashes a gif onscreen. Or maybe a super simple text game.
Something like Automate the Boring Stuff might be a good option for what you want. Programming is just another tool to solve a problem.
For example, I hated when I would archive an unread email, it would remain as unread. So I created a script to mark any archived emails as read, and that script runs every couple of hours.






