Ask HN: What are some projects on GitHub that I can learn how to program from?
But, I've heard many times that learning to program by copying (reading and then re-implementing) is a good way to go about it. So, I'd like to know if there are any GitHub projects you can point me toward that I can look at, re-implement, and learn from.
Ideally they would use core functionality of whatever language/platform they're built on, as I've found that most of the projects I am looking at use a ton of outside libraries that I don't know. I'm mainly looking for code that will show me how to use functionality of programming languages to create solutions to questions that the ideas behind the code are based on.
Just FYI: The stack I'm trying to learn is all JavaScript (Node/Express/React), but I'm completely open to examples that I can learn from in any language/platform/framework.
Thanks a ton,
bnb
9 comments
[ 3.1 ms ] story [ 30.3 ms ] threadHonestly, JavaScript is a very confusing language to start with. It's also hard to debug (easy-to-miss scoping issues, silent failures, silent logic errors, etc.) You'll write code that you think will work, and it just won't, and you won't know where to even start.
Go is a decent language for a beginner because it's very explicit (there's very little magic).
Check out this site, which I just discovered on HN: http://howistart.org
Javascript also has the benefit of allowing you to see results immediately in the browser.
Anyway I recently read this annotated code in javascript, which I felt was interesting to read, and may be helpful.
http://annotated-code.maryrosecook.com/circles-bouncing-off-...
Other than that I recommend just starting your own project and learn from mistakes, do whatever you are excited about. Motivation is key.
There's an annotated source for underscore: http://underscorejs.org/docs/underscore.html.
There's also just implementing data structures/algs: https://github.com/felipernb/algorithms.js
Besides coding, coding, coding your own projects (which I'd prioritize), you might also try answering questions on StackOverflow for your chosen stack.
Don't be surprised if you're unable to do so at first, especially in burgeoning technologies with many developers competing to establish their reputations, but this (often) forces you to dig into the source code, spelunking your way through and--hopefully--learning good style and architectural practices while coding smaller solutions with a shorter path to completion versus monolithic projects.
See the Node standard library, for example. (Also the recipe-type books focus on specific, more practical solutions, instead of long-form tutorials.)
If that doesn't suit you, keep trying other things--there are many sort of "katas" you can do.
P.S.: I thought asdfppp's (now dead) comment was helpful.
https://github.com/paircolumbus/Welcome