What to learn first

Isaac Lyman on February 13, 2019

This is an early version of a chapter from Your First Year in Code, a book of practical how-to and advice for new developers. If you're considering... [Read Full]
markdown guide

There's even a few jobs in many obscure languages, with very little competition for them. ;)

Kidding aside, great advice in your article!


True! Not a lot of people gunning for that ALGOL role any more. But I've heard you can make big money if you're the person that gets hired.


Fun fact: on my running list of things to learn is my "Mothertongue" project - a goal to gain basic proficiency in twelve of the foundational languages from whence we get nearly all modern programming: Ada, ALGOL, ASM, BASIC, C, COBOL, FORTRAN, Lisp, Pascal, Prolog, Smalltalk, and TeX.

(Presently debating whether to include SNOBOL in that mix...)

Did a bit of Googling, shocked to learn that some of those languages are still actively maintained and coming out with new versions.

Rather amazing, isn't it? This is why I've said languages rarely die...

P.S. Here's something of a family tree of programming languages if you're interested.

Ada, ALGOL, ASM, BASIC, C, COBOL, FORTRAN, Lisp, Pascal, Prolog, Smalltalk, and TeX.

Fun idea - mind if I chip in?

Skip COBOL. Skip TeX too (even typesetting by Knuth is still typesetting). Add in APL - now there's an artisinal language. Should add a stack based language too - Forth or Factor.

And start with Lisp - Common Lisp. Get that under your belt and you may be hooked for life, then Scheme.

Common Lisp is having something of a renaissance at the moment - no better time to try it.

After I posted, I was doing more research, and already decided to add APL and Forth (the predecessor to Factor, IIRC), as well as SNOBOL. So, I'm now up to 15 languages on that list. :)

However, I have no intention of skipping COBOL, simply because being able to read COBOL source can be incredibly useful in maintaining or upgrading legacy systems.

As to TeX, I know it's for typesetting, and not coding...but I also happen to be a typesetter as well. ;)

At any rate, I'll make sure Lisp is high on the priorities!


/troll mode on
there is a single best technology! haskell!
/troll mode off

Really great article! Couldn't put it in better words, that's pretty much what I also recommend new and aspiring programmers.

(PS. no I don't recommend learning haskell, or any FP, for a newcomer, unless someone comes from the math background)

what? No, Lua is way better!

I agree that FP for a newcomer might be hard to learn, but with the biggest alternative being OOP, it may still be the best option :/


I am wondering, my 9 yr old son is passionate about coding, what is the first thing he should learn and learn well? He is talking about Linux, all this is foreign to me, so is this something I should let him download and play on, is it easy to learn and start coding on?


Easy? No, but never underestimate a motivated 9-year-old. It doesn't matter what he learns as long as he's interested in it. The next generation of programmers is kids who started on video game mods and LEGO robots.

Linux, if you haven't looked into it yet, is an operating system (like Windows or OSX) so he'll most likely need his own computer to install it on. I installed Linux on my parents' computer when I was about 12 and accidentally broke it for about a week.

I'd be happy to answer any questions he has about this stuff (with your permission of course).


There is no single answer especially as people have different backgrounds. First there's a big difference between big corps and startups, and inside big corps between different services (for example a bank trading department is often very demanding whereas elsewhere it may feel like they live in prehistorical age). There's also a big difference between the hypes and the realities. Hot things are hot only for people who are at the top of shininess because as it is new, not many big companies are transitionning to it, so it's only technology startups these startups are more harsh as for recruitment process. Last but not least, it often boils down to whom you know ;)


It does come with the idea of learning "concepts" instead of technologies. Technologies can come and go like the tides.


Nice article!

I also usually recommend C#, Javascript, and python for the same reasons.
I often add to start first with C# as it is a strongly typed language.

code of conduct - report abuse