Live data from Hacker News

Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

news.ycombinator.com

91–100 of 114 posts

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#91

I disagree with lots of advice here. My strategy to solidify my linux skills was simple: commit to linux desktop. We spend most of our time on our desktop, may as well let that time earn you skill points. I picked ubuntu and use the same on servers. You naturally learn a bit every day through daily use. This really adds up over time without extra effort of using a side system. Getting good at windows or osx is a wast…

It is trendy to hate C now, but if you want to understand a Unix-like OS I think it is mandatory and they go hand in hand. Otherwise, you will have no idea what kind of interface your higher level language is abstracting. It's ok to not like it, but don't let that dislike be due to lack of understanding.

Sure, drop into C sometimes. But telling beginners to start there is mean.

I spent a lot of time in assembler too, and yes it has benefits for learning. Im also not recommending a high level toy like Logo.

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#92
post #40

Earlier quoted context omitted.

Commit to using, breaking and fixing a Linux desktop to learn quickly. I learned a lot running Debian Unstable back back when men were men and unstable was really unstable; so the 2010s. If minor things are constantly going wrong and getting fixed then the only way that can happen is the user building up a good mental model of how the system works. An update that breaks X11 will teach you a world of information about…

> Commit to using, breaking and fixing a Linux desktop to learn quickly. I learned a lot running Debian Unstable back back when men were men and unstable was really unstable; so the 2010s. Disagree. There's nothing worse than needing to use a machine, but you can't since it's broken because some package maintainer pushed a bad release upstream. There will be plenty to fix and tweak on any standard desktop or laptop w…

My machine being broken in various ways pushed me to find workarounds. I would've never gotten as comfortable in emacs or shell without breaking X11 and my login manager so many times

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#93

Earlier quoted context omitted.

It is trendy to hate C now, but if you want to understand a Unix-like OS I think it is mandatory and they go hand in hand. Otherwise, you will have no idea what kind of interface your higher level language is abstracting. It's ok to not like it, but don't let that dislike be due to lack of understanding.

Sure, drop into C sometimes. But telling beginners to start there is mean. I spent a lot of time in assembler too, and yes it has benefits for learning. Im also not recommending a high level toy like Logo.

I don't know if I understand that. Everyone was also a beginner at some point. I was a beginner at both C and Unix when I learned them together. I wrote a lot of bad C code before I got good at it.

I also say hand-in-hand as a bidirectional thing. I wouldn't suggest learning C without learning about Unix too. And I say that as someone who has worked extensively outside of Unix-like platforms.

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#94
1. Decide your goal, probably get hired? (Web, Devops, Embedded...)

2. Learn the stack that follows from 1, just barely, not too much theory. You want to start as k with 3.

3. Build something using the stack you learned. Start even if you are clueless of how to do it, and google every question you encounter. Stackoverflow will become your friend.

Repeat 2 and 3 for the rest of your life.

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#95
post #39

Earlier quoted context omitted.

I remember I used Ubuntu Desktop in 2008 for a year or two. But Ubuntu is point and click and anyone can use it. I did not learn much about Linux using it. I felt that I really started understanding how things work when I switched to something requiring more reading - Archlinux. To get a running desktop it not only required doing all kinds of things I did not understand back then, it also provided great Wiki to get t…

Exactly the same experience can be had by installing Ubuntu server as your base and going from there.

Ubuntu server is the same distro as Ubuntu Desktop, just with some differences in preinstalled packages.

On Ubuntu Server it will still automatically install bootloader, configure initram, full disk encryption, etc. And after installing desktop environment packages it will configure, enable and start all of the services automatically.

While it is easier and the result looks the same, you are less involved in the process and thus potentially learn and understand less.

Just try setting up Gentoo or Archlinux and then tell me that it was the same experience as Ubuntu Server. ;)

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#96

I disagree with lots of advice here. My strategy to solidify my linux skills was simple: commit to linux desktop. We spend most of our time on our desktop, may as well let that time earn you skill points. I picked ubuntu and use the same on servers. You naturally learn a bit every day through daily use. This really adds up over time without extra effort of using a side system. Getting good at windows or osx is a wast…

I second this, yes you will make mistakes, yes you will break things but that's the way of learning (btw always have a live ISO of your distribution of choice in hand), additionally there's also linuxjourney.com which was an invaluable resource for me (I did the complete journey two or three times).

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#98
post #76

Earlier quoted context omitted.

It is trendy to hate C now, but if you want to understand a Unix-like OS I think it is mandatory and they go hand in hand. Otherwise, you will have no idea what kind of interface your higher level language is abstracting. It's ok to not like it, but don't let that dislike be due to lack of understanding.

Indeed. All the foundational common ground between all languages in Unix is made for C. I'm talking about the system call interface. All general purpose languages will have a wrapper for this interface, but the main documentation is made for C. Besides that, libraries tend to be made in C as well. That's because if it's in C, it's easy to make it available for other languages. Most general purpose languages will have…

[deleted]

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#99
post #65

I disagree with lots of advice here. My strategy to solidify my linux skills was simple: commit to linux desktop. We spend most of our time on our desktop, may as well let that time earn you skill points. I picked ubuntu and use the same on servers. You naturally learn a bit every day through daily use. This really adds up over time without extra effort of using a side system. Getting good at windows or osx is a wast…

JS and php are perfectly suitable general purpose programming languages these days. And given they're both turing complete, they implicitly cover advanced use cases too. So that leave us with "sound in its design" and I'd argue the absolute unmitigated disaster of python 2 vs 3, the numerous competing competing package managers, and the abundance of really bad code examples due to the influx of the mathematics world…

I agree, and in addition, at early stages things like "sound design" don't even matter. You're busy understanding loops, try to interact with the file system, fetch stuff from the web, you're inevitably googling and copying a lot of bad code. Python 2 vs 3 doesn't matter at that point. PHP might even be the best choice here since you don't need to remember to import stuff, just start off with your code, all the functions are there.

Once you reach a point where you want to do more advanced stuff or just try out other languages you can still learn about include, import etc. and start to structure your code better by splitting it into compilation units, classes, modules, what not.

Re: Ask HN: How can a intermediate-beginner learn Unix/Linux and programming?

#100
Its very easy to get good with unix. I usually use the tee rule for this (look up tee on google ;) )

1) Get a good linux, you can start with ubuntu. After getting comfy with ubuntu try another os, debian,And eventually to the hardcore ones like Arch, Artix and others. Try to do your usual thing with commandline. For example, How to copy using terminal,How to open a file with terminal, How to get lots of terminals inside terminal. Stuffs like this (trick is simply go ahead and add "How to do it in terminal" ;) ) Google them up. (www.giyf.com) Try to rice your system. It teaches crucial aspects about the appearance,usability etc.

2) Get a good book. No starch press has some good ones, even O reilly gets you into shape. The trick to good book is simple: Get a book, read it. If you love it finish it. There are open source notes as well. Awesome cli github is similar.

3) Try to create your own tools using 1,2 this will allow you to bend your brain. Stuffs like How can I get hackernews comments in my terminal, How can I create a shell script to remind me that 20mins have passed (pomodoro) and stuffs like that.

I have some starred repositories and Some simple tools of my own (Aeres-u99 @github) to check for some example.

I think with this (depending how extensively you do them) you can be decent

Post reply on HN