Caio Proiete on ASP .NET

((.NET) as Practices & Patterns).ToString()

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".

Comments

Denny Ferrassoli said:

An obvious one: Read! In particular books. Don't like to sit down and read a hardcover book? Browse for bloggers. Most of the time you can find bloggers who dedicate themselves to a certain subject matter. It's a great way to learn new technology as well as tips.

# February 5, 2008 5:51 PM

Caio Proiete said:

Hi Denny, I second that.

Just notice that this post is an addition to Rodrigo's post (squad.devworx.com.mx/.../how-to-be-a-better-developer.aspx) where he already mentioned reading books and blogs.

Cheers,

Caio Proiete

# February 5, 2008 6:00 PM

rrobbins said:

I live in Pennsylvania. I don't need to be a great developer. I just need to be better than the Amish. Seriously though, I don't get too deep into code because I'm asked to do design, networking, marketing, database administration, etc. I could probably get more out of studying database design than I could from any of your recommendations.

# February 5, 2008 6:40 PM

Good Links February 6, 2008 « Emad’s Weblog said:

Pingback from  Good Links February 6, 2008 « Emad’s Weblog

# February 6, 2008 12:21 PM

Glen Skinner said:

Review other people's code and have other people review yours. When I started my first job I hardly knew anything about C# and I learned enough by myself to get me through. However, once I got the chance to look at another developer's code and style, I quickly picked up on a lot of his ideas and implemented them in ways that suited my portion of the project. Everyone, at least almost everyone, believes they write the cleanest and most efficient code possible; for them, it may be the cleanest and most efficient they know how to make it. However, there is always someone who can look at your code and see where improvements could be made.

If you review someone else's code, it's easy to change your code to reflect new/better ideas you may find. If someone else reviews yours, it may help them, but it makes your code vulnerable to criticism - just don't take it personally.

# February 7, 2008 3:39 PM
Leave a Comment

(required) 

(required) 

(optional)

(required)