@hypolite I think I want the to-do program to have a gui as I'm still not great at using a command line.... probably run on a "standard" desktop computer, if such a thing exists.... computers are weird but I've relied on @silverwizard a lot and I'm trying to think outside that while also learning from him
@firefly_lightning Choosing a programming language often depends on the target use. Will it be a Command-Line Interface tool? A Graphical User Interface? A web page? A program on a controller circuit (Arduino, etc...)?
@firefly_lightning In the programming world, unfortunately there's no such thing as a standard desktop computer. So much so that the current most popular way of writing "portable" programs is to embed an entire web browser within the program.
@firefly_lightning@hypolite But also - learning to code from me is like learning to fix a car from someone who loves physics and bike repair, so it's gonna be a hell of a ride
@firefly_lightning So, first target one specific system with one specific front end. This will greatly reduce the scope of the required learning.
I started learning programming with command line programs in C because of the low learning overhead. I was also taught COBOL for file manipulation and Java for Object-Oriented Programming. In parallel, I had SQL classes on an Oracle system, but no integration with a programming language until my final project after 2 years of full-time classes.
It was a long process and it started pretty small, so I think that's what you should do as well to make it palatable.
@firefly_lightning If you want to learn the foundations well and don't mind taking the long way around? Start with Racket and work through HtDP <htdp.org/>. (Racket probably even has a way to build GUI programs on any system you can install it on.) If you want to get a to-do list manager up and running? Use Perl to shuffle things in and out of the database, use CGI and a web browser for the GUI, and that'll put you in the space where you can ask @silverwizard for help when you get stuck.
@hypolite@firefly_lightning@silverwizard Although it's a pet peeve of mine Java's GUI probably could be thought of as a "standard" desktop computer, as the things written in Java bring Java's GUI with them (except the one's that don't, like LibreOffice and TuxGuitar). Users of the three desktop systems all get the same user experience out of the usual Java packages. Java stuff is a pet peeve of mine because I'm spoiled by having Linux' "bookmarks" to various directories in my load and save dialog boxes. OTOH Java's dialogs and other GUI things I have found to have a gentler learning curve than GTK+ and Qt, might get you writing GUI programs faster. If I feel a need to write something that interacts in a GUI way, I write a "web app" instead, but that's more a standard desktop browser experience than a standard desktop computer experience.
@firefly_lightning@silverwizard Racket is a variant of Scheme, designed by people who have put a lot of thought into programming and how to teach it, and does a good job of the space it's in. The downside is that its structure is (partly by historical accident) not very much like most programming languages that most people consider "serious".
And as annoying as web browsers are, CGI is still the easiest way to get a GUI, followed by "whatever your dev tooling thinks is native", with anything else way behind.