
Ask HN: How do you learn a new programming language without low level goals? - tbirrell
The easiest way to pick up a new language is to just build something in it. I&#x27;d like to learn Python because there are some things I want to do with it, but those projects are well out of reach of &quot;just learning&quot;. Unfortunately I have nothing low level that I have any desire or motivation to build, so keep putting it off.<p>How have any of you solved this problem in the past?
======
Someone
_”The easiest way to pick up a new language is to just build something in
it.“_

That’s an opinion. If you build something, chances are you only learn part of
the language, and you also have to learn part of its libraries and build
system. For some languages, you’ll also spend significant time setting up a
programming environment.

I prefer learning languages by reading the language spec (many languages start
out with a fairly loose one) or the ‘authoritative’ text from its creator(s).
It has to be halfway decent for that to be good, but that frequently is the
case.

(The Python language spec is only 160-ish pages, for example, 140-ish if you
skip index)

Examples of texts that I found good when I read them, some over 10 years ago:
Stroustrup’s books on C++, the C# spec, Apple’s “the Swift programming
language”, Odersky’s book on Scala (the spec, IMHO, is not good for learning
the language)

Note that these books vary widely in their level of detail. I don’t think that
matters much.

I also think reading the docs of the entire standard library (not necessarily
in full detail, depending on the level of detail in the text) is a better way
to learn the library than googling around for answers. It gives you better
answers, and, eventually, it takes you less time.

------
auslegung
I found this cli weather app written in python to be small enough that you
might be able to figure it out, and it’s basic enough that you can probably
imagine features to add. [https://github.com/JasonMFry/weather-
cli](https://github.com/JasonMFry/weather-cli)

