Honestly I just open up a new project and start fucking around until I figure out syntax, language features, and how files relate to each other
- Read the documentation
- Try some simple examples from the docs
- Build a simple project
- Start with an ambitious project
- Get stuck
- Curse everything about said language or framework, “why did they do it like this”
- Read the docs and find out why they did it like this
- Feel stupid
- Finish the project (or at least the part you actually cared about) with your new knowledge
- Feel smart
- Repeat until you know said language or framework
Easy to get caught in a perpetual loop with steps 4 and 5
You should be learning a bit more with each loop though.
Even banging your head on the wall against something eventually gets you somewhere.
Read. Build. Repeat.
Either I come up with a new project or I rewrite an old project in the new language.
I used to do those old school language tutorials where we start with how to write a variable, then how to write a function, etc. but I think that’s better for complete beginners just starting out.
I’ve done project rewrites. This minimizes the problem solving to mostly just syntax, sometimes a new paradigm if the framework is different enough. But in my experience a rewrites goes so much faster than I expect it, since theres a very clear goal to achieve while rewriting. If someone has an existing project to rewrite, I recommend it. If not, you could implement some project in a framework your comfortable with, and then do a rewrite in the new thing.
Get theory from somewhere on the Internet (videos, tutorials etc.), then do exercises on platforms like Exercism. Once you feel like you are getting good at it, start replacing the time for exercises on time with real projects
Read official docs, then rewrite some small own project in it.
Start a project with a good template and learn by tinkering. Some languages/frameworks have some canonical starter templates (.NET, Phoenix/Elixir) and most others you can find by googling “x boilerplate.”
- Watch a project tutorial video
- Code along with the video and taking notes
- Create my own project with the notes i took and documentation
Solve advent of code in it
Rewrite one of my old C projects in it and compare the difficulty, ease of understanding the code, any issues/boons in documenting it, etc.