@kaia separately, LLMs/web scrapers being trained on my output is just an ancient wound I didn't know I had (and the same for others who couldn't control the uses of their code -- not a 'new' problem). So, there's not much we can do collectively in the way of condolences except to watch out for such things in future.
The eventual consequence is knowledge becoming more silo'd and less accessible, which is bad :(
@kaia I appreciate that, thank you. Your third paragraph there is worrisome to me -- 'dialectic approach' and 'time [...] is minimized' are severe red flags.
I would strongly suggest in cases where the dialectic/time pieces feel good when you get an LLM answer to immediately contradict the LLM 1-5 times, record all responses, and then ask a person with domain knowledge to validate the output (as opposed to accepting the first). That's not perfect, but 'better'
If you read this far, thanks for bearing with me. I have Strong Opinions in this space but want to be welcoming and open to folks who are diving into their first experiences with building software in whatever form that takes.
I'm happy to answer questions, point to other sources, or generally give advice _where solicited_.
- you do not need to read the guide in its entirety to get the important parts for reading code in most languages -- sections 2, 3, 4, 5, and 8 are the shortest-path that covers everything you need.
- although the foreword says "you should have experience in another programming language!" this is not true. The guide includes the info you need at each step without linking / forwarding you to other sources.
@kaia Now we hit an appendix, which I will not call a conclusion because it's really more of a suggestions-from-me-personally list.
I _used_ to recommend 'learn python the hard way' (even though I don't much care for python), but it has since gone behind a paywall; now, I recommend Beej's guide to C, which is still free and open-source (and frequently updated), starting from the second chapter - https://beej.us/guide/bgc/html/#hello-world
Conclusion 2: People suggesting renpy, rpgmaker, godot, and other game development frameworks/libraries are suggesting, as far as I know, well-validated and well-trod learning styles. I personally cannot vouch for the style (since it wasn't the one I learned on) but I can vouch for the output of people who have learned that way.
@kaia Having said that (and I'm here to answer questions as needed, and will accept criticism of my points), here is what I suggest.
Conclusion 0: Avoid an LLM if possible.
Conclusion 1: If you must use an LLM, remember that asking it to 'explain file [V] to me,' 'explain what [X] does,' or 'explain why [Y] is used here' will give you bad data, or at least data you should mistrust until verification from multiple non-LLM, non-SEO sources
@kaia Although LLMs may sound authoritative or well-written -- kind of like reading a decent high school English essay covering the themes of a book -- they are inaccurate when explaining a programming concept, its historical context, comparatives, why it exists, and **most important to your case** _what it means and what it does_.
-- side note: You can have some fun with the LLM by responding "no, that's wrong. It's actually pointers" and see how it responds.
@kaia I do not know, and cannot know, the best ways for people to learn how to read code. However, I do know some Bad Ways To Avoid. Some of those are using Copilot* or other LLMs to interpret existent code -- whether it be file-by-file or ingesting an entire project.
* Copilot and chatGPT (and probably other LLMs) are trained on code I have written in open- and close-sourced projects, which feels violating to me.
Disclaimers: I teethed on C/C++; understanding reams of unfamiliar code is part of my day job since ~2016; I have significant statistical data showing LLMs have the downstream effect 'worse/harder/misleading'; my opinion of such systems is heavily negative.
I took a quick look at some portions of the Starbound code, and (at least the C/C++ portions) are remarkably well-organized [when compared to what I usually see]. (1/x)
@kaia This is interesting to me (unlike the daily chatgpt missives I receive while at ${job}). What was the gap that chatgpt was able to bridge? If you feel comfortable sharing, what were the pain points you ran into while trying to do this before enlisting the llm?
@thomasfuchs Maybe I'm misreading the 'bridge' outrage here or misunderstanding in general; my issue with this is not 'control over my public posts' but rather 'I don't want to have to spend time filtering out posts/cross-posts from a platform I don't want to see'