Sunday, September 11, 2005

What it takes to be a Software Developer (Part 2)

4. Choose a camp; JEE or .NET.

Choose a camp. By that I mean you must start to be good in either Java or .Net technologies. Look around the industry today and you can see that almost everything are written in Java or .Net.

Well, of course you can specialize in Perl, Python, PHP, C/C++ or any other technologies. But very likely that right after you graduates from college you would have learned either one of these. Hence choosing the camp at early stage will cut through lots of craps.

5. Read lots of code.

In the beginning, you will be reading code more than writing them. Learn to read code because you will be reading code throughout your career. You can choose the shortcut and read documentation instead. But since we are talking about being good, just read the damn code. This exercise will teach you about good design (or lack of) and you will learn that why writing clear and easy to understand code is so important. Forget the craps of writing "efficient" code. Very often those "efficient" will be thrown away because nobody understand it other than the original programmer.

Learn to read code -- you will learn what is good code and what is crap.

1 comment:

bernie said...

What about debugging code? I find debugging very useful and I'm glad I learned it from my superior. I notice that a lot of programmers, even good ones, still depend on sysout/syserr. They help but when dealing with objects especially, it can get very tedious to display something meaningful using sysout/syserr. I always had a hunch that if the good programmers really mastered debugging, they'd be very more productive. There's a learning curve but it's well worth it I think.

Take for example an object containing multiple objects (a composition object). If you want to examine one of the sub-objects, it would be troublesome. Compare this with a good debugger, you can just break and examine its contents. Unless you specifically overwrite their toString() methods that is...

Another useful thing about using a debugger is that is allows hot-compiling - meaning any changes to the source code during debugging will be reflected and the class reloaded. No need to stop and recompile (useful if there are any database entry - no transaction will be committed).

Of course, I'm speaking about the Eclipse debugger since I've only used Eclipse so far :)