
What's an effective way to learn a new programming language? - hotz
You&#x27;ve got a &quot;9-5&quot; job and a family waiting for you at home. There&#x27;s probably 2-3 hours of freedom, how would you use that time to learn a new language? With the idea of switching career paths - going from PHP to Clojure&#x2F;Scala.
======
PaulHoule
If you choose Clojure get

[https://www.amazon.com/Clojure-Programming-Practical-Lisp-
Wo...](https://www.amazon.com/Clojure-Programming-Practical-Lisp-
World/dp/1449394701/)

and

[https://www.amazon.com/Clojure-Cookbook-Recipes-
Functional-P...](https://www.amazon.com/Clojure-Cookbook-Recipes-Functional-
Programming/dp/1449366171/)

these two books are much better than the free documentation for learning how
to "Think in Clojure". Expect to read them over and over again, maybe sitting
on the bus, spinning at the gym, or any time you can.

Conceive of a cool demo that would get upvoted on HN, be put on your LinkedIn
page, get talked about at an interview. Start with something small and scale
up until it "clicks"

I would recommend Python as a practical language which I see customers asking
for by name. Python has great libraries for making web sites and apps, as well
as data analysis, graphing, "intelligent" applications involving machine
learning, etc. Python lets you get the abstract syntax tree from the compiler
and transform it, so LISP-style metaprogramming is convenient and mainstream.

I have been paid to write Scala and I do not think it is a better choice than
Clojure, Python or even Java. C# is the best "better Java" at the moment,
although Java is slowly catching up. If you want type systems and static
metaprogramming that will blow your mind, learn the very latest in C++.

------
IanDrake
Udemy has good classes in general. Not sure about scala. Wait until they're on
sale for $10- $15 and then buy a few.

I watch them in 1.5x - 2x speed and slow down only when needed.

