Caio Proiete

.NET Software Architecture & Development

How to be a better developer?

This is my follow-up to Rodrigo's excellent post "How to be a better developer?", where he makes some good points, by the way.

I pretty much agree with him on the topics he pointed out, and without exhausting the subject, I would add the following topics:

Know what your framework has to offer. Use it.

It is common to see experienced developers coming from other languages, recreating classes that already exists in .NET Framework. I can't remember how many versions of the System.IO.Path class, I've seen in the last few years. How many projects you joined that used this "Utils" class with lots of methods that just recreates existing features of several classes from .NET Framework?

Another example would be the .NET Role-Based Security model. It looks like only a few people really know about it, and I can't get tired of seeing independent role-based models developed from scratch. Learn how this "provider" concept works, and start creating only your customized "providers", instead of creating the whole "services".

Extend the wheel. Do not reinvent it.

There are common solutions for common problems. Learn design patterns, know which one is better for each situation, and apply the ones that fit in your project. By using well-known design patterns, you will probably solve the problem in the best way, and will also make it easier to other developers understand what you did.

Write technical articles

Yes. By writing technical articles you force yourself to get a deeper knowledge of a subject, and it gets even better when you get feedback from your readers. Start your own blog would be a good way to start, but in any way, publish your articles also in one of the web sites of the CodeZone Community, to get a bigger (and qualified) audience.

Give technical presentations

Giving technical presentations, is another way to force yourself to get deeper knowledge of a subject. You could do simple internal presentations in your company, or in the user group of your region. Even better, if you like teaching, consider becoming a Microsoft Certified Trainer (MCT), and teach some courses once in a while. You will learn a lot while you prepare yourself for each course, and also from the huge amount of questions raised during the training (sometimes even in the coffee-break :)). Did I mention you can also make a few bucks with it?

Write quality code

There are several rules and guidelines of what you should do, and how should you do, for each technology. Learn from this guidelines, adopt the ones that makes sense on your project, add your own guidelines, and make sure you and your team keep following this guidelines.

Do not write "temporary code"

If you know how to solve a problem in the right way, just do it. If you write temporary code instead of implementing the real solution, the chances are that your temporary code will last forever in you application. Remember that, most of the times, doing it the right way takes the same effort as doing it in the dirty way.

Test your code

It doesn't matter if you do Test-Driven Development Unit Testing or Plain Old Unit Testing. Create and maintain an updated test suite for you project, make sure you are covering as much code as possible, and make sure your code pass all the tests before going into production. Unit Testing is a fantastic way to make sure your code is doing what it is supposed to do. Be the first to discover a bug in your code. Not your user.

What about you? What would you add to this list? What would you remove?

Why?

Edit:
Arnaud Weil also wrote his opinion on "How to be a better developer" and Thomas Krehbiel also wrote his opinion on "How to be a better developer"

Posted: Feb 05 2008, 21:38 by Caio Proiete | Comments (4) RSS comment feed |
  • Currently 3.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: .NET | Patterns & Practices