5 ms·
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
by albertzeyer 4y ago
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.
- sefrost 4y agoXNA was great for this.
- guilherme-puida 4y agoMonogame (https://www.monogame.net/about/ https://www.monogame.net/about/) is nice too.
- coderdd 4y agoTic80.com - might overgrow it quickly, but excellent for start. Has Lua, Fennel.
- corysama 4y agoCheck out https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php
- cellularmitosis 4y agoI’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/6e191bf6b6f062e5f5585293d97f165e https://gist.github.com/cellularmitosis/6e191bf6b6f062e5f558...
- boogies 4y ago> 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).
- p1esk 4y agoI wish they didn’t try to look like a console.
- tootie 4y agohttps://24a2.routley.io/ https://24a2.routley.io/ This is the most basic of javascript game engines but also challenges you to be creative.
- TobTobXX 4y agoYes, 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.
- xxxtentachyon 4y agoCan 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.
- maroonblazer 4y agoNot 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.
- jollofricepeas 4y agoYes, 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.
- armchairhacker 4y ago> 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.
- empressplay 4y agoturtleSpaces 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 https://turtleSpaces.org
- treetide 4y agoLoose connection, but made me remember https://code.world/ https://code.world/ uses a Haskell-like functional language to define still pictures, animations, or even games.
- officehero 4y agoWhat 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.
- rich_sasha 4y agoOne 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.