TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Advice for 14-year-old who wants to learn to code?

17 pointsby robdoherty2over 10 years ago
My younger brother who is a high school freshman wants to get started learning how to code.<p>He has no experience with writing code and little general computer knowledge about stuff like OS&#x27;s file systems, etc. Basically he would be starting from scratch.<p>What would be a good place for him to get started? I&#x27;d like to give him some resources so he can learn at his own pace, but I also don&#x27;t want him to get overwhelmed and decide coding is too hard.<p>Thanks

26 comments

trcollinsonover 10 years ago
My son, who is a little younger than your brother, wanted to learn to code and I tried a number of things but they didn&#x27;t really stick. He kept &quot;wanting to&quot; but never really learned past regurgitating the tutorial. Finally, he picked up my TI NSpire CX CAS and started playing with it. For us really old guys it&#x27;s like the next, next, next gem TI 82 graphing calculator.<p>The TI has always included a programming language and interpreter in their calculators. It used to be &quot;TI Basic&quot; but now it is full Lua. They have hundreds of example programs to look and and learn from and tutorials galore.<p>The thing that finally made it click for him was, he could take this little handheld machine anywhere and whenever a programming thought struck him he could try it. Soon he was building reusable functions and libraries of reusable functions and everything clicked.<p>Now he&#x27;s transferring a lot of that knowledge to other languages, most recently Python, without any trouble at all. I would recommend it to anyone with a kid who is interested in learning.
评论 #8817613 未加载
评论 #8818846 未加载
lgasover 10 years ago
I&#x27;m sure there will be a ton of good advice here, but one thing that I&#x27;ve always found helps a lot, regardless of what other resources or approaches you are using is to come up with a project that you want to complete and then use that to focus the rest of your learnings. It helps guide the learning and exploration.<p>It&#x27;s probably better to pick something smaller and more achievable at first so you can make some early progress and experience some successes but picking a huge goal is fine too, you just have to break that huge goal down into smaller and smaller ones until you have a reasonably sized sub-goal to break off and work on.
Jeremy1026over 10 years ago
I like Codecademy[1]. They have courses in a few different languages ranging from HTML to Python. I went through the PHP course once to pass time and to evaluate their product as I had friends ask me a similar question. (I am very comfortable with PHP, which is why I choose that course.)<p>[1]<a href="http://www.codecademy.com/learn" rel="nofollow">http:&#x2F;&#x2F;www.codecademy.com&#x2F;learn</a>.
zachlattaover 10 years ago
If he&#x27;s interested in games, buy him a book about game programming in a language that you know and would recommend for beginners. I got started programming because I wanted to build games and made the mistake of starting with web development.<p>Chances are that moment he makes a shape move on his computer, he&#x27;ll be hooked. At least that&#x27;s what happened to me.<p>If there&#x27;s a CodeDay (<a href="https://codeday.org/" rel="nofollow">https:&#x2F;&#x2F;codeday.org&#x2F;</a>) near you, bring him to it. It&#x27;s a nonprofit 24 hour hackathon for high schoolers. He&#x27;ll meet a bunch of other people his age who are also into programming and will build and present a project by the end of the weekend. In the past we&#x27;ve had participants build everything from a breakout clone to a bootable OS in pure x86 assembly, so there&#x27;ll be a wide range of skill levels and he&#x27;ll see his peers building incredible things. Disclaimer: I&#x27;m one of the organizers of CodeDay LA.<p>There&#x27;s also a Facebook group filled with other high schoolers who are into programming (<a href="https://www.facebook.com/groups/PennAppsHS/" rel="nofollow">https:&#x2F;&#x2F;www.facebook.com&#x2F;groups&#x2F;PennAppsHS&#x2F;</a>). If he has a Facebook, send me a link to his profile to my email (in my profile), and I&#x27;ll add him to the group.<p>I&#x27;m also high school-aged and, if appropriate, would be more than happy to talk with him. Feel free to reach out to me through my email (again, in my profile).<p>Also see <a href="http://www.paulgraham.com/pfaq.html" rel="nofollow">http:&#x2F;&#x2F;www.paulgraham.com&#x2F;pfaq.html</a>.
johnfc2014over 10 years ago
I would say something like Swift, which would empower him to make apps that could make money too.<p><a href="http://www.learnswift.tips/" rel="nofollow">http:&#x2F;&#x2F;www.learnswift.tips&#x2F;</a><p>Also a Virtual Machine, such as VirtualBox would help him learn how other operating systems work without breaking his own computer.
评论 #8816409 未加载
评论 #8816462 未加载
评论 #8816461 未加载
davidf18over 10 years ago
When I was 17 at my junior&#x2F;senior high school, I taught about 20 entering 7th grade class programming and it worked out very well.<p>Downey&#x27;s Think Python might be a good place to start (free download, but I&#x27;d recommend getting the hard copy) <a href="http://www.greenteapress.com/thinkpython/" rel="nofollow">http:&#x2F;&#x2F;www.greenteapress.com&#x2F;thinkpython&#x2F;</a><p>For reviews: <a href="http://www.amazon.com/Think-Python-Allen-B-Downey/dp/144933072X/" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Think-Python-Allen-B-Downey&#x2F;dp&#x2F;1449330...</a><p>You might consider this book or related ones listed on Amazon: <a href="http://www.amazon.com/Python-Kids-Playful-Introduction-Programming/dp/1593274076" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Python-Kids-Playful-Introduction-Progr...</a><p>There is this Intro iOS&#x2F;Swift programming book that claims to teach non-programmers..... <a href="http://www.amazon.com/Introducing-iOS-8-Steve-Derico/dp/1491908610/" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Introducing-iOS-8-Steve-Derico&#x2F;dp&#x2F;1491...</a><p>This book also seems very interesting and doesn&#x27;t seem to require much&#x2F;any programming experience:<p>Analyzing Baseball Data with R <a href="http://www.amazon.com/Analyzing-Baseball-Data-Chapman-Hall/dp/1466570229/" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Analyzing-Baseball-Data-Chapman-Hall&#x2F;d...</a><p>I <i>do</i> think it is very important that somebody be readily available to teach&#x2F;help with some of the concepts....
kwhitefootover 10 years ago
Coding is not an end in itself. Your brother will need a reason to code, a problem to solve. That should come first and should be quite a small problem. Then choose the easiest tool with which to solve it. Operating systems, file systems, etc. are pretty much irrelevant.<p>You 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.<p>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.<p>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: &quot;There is no such thing as a stupid question, only stupid answers&quot; so impress on him that when he gets genuinely stuck that he only has to ask on something like StackOverflow or many other forums.
gaelowover 10 years ago
Tell him to join a local open source community and learn to work in group projects and to code in a team close to other people (Like the GDG, for example. It&#x27;s free and in my town every week or two they organize meetings, hackatons, workshops and many interesting talks which they post on youtube in case you cannot attend that day). He can be useful even if he knows nothing, by being assigned the most trivial tasks or watch and help. Tell him to find a mentor and to get used to version control, code reviews, test writing, quality assessment, applying design patterns. Those are every bit as important as just learning how to code algorithms. I believe coding by yourself tends to make you a &quot;bad&quot; coder, in the sense that unless you are amazingly self disciplined you can take on a lot of bad habits that are very difficult to get rid off later on.
hardwaresoftonover 10 years ago
A lot of college introductory classes use python as a learning language, and I think that&#x27;s a good thing.<p>I would suggest heading to the library (whether public or high school&#x27;s) and taking out a book on Python. There are a lot of online books, but I find that having a physical book you&#x27;re learning from is a worthwhile experience. There&#x27;s less distraction, and watching that bookmark move from the beginning to the end of the book is very satisfying. Also, I thnk it&#x27;s extremely important that you be there to guide him, and foster inquisitiveness, as that&#x27;s a very key property of some of the greatest computer scientists and hackers.<p>I will echo Igas&#x27;s suggestion also -- it would be great if he had something he wanted to build to channel this urge into. Even dinky little programs like text-based calculators feel impressive when you&#x27;re starting out, and get you a feel for programming quickly.<p>When he wants to cut his teeth on stuff that is &quot;real world useful&quot; you can show him a framework like Flask (which is wonderfully minimal), and have him make a web server on localhost. That would be a perfect segue into web tech (HTML&#x2F;JS&#x2F;CSS). That might also be a good time to introduce a second language, like Ruby (which is similar enough to python) to show how similar languages can be to each other. I would say this sets you up to introduce the most important parts of CS: the data structure &amp; algorithmic underpinnings. This is the stuff that sticks with you for a very long time and is always useful, no matter the language.<p>This might be wishful&#x2F;meaningless thinking, but you could also introduce him to SICP classes by abelson and sussman. I say this for a few reasons:<p>1. Lisp is simple, yet powerful (they show this)<p>2. The realization that very little about computer science is actually &quot;new&quot; thought<p>3. Introduction to the plethora of college-level courses available for free, and getting used to being in charge of your own education (but using a more traditional medium)
SixSigmaover 10 years ago
Blimey, what a complex set of things to learn nowadays - writing apps and javascript !<p>When I was a lad I started with the most powerful computer I could afford - a pencil and paper.<p>Show him this<p><a href="https://www.cs.drexel.edu/~bls96/museum/cardiac.html" rel="nofollow">https:&#x2F;&#x2F;www.cs.drexel.edu&#x2F;~bls96&#x2F;museum&#x2F;cardiac.html</a><p>See if it interesting.<p>Then I moved on to the next most powerful computer I could afford - a ZX81 with 1k of RAM connected to a television set!<p>I would type programs in from books and magazines and see if I could get them to work - so I learned to fix programs before I learned to write them.<p>So I still advocate this route. Not writing apps for iPhones or trying to write Xbox games and build websites.<p>Buy the simplest thing I can find - something like an Arduino that does things on a small scale. Learn how computers work, not how to program them.
mtmailover 10 years ago
I did <a href="http://tryruby.org/" rel="nofollow">http:&#x2F;&#x2F;tryruby.org&#x2F;</a> with a friend. She understands better now what I do and what I mean by &#x27;variables&#x27; but never touched code again.
salukiover 10 years ago
I would introduce him to coding by starting with the basics of HTML and progress through the following:<p>(install MAMP or WAMP for him to get him started, then get him a domain name and hosting for his own simple website)<p>HTML CSS javascript jQuery PHP MySQL<p>I recommend Head First HTML and CSS to get started. The other books in the series are good as well all the way up to Head First PHP and MySQL.<p>TeamTreehouse.com is a good place to start as well or pick up with once you make it through a few of these books.<p>Once he gets through those I would point him to learning Rails and&#x2F;or Laravel frameworks creating a few web applications.<p>Apps are fun too if he has an iPad and&#x2F;or iPhone go through the iOS App tutorials on TeamTreehouse.<p>Good luck in 2015.
评论 #8817353 未加载
palavrovover 10 years ago
IMHO the most important thing is to keep his interest continuously for several years. I would suggest these steps: 1: Finding what is interesting for him - games, web, automation, hardware, etc. Open source project or good step-by-step tutorial is good starting point. 2: Preparing a build environment 3: Building and running 4: Doing small change in the sources - renaming something, etc. 5: Building and running again ... N: messing deeper with the source, changing complex things N+1: Building and running<p>In that way he will learn the fundamental process of building something in small steps and endless iterations, messing with other peoples code and navigating easy in it - that one is important too.
fillskillsover 10 years ago
I just taught my sister to code. Started out by talking to her about different kinds of projects&#x2F;things that can be accomplished using programming. Once she had a grasp of what all can be done, she told me about what she wanted to do. She wanted to build a website to track food. Sent her to <a href="https://dash.generalassemb.ly/" rel="nofollow">https:&#x2F;&#x2F;dash.generalassemb.ly&#x2F;</a> to get started. After finishing that, she has now started googling specific tutorials and building the site on her own.
dfansteelover 10 years ago
I&#x27;d send him to <a href="http://codecombat.com" rel="nofollow">http:&#x2F;&#x2F;codecombat.com</a> . It&#x27;s not real productive coding, but it&#x27;s a decent enough entry point for someone who may not have found their passion yet.<p>For me, coding is a passion. A labor of love. I haven&#x27;t worked a day since starting. As an iOS developer, I&#x27;d say learn Swift. Apple pushed the great reset button and we&#x27;re all starting from the same place.
nRikeover 10 years ago
Have you tried Codecombat.com? I think this is a great way to get started, have fun and at the same time learn the basic concepts of computer programming.<p>Once he understands this, you should encourage to hack into Minecraft hacks.<p>Later you can ask him about start their own projects and help him when he got stuck.<p>Programming should be fun and using a language only a tool for their mind, so help him become passionate about build things for himself.
ConnorRobertsover 10 years ago
I taught myself to code at a similar age (around 13, am 17 now) so this is based off personal experience.<p>Python&#x27;s recommended a lot but personally I&#x27;d avoid it, it&#x27;s a nice language but there isn&#x27;t much to use it for without starting using frameworks.<p>What I&#x27;d recommend is starting with web development (that&#x27;s where I begun). HTML can be taught easily and provides quick gratification, you can easily teach enough to produce results in a few hours, alongside HTML I&#x27;d teach the basics of CSS. I can personally recommend W3Schools[1] (though I believe codeacademy[2] is good as well), this can easily be personalised to make it appeal to your brother.<p>When he&#x27;s got a decent grasp on this, Javascript or PHP links in perfectly (it could even be an extension of the HTML lesson - a larger project) so would work well to move onwards.<p>Another thing that I wish I&#x27;d have known about when I was learning is the amount of support available. I&#x27;ve since been involved in a local CoderDojo[3], if there&#x27;s one where you are, I&#x27;d highly recommend going along to one with him! Even without any coding experience, I&#x27;d recommend it.<p>If you have any questions, feel free to ask :)<p>[1]<a href="http://w3schools.com" rel="nofollow">http:&#x2F;&#x2F;w3schools.com</a><p>[2]<a href="http://codecademy.com" rel="nofollow">http:&#x2F;&#x2F;codecademy.com</a><p>[3]<a href="http://coderdojo.com" rel="nofollow">http:&#x2F;&#x2F;coderdojo.com</a>
dibilliliaover 10 years ago
I am a highschool freshmen. I would say to learn HTML and CSS from W3 schools. Then learn Python from <a href="http://www.learnpython.org/" rel="nofollow">http:&#x2F;&#x2F;www.learnpython.org&#x2F;</a>, 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 just learn Python.<p>Python makes the transition from HTML to Turing Complete languages much easier since you don&#x27;t need to worry about syntax. I am speaking from experience, I couldn&#x27;t learn JavaScript until I learned the basics of Python.<p>Also, a large project is important. Working on my large TSA project has taught me a lot more than I would have learned by fiddling with smaller things.<p>Avoid web app tutorials that make you pass a test before continuing. Code Academy, Khan Academy, and similar things are nearly always horrible for actually learning. For example, Code Academy starts its CSS turorial with a CSS3 animation, and has 5 screens for a Python tip calculator, with cryptic instructions that make coding seem a lot harder than it actually is.
评论 #8820098 未加载
ericssmithover 10 years ago
Why is he interested in programming? It must seem cool to him for some reason. I&#x27;d try to tap into that in order to find a direction to go in. And for a 14 year old, it would be helpful to find some heroes. Without the cool and the heroes, it may be hard to devote the time for it to be impactful.
0942v8653over 10 years ago
One great framework is <a href="http://pygame.org" rel="nofollow">http:&#x2F;&#x2F;pygame.org</a> which is a flexible game and graphics Python module. It&#x27;s great for learning Python and it&#x27;s very easy to use (while still giving you a lot of control).
iqonikover 10 years ago
In the UK, school goers do a 2 week work placement. Don&#x27;t do what I did and let them choose for you, suggest an online company and push to shadow a PM, dev...it will at least be interesting and you might just learn a thing or two.
sopooneoover 10 years ago
What does it mean that he wants to code? Are you a programmer and he looks up to you, and wants to be able to accomplish as much as you? Or does he want to be able to produce some particular type of end product like games?
nailerover 10 years ago
I started in OSes and filesystems, but I recommend hitting Cmd+Alt+i on this page and typing:<p><pre><code> var comments = document.querySelectorAll(&#x27;.comment&#x27;); [].forEach.call(comments, function(comment){comment.style.backgroundColor = &quot;#ffaa44&quot;}) </code></pre> Instead.
评论 #8817952 未加载
phpguruover 10 years ago
Great way to introduce programming logic at an early age (or all ages) ... <a href="http://scratch.mit.edu/" rel="nofollow">http:&#x2F;&#x2F;scratch.mit.edu&#x2F;</a>
linksbroover 10 years ago
What is his favorite video game? Chances are there will be opportunities to mod the game &#x2F; gameserver, which will really get his motivation up.
_RPMover 10 years ago
Give him a browser, and teach him to manipulate the DOM using JavaScript. It is very rewarding when just starting.