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.
- If there's some way to learn playing chess beyond just the rules without memorizing an encyclopedia of openings, I'd be grateful for links. I.e. I currently can stare at a position for a while and figure out a couple next moves that should be good. I'd like to elevate this to figuring out a bit more moves. (Though I have a suspicion that it's a question of ‘rinse and repeat until I remember all the openings anyway’.)
- Similarly, I'd like to drill music lingo of chord progressions and stuff, as a total noob, without turning it into a ‘compose by the book’ approach. I'm actually somewhat afraid to learn about keys and scales since I'll likely start hearing them everywhere and promptly fall into patterns and academic ivory-towerity. Is there a way around that while still understanding music talk?
Just by understanding scales and progressions you won't "start hearing them everywhere" and "fall into patterns". There are no "right" and "wrong" progressions in contemporary music, they are just there. By understanding the theory, you will see why you might like certain things and dislike others. It won't take away your enjoyment from music and it won't change your music tastes. Whatever progression is "right" in someone's eyes will be "wrong" in eyes of another person.
Music theory is as close to math as one can get in arts, imo. There are no "right" or "wrong" numbers, everything is very neutral and non-biased. Yes, some progressions sound more right or wrong to most people, but that's mostly because of our collectively shaped taste of music, and learning theory will not force you into any kind of tastes on its own. It might motivate you to explore more diverse music, as you will be looking for more novelty in patterns, but that imo is a good thing and, in fact, is the opposite of being locked into the "ivory tower".
So my advice on it would be to stop fretting and to just dive deep into the music theory :)
> (Though I have a suspicion that it's a question of ‘rinse and repeat until I remember all the openings anyway’.)
Its not that. There's a lot of interesting principles to learn, after 'how the pieces move', without just learning openings. Most people will say not to focus on openings until you are at least intermediate.
Most chess books will do what you ask, just Google for recommendations and reviews.
Example book: Play Winning Chess, Yasser Seirawan
Another great diagram-heavy book but for intermediate to advanced is Lev Alburt's "Chess Training Pocket Book".
Episode 3 in particular, which was about equal temperament, is especially good. It explains things like scales and chords in a very satisfying way for both experienced musicians and those who have not had a formal education. He even ties it back to the actual physics of sound and harmonics.
It's only got half a dozen episodes, so it's worth a go.
It has narrated step by step tutorials by Josh Waitzkin, it put you in special situations to learn basic tactics like discover attacks, pin or skewer (https://en.wikipedia.org/wiki/Chess_tactic).
There are also tutorials for knowing the tiny details about endings with specific pieces, like bishops vs bishops where you have to be very wary of the color of the bishops and position you're in if you'd like to trade, or the importance of the bishops color to stop a pawn, or even the fact that in some situations the column which a pawn is in might determine if the game leads to a stalemate or not (some columns results are not intuitive at first).
As the tutorial advances it starts throwing at you historical games and puts you in control in a given position to make the best move starting with games when josh was a kid, which helps you compare your ability to him as a kid, so if you're also interested in chess history, it's really cool!
(Upd: apparently there was an Android release by Gameloft in 2004, but it looks very questionably: https://www.mobygames.com/game/chessmaster___)
You CAN memorize common openings if you want, but I am not sure that's a good way to spend your life unless you are super serious about chess.
When I was a beginner I would agonize over every move and drive everyone crazy. Eventually after enough games I started to recognize some patterns. If I were to do it all over again, I would just play as many games as I could, all the way to the end, not worrying too much about winning or losing as much as just absorbing what is happening.
I'm not a chess master, but I did beat a guy with a knight tattooed on his forearm, so that has to count for something :P
I have a much better time with action or racing video games precisely because the feedback loop is very tight. Finally figured out that I should try chess puzzles, increasing the length gradually.
Learning about keys, scales, and chords will help you understand music but not necessarily force you into predetermined patterns. Learning chord progressions will help you hear patterns in music, which may reduce your enjoyment of pop music since a handful of progressions are used almost everywhere. On the other hand, if you enjoy trope-spotting, it may increase your enjoyment.
In other words, people have made music since the beginning of recorded history in ways that sound pleasing to them, and music theory is the language that evolved to describe the types of music that consistently sounded good to some people. It's not a set of rules that you must follow, and in fact if you stick too closely to what came before your music will probably be boring to most people.
Tactics are looking for specific exchanges that benefit you. I'd recommend https://www.chesstactics.org/ as a great resource for being taught the tactics and being able to recognize them. There's a lot of Chess Puzzles out there on things like chesstempo and lichess. If you can easily recognize and execute these tactics, then you won't lose opportunities to gain serious material advantages.
I don't have a good endgame one on hand. Fundamentally though if you know how the game will end, you can push your game state towards a useful winning position. And it helps make sure you don't give away a game by stupid mistakes.
The next layer on top of that is understanding the strategic choices. Sometimes higher level players will make what seems like a really boring move that doesn't have an immediate effect (doesn't solve or generate a threat), but it help their "position" for the future. Things like placing a rook on the open file, or positioning a bishop/knight on a "good" square.
As for openings, since you're a participant in the game you can pick a main opening line that you like and then dive into it, learning all the typical variations in the book that you might see. For example, someone might offer a Queens Gambit, but you get to choose if you Accept or Decline as Black. So experiment a bit, and if you really enjoy 1.E4 openings, then dive into the variations (and counters for when you're black).
-----------------------------------------------
For music, trust me learning theory doesn't turn you into an academic. It lets you recognize things, but they are merely the bones on top of which you build everything else. It's like Assembly (incoming not-great analogy). Sure you can program without ever getting into that. I have a musician friend who never got formal training and he's doing just fine and actually has a great intuitive ear and sense of the music. But the moment he learned Theory, suddenly everything clicked because he had the underlying bones for all of his intuitions he's build up over the years and can communicate them in a standard language.
I don't have great resource on-hand. But just dive into learning the theory alongside playing a lot.
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.
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.
Maybe it clicks for some, but I had a better time starting with HTML/CSS and then learning JavaScript before moving on to Python.
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.
https://www.learnenough.com/command-line-tutorial
That tutorial is part of a series that takes you from beginner all the way to the Rails Tutorial. You can see the full sequence at https://www.learnenough.com/.
Very beginner friendly.
Using "ssh bandit0@bandit.labs.overthewire.org -p 2220" I just get "ssh: connect to host bandit.labs.overthewire.org port 2220: Connection refused"
"Yes, Bandit is down, I repeat, Bandit is down and we don't know when it will be up"
Does anyone happen to have a good resource for learning GoLang? It's nearly impossible to find good tutorials (outside of the golang site's tutorial) because the name Go is super common and "GoLang" isn't used by everyone.
- https://dave.cheney.net/practical-go
- https://www.ardanlabs.com/all-posts/
If you're looking for more high-level, "get-things-done" stuff, this has been a great resource for getting off the ground:
- https://github.com/astaxie/build-web-application-with-golang
This is my blog: https://blog.learngoprogramming.com
He also shares tons of excellent Go resources.
It's very practical. Simple examples on most aspects of the language / common tasks together with commentary.
I still refer to it quite often when I can't remember how exactly to do something from the top of my head.
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...
It explains the things that you'll constantly fiddle with on a synthesizer (and sometimes even in a DAW with samples: envelopes are likely to appear there). The series benefit greatly from being three hours long in total instead of ten or even thirty minutes.
The first vid is followed by:
- Intro to Synthesis Part 2 - Types of Synthesis & Programming Examples https://www.youtube.com/watch?v=gJkxGvhOS-M
- Intro to Synthesis Part 3 - Additional Synth Features, Performance Controls & Wrap Up https://www.youtube.com/watch?v=zK3m8sMkTE4
Also, since the vids are from sometime in early 80s, you'll have fun trying to figure out exactly how high the guy is.
And the, uh, pace of the vid lets you think about what you hear.
If there were a “Tweaking Synth Knobs” series by this dude in 26 episodes, I might've watched it.
A wonderful intro/tutorial to synths that was recently posted -- https://learningsynths.ableton.com/
https://techcrunch.com/2019/06/07/make-magazine-maker-media-...
I listened to his Spanish beginners course a few weeks before visiting Spain and successfully talked myself onto a bus I shouldn't have been on in Spanish. I'm now mostly fluent but would never have gotten over my childhood hatred of learning languages without him. Thanks Michel. RIP X
Watch the BBC documentary about him where he teaches the worst kids in a school french in a few weeks. https://www.youtube.com/watch?v=O0w_uYPAQic
Also read about him on wikipedia - he was in the french resistance and just generally awesome - https://en.wikipedia.org/wiki/Michel_Thomas
[0] https://www.prospanish.co.uk/
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!
What Every Programmer Should Know About Memory - Ulrich Drepper
[0] http://nandgame.com/ [1] https://news.ycombinator.com/item?id=17508151
https://www.coursera.org/courses?query=from%20nand%20to%20te...
https://www.youtube.com/channel/UCpCBa7DpNda1mNKLCb2K8zQ/pla...
Children's publisher Usborne have made available for free some classic computer books from the 1980s aimed at kids that use text and illustrations to clearly explain computer concepts.
These books have been discussed a few times before here on Hacker News. Scroll down to the bottom of the link below to the section 'Usborne 1980s computer books' for the free PDFs.
https://usborne.com/browse-books/features/computer-and-codin...
You might be thinking, why would I read books aimed at kids? Not only are these books well written with clear, concise explanations, they are also more readable and enjoyable than many programming books published for adults today.
Anyone writing a technical guide (of any kind) would benefit from reading these as a source of ideas and inspiration.
I've found that newcomers struggle with many concepts during presentations so I wrote my own tutorial for beginners.
On many meetups and hackathons I've noticed people break their environments or Linux installations. It's a bit much but we try to start from scratch showcasing how to use venv to get things going and create a small application demonstrating different concepts of web development, from templating, to DB migrations, business logic and auth.
I've ran few workshops with this tutorial and we had very good results.
I once played it in desktop Firefox, which worked fine. I'm not on a desktop right now, so can't try. On a phone it's almost unplayable.
https://github.com/MJoergen/nexys4ddr/tree/master/dyoc
See how a cpu gets made from scratch.
https://www.railstutorial.org/book (Michael Hartl's Rails Book)
And I don't even use rails.
1. Learn to Program, by Chris Pine https://pine.fm/LearnToProgram/
2. The C# Player's Guide, by R. B. Whitaker
oh the link is broken :)
https://web.archive.org/web/20190212201350/http://old.ycombi...
Dramatic, but CS50 is a good example of it - it starts of super simple, but builds on that simplicity. Same with these videos.
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).
player2: ALT+F4
player1 has disconnected
This regular exchange is the most concise and hands-on tutorial on life ever conceived.
On another note, this is a pretty damn good tutorial for learning how to write shaders in opengl: https://learnopengl.com/Getting-started/Shaders
Some of the later tutorials are still a work in progress though, hope they get finished soon!!!
For anyone who already programs I can't recommend this enough. See it as a 1 hour vacation into alice in wonderland. I don't see myself ever using lisp, but after using an imperative language for a long time and having it become second nature, I found it quite a fun mental leap to learn functional programming. Well lisp is basically a similar mental stretch... you can get a taste of it in only 10 bullet points (in the link). it will take you only 1-2 hours. I found it wildly refreshing, enlightening... any time you see paradigms youre used to for 10+ years done a different way there are so many "ah-ha" moments its like firecrackers going off.
The part that is very cool, is that in lisp there are no statements, only expressions. So the 'physical limitiation' of writing code almost feels like theres no rules, such that it just flows effortlessly. Like in English, you can't end a sentence with a preposition (like a statement, you cant put an if statement in the middle of the expression 1 + 1). But in lisp, there are no rules like that.
It's super fun to bend your mind in new ways even if you dont use it. I highly recommend it, it was really a fun day doing that tutorial.
Honourable mention to 'Automate the Boring Stuff with Python' [2], which does what not a lot of tutorials do - motivate programming for non-technical users.
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.
Glad to see Michael Hartl's book on rails was suggested here, that's what prompted me to post my thread.
As a summary of that thread:
drracket: http://docs.racket-lang.org/quick/index.html
VueJS: https://vuejs.org (not a tutorial)
freecodecamp
K&R
Laracasts
https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial...
https://www.khanacademy.org/computing/computer-programming/p...
Learn Enough Command Line To Be Dangerous is an introduction to some basic bash commands, but more than that it's an introduction to questions like What is a command line, how do I use it and why would I want to communicate with my computer using text rather than a GUI
Edit: apparently there’s now a third edition for recentish computers: http://duntemann.com/assembly.html
"The Drift Bible" with the Drift King, Keiichi Tsuchiya https://www.youtube.com/watch?v=IPQyQgyuNMI
Really concise introduction to programming in Python; easy enough for someone to absolutely devour and learn incredibly quickly.
Feynman's QED: The Strange Theory of Light and Matter. You can have zero physics background (like me) and still understand a bit about quantum electrodynamics. If ever I had to distill a complex subject, I'd try to first dissect how Feynman is able to do so.
It wasn't what I used to first learn (Larry Ullman's first PHP5 & MySQL book which I still have, with a spine held together by duct-tape) but it showed me a simple method to help absolute beginners (and helped me realize my ideas on teaching concepts in an unorthodox manner don't work at all for that target group) and to refer to acquaintances whose intro programming course professors were failing them in acquiring understanding.
To me, Go is a great starting language because it's in the sweet place between high-level and low-level.
https://www.udemy.com/learn-go-the-complete-bootcamp-course-...
Shameless Plug: I'm the author :)
https://www.amazon.com/Semantic-Web-Working-Ontologist-Effec...
Will has a way to explain things is such a concise and clear yet entertaining way he's who I aspire to teach like
I love that it just sidesteps OpenGL/DirectX entirely
But, since the question is about the favorite, the answer is, unsurprisingly, "The C programming language" by Kernighan and Ritchie.
Anyone reading my comment, please do post your favourite beginner friendly tutorials/blogs/books irrespective of the field.
https://gun.eco/docs/Learn-Code
I've had complete non-coders and kids take it, and learn to build their first Todo App in less than 45min!
3blue1browns video on quaternions is amazing