Sean, I hope your comment doesn't discourage Roelof! I might agree that "mastery" of a given programming language could take a decade of working with it, but it doesn't take anywhere near that long to "learn" a programming language.
There are other factors, such as whether or not you already know at least one language: you'll associate what you already know with the new ways of doing the same sorts of things. And you'll know to look for things that you can reasonably expect a new language to provide. But the first language you learn will probably take the longest time, as expected. I think learning Smalltalk/Pharo will take longer than you might expect if the other languages you know are procedural or functional, rather than object-oriented: You need to learn a new way of thinking when learning OOP for the first time. And that can be hard! As humans, we're probably "hard-wired" to think procedurally, which can be a bit of a handicap you when starting OOP. You don't need to, and shouldn't expect to be able to learn everything about a programming language immediately, as you begin learning it. Once you learn the basics (enough to start writing programs that "do something"), you need to begin writing programs --frequently-- and then begin the process of incrementally adding to your understanding and knowledge of "the finer details". You learn as you go. Reading up on the subject, including reading others' code, helps a lot as well. Today we have GitHub to help there! Don't give up, Roelof. The struggles you go through now tell you that you've progressed to the stage of "being aware of what you don't know", which is good: It leads you to ask the right questions that will expand your knowledge. Finding the answers will sometimes be a challenge, but "mastery" of a language pretty much always requires that you work through the kinds of problems you've been having. It's what gives you "insight", summed up as "been there, done that". Otherwise your knowledge of the language would only be superficial (e.g., you would be able to read code examples, but you wouldn't be able to code the examples on your own). We've all been through these kinds of struggles you're having now. It's part of the process, not an indication of "you can't do it". As Sean says, after a year of working with Pharo, you'll be offering the same kinds of advice to others that will follow you in getting started. Just keep at it! -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html