I use open source self hosted software everyday. I love the community and I would love to be able to contribute to some of these projects.

As far as code goes, I basically no nothing about how it works. I see the development section of the repos I use and again, I’ve go no idea how it works.

How can I teach myself how to offer small improvements to the projects I use?

  • slazer2au@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    21 days ago

    Not all support of oss is code related. Updating documentation is a really important part too but programmers are generally bad at it.
    Translating documentation to other languages too.

    • VonReposti@feddit.dk
      link
      fedilink
      English
      arrow-up
      4
      ·
      21 days ago

      For a project I liked I saw that the translation of the UI was only about 1% complete for my native language. I decided to dedicate the weekend to get it above 95%. This was apparently the part that seemed too hard for most to make a dent in, but across several new versions my language is still 100%. I think my groundwork made it easier for some sporadic contributors to get a small bit of dopamine when updating the few new strings in a release to see it hit 100% again.

  • inzen@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    21 days ago

    Self taught programmer here. If your goal is to contribute code. Get the project’s code, learn how to run it. Go pick an issue, great if it has a first time contributor tag or something. Try to fix it. If someone fixes it before you, now you can compare fixes. Sounds simple? It kind of is, but there are some side quests involved. This processes will force you to learn the bare minimum to get the task done. Your solution will most likely be shit but that’s great, you can only get better. Programming is less about knowing how to do something and more about figuring it out as you go. Google, chatbot/llm, read the docs, ask others. Edit: Forgot something important: Be open to critique, programming is a craft and there is a lot to learn. Being bad at it is a given for most. Also most programmers are kinda bad at communicating so they may sound harsher than they are.

  • irmadlad@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    21 days ago

    Just a note to say that devs of large, well established projects are always receptive to donations. A lot of these projects have demo sites, which cost money. So, if you can’t contribute to the code side of the project, a few $$ here and there is always welcome in my experience.

  • Gekkonen@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    0
    ·
    21 days ago

    First: Great that you’re motivated to learn this stuff! When it comes to programmers I’ve worked with, usually the best ones are those who learned programming to do something for FOSS or wanted to create a thing themselves.

    Second: If you’re planning on university, an IT degree doesn’t hurt. You’ll learn a lot of stuff that -can- be useful. At the same time you don’t need one.

    Practically though, start learning a programming language that is relevant to one of the projects you care about. If you want to learn programming in general, start with Python for a very easy introduction to the basics. If you want to learn more about how computer work (you should), learn C. For learning programming, I recommend books instead of websites, especially if you learn a system level language like C.

    Once you’ve learned a bit of programming - apply it! Go through the bugtracker of the software you use, and find a bug someone has already solved. Read what the bug was about, then read what changes were made and understand why that fixed the bug. The most important practical skills for a programmer are reading other people’s code (especially for what you want to do) and debugging. Remember that the most common question a programmer asks is not “how do I do this” but “how does this work?” Another common one is: “WHY does this work?”

    But you may also be able to contribute without programming. Many of the software you use requires people who understand how the operating system works to configure it, package the software, and help others like you to solve problems. All of this can be done without much understanding of programming if you spend some time to get familiar with the manual of your software and how the software interfaces with your operating system.

    Good luck!

    • xSikes@feddit.online
      link
      fedilink
      English
      arrow-up
      1
      ·
      21 days ago

      Actual “C” or can you do C++? I’m currently learning Python and was thinking about getting into C++ as well.

      • Gekkonen@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        1
        ·
        21 days ago

        Don’t learn C++ before C. C++ is a massively more complex language whereas C, once you understand the fundamentals, is quite simple.

        If you want to work with projects that use C++, then by all means.

  • JensSpahnpasta@feddit.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    21 days ago

    A few hints:

    1. Start with smaller projects with simpler codebases. Do not try to understand what LibreOffice or Jellyfin are doing.
    2. Maybe try to understand how one specific part of that software works. Chatbots are really, really good at explaining existing code, so ask your bot where the feature is located and let it explain it to you