Discussion
Loading...

Post

Log in
  • About
  • Code of conduct
  • Privacy
  • About Bonfire
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com  ·  activity timestamp 6 days ago

Dear Fedi friends,

The normalization of "vibe coding" in certain environments is pushing me in the exact opposite direction.

I, a normie (ok maybe a semi-technical person), would like to learn some basic computer programming*.

*** Update at 10pm ***

I’ve been offline for the past 6 hours and I checked my notifications before going to sleep: 71 new mentions 😳 thank you for all your generous advice, I’ll respond one-by-one tomorrow morning. Good night! ❤️

****

I need some advice about where to start because I'm a little clueless in this regard. Maybe it will help to share my goals, so that you can tailor your advice:

1) I'd like to become much more proficient using CLI... so that one day for example I could migrate a #YunoHost app to a new server without breaking anything

2) I'd like to be able to confidently run remote backups with rsync

3) Security: I need to learn how to turn my VPS or Raspi into a fortress

4) Eventually I'd like to learn #FreeBSD

Where does one even start?

I'm based in Paris, France, speak French, English and Italian, but remote learning is preferable because my child is in school only 4 days a week and has 2-week holidays every 6 weeks of school (thanks to the French educational system, don't ask me).

I'm super motivated to learn all these things, I just don't know where to start.

*Edit: maybe I'm just dreaming of becoming a proficient sysadmin

#AskFedi #MySoCalledSudoLife #NoAI

  • Copy link
  • Flag this post
  • Block
Sharlatan
Sharlatan
@sharlatan@mastodon.social replied  ·  activity timestamp 6 days ago

@elena loooong ago before LLM booming I started with collecting small oneliners to master new skills it might be still useful https://github.com/Hellseher/cix

GitHub

GitHub - Hellseher/cix: Comprehensive Inspiration of uniX

Comprehensive Inspiration of uniX. Contribute to Hellseher/cix development by creating an account on GitHub.
  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 5 days ago

@sharlatan thank you!

  • Copy link
  • Flag this comment
  • Block
サムエル はばかです。
サムエル はばかです。
@samuel@social.whatshouldyoueat.com replied  ·  activity timestamp 6 days ago

@elena first thing that comes to mind (if you have the time and available resources) is maybe to attempt to install arch linux from scratch on a unused computer following the archwiki. This should cover everything you mentioned and far more, and gives a very strong basis for future learning. It's not easy tho 😅️

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@samuel hahaha yes in my learning journey I've seen so many memes about arch linux, LOL. Sadly all my old computers are Macs

  • Copy link
  • Flag this comment
  • Block
Duke of Germany 💫
Duke of Germany 💫
@duke_of_germany@mastodon.gamedev.place replied  ·  activity timestamp 6 days ago

Writing small shell scripts could be a great point to start! 🙂

So maybe have a look at the "bash Cookbook" from O'Reilly.

My (very old) edition of this book used to helped me a lot.

@elena

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@duke_of_germany I’ll look into it, thanks!

  • Copy link
  • Flag this comment
  • Block
inderix
inderix
@inderix@booping.synth.download replied  ·  activity timestamp 6 days ago

@elena@aseachange.com for proficiency in the very basics of a Linux command line, Ubuntu actually provides a really good written introduction:
https://documentation.ubuntu.com/desktop/en/latest/tutorial/the-linux-command-line-for-beginners/
Some of the stuff in here is specific to Ubuntu and Debian systems, but a very large chunk of this can be applied to any Linux environment

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@inderix thank you! I suppose I already have some experience with that... all of last year I was managing a VPS that ran Debian and another that ran Ubuntu (on which I installed from scratch Ghost and Varnish Cache)... I need something slightly more advanced - but I really appreciate the advice, thank you!!!

  • Copy link
  • Flag this comment
  • Block
Tzimisce Flesh
Tzimisce Flesh
@flesh@transfem.social replied  ·  activity timestamp 6 days ago

