Live data from Hacker News

Ask HN: It's 2022. Where should I direct the youths to learn about programming?

news.ycombinator.com

141–150 of 192 posts

Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?

#141
I'd go with Python, Javascript, (and also Godot engine if they have an interest in game development). After that, any other language they'd want to learn should come fairly easily to them. All three have great huge piles of tutorials available free on YouTube, as well as various free and / or cheap resources available from Humble Bundle, Udemy, and other sites (especially if you catch them on sale).

Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?

#143
VS Code with C#. Why: VS Code is the editor and no matter what comes next in his choices, even random non CS stuff, VS Code will be good. Maybe start with a notebook and not a program in the first days.

Why 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?

#144
post #50

There'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.

I have met more CS graduates who have little clue what's going on beyond what they copy pasted from stackoverflow compared to those who do. Both in the Indian subcontinent and right here in the US. Self-taught folks actually have the capacity to research and teach themselves what's going on under the hood.

Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?

#145
post #50

There'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.

Well it was the fifth course in my departments sequence, so a lot of students wouldn't take it until junior year. By that time they were decently proficient at writing code.

Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?

#146
post #121

Earlier 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?

What is a four letter word that starts with “P”? That’s a big reason I’d guess.

Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?

#147
I think the important thing is to focus on the end objective - so not programming just for the sake of programming, but programming as a means to do something else.

Start 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?

#148
* How to Code: Simple Data and How to Code: Complex Data on edX. Taught by Gregor Kiczales, of Common Lisp and CLOS fame. Uses Racket and graphical programs to teach.

https://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.nand2tetris.org/

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://htdp.org/

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://natureofcode.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

https://processing.org/

Re: Ask HN: It's 2022. Where should I direct the youths to learn about programming?

#149

I 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…

One of my programming starts was Delphi. Pascal is an easy language, but has some fundamental features: pointers, classes, procedures, custom types, manual memory management on heap and so on (it was devised as a teaching language IIRC). Delphi provided a GUI builder and a rich library which made it all fun and visual; you could whip out a first “program” or “game” in no time.

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?

#150
Use FLOSS and explain why. Python and Geany are great to start with. Avoid proprietary and/or telemetry filled products like vscode. Most IDEs are too complicated anyway.

I also think Flutter might be interesting, though not sure how suitable for begginers.

Post reply on HN