F43 to OM for aspiring programmer

Hi all!

I thought I’d start with an introduction.

1 - About me:

Old married guy. Retired out of the Army a couple of years ago. Tried to go back to school afterward on the GI Bill but life got in the way and I had to go get a real job.

Left Winblows behind a couple of years ago and have been daily driving Fedora Workstation. Chose that because of it’s use in the military - Red Hat was the operating system on FBCB2s and BlueForce Trackers, as well as some parts of tanks (my MOS).

Been considering a move to OM. I’m a little bit of a stick-in-the-mud and prefer older things, so the ability to use X11 is considered a plus. Along with the fact none of my computers are anything special. All of them are either cheap Walfart laptops or hand-me-downs. Best one I have is the one I’m currently on, and that’s a Lenovo with an i7 and Intel iGPU. So it’s a sure bet I won’t be generating solutions for time travel on any of them.

2 - Programming experience (or the lack there of)

I was a CompSci student for a couple of years in the late 90s before some jerks knocked some buildings over and I ran off to the Army. Computer lab at my college was full of linux boxes, and as you might remember everything was command line back then. xWindows was still pretty new back then.

Didn’t do any programming or think anything about programming while in the Army - figured life had taken me in a different direction and I’d let go of that idea. The entire programming industry has passed me by and I’m now, with limited capacity, I’m trying to start over.

Toward the end of my career in the Army the doctors made it clear how physically messed up I am and destroyed the plans I’d made during my career about going into the trades when I got out. So it’s back to school and back to CompSci without having done anything during the years I was in.

Got through 3 semesters before life got into the way and I had to go get a job.

1st semester was in python and was intro to programming. “This is a variable,” “this is a function,” “this is scope,” etc etc.

2nd & 3rd semesters were in C++. I made it through data structures, so I know what all of them are. Also had a database class the 3rd semester but will need to retake that as I spent half my time trying to figure out what my professor said due to his very heavy Korean accent. Not a good way to try to learn something when there’s a language barrier obstruction.

After leaving school and starting work I’ve been looking through some Java GUI courses. Had the most success with BroCode’s Java Swing course, but the free version of that course on YouTube has some issues. Not going to fault the guy for wanting to make money off his work - it just puts me in a position where I can’t do his paid courses right now and I suspect some of his bad habits might cross over into the paid stuff.

Managed to get JavaFX setup on my laptop, but have been having trouble following BroCode’s JavaFX course due to his skipping or blasting right passed most of the imports due to his use of IDE’s. I wasn’t kidding about the desire to do stuff the older way - I’m using VIM and BASH scripts for compiling. Typically will have 3 windows of VIM open at a time while following a tutorial. The desire being the KISS principle - keep it simple. While I understand IDEs speed things up, I don’t really have a desire to learn their menu systems right now. I just want to learn programming now and then deal with IDEs later. You might say it’s more comfortable to pick up where I left off in the 1990s.

I haven’t had any luck with getting gcc working on my laptop due to issues with not knowing what I’m doing with setting up paths and the other little issues that can stop you in your tracks.

All of the programming goals are on hold right now due to the holidays and packing up to move. Waiting on the VA to approve a home loan for us right now. Scheduled to move in January and we’re doing the pack & purge right now while getting ready for it.

My goal right now is to become a functional programmer in a least one area in order to gain employment and get away from my current job (it’s not the job, it’s the people and the culture shock of coming into the civilian world after the Army). There’s also the desire to go back to school if the situation presents itself - but that’s a little bit of a long shot. What I’ve been focusing on right now is GUI’s due to having a bunch of ideas on how to improve the software I’ve been using at work.

Unless there’s a reason for me to be, I’m not very interested in HTML/CSS/JS and would prefer to stick with Java & C++.

I’d like to get to know a few of you guys and learn from you. If possible, help out here on OM.

Limitations - I know of server sockets, but beyond setting up one program from following a tutorial that ran a socket from one port to another on the my laptop - I haven’t learned anything about external communications yet. Unless you guys think it’s a better idea to do something else, I was thinking about working on that next after GUIs (since I already have some knowledge of data structures).

I look forward to chatting with you guys!

Merry Christmas!

The Old Tanker

2 Likes

Hi Tanker! :waving_hand:

First off, on behalf of my friends who did not make it out of those buildings, thank you!

Second, once your move is done be sure to look into organizations like this and this in your area. They are great networking opportunities.

Now for the programming stuffs (there’s a method to my madness is writing this way - hold on - some youtubes at end):

You really didn’t miss anything. All the old languages are still around and a bunch of new niche ones sprang up. But they’re all kinda like C. Think of C as the latin of programming languages..

Don’t worry about databases. Unless you want to work in databases. Get familiar with the database in LibreOffice. Play around with SQLite. Use one for your pantry, one for your videos. If you can read and write info to text files, you can do the same with databases. Do you need to learn SQL? No. Unless you want to work in databases.

Oh, if you play games from GOG there’s a really cool program called gogrepo. It’s written in python, so you might want to familiarize yourself with that.

If you want to stay on linux, learn Bash.

GNU Stow (another really cool program - which is very underutilized) is written in perl (though you don’t need that to use it).

Here in the repos we have 2 versions of BASIC (freeBasic and Gambas). Don’t knock basic. I think either the OM Welcome or DNF Dragora was written in Gambas. And I know for a fact that several parts of the National Energy Code your new house has to comply with were written in (at the time) Turbo Basic

