All statements that focus on a specified way of doing things are wrong, specially starting with a line like "How to become a great software developer".

"Read only books written in the last 10 years" - umm I have to disagree with this one. Greatly. A good example is the book: "Transaction Processing" by Jim Gray. It was published in 1993, and it is still relevant. Also NO Big Name in the Agile Community has endorse it. But I would recommend everybody to at least read the introduction.

"Java is dead" - Yeah right, just like C++ is dead as well. Of course writing Ruby will make you a great software developer (sarcasm). There is nothing new in Ruby/Python/Scala/Clojure.. they are just a different mesh of features from other languages, just like Java. And Ruby will be dead soon, just like Java. Use the least mature language know to mankind(sarcasm).

Now this one is interesting: "Be a craftsman and a professional, not an engineer". Ok so Developers are artists right? Well, I'm sorry to say that artists don't really follow an established process. At least not the Great artists. They create their own. Additionally, the comparison between an artist an a doctor is like saying: "Find the middle ground and that's where you need to be." Let me tell you that middle ground is called engineering.

"Never fall into the trap of thinking for yourself" - WOW. So you need to be an artist, a professional, read only books from 10 years ago but find ALL the solutions in such books... and never think for yourself. If you are wrong you will learn from your mistakes and that will make you a better software developer.

This article should be called: "How to be a noob in 13 steps." I am really afraid to go on.

My recommendation for software developers out there, on what has worked for me on on 14 years is:

1. Read and Read a lot. Don't put a cap on what you read. In fact Read everything if possible. There are solutions found in the 1960s that have been forgotten that could be useful today.

2. Practice all you can and Experiment with new ideas and solutions. Computer science is filled with interesting problems and solutions, try to find different solutions to proposed ones. Be creative, be an artist, but also learn from your mistakes.

3. Be a multi-language programmer. Doesn't matter what languages you learn, every language has a different way of thinking and might help you in whatever program you create later. I would recommend learning Common Lisp, but that is up to you, using lisp won't help you be a better programmer, but understanding will.

4. Read Code from other people. Go to Github and just read through code, understand the style, the structure and the purpose. Practice by finding ways to improve people's code.

5. Experiment with Software Development Methodologies. Take what you need from each one and tried to integrate it. Experiment with it. Current established methodologies worked for their founder, but think about the fact that most methodologies (just like languages) are just a mesh of ideas from other methodologies. Create your own. Make it Work.

6. Follow Kent Becks Advice to handling complexiity: "Make it work. Make it Right. Make it fast".

I guess I could continue on writing, but the ideas are simple: Read Books, Practice Coding, Learn multiple programming languages, Read Code and Experiment with Soiftware Development Metodologies.