Hacker News new | past | comments | ask | show | jobs | submit login

HTML/CSS is the right kind of programming to introduce to kids. It teaches a lot of the cognitive skills that you need as a programmer (attention to detail, what you see is _not_ what you get, ability to abstract a problem); that combo teaches a lot of programming concepts (encapsulation, separation of concerns); and it is,last but not least, REAL and eminently useful. A lot of that lego-scratch-type-programming is completely useless once you take it out of that sandbox. HTML/CSS will be there at the heat death of the universe.

HTML/CSS does not teach things like algorithms and data-structures, but it doesn't need to. It's complex enough that kids with an affinity for programming will find it stimulating, but not so complex that dumbo Timmy over there can't do at least something productive with it. And it straddles that line between nerdy-programming and design, so you can engage the creative kids as well.

Family member's been teaching HTML/CSS to 14-15 year olds, with good results. Like all class topics, the engagement-distribution is a bell curve. 10% is lost like a puppy at sea, 80% is following along with varying degrees of success, and 10% are absolutely doing amazing things and taking it way beyond the class contents.

One difference with the other type of kids-programming isn't that some robot scoots around the gym, but that at the end these kids are making goofy 90's websites, with bonker color-schemes and bouncing images. Parents and administration love the former. The latter only really clicks for parents with some familiarity in the domain.




I think this great advice for teaching, but I'd stress that Javascript should be included as well.

HTML and CSS are great for learning because everything they change will adjust the webpage instantly. This is the web's biggest teaching advantage: insanely fast iteration time. To folks learning this speed feels like a super power. (And when they try iOS/Android programming, they will miss it)

Where Javascript comes in, is it helps tie that fast iteration into a place where variables and functions can exist. Functions are especially hard to grasp, so starting those pretty early matters a lot. Simply put: if you don't understand functions, then all the HTML/CSS in the world won't save you!


> HTML/CSS is the right kind of programming to introduce to kids. It teaches a lot of the cognitive skills that you need as a programmer (attention to detail, what you see is _not_ what you get, ability to abstract a problem);

I strognly disagree. Playing around with markup languages only trains a person to expect a computer to map a particular input to an output. That's far from programming, let alone real-world programming practice. Writing software is much more than getting a computer to output something in a one-shot process. Making these sort of claims does a diservice to anyone interested in programming because it paints a rosy picture of how programming is trivial and free from any intellectual challenge, which goes directly down the crapper once the first crash or bug needs to be solved.


The parent comment said HTML/CSS the right kind of programming to introduce to kids. Your disagreement is based around it not being the final end-all be-all representation of the complete set of features and challenges of programming. You're optimizing for accuracy and completeness, whereas the parent was optimizing for appeal and ease-of-learning.

As someone who's spent many months teaching people to code from scratch, it seems to me you're ignoring just how tough it can be for people (especially kids) to learn challenging new information. Most will quit when they hit a wall.

In my opinion, baby steps are much wiser when the goal is to teach.


I agree, they're not a full programming language, they lack the aspects you describe. But they are a simple introduction to programming, work on a lot of levels, and can engage a broad range of students.

I would disagree with one thing. Writing HTML/CSS most certainly is an intellectual challenge, especially for beginners, and does engage parts of the programmer's brain.


This fall, I helped teach programming to my son's grade 8 class. They had done Scratch before, and wanted to learn "real" programming, so we taught them a subset of Python. It turned out really well. With basically just for-loops and if-statements they were able to write quite a bit. I liked that the concepts they learn were the actual fundamentals I use every day at work when I program in Python.

I wrote it up here: https://henrikwarne.com/2017/12/17/programming-for-grade-8/


that is remarkable! this is the type of teachers i wish i had growing up!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: