Ask HN: Your favourite tutorial for total beginners?

480 points by mcbetz ↗ HN
What is your favourite (video or written) tutorial for beginners – in any technology?

Mine is Django Girls Tutorial (https://tutorial.djangogirls.org/en/) because it does not assume any prior knowledge and has a good balance between the big picture and small details.

202 comments

[ 1.1 ms ] story [ 474 ms ] thread
http://learnyouahaskell.com is a fun and accessible intro to Haskell that's a great complement to denser material
Gladly there is an online IDE with compiler (https://repl.it/languages/haskell) so you don't even need to install Haskell locally (which honestly seemed a bit heavy for a starter's tutorial - "First you need Haskell Platform, then you can start the tutorial")
(comment deleted)
This is one of the better language tutorials on he web, IMO. It's very conversational, and if the FP concepts don't draw you in, wondering what stupid thing he's going to draw in the next chapter will.
https://selectstarsql.com - SQL tutorials for non-technical folks.

This is an interactive book which aims to be the best place on the internet for learning SQL. It is free of charge, free of ads and doesn't require registration or downloads. It helps you learn by running queries against a real-world dataset to complete projects of consequence. It is not a mere reference page — it conveys a mental model for writing SQL.

I expect little to no coding knowledge. Each chapter is designed to take about 30 minutes. As more of the world's data is stored in databases, I expect that this time will pay rich dividends!

This is a great tutorial thank you! I did not expect an emotional dataset of Texas executions and their last words..
The Emacs interactive tutorial (type "C-h t" to start) is awesome. After you complete it you know all Emacs basics and can get to work.
In a similar strain, vimtutor is an excellent intro to vim and probably already installed on your computer.
Hartl's Rails tutorial. Probably the best intro to modern full stack development I've ever come across.

https://www.railstutorial.org/book

Rails is modern? Seriously I thought it has a lot of baggage like django does towards the old way of rendering web pages on the backend. If it's not true please correct me and elucidate.
Rails is modern. People still develop with it. Something like Perl and its frameworks would not be considered modern, probably.
I tried a few times to give the rails tutorial to rank beginners and they couldn't get from power user to programmer without major hand holding or sheer maddening drive. The learning curve is still too steep.
This book got me into the tech industry. Not because it taught be Rails, but because it showed me that I was capable of building features that seemed difficult and complex with relative ease as long as I approached it with the right methodology and determination.
I haven't looked at it since 2014, but this + codecademy took me from pedestrian interest in programming to writing prototypes
As a beginner trying to learn to program a long time ago, rails was possibly the worst resource I attempted to use. You follow a complicated, tutorial to set everything up so you can actually start. Then you type a few words and then a bunch of complicated looking files are generated automatically in a way that it's hard for a beginner to even know what sections he's supposed to be able to understand.

Maybe it clicks for some, but I had a better time starting with HTML/CSS and then learning JavaScript before moving on to Python.

Nobody would recommend learning rails without a decent understanding of html, css and javascript.
We realized the same thing—the Rails Tutorial is a little too advanced for complete beginners, so we created seven more beginner tutorials that work step by step to teach the prerequisites for full-stack web development. More info on the courses is available here: https://www.learnenough.com
Thanks for the response. Its great to see there's a more gradual way to get into the Rails tutorial now. I am aware that your original tutorial was probably not aimed at a complete beginner with no experience at all, but I was basing my comment off of the thread title which is "favorite tutorial for total beginners." I know your tutorial is considered by most to be great, I was just sharing my experience as someone that attempted to go from absolute zero to the Rails tutorial long ago. I hope I didn't seem like I was putting it down in general. I mostly work with Python scripting and Jupyter notebooks, but I've been wanting to get back into web development for personal projects. I'll check out the new courses.
No worries! Great to hear your perspective.
I tend to agree with the notion that diving into rails is a difficult way to learn when you start from little or nothing.

The core issue is that Rails can do so much to help you out, which allows you to stumble your way through many issues and make things that do mostly work. While this is great for getting things done quickly at first, you might develop incorrect notions of where the abstraction layers' boundaries are which can make life difficult when you step outside of the box.

Now that's not to say you can't learn that way, or that tutorials couldn't be written that effectively teach using rails. It's just that there are dangers in learning first from a complete and robust framework that does such a good job of masking the complexity it encapsulates.

I was up and running very fast using OneMonth Rails. It oversimplified some things but ensured I had a running app pretty quickly. It got me over the hurdle of being stuck in books and videos and instead had me tweaking something I could be proud of.
How guns work: https://www.youtube.com/watch?v=HJnhr08aIJs

How a car differential works: https://www.youtube.com/watch?v=yYAw79386WI

Downright the best zero-to-programmer course in the world. Wish I knew about it when I was starting out: https://online-learning.harvard.edu/course/cs50-introduction...

The car differential video is genius. It confused the hell out of me for the first 2 minutes, but then it clicked beautifully.
I can certainly vouch for CS50, when I was in middle school I messed around with programming, but taking CS50x was what made the intuition and process come together for me.
(comment deleted)
I've seen those first two on Reddit before, and they're amazing. They take the time to explain thoroughly but still remaining engaging with no special tricks. The use of physical models instead of diagrams (or Powerpoint slides) doesn't seem like it should be important, but it is.
As someone who was recently a total beginner, I've found two that I have really appreciated:

1. Learn to Program, by Chris Pine https://pine.fm/LearnToProgram/

2. The C# Player's Guide, by R. B. Whitaker

I came here to mention Chris Pine. Amazing book and from my brief correspondence with him, a great guy.
I would really love one for containers/docker if anyone has a suggestion
I'd suggest "Practical Docker with Python: Build, Release and Distribute Your Python App with Docker" by Sathyajith Bhat.

Very beginner friendly.

thank you! I've been looking for something like this too.
I also really like his garlic video: https://jp.foundation/video/garlic-puree
This is easily my favorite food video online. Possibly my favorite video online period. This technique creates a world of possibility since it creates a smooth spreadable raw allium. I recommend it to every novice and intermediate cook I know.
That was nice. I want to learn how to cut vegetables like the chefs do. I cut my fingers often.
What an amazing video. Thanks for this.
Absolute mastery. Thanks for this.
He does have absolute mastery, but it's my favorite tutorial because it is an _excellent tutorial_. I can do 2 chickens in a minute at this point; more, if I don't bone out the legs.

Just as importantly: if you can do this with a chicken, you can do it with a pheasant, a duck, or a goose as well. It works pretty much the same way.

If you eat chicken, I strongly encourage you to try this yourself.

Dave Arnold mentioned this week that Pepin claimed 12 seconds as his personal best; 30 seconds for a non-professional cook seems extremely impressive.
Oh, nice, it's been awhile since I listened, and now I have a reason to.

Pepin is doubtless doing a much better job than I am, and I'm not counting the time to clean up the tenderloins, which is a pain in the ass.

Arnold's in the middle of a move and has to thin out his book collection as a result. As he tries to figure out what to keep he's been bringing in books to talk about in a new segment called "Classics in the field". If you've enjoyed Dave Arnold talking at length about obscure decades-old highly in-depth technical books, well he's doing that every week now.

I'm very happy that he's saved me the trouble of having to read "Pigeons: How to Make Them Pay"

Listened. Worth it. Jackie Peeps! Thank you!
I don't know the proper french word for it - but the strings around the chicken always struck me as very complicated but he explains it so well it appears easy.
Personally, what I saw is “how to bind a box with rope or tape without looping all around it a dozen times.” And it's so simple in fact that either I'm a dumbass for never thinking of it, or I possibly did try it and failed miserably.
We actually learned this in Gabriel Chen's Chinese cooking class back in Ann Arbor, among many other things.
Thank you, such a classic. His omelet video is incredible too. Learned his French variety a few years back, took a few tries to perfect but now can open nearly any fridge and make a great meal in 2 minutes https://m.youtube.com/watch?v=X1XoCQm5JSQ
> now can open nearly any fridge

You'll get much better results with room temperature eggs. Straight from the fridge they take longer to cook and the bottom layer might be overcooked by the time the top is done.

I like to put them in the microwave first for around 20-30 seconds depending on the number of eggs.
Title/description would be appreciated with link.
Ray Tracing from the Ground Up, by Kevin Suffern

As a college freshman I started this book with only a passing familiarity to C++ and was able to follow it to implement a raytracer that supported depth of field and global illumination, among other things.

http://www.raytracegroundup.com/

If the question was "what is your second favourite tutorial?" it would be very difficult to answer.

But, since the question is about the favorite, the answer is, unsurprisingly, "The C programming language" by Kernighan and Ritchie.

Can someone recommend an easy tutorial for beginners for getting into electronics?
Getting Started in Electronics by Forrest Mims. The entire book is hand written and hand drawn. I think this is why the book is concise and direct. It is a work of art.
nand2tetris.org Haven't finished it yet but it's all about building a full computer from a NAND to other logic gates (mux, dmux, and, or, etc) to higher level things like assembly, memory, cpu, and it keeps going to a tetris game. It's challenging, comprehensive and builds upon itself. It's awesome
It doesn't actually keep going to a tetris game :). The final project is to build an OS that you could run tetris on if you were so inclined.

Cool course, but I bailed at the compiler stage because it feels like you hit diminishing returns for the work you need to put in (lots of tedious regex and text processing work for relatively little learning).

The Little Schemer is my favorite, especially if you regard The Seasoned Schemer as part of it. It takes you amazingly far for a self-contained tutorial.
Bell Labs' 1959 video "Similarities of Wave Behavior." By far the best introduction to the subject of waves of any sort.

https://www.youtube.com/watch?v=DovunOxlY1k

Thanks so much for posting this link! I've been trying to wrap my head around SWR for a long time and this made it so simple to understand. Thanks!!!
This is the one that completely changed my mindset about designing and writing programs:

What Every Programmer Should Know About Memory - Ulrich Drepper

https://people.freebsd.org/~lstewart/articles/cpumemory.pdf

It is good for sure, but a white paper isn’t exactly approachable for total beginners.
Fair, but just understanding the conclusion sections of the first couple of chapters will have tremendous benefits for an average programmer.