
Ask HN: I'm an amateur/hobbyist programmer. What language should I learn next? - cardamomo
I&#x27;m a self-taught coder and am looking to challenge myself by learning a new programming language. As a kid, I taught myself to code in Logo and BASIC. As an adult, I use Python and JavaScript for personal projects and scripting repetitive tasks.<p>What should I learn next? I know I could deepen my Python and JavaScript knowledge, but I want to use a new and unfamiliar language to fuel my learning and curiosity.<p>What would you recommend in 2017?
======
brudgers
If I had to pick one: Racket because it is an ecosystem that has a lot of
focus on people learning, it has good tooling, it's batteries included, and
more...by which I mean out of the box there's logic programming languages and
statically typed languages and declarative languages and Algol 60. In
addition, the community tends to row in the same direction and one of those
directions is good documentation most of which is all in one place
[http://docs.racket-lang.org](http://docs.racket-lang.org)

But I'm not really inclined to pick just one: For something more old school,
Common Lisp but to me, it is a bit less accessible by which I mean that the
community is much more focused on professional programming. But it is where a
lot of other languages have drawn ideas. Also Forth, J, Processing, C, SML,
Lua, Smalltalk, Ruby, R and Clojure because they are cool.

Good luck.

------
brad0
How much JS do you know? Do you know ES6? Same with python.

If you feel you _really_ understand those languages you could learn a
statically typed language. Something like Java might be a good next step.

Another idea is to learn a Javascript framework. React might be a good choice
if you're into web front end.

~~~
cardamomo
I'm far more knowledgeable and comfortable with Python than JS. Your question
about ES6 is well taken. Diving deeper into that might meet my goals.

~~~
brad0
If you're looking for a great start point you can try this:
[https://github.com/verekia/js-stack-from-
scratch](https://github.com/verekia/js-stack-from-scratch)

This guide is great. I feel a lot more comfortable working with JS after using
it.

------
clark-kent
Try a different paradigm like functional programming (read the SCIP book), or
learn Haskell, Elixir.

If you love Javascript, try getting into Node and one of the Javascript
frameworks.

Try doing a sizable side project in your favorite language.

------
wchrisn
Pick up one machine learning like tensorflow, h20, spark.

Consider integrating with Mobile App ( ios ). You can leverage python for
backend API for the mobile app

------
tobltobs
Looking at your blog I guess your next step shouldn't be learning another
language, but to learn how to ship.

~~~
cardamomo
Tell me more...

~~~
tobltobs
Non native speaker here. I just tried to decipher "Tell me more". Does this
mean "I am seriously interested to hear more" or is it more a sarcastic "I
already know that."?

~~~
cardamomo
Not sarcastic. I want to hear more, because I'm not entirely sure what you're
referring to, and I'd rather not guess.

EDIT: My personal blog is not really the point of my question, though, so I'd
really rather you contact me separately about that.

~~~
tobltobs
On your blog there is somewhere the line "My ~/project folder is full of half
finished web apps ...".

The knowledge of some computer languages alone isn't useful if you don't apply
this knowledge somewhere. For example building stuff. But building something
requires more then just knowledge of languages. So without those other
knowledge your computer language experience is rather worthless for you.

Also you can't really evaluate the dis-/advantages of a language when you
never ship something.

If you just want to automate some private stuff the above isn't true of
course, but then Python and JS is sufficient anyway.

------
bostand
Learn C.

Knowing C opens many doors to you, both professionally and intellectually.

