Today, I read this post which discusses what the right question alternative to “I want to learn to code, what should I do?”. This post begins with this claim:
If you want to learn to code and build stuff and you’re starting by asking someone else what you should do, you’re already thinking about it the wrong way.
I think differently to this person. I think that you should be asking people what you’re doing, but not necessarily just anybody. For instance, you would not ask your grandmother what the latest and greatest changes are in Rails 3.1. You should do some research in the programming language you want to learn and ask those people. IRC channels, Stack Overflow, hell, even find the emails from people in the community and contact them directly. But please do this last part politely and with regard that those people are doing other things as well.
Jared’s post continues on by recommending to Google things:
Go to Google and start asking questions. You want to make a webpage? Ask. You want to know what the different coding languages are and which you should learn? Ask.
Again, I “think differently”. Going to Google and entering “Learn [programming language]” will give you okay results, but they won’t be the best results you can get. This is what the people in the community will be able to tell you better than any search engine that is catering for the masses. For instance, the search engine doesn’t know that you’ve got experience with another language, and so isn’t catering for that. If you tell real, knowledgable people this, they’ll probably recommend something different than if you were, say, a complete newbie to computer programming.
In the first and possibly also for the second case, for Ruby, I would recommend The Well-Grounded Rubyist by David A. Black. It’s a book that teaches you Ruby from the ground-up. Most definitely in the second case I would recommend Learn to Program by Chris Pine. If you read both these books you will gain a solid understanding of Ruby. Promise!
Once you’ve got this basic understanding, then you will know what terms to Google for. Googling right from the beginning, from knowing nothing is akin to googling “Red lump on leg” and expecting it to diagnose your problem. Chances are Google’s going to inevitably lead to a cancer diagnosis. But, if you go speak to an expert in this particular field, like a dermatologist or a doctor at a clinic, they’re going to give you so much better information.
Please, do not Google to learn a language. The way to learn a language is to get your hands on as much reading material / exercises / screencasts that you can, follow the bouncing ball with them and then finally when you feel comfortable, go out and experiment on your own projects. If you break something, so what? Experiment some more and see if you can fix it. Push the boundaries of your knowledge and never, ever be afraid to be wrong, or even to admit it. Then, and only then, when you’re completely stuck on something, ask somebody who knows the language.
Also: ever see a cool feature in an application somewhere? Figure out how it works. Pull it apart and investigate that. You will learn something.
You will only get better with practice and experimentation with the language you want to learn, not basing your knowledge off what Google (of all things!) tells you.