So what does it take to become a good programmer? In the example of the web, its pretty easy. All you have to do is learn HTML. Not just any HTML, but HTML5. Then there is CSS3. Then you have Javascript. Not just low level Javascript, but all the frameworks also used. jQuery, Prototype and micro-frameworks such as handlebars and modernizr. Not to mention the CSS frameworks like 960gs, Twitter Bootstrap, and BlueprintCSS. Suddenly, it doesn't seem so easy.
It doesn't stop there. If you are going into programming, it goes beyond just front-end. You have to learn programming languages such as PHP, MySQL, Python, and others as the need facilitates. Not just the basics either. You usually have to learn frameworks such as Zend Framework, Code Igniter, Yii, Symfony, etc. Then you usually have to learn the actual applications built with these languages and frameworks. Its items such as WordPress, Django, Magento, etc.
This is only the beginning
. Sure you can use notepad or notepadd++ if you are a noob, but come on! A working knowledge of an Integrated Development Environment, (IDE) usually becomes more and more essential to active development. Zend Studio, NetBeans, Eclipse, PHP Storm, are all good options.
Now, you need to know about design patterns, Agile, Test Driven Development (TDD) and the tools required to utilize each. PHPUnit and Simpletest will get you going with TDD.
Now what about everything that's indirectly related to programming itself? There's the LAMP stack and how to interact with it. There's command line server interfacing. There's version control with Git and SVN. There's continuous integration with Hudson/Jenkins/PHing.
Then, there's more abstract concepts you need to be aware of that you never even thought about. Upgradability, security, scalable and reusable code.
Then there is all the "helpful" tools out there that help you write better and faster code, but require you to learn a whole new syntax and programming language. Less CSS, Coffeescript fall into these categories.
Basically, it boils down to this: If you want to program, you need to constantly learn every day for the rest of your career. Good luck.
Credit where credit is due: http://www.crowdcademy.com/blog/#business-guy-to-programmer