We also have Lazarus (which includes freePascal) Which a lot of software in the automotive industry was written in (technically Delphi - but that was the 90s version from Borland). And yes, it is still used.

In fact a buddy of mine (doing commercial HVAC) control systems is using a mix of lazarus and c++.

Editors:

Emacs is a way of life that will let you edit text.

Vim/NeoVim: Typically people add so many plugins and frameworks that they become complex IDEs in their own right. Like Emacs, you really need to learn another programming language to maximize them. And there are prebuilt sets (lazyvim, astrovim, nvchad, etc) that do make it easier to navigate.

Kakoune: A text editor (and just a text editor) where the keybindings can be almost thought of as “backwards vim”. Instead of plugins it uses bash (or any other shell command or utility). check it out. Personally it’s my favorite of the modal editors.

Helix: A sorta IDE. They took stuff from vim and kakoune and smushed them together. It mostly matched kakoune’s keybindings, and builds in a bunch of vim plugins.

You might also want to check out the geany editor (in the repo).

Other useful tools:

SSH
Git
Tmux
Zellig
Kitty Terminal
ZSH Shell (learn bash first)

What language you actually use and how really just will depend on the field you’re in. C & C++ implies more systems programming. Java could be almost anything. All the speadsheets (beyond formulas and such) use a version of Basic as their macro language.

Based on your post you will really like tmux & zellig. On a local machine kitty and even konsole make some of tmux/zellig redundant. But if you wind up SSHing tmux is more likely to be installed on the remote machine.

PrimeTimeagen/Typecraft/DreamsofCode (below) can really help with all that.

As for “learning programming” just pick some projects and get started with what you know. Then ask for help, here, other forums, reddit and you’ll usually get it. Adults usually need a practical project.

I know I’ve left a lot out, and probably came nowhere close to answering your questions.

But just ask more. I can always find a way to generate walls of text. Heck you can even search on github looking for java projects to dissect and see how they did it.

You might find These useful:

https://www.youtube.com/@huwstube
https://www.youtube.com/@codewithbubb

Charm software: http://charm.sh/

https://www.youtube.com/@bashbunni
https://www.youtube.com/@BreadOnPenguins

https://www.youtube.com/@ThePrimeTimeagen

https://www.youtube.com/@typecraft_dev

https://www.youtube.com/@dreamsofcode

Hope this helps somewhat

1 Like

DNFDrake and FlatDrake are written with GAMBAS. It reminds me of my days with BASIC.

I was close :wink:

1 Like

First off, on behalf of my friends who did not make it out of those buildings, thank you!

Second, once your move is done be sure to look into organizations like this and this in your area. They are great networking opportunities.

Thanks! And thanks for the pointers on the SWVCC!

Good to know.

Oh, if you play games from GOG there’s a really cool program called gogrepo.

Had not heard of GOG, but will definitely check them out.

GNU Stow (another really cool program - which is very underutilized) is written in perl (though you don’t need that to use it).

That sounds like it would solve a bunch of the path issues I was running into.

Vim/NeoVim

I saw NeoVim was already in the distro, I’ll go look up the difference between plane jane vi/vim and NeoVim.

Kakoune…check it out. Personally it’s my favorite

Will do. Thanks!

You might also want to check out the geany editor (in the repo).

Saw that one listed in the OM Welcome, so I went ahead and installed it.

Other useful tools:

In the reading I’ve been doing over the last year I’ve seen a lot of references to SSH. Haven’t done anything with it yet but that definitely sounds like an important tool to have. Same with GIT. Haven’t heard of Zellig or Kitty but will check them out. Thanks!

What language you actually use

Leaning more toward systems (I think the web dev guys refer to that as “backend”) with enough GUI ability to make a functional series of servers and associated laptop terminal applications that communicates with them.

Videos:
Just got put on the top of the list for my evening activities.

So, I did a test drive with a LiveUSB last night. Seemed fine to me, so I went ahead and did the deal. First thing I noticed is my laptop doesn’t like Rome. I wanted to do Rome so I could use the Trinity desktop. Ran fine on the USB but after install it kept dropping me to the multi-user boot login and I couldn’t find the command for starting plasma off the terminal (I had it memorized in Fedora). Ended up going with Rock. No issues there, but will just have to wait till TDE is available in Rock. No big deal. I’m also noticing the degoogled Chrome has a bit of crashing behavior. I reopen it, reload the previous page and it seems to be fine after that. Just a weird crash that seems to be persistent. Going to guess that’s either my setup or something about my laptop.

Pretty much can’t run anything on Steam (tried it in Bazzite and Fedora with multiple different proton capatibility settings and never had any amount of luck beyond very choppy nearly non-functional gaming). Walmart cheapie with very weak Intel iRIS graphics so I wouldn’t put that down as a strike against any version of linux - it’s just a cheap laptop that’s not meant to be a gaming machine, probably wouldn’t have run anothing in Winblows either. Solution to that is another on-hold project: bought a MSI B650M-P desktop motherboard for building a better machine to work and play on. I figure I can build enough horsepower into that one that gaming and any work project I want to do shouldn’t be a problem.

I liked all the educational and kids games that were available in OM Welcome. Installed most of them. Once I’ve got OM figured out, will probably do the same with my daughter’s laptop.

Adults usually need a practical project.

Yeah, I can definitely see that being a thing….

Heck you can even search on github looking for java projects to dissect and see how they did it.

Thats another good idea!

I appreciate all the help! Thank you!

Merry Christmas!