

How To Become A Great Software Developer - blackhole
http://codeshite.wordpress.com/2011/08/15/how-to-become-a-great-software-developer/

======
aespinoza
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.

~~~
tzs
Your satire detector needs servicing.

~~~
aespinoza
Wow... true... sorry about that WHOLE rant. I guess I do need to step it down
a little... :D

~~~
codeshite
As the author, I can tell you I feel much better about people who read it,
miss the satire, and rant, than I do about people who read it, miss the
satire, and think it's good advice.

~~~
aespinoza
I agree; but still, next time, I'll have my satire sensors on full alert. (I
can't promise I won't rant about it though).

