Hacker News new | ask | show | jobs
by mhd 2302 days ago
Wren is a great little language in the Lua sector, but more traditional than it (or JavaScript). Use it with the recently announced DOME to get started with some simple games (People, please don't let beginners start with webdev!)

http://wren.io/

https://domeengine.com/

Having said bad things against JavaScript, I believe TypeScript might be a good start. Definitely a large community support and good tooling.

The problem with either of those is that you don't just need a decent language, you need decent teaching materials. And there's little of that that I'm aware of -- and Rust/Swift/Go aren't even intended for first time programmers (Although the Go Programming Language book might serve well enough, after all we got quite a few people who started with C, a language equally unsuitable for the beginner)

Pharo is a bit too "old", with 12 years (or 24, or 48, depending on how you count), but the environment has a neat little tutorial, and "Pharo by example" is a good book.

https://books.pharo.org/pharo-by-example/

Personally, I'd recommend older stuff/languages. Do the Coursera SML course and you're way more ready for the hot new trends like Elm or ReasonML than your fellow Java/C#/C++ grognards.

https://www.coursera.org/learn/programming-languages

1 comments

>(People, please don't let beginners start with webdev!)

I actually think Web Development should be what every new hobby programmer should learn. It is the quickest, easiest way to get simple, understandable, showcase-able results.

I kind of miss the good old days of WYSIWYG Dreamweaver and Front-page.

Unless you're really setting out to create something for your already existing home page or great web idea, or you're already a web designer wanting to visit the coding side, too, I think web development is a way too heavy load for the beginner.

You have to not only learn your language of choice, but also HTML, maybe even CSS and the fight with the query/respond nature of HTTP and/or asynchronous JS, callbacks etc..

Maybe if you're starting out with some Scheme setup where you've got an abstract page description DSL and a continuation-based framework.

No problems with keeping that as an intermediate, "now you're a real programmer" goal. But let's start out with "input name/fahrenheit -> print greeting/celsius" for a while and learn about structure, data types etc.

Simple graphics get you something that you can show your relatives and friends, too ("I made space flappy bird / the mandelbrot set"). And with way less mental overhead.