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".
The BETA certification exams for .NET Framework 3.5 have been extended through February 8th 2008, and it still possible to take one of the exams below for free:
- 71-502 TS: Microsoft .NET Framework 3.5 - Windows Presentation Foundation
- 71-504 TS: Microsoft .NET Framework 3.5 – Windows Workflow Foundation
To take the exam, just follow these steps:
- Register on Prometric's website.
- Find a Prometric center near you.
- Choose the date and time to take the exam, and use the code 502B1 for the exam 71-502 (WPF), or the code 504B1 for the exam 71-504 (WWF), to get 100% discount on the exam price.
Enjoy!
via Gerry O'Brien.
Welcome to my new blog. I'm glad to join the ASP .NET community blogs and I hope you enjoy my future posts. My focus here will be mainly ASP .NET, C# 3.0, WPF, WWF, WCF, .NET Compact Framework, and how we can apply the best patterns & practices using these technologies.
Who am I?
I'm a senior consultant for .NET technologies. I have more than 8 years of experience with software development in general, and have been working as a consultant with .NET since 2002, and as a trainer (MCT) since 2004. I also hold the following Microsoft certifications: MCSD (VC++ track), MCSD .NET (C# track), MCDBA (SQL 2000 - Yes, I know it's outdated... Working on it), MCTS (Windows Mobile/.NET CF), and MCT (Microsoft Certified Trainer).
Where do I come from?
I'm originally from Brazil, have lived in Angola a few years ago, and I'm currently living in Portugal. As you might noticed, I'm not a native English speaker, so bare with me with my mistakes, but feel free to give me some grammar tips :).
Where can you find more about me?
Have you tried Google Live Search? :). Seriously, you can find me at:
PDAExpert Technologies (Content in Portuguese only. Sorry!)
http://www.pdaexpert.net
Caio Proiete.com (Coming...)
http://www.caioproiete.com
Thank you for reading,
Caio Proiete
PS: A special THANKS to Joe Stagner for the opportunity.
PS2: I know... I know, the thing is that I just love "PSs".