I started in OSes and filesystems, but I recommend hitting Cmd+Alt+i on this page and typing: var comments = document.querySelectorAll('.comment'); [].forEach.call(comments, function(comment){comment.style.backgroundColor = "#ffaa44"}) Instead.
Array.prototype.forEach.call(..) is more efficient because it doesn't create a new array.
Ask HN: Advice for 14-year-old who wants to learn to code?
31–36 of 36 posts
Re: Ask HN: Advice for 14-year-old who wants to learn to code?
#32Re: Ask HN: Advice for 14-year-old who wants to learn to code?
#33I am a highschool freshmen. I would say to learn HTML and CSS from W3 schools. Then learn Python from http://www.learnpython.org/ , until he can use dictionaries. Then move to javascript and web development from MDN. Use node.js for server side so you only need to learn one language and can make a working app faster. Unless he wants to make games, then just learn Processing, then maybe C. Or brag to colleges, then ju…
W3 schools is considered harmful by many and has at least in the past taught incorrect interpretations of standards. Please do not suggest them as a resource for new learners. It's better than it used to be, but is still unaffiliated with the W3C. MDN is a better resource.
For games, C# or Javascript are far better choices than Processing[0]. And C++ is a better choice than C, regardless of personal preference toward one or the other. Almost every game is written in C++, and libraries are designed accordingly.
Also, I would not recommend learning both server-side Python and Node. Node is not objectively better so there is no real reason to switch over just because it's "hot." Python has much more mature libraries and modules.
Large projects are not good for beginners, they cause sunk cost fallacy and probably repel a lot of people from new disciplines. Better to adopt a series of smaller, exploratory projects rather than reaching towards a momentous goal from the start. Beginners will only find themselves refactoring the same code over and over and over as they learn how to be idiomatic and efficient.
I would second the no CodeAcademy-style tutorials advice, and recommend picking up a good book in whatever language you wish to learn. Not a "For Dummies" style book, but one that is respected in the language community. O'Rielly books are often good, but usually a community will have one or more "bibles" that are the best track to follow. _why's poignant guide is a standout example.
Finally, I would urge any beginner to look beyond web development. It isn't really a good way to learn programming: 90% HTML/CSS work that doesn't involve control flow and 10% string munging. Games are better, but application development is best, and is likely to involve learning skills that will actually continue to be relevant and interesting in 5 years.
Source: I'm an autodidactic programmer who worked professionally as a software engineer while still in high school. I help teach a high school CS class.
[0] I love Processing but web and XNA framework games are way better for new learners especially.
Re: Ask HN: Advice for 14-year-old who wants to learn to code?
#34You can do a lot with ancient tools like QBasic, simple graphics and so on. For more sophisticated things Python is a good tool because it has a simple syntax that is very readable and uncluttered.
Once he has made a few simple things like that run then if he has an Android device it might be worth installing Android Studio and trying to build some simple apps. There are plenty of tutorials with complete source code that can be examined.
And finally make sure that he understands that he can ask for help. The Net is full of information and people who can and are willing to help. I forget who said it: "There is no such thing as a stupid question, only stupid answers" so impress on him that when he gets genuinely stuck that he only has to ask on something like StackOverflow or many other forums.
Re: Ask HN: Advice for 14-year-old who wants to learn to code?
#35Re: Ask HN: Advice for 14-year-old who wants to learn to code?
#36For me, coding is a passion. A labor of love. I haven't worked a day since starting. As an iOS developer, I'd say learn Swift. Apple pushed the great reset button and we're all starting from the same place.