DEV Community

Cover image for What to learn first

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...
Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

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

Kidding aside, great advice in your article!

Collapse
 
isaacdlyman profile image
Isaac Lyman

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.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

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

Thread Thread
 
isaacdlyman profile image
Isaac Lyman

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

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

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.

Thread Thread
 
gypsydave5 profile image
David Wickes

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.

Thread Thread
 
codemouse92 profile image
Jason C. McDonald • Edited

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!

Collapse
 
hoidberg profile image
Hoidberg

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?

Collapse
 
isaacdlyman profile image
Isaac Lyman • Edited

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

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️ • Edited
<hipster-troll-mode>
what? No, Lua is way better!
</hipster-troll-mode>

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 :/

Collapse
 
lepinekong profile image
lepinekong • Edited

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 ;)

Collapse
 
jacksonelfers profile image
Jackson Elfers

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

Collapse
 
buet17 profile image
buet17

I have sound knowledge in Python and Django

Collapse
 
kurisutofu profile image
kurisutofu

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.