Quote Originally Posted by Webhead View Post
It takes years of dedicated practice to get good at it.
TRUE
Quote Originally Posted by Webhead View Post
Getting a chance to do it professionally will speed up the process.
TRUE, even more than years of practice
Quote Originally Posted by Webhead View Post
But learning programming of any sort can't just be done in a weekend while reading a book.
Not a weekend, but not very long either. If you know one modern language (like c++ or java) you can easily relate to that. After all it's the same concept for the most part. Objects and methods.
Quote Originally Posted by Webhead View Post
Unless you're a genius, it's just like anything else. It's hard work and takes time and patience and practice. It would be equivalent to picking up a guitar and learning to play. Or maybe deciding to try and learn French. So when people get to the level of being able to rain code like that, it's only because it's become second nature to them.
TOTALLY DISAGREE. It's like building with bocks. You need to know what you are building before you start. You can reuse some assemblies and alter few things, but if you start building an airplane you can't really turn the wings into the wheels of a bike. Also if you want to build a 6ft tower you can't really start with a single piece at the bottom...
There are people who catch it really fast because they understand the big picture and that they don't worry about details first. And there are people who will never do it properly because they aren't meant for it.
If you can express what you want to do in plain English (Chinese, French, Spanish...), to the last detail or you can draw the complete diagram on paper then you can also code it. It's just replacing the words with code.

Code:
if webby has programming books then
  if webby studies the book to the end then
    webby writes the "Hello world" program
  else
    webby complains that programming is hard
  end if
else
  webby complains that he doesn't have programming books
end if
Code:
if(webby.library.books.count>0)
{
  if(webby.study(programming).complete==true)
  {
     webby.write(helloworld)
  }
  else
  {
    webby.complaints.add("programming is hard")
  }
}
else
{
  webby.complaints.add("don't have books")
}
Sure this is a fake language, but it would be pretty damn close to a c++/java/c# implementation.