Ask HN: It's 2022. Where should I direct the youths to learn about programming?
141–150 of 192 posts
Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#142Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#143Why C#: it is the most versatile platform. You can create apps, web stuff, servers, desktop apps, machine learning, console apps, etc. It is statically typed (which is important for the youth to understand what he is doing), has excellent intellisense and beginner friendliness was a focus in the last year (a one liner is nowadays a valid c# program). .NET as base platform allows also F# for a switch to the purity (do not make me comment on that), can run on Linux/macos (if this is important to you) and most important: is not Python which everyone else is doing. Python is the new boring Java.
Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#144There's something the "old hackers" know that many CS students don't learn from the start (in the introductory classes), and that is actually how a computer operates. Don't spend a lot of time on this unless he's really interested, but it's a good idea to sit down with him for a few hours and teach him what really goes on inside a computer. I'm talking about the concept of instructions, registers, addressable memory,…
What formal CS education doesn't cover how computers work at a low level? It would seem like the opposite. Most self-taught programmers are probably missing foundational knowledge that doesn't directly apply to their day to day.
Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#145There's something the "old hackers" know that many CS students don't learn from the start (in the introductory classes), and that is actually how a computer operates. Don't spend a lot of time on this unless he's really interested, but it's a good idea to sit down with him for a few hours and teach him what really goes on inside a computer. I'm talking about the concept of instructions, registers, addressable memory,…
What formal CS education doesn't cover how computers work at a low level? It would seem like the opposite. Most self-taught programmers are probably missing foundational knowledge that doesn't directly apply to their day to day.
Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#146Earlier quoted context omitted.
Yes, this is pretty common. For the most part my friends and work pals who are all software engineers or work closely with tech (DBAs, SREs, Sec). Their children aren’t allowed to use the internet unsupervised or in some cases not at all. Pretty much all of us don’t let our kids use social media. For my friends who don’t work in tech, their kids all have social media and use the internet unsupervised.
Why not?
Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#147Start with an interpreted language that doesn't require convoluted compilation or build-steps. Or at the very least something with a "play button" that allows one-click runs. Anything else just distracts and confuses from the actual "programming" part.
I'll echo others and say building games is a good on-ramp for kids. I also recall enjoying playing around in Visual Basic as I could make a "real application" and it was satisfying to see my work as a "real" program I could see and use, and try to work out how to imitate other features I was seeing in apps I used every day.
As yours is 18 something like scratch is probably too "baby-ish" so perhaps python will feel like more of a grown up option for them with the option to do some fun stuff with game/graphic programming. Visual Basic .net (or even C#) will allow for building GUI apps nicely.
If they enjoy those they'll be able to broaden their horizons and learn more. Don't sweat the theory aspects - they don't need to know about runtime complexity and monads etc just to get started - if they get the bug for coding, they'll come across this stuff on their own eventually (e.g. when they end up creating a naive O(n^n) implementation, they'll end up spending some time trying to optimise it even if they don't realise they are doing that - be there to help guide and offer pointers to help open their eyes to it all)
Good luck
Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#148https://www.edx.org/course/how-to-code-simple-data
https://www.edx.org/course/how-to-code-complex-data
* The From Nand to Teris project, The Elements of Computing Systems: Building a Modern Computer from First Principles book, and/or Coursera course. Builds a hardware stack for a CPU and then a software stack (assembler, VM, high-level language).
https://www.coursera.org/learn/build-a-computer
https://www.coursera.org/learn/nand2tetris2
https://www.amazon.com/Elements-Computing-Systems-second-Pri...
* The How to Design Programs book. What the edX course above is based upon.
https://www.amazon.com/How-Design-Programs-Introduction-Prog...
* Structure and Interpretation of Computer Programs (SICP). Uses Scheme. One can use Racket with the `#lang sicp` language.
https://mitpress.mit.edu/sites/default/files/sicp/index.html
https://www.amazon.com/Structure-Interpretation-Computer-Pro...
YouTube playlist of the course by the authors: https://youtube.com/playlist?list=PLE18841CABEA24090
* Thinking as Computation: A First Course. Uses Prolog to solve problems of thinking.
https://www.amazon.com/Thinking-Computation-First-Course-Pre...
https://www.cs.toronto.edu/~hector/PublicTCSlides.pdf
* Turtle Geometry: The Computer as a Medium for Exploring Mathematics (shares an author with SICP). Uses Logo to explore turtle geometry/graphics. Can use any modern Logo implementation.
https://www.amazon.com/Turtle-Geometry-Mathematics-Artificia...
https://direct.mit.edu/books/book/4663/Turtle-GeometryThe-Co...
* Starting Forth. Uses Forth.
https://www.forth.com/starting-forth/
https://www.amazon.com/Starting-Forth-Leo-Brodie-ebook/dp/B0...
* Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction and also The Nature of Code: Simulating Natural Systems with Processing. Uses Processing and p5.js (the JavaScript version of Processing).
http://learningprocessing.com/
https://www.amazon.com/Learning-Processing-Beginners-Program...
https://www.amazon.com/Nature-Code-Simulating-Natural-Proces...
The author's YouTube channel: https://youtube.com/c/TheCodingTrain
Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#149I usually recommend everyone who wants to learn programming: - to write some games, - or alternative to write some tools to be used for themselves to automate or simplify some of their tasks. Writing games can be so much fun, and is incredibly deep such that you can pretty much touch upon all topics of programming, networking, computer science, algorithms and data structures, artificial intelligence, 3D graphics, GPU…
Delphi is no more but there is some successor, seems to be well received on HN.
Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?
#150I also think Flutter might be interesting, though not sure how suitable for begginers.