Live data from Hacker News

Programming languages for beginners

blog.borud.no

11–12 of 12 posts

Re: Programming languages for beginners

#11
post #6

An evaluation of the usual suspects would have been more interesting. I'd also suggest: start with a small language that doesn't surprise people -- like lua maybe. Anyway, I personally learned much from my early exposure to Pascal (after having learned BASIC as first language), which was designed as a teaching language that doesn't meet any of those requirements.

I did a (very shallow) evaluaton of the usual suspects in a private email not too long ago, but these things tend to be...well, shallow and very subjective. Great for creating flamewars, but not great for figuring out what to emphasize.

Also an observation I have made is that a lot of people who give advice on how to learn programming didn't learn programming the way they recommend. Well, at least not the programmers I know -- which may or may not be representative of larger populations.

For instance, I learned ver low level languages early; after basic I learned Z80 and x86 assembler and I regularly wrote whole sections of programs in inline assembly (well, hexadecimal op codes) when i learned Pascal later. I understood things like pointers, registers, stacks and clock cycles.

Today most people (including me) will say that people should focus on higher level languags first. To spend more time focusing on very basic language concepts and develop an understanding of algorithms and structure. But during job interviews I've come across candidates that make me doubt this. It is quite common to come across people who can't, say, do a back-of-the-envelope calculation of how much memory a given data structure will consume for N elements of average size M. One candidate even said that he believed that an object reference in Java was "about one byte long". (And yes, I did ask how many bits in case he confused it with "word length").

(Of course, with "high level" I am not suggesting that you should start introducing closures, type inference and various scoping types the first week. People need a bit of background to find those concepts meaningful)

Re: Programming languages for beginners

#12
post #5

I originally learned to code with QBASIC and then C but if I had to do it all over again I would pick a language with a REPL (so ruby, python, lisp etc.) That speeds up the understanding of the language dramatically in my opinion. Being able to instantly experiment and get results is priceless.

I wonder if a REPL might be counterproductive in a first language. Everyone seems to agree that the ability to produce a "thing" quickly and easily is important. In contrast every time I see an tutorial or introduction to a language with a REPL making a thing is always de emphasized in preference for showing off the language facilities. Well except Logo which was all about making art "things."

Research has shown that rapid feedback is a needed element in rapid learning. this has been proven true in many fields. REPL gives you this.

And from my experience , with a REPL , making things is easier and faster.

And in languages without a REPL , the barrier to explain something is bigger(you have to write a lot of cruft code) , so it might make more sense to build something rather than showing language features.

Post reply on HN