Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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 programming, low level programming, multi threading, etc. But also, you can start very shallowly and simply.

Writing tools gives you the feeling how useful and productive this can be.

What languages to use depends a bit on taste, background knowledge, and how steep the learning curve can be. I think Python is a good general purpose starting language.

Also, in any case, you should start actively coding right away. I know people who wanted to learn programming but just kept reading books and watching tutorial videos all the time while not really trying it out, and in the end they obviously did never really learn it. You need to have projects, or just random playgrounds. Also, don't start with a big project right away. Do many small projects. Play around.



Yes, agree about the last paragraph 100%. I'm only 19 and got into programming maybe 7 years ago. At the time I was gifted a Raspbery Pi. Next to the infamous Scratch, there were about 10 pygame examples. I got the itch to modify them. Trough trial and error I somehow found the source files and I just started removing code and changing numbers. At some point I started copying lines I've seen and recomposing them.

As I wasn't allowed to just go on the internet (yet), some time later I also got a CS book. By studying that, I finally was able to "program" what you would call it.

I agree all the way: Don't read about programming. IMHO, taking a (veeery easy, in my case it was Super Simon in ~200L Python) program, game if you wish, and starting to just change stuff around. This gets you comfortable with the concept of coding. "Formal" education (ie. books etc.) are only required once you already are fascinated.

This is the advantage of the young: They are not afraid to try out and break things. I'd suggest using this phase of life as it is intended.


Can you say more about not being allowed on the internet? Why and how you think it affected you?

It’s hard for me to fathom someone at age 12 in 2015 with a somewhat cosmopolitan background (playing games, using an RPi), not being allowed on the internet, period.


Not the parent but, as the parent of a 16 year old, I can imagine that some kids at age 12 simply aren't mature enough to be let loose on the internet.


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.


I think it's a good idea, but I wonder if this would work if you didn't have a circle of like-minded friends for the kid. For most kids nowadays (and adults, increasingly), there wouldn't be much social interaction outside the family if they were prohibited from social media.


Why not?


Internet services are designed to be addictive for kids (and adults). Usually, this addiction is not good for the kids. That’s why my kids are not on the Internet unsupervised.


But what do they do when they are at friends homes, or at school all crowded around a iphone in the bathroom.

I don't have kids, but there's a part of me that would want them to see the bowels of the internet, and hopefully Never want to see that crap again. I know there are pictures I wish I never saw. I'm so glad I didn't see the toddler whom was raped by a Russian soldier. Putin arrested that soldier I head.

If I had children, I don't think I would let them use the internet either.

I wonder if their are any good studies on letting children have free access to restricted. Maybe the study couldn't even be legally carried out?


Why don't we let kids drive cars?

Some tools are dangerous if you don't have a certain level of maturity and experience.



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


Tell her don't send pictures, don't give name/address, and don't meet people, and she's safe? (She already should have applied these rules IRL from a much younger age anyway.)


It’s a neurological issue stemming from the protective instinct of parents.

Kinda sad actually, when you consider that Aaron Swartz was a member of the RSS working group at 14, after already winning a prize for an online encyclopedia at 12.


I wish my single mom had had the technical savvy to keep me from becoming a porn addict at 12. I had erectile dysfunction when I finally had my first real sexual encounter and it took years to learn how to be with a real woman versus looking at a screen. It also spread into worse more risky behaviors in my adulthood, and I think exacerbated my social shyness and kept me years back in learning how to socialize.

I’m definitely severely restricting the internet for my two daughters, out of a sense of realism and not due to some “neurological issue”.


Thank you for proving my point.

I also discovered (far more) disturbing porn at 12, but it actually doesn’t preclude you from treating your sexual partners with respect.

(And yes, I had several dysfunctional sexual encounters before I actually grew up)

Inevitably your daughters will discover the unavoidable loopholes.

(Edit: the anger you’re feeling right now is exactly the neurological issue I’m talking about)


> to write some games,

> or alternative to write some tools to be used for themselves to automate or simplify some of their tasks.

This is exactly how I learned programming as a kid.

The one difference I would recommend is to not focus on 3D, low-level programming, AI, data structures, etc. at least for younger children. When I was a kid these things confused me (I specifically remember getting random memory management issues and confusing EXC_BAD_ACCESS, and generally resorted to just liberally retaining everything). I just wanted to make things and got bored easily, so I accomplished most making simple projects on Scratch (very basic game-engine) and high-level IDEs.

Of course ultimately it's up to the kid what they want though. If they're more interested in the low-level mechanics and how things actually work than just getting them to work, good for them.


Tic80.com - might overgrow it quickly, but excellent for start. Has Lua, Fennel.



I’ll second the recommendation for PICO-8 to get started with making games. The built-in game browser, combined with being able to easily see the source for those games is fantastic.

https://gist.github.com/cellularmitosis/6e191bf6b6f062e5f558...


> The built-in game browser, combined with being able to easily see the source for those games is fantastic.

TIC-80 gives you those + all four essential freedoms (seeing, sharing, modifying and using) with the source of the fantasy console itself.

There are some good examples prepackaged with it (from drawing a single sprite to a little ~½ dozen screen top-down action adventure).


I wish they didn’t try to look like a console.


What about playing a game about learning to code instead of writing a game? I spent a few days on codecombat.com as a beginner and thought it was both a great learning experience and an entertaining game.


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.


https://24a2.routley.io/

This is the most basic of javascript game engines but also challenges you to be creative.


turtleSpaces is a 3D Logo environment that allows fit pretty straightforward creation of simple 2D and 3D games in the browser using turtles and can provide a bridge between Scratch and Python https://turtleSpaces.org


Loose connection, but made me remember https://code.world/ uses a Haskell-like functional language to define still pictures, animations, or even games.


XNA was great for this.


Monogame (https://www.monogame.net/about/) is nice too.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

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

Search: