Live data from Hacker News

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

news.ycombinator.com

11–20 of 114 posts

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

#11
Download Ubuntu and run it as a virtual machine inside your current machine (use Google for instructions - it's fairly straightforward with a piece of software called virtualbox). That should stop you from running into hardware related compatibility issues.

Get familiar with the interface and the concept of a "terminal".

Then try do some simple stuff. Maybe set up nginx (or Apache) to run a web server that you can access via your host machine.

Thereafter try doing some Linux admin tasks, like creating users, switching users. Maybe even set up SSH and try accessing the virtual machine from your host machine via PuTTY.

After, maybe try spinning up a simple node web app on the virtual machine and access it from a browser on your host machine.

By this time, you'll probably get a sense of what you want to explore next! And remember, Google it's your friend for all of the above!

All the best :)

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

#12
The Missing Semester of Your CS Education [1] is a set of tutorials from MIT that gets you to speed with using the CLI, using a text editor (Vim), version controlling (using Git), basic debugging, etc. Some tutorials aren't perfect (e.g., an earlier version had things like `for f in $(ls)` [3]), but at least they link to good tools and resources. There's also Software Carpentry [2], which has similar goals. You might also want to check out The Bash Guide [4,5], which is hands down the best Bash tutorial written.

[1]: https://missing.csail.mit.edu/

[2]: https://software-carpentry.org/lessons/index.html

[3]: https://mywiki.wooledge.org/ParsingLs

[4]: https://mywiki.wooledge.org/BashGuide

[5]: https://guide.bash.academy/

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

#13
post #8

Earlier quoted context omitted.

>For Unix, install linux on your computer and use it daily. You’ll be forced to learn. I tried this years ago and it didn't end well. With how complicated current-gen distros are, you need to understand what's going on under the hood before you can effectively mess with it. In my experience you'll just end up with one screen that's only at 720p and a crashed pulseaudio that you never fix because you just want to watc…

I don’t know how long ago you’ve tried it, but that was pretty much my experience as well. However, in my case we are talking late 90’s. Things have changed a lot since then.

About 3-4 years ago. I disagree with most poeple that say it's just as easy as using w10 now, it takes way more work to make it as stable as windows (which takes none). It's just a lot more powerful and easy to modify when you want it to be.

BTW if the OP (or anyone else) is wondering, now I run w10 and minimal Ubuntu with i3. The knowledge transferred basically 1:1 from server management (except for window manager stuff, but that was easy to research)

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

#14
I regularly recommend installing VirtualBox, obtaining a Linux distro, e.g. fro. OSBoxes.org, and using it to do a http://linuxfromscratch.org/ project.

LFS is well-document and maintained, and levels you up in a jiffy on the practical basics.

It's not about programming per se, but covers quite a few concepts you're expected to "just know".

Plenty of pointers to more advanced concepts, too.

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

#16
post #11

Download Ubuntu and run it as a virtual machine inside your current machine (use Google for instructions - it's fairly straightforward with a piece of software called virtualbox). That should stop you from running into hardware related compatibility issues. Get familiar with the interface and the concept of a "terminal". Then try do some simple stuff. Maybe set up nginx (or Apache) to run a web server that you can ac…

I’ll probably use my raspberry pi instead of installing a VM.

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

#17
post #12

The Missing Semester of Your CS Education [1] is a set of tutorials from MIT that gets you to speed with using the CLI, using a text editor (Vim), version controlling (using Git), basic debugging, etc. Some tutorials aren't perfect (e.g., an earlier version had things like `for f in $(ls)` [3]), but at least they link to good tools and resources. There's also Software Carpentry [2], which has similar goals. You might…

I wonder if introducing newbies to makefiles and vim is super empowering, or ends up gatekeeping by making it look "as complicated as you feared it would be."

I feel like before any of that:

1. Do practical stuff with Python

2. Learn the semantics behind the Linux directory tree

3. CLI, piping stuff together, a little bit of bash.

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

#18

Learning to use the command line is a requirement for all serious programmers and its great you want to start. It can be pretty overwhelming to use the terminal so you may have to some reading to get yourself really comfortable. I usually go to books/(book pdfs) to help me start out because they have conceptual explanations about the syntax which really helps my understanding. Maybe this one would be good? The Linux…

> Maybe this one would be good? The Linux Command Line, 2nd Edition: A Complete Introduction

Free PDF in the author's (William Shotts) homepage: http://www.linuxcommand.org/tlcl.php/

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

#19
post #3

My advice is to start working on a project you care about and then learn everything required to make it happen. If you already know JavaScript, maybe build and deploy a static website. Once you've done that then perhaps make it interact with an API.

This. Having something to actually accomplish is much more important than finding the ultimate book or online course. There are lots of those.

Pick one and move on to defining a realistic project that seems interesting and achievable.

Most important of all, finish it, and write what you did down somewhere. It took me 20 years to realize how important this is.

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

#20
post #12

The Missing Semester of Your CS Education [1] is a set of tutorials from MIT that gets you to speed with using the CLI, using a text editor (Vim), version controlling (using Git), basic debugging, etc. Some tutorials aren't perfect (e.g., an earlier version had things like `for f in $(ls)` [3]), but at least they link to good tools and resources. There's also Software Carpentry [2], which has similar goals. You might…

I wonder if introducing newbies to makefiles and vim is super empowering, or ends up gatekeeping by making it look "as complicated as you feared it would be." I feel like before any of that: 1. Do practical stuff with Python 2. Learn the semantics behind the Linux directory tree 3. CLI, piping stuff together, a little bit of bash.

But at some point isn’t it helpful to know that some things are as difficult as you fear, and you just have to power through? I picked up vim early in my programming career and I think it was one of the best decisions I’ve made; I use it every day. Yeah, there’s a time and place for learning “easier” things, but there’s also a time to buckle down, get serious, and dig in.
Post reply on HN