3 ms·
I think you're right for many people, especially those who haven't done much programming and aren't sure they really want to. But whenever I learn a new langua
by SiVal 8y ago
I think you're right for many people, especially those who haven't done much programming and aren't sure they really want to.
But whenever I learn a new language (many times over many decades), I want to build lots of small projects of many different sorts in order to habituate myself to the new tools and patterns (using the tools in various combinations) as quickly as possible. My ideal is when I find a set of these small but diverse projects implemented by an expert in the language, so I can try it my way, see how a "native speaker" does it, get some explanation from him (again, ideally), adjust my approach to be more "native", and repeat, again, and again, and again. I can usually find the problems, but finding the "native" solutions is harder.
I don't need the exercises to be "useful" in any way other than delivering the desired fluency efficiently, and I don't need them to be "motivational". If I want the skill, I'm motivated by anything that can help me get it, and if I don't want it, the problems don't matter. I have other things to do.
- narwally 8y agoI have a similar approach to learning a new language. The first thing I usually do is implement some sort of self-balancing binary search tree (usually AVL, Splay, or Red-Black). It's usually something that I can do in just a few hours in a new language, using just the core language features and maybe a couple of standard library functions. It's also just complex enough to force me to learn some of the language idioms so that the resulting code is sufficiently readable/elegant/small/performant. Once I've done this I'm usually much more comfortable reading other code in the language and navigating the language documentation. From there it's much easier to do things where I want to use external libraries, frameworks, build tools etc.