Settings

Theme

Programming languages for beginners

blog.borud.no

12 points by brox 15 years ago · 11 comments

Reader

EatenByGrues 15 years ago

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.

  • Avshalom 15 years ago

    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."

    • ippisl 15 years ago

      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.

  • ricree 15 years ago

    Maybe I'm remembering wrong, but didn't QBASIC actually have a REPL?

xtho 15 years ago

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.

  • bborud 15 years ago

    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)

effigies 15 years ago

My first two were Logo and VBA. (I don't really count the tiny bits of dabbling in Basic. I got bored by hello world.)

I'd say both of these meet his criteria. But neither of them got me hooked. It wasn't until I started on Perl to help a friend parse chat logs that I really started getting into programming.

  • bborud 15 years ago

    It Logo and VBA meet "my criteria" I must be terribly bad at getting my point across.

    Kinda suprised to see a random blog post by me end up on Hacker News. If I had known I would have made more of an effort :-)

    • effigies 15 years ago

      Woops. I totally missed this one:

      > It has to be a "real" language. As in: a language that is actually used by a significant number of people in paid jobs.

      Either way, as first languages go, they're not bad, as they let you get those immediate results. There's pretty minimal fluff. (I think. To be honest, I couldn't write anything in either of them, anymore.)

      I suppose you could call them oddball, though.

shalmanese 15 years ago

aka php

  • bborud 15 years ago

    PHP certainly is instant gratification, but its marriage to the web server sort of makes it a bit domain specific (though, it is possible to use it outside the web sever. it just never caught on). mostly I do not recommend PHP because it is messy. there are far better languages that share similar syntax that are cleaner, more consistent and have both better libraries an better mechanisms for managing libraries.

    one of the languages I specifically was thinking of as a bit annoying is Java. before you are good to go, you need to set up the JVM, sort out your classpath ("help! what's a classpath!?"). then, when you are ready to program you instantly have to think in terms of classes and you are thrust head first into what "static" means etc. and dear god what a bucketload of frustration you are in for if you ask for advice and end up trying to make heads or tails or Eclipse or, god forbid, Maven.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection