• 0 Posts
  • 5 Comments
Joined 1 year ago
cake
Cake day: June 24th, 2023

help-circle
  • I like that I don’t even care about it. The main user of it is my wife, who is non-technical. It’s the only computer she uses, for everything (browsing, shopping, banking, word processing, printing) for 20+ years, and if you ask her which distro it is, well, she doesn’t know what “distro” means.

    She doesn’t “use Linux” because she wanted to “learn Linux” nor to “try this distro”. She uses youtube, instagram, the bank site, amazon, libreoffice, etc. The closest she gets to the OS is accepting the package manager prompt to update.

    I wish one day most people can answer your question with “I don’t know, whatever came with my computer”, because it’ll mean all of them are as easy to use, as unobtrusive and as unimportant to the user as possible.

    But to finally answer it, kubuntu, some ancient, still updatable LTS version (can’t even recall when I last upgraded), because it was easier for my wife to adapt, coming from windows 95 when she started using it.


  • I agree; I mentioned headless server because that would be a more “pure” and general Linux administration - learning how to administer a SUSE Linux using the graphical yast tool won’t translate as well to general Linux admin as if you learn and understand how to fo it in the command line and config files.

    And absolutely; one can use Firefox, LibreOffice and any other tool on Linux, but I don’t consider that as “learning” or “knowing” Linux. My wife uses exclusively Linux for 20+ years (because when she left her job where they still had Windows 95, that’s what the desktop at home ran; kubuntu). She does text editing, internet banking, shopping, browsing, printing, everything there (even updates sw through the gui package manager), but she doesn’t “know Linux”.

    You can setup a Linux system for a computer illiterate, and they may happily learn how to use it for their social media and streaming consuming, and whatever endusers do in their computers, without ever knowing that’s “Linux”.

    Strictly speaking, that already happens. How many Android users know they are running on a Linux kernel?

    That’s why when OP said “learn Linux”, I prioritized the admin on command line; as you don’t need to really “learn Linux” to interact with it through automated/graphical admin tools (no shame on doing it, they’re sometimes quicker and more practical than command line).

    What I mean is that learning how to use cPanel or Yast is useful, but you’re learning how to administer as system through a tool, which in theory could even be adapted to administer a non-Linux system.


  • jsveiga@vlemmy.nettoLinux@lemmy.mlJust finished cs50 need some guidance.
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Apart from actual system administration or kernel developing, there’s no real “learn Linux” .

    Video/Photo/Vector editing on Linux is not “learning Linux”, it’s learning to use a tool which runs on Linux. You can learn to use Blender, Gimp or Inkscape on Windows. You don’t edit videos/photos/vectors with the Linux kernel. You can even “learn the linux terminal” installing bash on Windows.

    You can also install Visual Code or IDLE on Windows and on Linux. Learning to code on Visual Code or IDLE is not really “learning Linux”.

    Also going on distro hopping looking for the “perfect distro” many times means the hopper simply doesn’t stick to one long enough to learn how to customize the environment to their liking (which usually means the window manager).

    Most of the things you can do on the GUI, even the administration ones are just layers and layers of tools to make things “easier” - and they’ll be different on each distro and release. Command line administration will change much less, or at least less frequently.

    Things I consider “learning Linux” are for example:

    • installing Linux (specially a headless server)

    • understanding how to use the package managers - again, on the command line

    • understand how systemd works

    • (hard core) dive into the kernel workings

    • understand how grub works

    • learn the general filesystem structure

    • learn how to analyze logs

    • learn user administration and how the permissions (and extended permissions) work

    • learn how to integrate Linux to a Windows environment (join a workgroup or domain, share storage, authenticate users)

    • learn how to check resources usage and how to troubleshoot it

    • understand the nuances and of partitioning and when they are needed, as well as the different filesystems

    • etc (and /etc)

    And yes, many of those are not strictly “Linux”, but are specific to a Linux system, unlike photo editing.


  • I’m a 55 year old senior developer. I’ve been coding since I was 12 (yeah, RPG II in punch cards and COBOL stored in 8" floppies), and I have a TERIBLE memory.

    Don’t bother memorizing and knowing every language feature and detail. Just get a general awareness of what it can do. Then when you need to accomplish something, it’s good enough that for the first times you do it you go “hey, I recall there’s a way of doing it” or at least (often happens to me) “hmm, this sounds useful enough that this language must have a built-in way of doing it”. Then you google or ask some AI, and you’ll get pointed to the general direction most of the times.

    Then if you use it often enough, you’ll remember it. (and in my case, if I don’t use it for 3 months, I completely forget about it, and even get surprised when I see how I did it in my own old code).

    In the old days, you could indeed know every feature and library (if any existed at all) of a language. Heck, I knew almost all hex op codes for the Z80 assembly by heart (still recall more of those than I recall my relatives names). Nowadays it is impossible to memorize everything.

    In JS realm, if you look at the amount of components you have available in most frameworks, for example in UI5, or existing node modules for your node.js project, even trying to “memorize” them all is a waste of time. In cases like this, you just need to assume there’s a component or module that does what you need, then be good at finding, choosing, and understanding how to use one.

    Not to mention the reduntant stuff they throw in “modern” languages, like javascript’s forEach. Some languages have 10 ways of doing the same thing, each one 0.1% more efficient for each particular case, but may catastrophically fail in some other specific case. Screw it. Learn the one that works well for every case and stick with it - you’re not coding ultra performance critical stuff in js anyway.

    Programming today is usually more an integration of functioning pieces than building from scratch (assuming that if you’re talking about JavaScript, we’re not talking about creating microcode for bare silicon).

    Worry about building an efficient and robust logic in your head. Then the programming language is just a tool, way less important than the logic you came up with.


  • Yes, back in 2009, after a kernel update to 2.6.26 there was an intermittent and hard to reproduce problem with Intel’s e1000e ethernet linux kernel module. It only happened when some specific switches/hubs were connected to the interface; the interface would initialize in an unusable state (about 50% of the computer boots).

    The e1000e module was used by a lot of Intel onboard ethernet interfaces, including the one used by Dell Vostro computers.

    I found other people reporting it in the kernel’s bugzilla, and added my case.

    The Intel developer couldn’t reproduce it (he didn’t have one of the switches that triggered the problem), so he asked me to use bisect to help narrowing down to the commit that started the problem.

    Because it was an intermittent issue, I wrote a script to reboot the PC multiple times on each bisect try, to eliminate false positives.

    (I didn’t remember all these details, but googled my name and bisect, and found the bugzilla thread; it’s an interesting bisect use case: https://bugzilla.kernel.org/show_bug.cgi?id=11998#c8 - no I don’t mind this associates my lemmy user name with my real name).

    The bisect did locate the culprit commit, and after many other tests, it ended up being an issue with the MDI/MDIX (crossover or straight connection detection). The correction was pushed into the kernel.

    Bisect definitely helped to find an important and otherwise difficult to find problem there.