3 ms·
Find a little project you want to do using the technology. For example if you are learning Python, come up with a little program/website idea you want to make,
by nicky0 11y ago
Find a little project you want to do using the technology. For example if you are learning Python, come up with a little program/website idea you want to make, and do it in Python. It's always easier to learn "as you go" rather than just reading a book in isolation.
- monk_e_boy 11y agoAgree. Throw the book out. Do a project, and if you really care, at the end make it more perfect. But don't make it more perfect - do the next project. Make your focus to make some money, get more customers, etc. The beautiful code will follow from that. It doesn't matter how beautiful the code is if no one uses it. (Well, maybe if you need to pass an exam or open source the code or something like that, slightly different goals for the code to 'succeed'.)
- lewisl9029 11y agoThis would be my recommended approach as well. Think of a project you can build with the technology you want to learn, and then learn the technology through actually building the project. I generally feel more motivated with this approach because at the end of the effort, I'll actually have something to show for my time. If the project idea is good enough, you might even be able to turn it into a business, but don't let the lack of good ideas stop you, because your primary goal is still learning, and for that, even clones of existing products can work (and you might be able to find a good twist on it that can differentiate your own project as you build it). And for me personally, no amount of reading and exercises can compare with real usage if I wanted to become truly proficient at a technology.
- bluetomcat 11y agoFor a skilled programmer who is fluent in a couple of other languages, I actually think that is counter-productive. Better take your time to learn that new technology properly in its entirety and then start playing with it. This way you will have a complete mental model of that technology in your head and you will be more likely to do stuff properly from the first try.
- camperman 11y agoNo man. The OP has it dead right: find a small project, write it in your new language, struggle a bit but get it finished. Then go back and see where you could be more idiomatic and improve those parts. Or do another small project but with more knowledge behind you this time around. This is the philosophy behind for example, SICP: "you don't learn Scheme, you use it."
- zelos 11y agoIn my experience, a combination is best. Reading gives you the broad scope, doing gives you detail, repetition and context.
- arethuza 11y agoHow would you start learning a technology would playing with it? I couldn't imagine sitting down and reading huge amounts before trying anything - I want hands on experience as soon as possible.
- bluetomcat 11y agoI didn't really mean to exclude any experimentation while you are learning. Fiddling with the possible expressions that a language would allow in a REPL is OK, but I am against starting pointless little projects before you have grasped something entirely. GitHub is full of these and they are mostly not pretty.
- dragonwriter 11y agoStarting projects before you grasp something entirely is how you get to grasp it entirely. Sashaying it with others, e.g. via github, is often a useful part of that. You aren't entitled to a github with only projects that interest you, and not pretty work is part of the learning process.
- ceagrass 11y agoThis is what I recommend to EVERYBODY who says to me "I've been thinking of learning x language."