4 ms·
I think unless one uses Linux on daily basis it's really difficult to sink in the knowledge. I decided to install an Archlinux VM and see what happens. I'm kin
by markus_zhang 4y ago
I think unless one uses Linux on daily basis it's really difficult to sink in the knowledge. I decided to install an Archlinux VM and see what happens.
I'm kinda disappointed to myself as I found out I didn't like too much trouble so I'll probably never be a good/great programmer.
- miloignis 4y agoI wouldn't write it off just yet, at least if you want to be a good programmer! While there might be some correlation, there's plenty of fantastic programmers who don't want the hassle and want to focus on a specific problem and just use Windows/macOS and an easy to setup/low configuration editor. One particularly great TA I had in college comes to mind...
- markus_zhang 4y agoThanks, but I actually wanted to learn low level stuffs, or I thought I wanted. Anyway I'll see what happens. So far nothing really clicks for me but if that's it then that's it.
- nequo 4y agoWhat types of low-level things did you want to learn? A lot of what seem low-level in Linux are implementation-specific things. For example, how you set up wifi or how you manage your firewall. Knowledge of these things gives you less long-lived and less transferable skills than knowledge of protocols like TCP/IP which is shared by everything that is plugged to the internet. It doesn't make you a better programmer, unless these daemons and tools are what you want to write software for. Also, your options are not only Arch Linux and Windows/Mac. There are more desktop-ready distributions, too, like Ubuntu or Fedora. Linux lets you still inspect the plumbing if you install one of those.
- markus_zhang 4y ago> What types of low-level things did you want to learn? To be honest, I've dabbed in a lot of low level stuffs but never went deep enough to make any impact, career-wise at least. For example I completed a full course on MCU programming, completed the first half of nand2tetris, read the first few hundreds of pages of "Beginner Reverse Engineering" (basically the part that teaches one to recognize C from decompiled assembly code), and many others. My most recent low level adventure was the book "Practical Binary Analysis" which I planned to use the whole holiday to push maybe a few chapters. But I never drilled deep enough into any of the topics. I believe I have the brain to drill at least a few more chapters deeper for any of them, but I don't have the mental power to do it. I secretly want someone to put me into some sort of prison and keep me from getting out until I completed all previous projects and learnings. But of course I need to figure out a way to deal with the problem. Anyway, really appreciate your answer, and probably I'll still install Archlinux, play with it a few days and then lose interest -- just another failed project to spend time.
- diego_sandoval 4y agoPeople say "Arch makes you learn how Linux really works", but I don't think that's a good way to put it. Arch teaches you about the most boring parts of how linux works: the specific idiosyncrasies and configuration minutiae of a ton of libraries and programs (GNU coreutils, systemd, udev, mesa, glib, X11, Xlib, xdg, dbus, etc.) Arch will usually not teach you the really interesting "low level" things about Linux: How the kernel works, how threads are created, etc.
- reshie 4y agogentoo gets pretty close for a full OS system.
- tmtvl 4y agoNo it doesn't. But that's fine, it's not the point of a distro to teach you about interrupts and syscalls and all that nonsense, the point of a distro is to give you software to install. That said, Gentoo does do a good job of teaching you how annoying it is to try and figure out exactly which kernel options you need to activate to get a working system. I always run out of patience before I get it working, though (yes, I know about make localmodconfig).
- tehnub 4y agoI'd say it teaches you how to use Linux. It's not the particular details of each config file, but the fact that there are config files, and where to look for them. By the end of an Arch install, you know at least 85% of how to manage your system, and wiki will take you to let's say 98%.
- bombcar 4y agoInstalling Arch is much closer to system administration than programming - they may be related somewhat and attractive to similar people; but you can be a quite successful programmer and barely be able to install Ubuntu. I know people who have written kernel-level Linux drivers who have difficulty upgrading macOS. They're separate skillsets.
- channel_t 4y agoI was going to say, I know a lot of programmers, maybe even most, who avoid Linux like the plague because they don't want to waste cognitive cycles on fixing their broken machines. I have found myself in this same place after a solid 12 years or so of Linux use for pretty much everything, home, work, etc. I honestly kinda want to get back into it, but there are other priorities. As long as I have access to some kind of unix-y command line from somewhere I'm good.
- CoolCold 4y agoThat's how WSL gets traction being good enough as Unixy command line
- markus_zhang 4y agoThanks for sharing. I'm a bit surprised about the second paragraph but then I realize it is indeed two skillsets. I think I'm split between career growth and hobby. My career is much closer to a sys admin/devops than a low level programmer, but my hobby probably is closer to the later. Of course it could be just my fancy about low level programming that fascinates me as after all I have never done any low level programming except some entry level MCU programming.
- HideousKojima 4y ago>I'm a bit surprised about the second paragraph but then I realize it is indeed two skillsets. I started out my career on the sysadmin side of things before becoming a developer and that doesn't surprise me at all. Most devs I work with have little to no understanding of things like file permissions, how networking works beyond making HTTP calls with $SomeRequestLibrary in their programming language of choice, or how services/daemons work in Windows/Linux.