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.

  • LH0ezVT@sh.itjust.works
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    28 minutes ago

    I like microcontrollers. It is fun to see code do physical things. Plus, you can learn how simple computers work, which helps get an understanding of regular ones. Combine that with home automation, and you have an infinite time sink.

    Most embedded systems programming software runs nicely on Linux (or sometimes even exclusively). PlatformIO, Arduino IDE, STM Cube, ESP-IDF… Obviously, something like a Raspberry Pi (and its alternatives) runs Linux itself.

    Although, quite often, I find myself saying that since 90% of work and hobbies is either in a browser (including electron) or a shell anyways. Doesn’t really matter how the task bar / dock looks when all you do is run the same 10 programs

  • Rose@slrpnk.net
    link
    fedilink
    arrow-up
    1
    ·
    44 minutes ago

    I like to solve everyday problems through programming. My primary way of doing it is just Python on Windows right now, but Linux does make programming languages a bit easier to access. (And most of the stuff I write would easily run on Linux too.)

    Every time I go “damn, this is more complicated/boring than it needs to be and the manual handling is so unnecessary, I wish I could automate this”, I start making a script.

    For example, I’m an amateur photographer, so I have scripts for dealing with photos. One is a photo importer/backup tool, because I didn’t trust the importers in the apps to do it right (Adobe trauma). I’m writing scripts for report purposes. One script I wrote puts all of the photos I have on the map.

  • gerryflap@feddit.nl
    link
    fedilink
    arrow-up
    1
    ·
    2 hours ago

    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.

  • Sunsofold@lemmings.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    4 hours ago

    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.

  • Supervisor194@lemmy.world
    link
    fedilink
    arrow-up
    10
    ·
    edit-2
    13 hours ago

    So, I make things for myself to replace commercial software that either doesn’t exist or that is becoming (or will become) enshittified like all commercial software.

    I like to cook, for instance. It’s a hobby of mine. Cooking, BBQ, grilling, baking, all of it. So of course, I have recipes and they are important to me. I could spend all my time painstakingly entering all my recipes into recipes dot com or whatever, right? But of course, as soon as I do that, their barely usable app that does almost everything I want (and a hundred things I don’t give a shit about) gets updated in the third update of the week (rolleyes) and they have completely changed the UI and on top of that, they removed a feature that I used daily.

    OR - I could just make my own fucking app. Which I did. It’s awesome, it does everything I need and nothing I don’t. It also doesn’t update every thirty seconds and become less and less usable or require me to completely overhaul my workflow because the programming staff and middle management need to justify their existences.

    I also recently made a wishlist extension for Firefox, because Amazon removed the ability to add non-Amazon items to their wishlist. I have probably a dozen other ideas I’m working on at any given time. None of this is to make money, but just to make my life more convenient and unplug myself from the wider (bullshit) Internet as much as possible.

    • abbotsbury@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      12 hours ago

      Tangential but you might find TiddlyWiki useful, it’s a single file personal wiki that can be edited in any web browser.

  • kambusha@sh.itjust.works
    link
    fedilink
    arrow-up
    27
    ·
    18 hours ago

    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.

  • jabathekek@sopuli.xyz
    link
    fedilink
    arrow-up
    4
    ·
    13 hours ago

    For me it’s:

    Oh shit, that last update borked my computer… wth is postfix? How was it corrupted? Whatever… How do I reinstall it… [look up answer an Ask Ubuntu- Copy/Paste]; okay cool. Wait, losing postfix also broke my graphics driver?! Why? Whatever… I guess I should reinstall it… [look up answer an Ask Ubuntu- Copy/Paste]; okay cool.

    Then I forget everything I just did because Ubuntu rarely breaks and also I think it was just my ssd dying…

  • Autonomous User@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    ·
    edit-2
    17 hours ago

    You will never know enough to make a whole program when you never start. Programming small things is very different to big things. You could also try making small changes to big things.

  • dream_weasel@sh.itjust.works
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    14 hours ago

    I wrote a little bit of code to tell me if or when my electricity would be cheaper if I used on demand pricing instead of flat rate. Basically anything you might use excel for could be a programming problem.

    For other hobby projects and “why Linux” it’s easier to sew things together than windows, generally speaking.

    Example:

    Every time I sit down at my PC the first thing I usually do is open a terminal: it is both my launcher and my file manager. I have several programs with TUI (terminal user interface) or text based API (which is an applied programming interface) and I keep my notes in plain text. One type of note I keep is an “atomic” note inside my zettelkasten (this is a fancy way of keeping track of ideas and the way they connect together, but you need to revisit them for it to be useful. Kinda like anki / spaced reputation I guess).

    So enough background, here’s the idea and the programming:

    • If I always open a terminal, it’s a good place to put stuff I want to see.

    • There are two things I want to see: twice a day I want to see a note, the rest of the time I want to see the 3 or 4 most important tasks on my todo list

    • I want randomized notes and I want it to be automatic.

    One of the easiest things you can do in a terminal is “echo” text. So I started by, in my terminal “rc” file (the configuration file that tells the terminal what to do when you start it) echoing my todo list as the very last step in the start process. Then it’s refinement. First don’t give me the whole list, use shell tools to show the head of the list. Now make a conditional statement that says “if there’s a file called “temp” in some folder give me the Todo list, otherwise do nothing”. Basically we follow the incremental logic train until you get the final product:

    • If no file exists, print a note (at random) and then make the file
    • If the file exists write part of the todo list
    • Every 6 hours, delete the file automatically with cron

    Neat you just programmed a lame, but useful tool.

  • Phen@lemmy.eco.br
    link
    fedilink
    arrow-up
    13
    ·
    edit-2
    3 hours ago

    If you use computers enough, from time to time you’ll run into things that make you think “I wish there was a better/easier/faster way to do this”. Then if you know how to program, you can just create a tool to do it for you.

    For example, I once made a small calculator app that allowed math on time values instead of basic numbers, so if I did 47*2 it would show 01:34 instead of 94. Some other time I worked some place that played background music all over the building, but something as simple as skipping the current music required going through 4-5 screens in some internal software, so I made a tool that went through those screens for me with a single button click.

  • silly goose meekah@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    16 hours ago

    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

  • tartarin@lemm.ee
    link
    fedilink
    arrow-up
    5
    ·
    15 hours ago

    You need a Bob Ross programming series. A little C here and more Python there.

  • Libb@jlai.lu
    link
    fedilink
    English
    arrow-up
    8
    ·
    17 hours ago

    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’ve written some simple shell scripting to ease repetitive tasks, that’s about it (like play random video/audio files in MPV media player, resize & convert images I post on my website, and so on). Does that count as programing? ;)

  • dfyx@lemmy.helios42.de
    link
    fedilink
    English
    arrow-up
    8
    ·
    18 hours ago

    Instead of a long-winded post, here’s a quick list of stuff that I’ve worked on in my free time over the last few months:

    • Some scripts to automatically set some metadata on my photo library
    • A tool that grabs a video stream from an HDMI input (from the OS’s point of view that looks just like any webcam), finds text in it and overlays a translation. I use that to play Japanese visual novels on my Switch
    • A simple Bubble Shooter game because my gf was frustrated with some bugs in the one she had found online
    • A simple 2D game engine and editor inspired by RPG Maker XP
    • Updates to the registration website for a community event that I host twice a year
    • Updates to a discord bot that automates some dice rolls for my online TTRPG sessions
    • A browser extension that helps me scrape some data from a specific website
    • Helped a friend port an old website from PHP5 to PHP8

    Overall, it’s mostly stuff that is useful for my hobbies for which I can’t find an existing solution that fits my use case.

    • dfyx@lemmy.helios42.de
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      18 hours ago

      To add some more, here’s a list of stuff that I would love to do at some point but haven’t found the time yet:

      • A tool that directly translates PCB designs into a format that my resin 3D printer can read so I can abuse its display as a UV etching machine
      • An alternative to GPlates that’s a bit easier to use for fantasy worldbuilding. GPlates is great but it’s mostly meant for serious scientific work so its UI is a bit complicated.
      • A minimalistic blogging platform that interfaces with ActivityPub
      • Many, many games.
  • altphoto@lemmy.today
    link
    fedilink
    arrow-up
    1
    ·
    12 hours ago

    I programmed a lamp bypass for my old projector do I could then use a different lamp and turn it into a UV projector. Programming is not sophisticated stuff. Its the reason for having a computer. People could write, mail, watch TV, play etc just fine before computers.