@elena@aseachange.com The usefulness for your use case may be limited, but the Archlinux wiki has some pretty good coverage on running a Linux system with some depth into CLI and text configs. It is operating under the assumption that you're running specifically Arch, thus specifically Linux, but some of the advice is likely at least related to other similar systems.
Also, a command and concept you'd likely want to get familiar with is man and man pages. In a linux terminal (and probably other unix ones) typing man can give you some documentation on a given command's uses. And you can also look up those "man pages" on the internet (see: https://linux.die.net/man).
Some pages are better than others, but hopefully this could help you learn a bit about some of the tools you're gonna use.

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@flesh thank you! you're the third person to recommend arch linux but I'm a little intimidated because of all the memes about its difficulty 😆​

  • Copy link
  • Flag this comment
  • Block
PersonalCompute.net
PersonalCompute.net
@admin@gts.personalcompute.net replied  ·  activity timestamp 6 days ago

@elena

To get started in programming, Python and Ruby languages are good points to start (but I don't have any good tutorial bookmarks for those).

Then, to understand how computers work (and the link between hardware and software), the Computation Structures course is really good (Creative Commons license, initially created by MIT (https://ocw.mit.edu/6-004S17) and tweaked slightly here - https://personalcompute.net/resources/computation-structures).

PersonalCompute.Net

Computation Structures course

License
MIT OpenCourseWare

Computation Structures | Electrical Engineering and Computer Science | MIT OpenCourseWare

This course introduces architecture of digital systems, emphasizing structural principles common to a wide range of technologies. It covers the topics including multilevel implementation strategies, definition of new primitives (e.g., gates, instructions, procedures, processes) and their mechanization using lower-level elements. It also includes analysis of potential concurrency, precedence constraints and performance measures, pipelined and multidimensional systems, instruction set design issues and architectural support for contemporary software structures.
  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@admin fantastic resources, thank you!!!

  • Copy link
  • Flag this comment
  • Block
Ross of Ottawa
Ross of Ottawa
@ottaross@mastodon.social replied  ·  activity timestamp 6 days ago

@elena use the learn-by-doing approach. Perhaps invert the list, and start with the Linux learning part. The rest follows more naturally.

If you don't run Linux already, maybe start by getting an older machine (cheap) and following online guides to install Linux Mint on that.

With each thing you don't understand, pause to read up on it. When that works, do the same process with FreeBSD.

Most people learn CLI usage by doing stuff and you can pick it up the same way.

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@ottaross thanks! I have Ubuntu on my Raspi and I've been moving around in Terminal running commands for about a year... but it's mostly copy and paste.

Like I installed Ghost and Varnish Cache on my VPS and edited a lot of settings for it in Terminal... I just wish I could become more proficient in it, like rsync scares me a bit 😅​

  • Copy link
  • Flag this comment
  • Block
Irwene
Irwene
@antoine_ali@social.zarrouk.eu replied  ·  activity timestamp 6 days ago

@elena I mean as far as programming goes, I'd recommend starting to learn with C

It will teach you HOW things work under the hood, and once you're good with that, you can move out to other languages. The difficulty curve can be steep depending on the person. But it's imho the best way to start.

If you want to jump into things faster, python is widely used to introduce kids to programming these days.

As for your goals, I don't think they are directly related to programming. Those are more in the domain of a sysadmin

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@antoine_ali thanks and yes I've just edited my original message to say that maybe I just dream of becoming a proficient sysadmin 😅​

if you have any books to recommend for C and Python, I'm all ears :)

  • Copy link
  • Flag this comment
  • Block
Irwene
Irwene
@antoine_ali@social.zarrouk.eu replied  ·  activity timestamp 6 days ago

@elena I'll check my archives to see what I have, my old coursework could be nice too If I can get my hands on it again :D

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@antoine_ali thank you!!!!

  • Copy link
  • Flag this comment
  • Block
Rocketman
Rocketman
@slothrop@chaos.social replied  ·  activity timestamp 6 days ago

@elena very cool!

Re 3., @JulianOliver runs (paid) courses along these lines that look really good.

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@slothrop @JulianOliver thank you! looking into it now

  • Copy link
  • Flag this comment
  • Block
Ciara 💖
Ciara 💖
@ciara@anarres.family replied  ·  activity timestamp 6 days ago

@elena this is a harder question to answer than i thought it would be. i'm mainly self thought but i did learn the basics from books and then built up my knowledge by solving specific problems that i came across. i honestly have no idea where I’d start now 🤷‍♀️

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@ciara thank you! if you have any books to recommend to absolute beginners, I'm all ears

  • Copy link
  • Flag this comment
  • Block
Ciara 💖
Ciara 💖
@ciara@anarres.family replied  ·  activity timestamp 6 days ago

@elena the books i would have read would be completely out of date now unfortunately. if i think of any useful resources i will send them on

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@ciara thank you, I appreciate though ❤️​

  • Copy link
  • Flag this comment
  • Block
Jonathan Hogg
Jonathan Hogg
@jonathanhogg@mastodon.social replied  ·  activity timestamp 6 days ago

@elena I'd tend to say that your goals are somewhat orthogonal to learning programming. I teach coding to adults and am strongly in favour of starting with something like Scratch. It lets you get the logic of how code works, while avoiding the commonest pitfalls (syntax errors), and there's lots of examples and tutorials to work from. After that, I'd look at Python, which actually fits fairly well with your CLI goals as it exists mostly everywhere and you can use it for systems programming.

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@jonathanhogg thank you!

  • Copy link
  • Flag this comment
  • Block
Matt Mascarenhas
Matt Mascarenhas
@miblo@mas.to replied  ·  activity timestamp 6 days ago

@elena Oh great! So, I think of all your goals as "computer operating" rather than "computer programming".

What always helps me is keeping "notes" files. So, e.g. for goal 1) Working through whatever I'm trying to do, list out the steps I think I've discovered to do it, then follow the listed steps to see if they actually cut the mustard.

And for goal 2) I've found that making a shell script – zsh for me – that runs rsync commands and prints out diagnostic info, developed my rsync confidence.

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@miblo thanks! I think the real goal is to become a good sysadmin 🤗​

  • Copy link
  • Flag this comment
  • Block
Al Wirtes
Al Wirtes
@alwirtes@indieweb.social replied  ·  activity timestamp 6 days ago

@elena I am an experiential learner, so I learn best by doing and experimenting. If you’re not morally opposed to them, LLMs are great at this. Just prompt for the CLI command you want and ask for detailed explanation. For many, the CLI is like playing an instrument—you have to keep in practice.

Khan Academy is an excellent online training site for learning skills and concepts. Go at your own pace.

And Coursera partners with Universities for actual degrees online. This is more formal.

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@alwirtes looking into Coursera and Khan Academy now. Thank you!

  • Copy link
  • Flag this comment
  • Block
Sean Riley
Sean Riley
@dogriley@opensocial.media replied  ·  activity timestamp 6 days ago

@elena

If you are into learning more about the command line start with shell scripts, getting that under your belt will help you in all your mgmt work.

Then I would pick Swift. It runs on Linux and now NetBSD, it is the same language that is used by iOS and Mac if you ever wanted to do anything there. It is modern and type safe with lots of good tutorials available for free on YouTube. See @twostraws @StewartLynch as starters.

That's my $0.02.

  • Copy link
  • Flag this comment
  • Block
Elena Rossini on GoToSocial ⁂
Elena Rossini on GoToSocial ⁂
@elena@aseachange.com replied  ·  activity timestamp 6 days ago

@dogriley @twostraws @StewartLynch thank you sean!

  • Copy link
  • Flag this comment
  • Block

A small Bonfire corner on the internet

This is a small personal instance of Bonfire in the Fediverse.

A small Bonfire corner on the internet: About · Code of conduct · Privacy ·
Bonfire social · 1.0.1 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Code of Conduct