Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Learning your Nth programming language?
18 points by n8ta 9 months ago | hide | past | favorite | 8 comments
What resources do you use to learn the details of using a new language when you are competent in many other languages? Not the basics like class hierarchy, syntax, and loops, but more language unique stuff. Eg:

- Compilation model: bytecode/native/whatever

- Are there multiple implementations which are most used and why?

- Package management and versioning

- Common build tools

- Concurrency/io model (async, os threads, green threads, etc)

- Language-specific/more-common data structures

- Sources of UB to aware of

All the "Java for experienced developers" pages I find start by teaching me HelloWorld, move on to declaring variables, loops.... and never get to anything interesting.




Jump into more advanced books/courses (if those work for you). Not "Java for Experienced Developers" but more like (switching to Go since I ran through this one a few years ago and recall liking it) "Concurrency in Go". It doesn't provide (or I glossed over) an introduction to Go, it assumes Go knowledge. It does not provide an introduction to programming, it assumes programming knowledge. It dives into its topic and demonstrates how to write concurrent programs in Go, which is the interesting part about using Go. Since I was rusty on Go I recall digging into Go by Example and a couple other things to fill in my knowledge gaps about the language and tooling themselves that the book didn't cover.

Whatever language you want to learn, that's the kind of resource you need. Whatever courses, videos, and books are targeting the intermediate to advanced users of the language.


Usually, I start with the official docs. Most of the time they are starting with the basics, but non-video content can be skipped very easily.

Then it is always a good idea to read open source code. Look for not too big projects leading in the open source community. You can use trending github repositories[1] to find some interesting modern projects. Set the filter to the language of your choice. Looking through the pull requests and issues can be enlightening.

Books (even if they tend to be outdated pretty fast) are a reliable source of knowledge, because they contain reviewed and thought through knowledge, if they are good.

The last step could be watching either professional youtube tutorials about specific topics or even live coding.

[1]: https://github.com/trending


Most often I just start using the language without reading/watching tutorials.

And I often contribute to open source projects which I use, that use a language I've never used, and it worked quite well so far.

a) you can take a look what tooling they use

b) by looking at the existing code and trying to find the bug I often find interesting things that may be helpful for my contribution

c) most open source maintainers give reviews and may aid you with some parts of your code, and are often quite helpful when you are puzzled by their build steps or CI pipeline

Otherwise you could just go on GitHub and filter the top stared repositories that use the language and take a gander at their tooling and their code

And some languages like rust have good documentation for the tooling, common libraries used, and tutorials that are more advanced than crrating a hello world


It takes me some days to a week or two to learn the syntax. I do that from a book or YT playlist. And I do it really fast, because, I know, if I forget something, I am just a Google search away from an answer.

About the more advanced parts, I rely on search engines and advanced books. I get deep into the documentations, some blog posts, some SO page, etc. And I don't do these pre-emptively. I do these when the need arises.

Unless I am scouting for a language that other will also work on, I follow this approach.


The problem I've found recently is that it's getting harder and harder to find books that are up to date and reflect the current best practices for a given language and its surrounding ecosystem. It seems like most of the current content comes from blogs, paid courses, and YouTube. I'm guessing it's due to the time vs. profit tradeoff of writing long form books versus blog entries or recording videos. There are also some advantages to videos for topics like mobile or web development that benefit from a visual representation. However, I still miss a good book when it comes to information density. In my opinion books are by far the best way to learn a new programming language's syntax and standard library.


Seriously, just ask ChatGPT and tell it you are an experienced developer and don't need to be told the basics. It can then give you a helpful overview and get you oriented. then you can read code, docs or other detailed sources to deepen your knowledge (and make sure the LLM didn't make something up)


I frequently read over virtually all of the docs of a language to grasp the ideas the authors had. Understanding a language theoretically is more of interest for me then tinkering around with it.


Did you talk to any LLMs about it? Java is a huge ecosystem with more nuanced and complex answers to the above questions than any other language ecosystem. It is best suited to be ingested via dialogue.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: