Programming and/or Sys Admin Beginner's Thread - Because there seems to be a need for this particular thread

Belisarius Cawl

kiwifarms.net
Joined
Mar 16, 2024
Back in the last day of January 2025, this was discussed in the main programming thread:
Not to be a dick, since the advice is often a bit more tailored to the asker, but I feel like this question about beginner resources appears every few pages or so. Can we have some sort of prominent list of modern learning resources based off past suggestions in this thread? Idk if the OP is the best place for it since no one actually visits page 1 anymore as we're nearing 300.
Agreed. Separate thread?
Probably the best way to go. I remember us kicking around the idea of a programming sub-forum (and perhaps a Q&A thing called Kiwi Overflow) around a year ago, but a separate thread for this (if it doesn't already exist) is a good and easy way to start. And it can always be moved to the hypothetical sub-forum someday if it ever comes to fruition.
@y a t s probably would have been a better OP than I am here but since I've been thinking about it a lot lately I guess the duty has fallen to a lesser poster.

I think the main administrative worry would be updating the OP well after the fact. I know it can be done for lolcows so I'm pretty sure it can be done here. There is no hope of a comprehensive OP that can meet the needs of all readers. This thread will have to evolve.

Rather, I would like to make only the broad strokes:
  • Not quite the "no stupid questions" thread, which isn't to mean "no stupid questions" at all, but rather something intermediate between that thread and us spitballing about LLMs and compression algorithms and so forth, which might seem distant or intimidating vs. just trying to get started as a programmer
  • Definitely programming and sys admin, as in the title, both because they work hand-in-hand: you can't be a great sys admin without programming knowledge and, on the same token, there is no hope of you being a great programmer if you don't have sys admin knowledge
I guess the supposed division would be between that thread and the high-falutin' stuff therein and the absolutely no less valuable discussions to be had in this one. Well, what do you all think?
 
Off to a fantastic start!
Jokes aside:
Worth my time to ditch VS to woodshed something like LunarVim for an IDE or is that just gay shit? Already use Vim daily, use VS daily to work with UE but not really for anything else/hobby projects. Willing to take any suggestions.
 
  • Feels
Reactions: Belisarius Cawl
Is Visual Basic still around? Ok it was pushed heavily back in college around 2013-2014 but I haven't once used it since.
These days its predominant use is for maintaining legacy apps corporate America wrote more than a decade ago to hook into Microsoft's various productivity software.
It's losing relevance as more and more of those dinosaur MS houses are moving to the cloud and have to retire those legacy applications.
It's so popular in colleges (I had to learn it too back then) because it has newbie-friendly syntax and can serve as a decent introduction into basic programming concepts.
 
Code:
import pyautogui
import time

# Give yourself 3 seconds to move your cursor to a safe location
time.sleep(3)

# Move the mouse to position (x=500, y=500) over 1 second
pyautogui.moveTo(30, 30, duration=1)

for I in range(10):
    pyautogui.moveTo(30, 200+I, duration=1)
    # Click the left mouse button
    pyautogui.click()
    
for I in range(3):
    pyautogui.moveTo(30+I, 204, duration=1)
    # Click the left mouse button
    pyautogui.click()
    
for I in range(10):
    pyautogui.moveTo(34, 200+I, duration=1)
    # Click the left mouse button
    pyautogui.click()
    
for I in range(10):
    if I not in [1,2]:
        pyautogui.moveTo(38, 200+I, duration=1)
        # Click the left mouse button
        pyautogui.click()
here you go.
 
Last edited by a moderator:
  • Like
Reactions: Belisarius Cawl
Off to a fantastic start!
Agreed. I'm going to start reading Automate the Boring Stuff with Python so I can review a truly up-to-date guide for learning Python (as opposed to what I started with years ago) and comment on it for anyone who wants to learn Python here.
Jokes aside:
Worth my time to ditch VS to woodshed something like LunarVim for an IDE or is that just gay shit? Already use Vim daily, use VS daily to work with UE but not really for anything else/hobby projects. Willing to take any suggestions.
LunarVim isn't being maintained, at least for now, because the creator currently has higher priorities. I like extensive book format resources to learn things and found LazyVim for Ambitious Developers quite useful, LazyVim being another configuration framework for Neovim. One thing you gotta know about LazyVim is how to translate configuration instructions from how they typically appear on GitHub to how they work in LazyVim. For example, I use the cyberdream colorscheme for Neovim. The GitHub page says stuff about require("cyberdream").setup() but that's not how it works in LazyVim. Following the documentation here:
I came up with a plugin ~/.config/nvim/lua/plugins/colorscheme.lua that goes like this:
Code:
return {
  {
    "scottmckendry/cyberdream.nvim",
    opts = {
      transparent = true,
    },
  },

  {
    "LazyVim/LazyVim",
    opts = {
      colorscheme = "cyberdream",
    },
  },
}
colorscheme.lua is completely arbitrary BTW. I could have called it niggerlicious.lua and the outcome would have been the same. All that matters is it's in the right folder.
I'd rather stick my dick in an anthill that go back to that language

Is Visual Basic still around? Ok it was pushed heavily back in college around 2013-2014 but I haven't once used it since.
As mentioned previously, it's mostly legacy stuff but it's still out there. Visual Basic along with other languages such as Perl 5 and COBOL are like the US Air Force's B-52 bomber: they will never truly die. If you want to develop graphical applications with an IDE quickly, you have a number of other options (that I haven't used, so can't endorse directly). Qt Creator might be the strongest option out there as it lets you use C++, Python and JavaScript among other languages. Other options I'm aware of include Gambas, which has a syntax very like (but not identical to) Visual Basic and Lazarus, a free and open-source alternative to the obscenely expensive commercial product Delphi, both based on Pascal. You can consult DeepSeek or another LLM for even more options, for example "Tools like Qt Creator that run on Linux" and "Alternatives to Visual Basic for rapid application development in an IDE using JavaScript" in DeepSeek gave me a huge number of software products, more than I'd want to screenshot here.
 
Last edited:
@y a t s probably would have been a better OP than I am here but since I've been thinking about it a lot lately I guess the duty has fallen to a lesser poster.
While I appreciate your faith in me, you're certainly not lesser in any way.

I learned what I know in a time where online resources were sparse and often paywalled (*glares at lynda.com*), so I know pretty much nothing about modern beginner's resources. While I could tell you if the advice some guide is giving you is good/bad, I think it's better to have the OP managed by people who actually use the resources listed and are able to critically evaluate them in a way I can't. And I don't have a lot of time to update it.

I'm going to start reading Automate the Boring Stuff with Python so I can review a truly up-to-date guide for learning Python (as opposed to what I started with years ago) and comment on it for anyone who wants to learn Python here.
I have seen this recommended a lot over the years and I think it looks good. It's nice having practical examples that you can take from and mess with on your own setup. The best way to fully understand all of this early conceptual shit is to apply it in as many ways as you can think of.
 
Code:
import pyautogui
import time

# Give yourself 3 seconds to move your cursor to a safe location
time.sleep(3)

# Move the mouse to position (x=500, y=500) over 1 second
pyautogui.moveTo(30, 30, duration=1)

for I in range(10):
    pyautogui.moveTo(30, 200+I, duration=1)
    # Click the left mouse button
    pyautogui.click()
   
for I in range(3):
    pyautogui.moveTo(30+I, 204, duration=1)
    # Click the left mouse button
    pyautogui.click()
   
for I in range(10):
    pyautogui.moveTo(34, 200+I, duration=1)
    # Click the left mouse button
    pyautogui.click()
   
for I in range(10):
    if I not in [1,2]:
        pyautogui.moveTo(38, 200+I, duration=1)
        # Click the left mouse button
        pyautogui.click()
here you go.
I take it you're automating the use of a website or something like that? One thing I definitely want to say is that you should use a lowercase i instead of I. Python variables in all caps (possibly with underscores) are typically expected to be constants of some kind. i is much more canonical. Also if i not in [1, 2] could be removed if you would just set the range object to range(3, 10).
 
Personally, I get particularly autistic about shell scripting, (SWI) Prolog, Ruby, PostgreSQL, and C. Paid experience in Java, C#, SharePoint, various SQLs, Excel. Prefer Gentoo, have run Debian tons (Armbian, Raspbian, ...) and some Arch. If anyone has specific interests/questions in topics pertaining to these, feel free to @ me.
 
Personally, I get particularly autistic about ... (SWI) Prolog
How exactly do you wrap your head around that? I tried Prolog once and noticed that a lot of people find it completely brain-melting to do very basic things in, and I'm one of them. (Continuations seem to be another good example.) Prolog seems mainly useful as a DSL for logical inference rather than something you'd want to write full programs in. But my main, really only exposure to writing AI-type stuff is the statistical approach that is so popular today.
 
How exactly do you wrap your head around that?
I come from a very math-first education. Mathematical induction is a fundamental recursion type in Prolog: Define your base case, and how to derive x+1 from x. But my favorite feature in Prolog is that it is what it is AND it can show its reasoning for anything it thinks is true. This enables really sophisticated metaprogramming tricks. It is not a language anyone gets "very good" at. But there are situations like DCGs where the syntax is natural and the outcome incredibly powerful. Actor-based reasoning becomes easier to develop, because your code base is akin to a knowledge base. The isomorphism between code and data representation is another killer feature of Prolog to me. If my IQ was a couple sigma greater, I'd probably be more into Mercury, ( https://mercurylang.org ) which combines some of Haskell's type system with Prolog's logical bits.

I accept that Haskell and some others are probably theoretically superior. At worst, I reckon Prolog is isomorphic enough with a reasonably sophisticated Lisp.

I've thought for a while that SWI-Prolog might provide enough of a system to make a syntax-compatible systemd clone, but I haven't started exploring this yet.
 
I accept that Haskell and some others are probably theoretically superior.
I have a friend who is a graduate CS researcher who finally ditched Haskell after finding out that writing the sieve of Eratosthenes properly was the subject of a full-fledged research paper. I kind of tend to think that the best way to program in general is in the "midwit" range where you're not so lacking in knowledge that you turn into YandereDev and use endless if/else statements instead of a hash table or other fitting collection but also mostly avoid very theoretical, research-type features in favor of easily understood constructs that have been tried and true for decades. I can't help but think of one of Murphy's Laws of Combat: "If it's stupid but it works it isn't stupid." I'm sure there are exceptions to my rule though.
 
  • Informative
Reactions: Lard Shart and Vecr
Back