site banner

Wellness Wednesday for July 5, 2023

The Wednesday Wellness threads are meant to encourage users to ask for and provide advice and motivation to improve their lives. It isn't intended as a 'containment thread' and any content which could go here could instead be posted in its own thread. You could post:

  • Requests for advice and / or encouragement. On basically any topic and for any scale of problem.

  • Updates to let us know how you are doing. This provides valuable feedback on past advice / encouragement and will hopefully make people feel a little more motivated to follow through. If you want to be reminded to post your update, see the post titled 'update reminders', below.

  • Advice. This can be in response to a request for advice or just something that you think could be generally useful for many people here.

  • Encouragement. Probably best directed at specific users, but if you feel like just encouraging people in general I don't think anyone is going to object. I don't think I really need to say this, but just to be clear; encouragement should have a generally positive tone and not shame people (if people feel that shame might be an effective tool for motivating people, please discuss this so we can form a group consensus on how to use it rather than just trying it).

1
Jump in the discussion.

No email address required.

Not a wellness question, but I don't want it to get lost in the old small scale question thread:

I've always been mildly interested in programming, but my formal training in it was only in the absolute basics of Javascript in school. We didn't even get to pointers in C, to give you an idea where I bottomed out.

However, my fondness for rat-adjacent spaces makes me probably one of the people who sorta somewhat understand programming concepts as much as possible without actually being able to code well.

I can mostly follow code or pseudocode, but I've noticed that programmers mostly leverage existing functions in libraries or APIs to massively abstract their work.

My issue is that I simply don't know most of the interesting functions that might be relevant if I have a specific concept in mind. I don't know whether there's an existing function I can call, let alone something I can import as a library, like math.js. I know that there's plenty unknown to me, and unknown unknowns I couldn't possibly estimate.

I can definitely ask GPT-4 about such things, but leaving it aside, how do I understand the options available to me as best as I can?

For example, when I look at a little of the code for the few ML models I've learned, it seems simple enough if you can abstract a lot of it. I simply don't know what to abstract.

How do I build this fundamental knowledge? I suspect it involves something I'd find mildly unpleasant like reading documentation, textbooks, or trawling through code on Github. But I'm asking just in case a more interesting alternative exists that I'm not aware of.

I'll pre-emptively tag @DaseindustriesLtd, because of course I will haha. But I know there are plenty of you programmers out there, don't be shy!

If it helps, I have the following concrete interests-

  1. Modding games. I'm aware reading documentation or code is mandatory here. I'm sure @ZorbaTHut would be mildly pleased to hear that I'd like to make small mods for Rimworld, especially if AI makes generating art assets easier.

  2. Small automation tasks on my PC. GPT is helpful here if I know what to ask.

  3. ML, just enough so I could apply it to medicine if I needed to. I'd like to think upskilling myself there might lead to more money if I can leverage my medical degree into a career involving it.

Every programming language has a "standard library" of helper classes/functions/etc that are included with it, a library of loadable third-party modules that provide more stuff, and a way to specify and load those.

Python is a pretty good general-purpose language, and usually my first suggestion for what to learn for programming newbies. You can find the docs for the standard lib here - Python standard libs are known for being pretty comprehensive. Personally, I have trouble reading large volumes of docs that aren't relevant to anything I'm working on, so I recommend to anyone seeking to learn to just go ahead and install Python locally and start building things. Usually your 2 for local automation tasks and sometimes modding games are a good source of tasks that are simple enough to not overwhelm a newbie but still feel like you're accomplishing something useful.

I would suggest building some stuff using just the standard lib to get used to how to do things. Later on you can learn about how to find third-party packages, install them, and use their functionality.