Are You A Good Developer?

Posted by: Suprotim Agarwal , on 7/31/2008, in Category General Topics
Views: 46809
Abstract: 'Good' means having qualities that are desirable and distinguishing. From a developer's perspective, these qualities are both technical as well as non-technical. Here are some qualities that a developer should possess if he/she aims at becoming a 'good' developer.
Are You A Good Developer?
'Good' means having qualities that are desirable and distinguishing. From a developer's perspective, these qualities are both technical as well as non-technical. Here are some qualities that a developer should possess if he/she aims at becoming a 'good' developer.
1. Good Communication skills - In the software world, people usually define good communication skills as fluency in a spoken language. That's not really what it is. It is how effectively you are able to communicate with others. As a 'good' developer, you should be able to express yourself well, listen well, as well as manage the communication process well.
2. Positive Attitude - 'Your attitude determines your altitude'. I am sure you must have heard that phrase. From a developer's context, this means believe in you, stop blaming others and adapt to changes without fretting. Remember that you always get what you want because you always want what you get.
3. Read Books - Read plenty of them to get a good idea of different technologies. Reading books gives you quick and handy insight into a technology. You should choose books that are usually written by known professionals who recommend best practices and different methods of solving a business problem using the technology. During the course of time, you will learn to develop your own methods. Who knows you may one day write a book!!
4. Practice, Practice and Practice - I have seen a lot of developers having good amount of theoretical knowledge. They read a lot of books and technical material. However when it comes to applying that knowledge, they take a back foot. That is because they do not practice. Efficiency and effectiveness in your work can only be attained if you practice code. The only way you can make a good developer of yourself is to practice, and then practice some more.
5. Follow Patterns and Best Practices - Patterns & practices reflect technical guidance, technical problem domain and engineering practices based on real-world experiences. The process to learn it is gradual, but once done; it can save you a lot of time and efforts and enable you to work smartly. Follow a Code Design Guideline. Always use a code analysis tools that will evaluate and analyze your code.
6. Discussion/Newsgroup - Participating in communities develops the quality of leadership and contribution, both ingredients of success. Having participated in a good technical discussion on the community leaves you with a feeling of self-satisfaction. It also increases your knowledge, as you find smart people who can validate your solutions, as you validate theirs. It also teaches you to appreciate suggestions. Do not forget to 'pat someone on the back' if he/her has made a positive contribution. Believe me it makes all the difference.
7. Knowledge of Networking and Databases - People may contradict this point, but during my career as a developer, I have realized that a good developer should know the basics of networking and databases. Almost all the solutions that we create, involve interactions with networks and databases. Having knowledge of these two, helps you write better code and saves you on a lot of time too.
8. Blog/ Write Articles - How many of us can remember everything? I cannot. So I document them. It helps me to reference stuff when I need them. Over and above, it also helps me get some good feedback from readers and shows me multiple approaches to do the same stuff. I have received a lot of feedback about my work, some good and some not so good. However, I do validate them and learn from this process. It develops the developer in you.
9. KISS - Keep Implementations/Approaches Short and Simple. Do not over complicate things by using jargons, which people find it hard to understand. The key is to simplify your designs and avoid over-engineering things.
10. Think as a Tester - Developers and Testers; two sets of people from different camps, ready to take on each other. I have observed that the intersection of the two produces good results. It does not harm taking off the developer's hat for some time and putting on the tester's hat. In fact, in the long run it helps you reduce bugs/defects in your code. You develop a mindset of about breaking your code, when you are creating one.
11. Consistency is the name of the game - Do you hop jobs too often or are bitten by the 'salary' bug? If yes, then it’s time for you to sit down, relax and plan. Invest time in thinking and let your decisions not be spontaneous. To move ahead, you need a solid foundation and that comes with consistency.
12. Attend technology seminars and events - If there is one hosted in your city, make sure you take out time to attend one. Most of them are free and provide a valuable source of information about new technologies.
13. Jack of all or Master of One? - Well that's a difficult one to answer. In today's scenario, you have to master more than one technology. Practically it is quite difficult to do so, but the good ones do it. However the key is adaptability over here. If you are good at any one technology and confident in it, given an opportunity, it would be easier for to relate to a new technology in a short period of time. Try it out as it enables you to compare technologies and make decisions, once you have worked with them.
14. Stop complaining - Did the software fail or are the testers giving you a tough time by finding a lot of bugs? A natural tendency for a lot of developers is to react and then overreact in such situations. While the reaction is natural, it may not be desirable. Analyze why the software failed or why was the bug reported. It is going to be a learning experience and will help you in your future projects.
At the end, just remember that you are not going to remain a programmer for ever. So once you are satisfied and get a feeling that you have proven yourself as a good programmer, it’s time to re-program yourself. Expand your interests. Development is just a part of the process. Understanding the users and business is in itself an art, one should aim for and should master over a period of time. I hope you liked the article and I thank you for viewing it.
If you liked the article,  Subscribe to my RSS Feed. 

This article has been editorially reviewed by Suprotim Agarwal.

Absolutely Awesome Book on C# and .NET

C# and .NET have been around for a very long time, but their constant growth means there’s always more to learn.

We at DotNetCurry are very excited to announce The Absolutely Awesome Book on C# and .NET. This is a 500 pages concise technical eBook available in PDF, ePub (iPad), and Mobi (Kindle).

Organized around concepts, this Book aims to provide a concise, yet solid foundation in C# and .NET, covering C# 6.0, C# 7.0 and .NET Core, with chapters on the latest .NET Core 3.0, .NET Standard and C# 8.0 (final release) too. Use these concepts to deepen your existing knowledge of C# and .NET, to have a solid grasp of the latest in C# and .NET OR to crack your next .NET Interview.

Click here to Explore the Table of Contents or Download Sample Chapters!

What Others Are Reading!
Was this article worth reading? Share it with fellow developers too. Thanks!
Share on LinkedIn
Share on Google+

Suprotim Agarwal, MCSD, MCAD, MCDBA, MCSE, is the founder of DotNetCurry, DNC Magazine for Developers, SQLServerCurry and DevCurry. He has also authored a couple of books 51 Recipes using jQuery with ASP.NET Controls and The Absolutely Awesome jQuery CookBook.

Suprotim has received the prestigious Microsoft MVP award for ten consecutive times. In a professional capacity, he is the CEO of A2Z Knowledge Visuals Pvt Ltd, a digital group that offers Digital Marketing and Branding services to businesses, both in a start-up and enterprise environment.

Get in touch with him on Twitter @suprotimagarwal or at LinkedIn

Page copy protected against web site content infringement 	by Copyscape

Feedback - Leave us some adulation, criticism and everything in between!
Comment posted by Curt Nicholas on Thursday, July 31, 2008 2:06 PM
Some great points!! 4 star.
Comment posted by Vishwajeet Singh on Friday, August 1, 2008 2:29 AM
Nothing really great; points covered were already covered in many articles but still a good read and refreshes things which you might have forgotten.
Comment posted by Stephen Ward on Friday, August 1, 2008 12:03 PM
Interestingly enough, I was helping a coworker of mine figure out the variable that stores user subscription levels in a custom video app yesterday.  Instead of trying to recall the bit of code, I sent him to <a href="">the blog post</a> where I had saved it.  I guess, as far as #8 goes, then, I'm a good developer. :)
Comment posted by Nicolas on Friday, August 1, 2008 2:15 PM
But that's just one buddy!! I think the author conveys that there are 13 more to achieve, to become a GOOOOD dev!!
Comment posted by OJ on Monday, August 4, 2008 6:47 PM
#14 is an impossibility. I've never met a single developer that doesn't complain :)

In all seriousness, if you don't complain, then certain things don't get fixed. So I say, don't stop complaining, just learn to complain at the right times.
Comment posted by Klaus Hebsgaard on Tuesday, August 5, 2008 4:47 PM
Well all these skills are very fine, and you should strive to get them.
BUT you forget that people do not want good looking and well crafted software.
People want something to help them solve their problem.
Look at twitter - a very successful service - but not very well done...
So to be a good developer you need to understand peoples need, and but that above your urge to create beautiful code...
Comment posted by Mike Borozdin on Wednesday, August 6, 2008 10:25 AM
Excellent points!

Communitcation skills are crucials, it's sad that not so many people care about them.
Comment posted by Andrew on Wednesday, August 6, 2008 9:31 PM
9 times out of ten, if there is a problem reported, there really is a bug and it was something you did, so don't jump to any conclusions and blame someone else until you have investigated (and don't rely on the bug report being anyway near accurate).
Comment posted by mario on Thursday, August 7, 2008 10:56 AM
HINT:  If you are a dotnet programmer, you are NOT, I repeat YOU ARE NOT, a good programmer
Comment posted by Abeer Dey on Friday, September 12, 2008 3:17 AM
Mario, your comment proves how unthinking you are. Think logically. Why can't a dot net programmer be good? Dot net has Turing acceptable languages in it. And designing all kinds of Turning machines isn't simple. So your statement is logically false doesn't have integrity. Maybe you yourself don't even know what Turing acceptable is.
Comment posted by Abeer Dey on Friday, September 12, 2008 3:19 AM
One correction. I meant Turing complete, not Turing acceptable.
Comment posted by Dave Kimmer on Saturday, September 13, 2008 6:06 AM
I agree. I have used both .NET, Java and PHP. .NET gives a powerful platform and makes life easy for programmers. But then to leverage the best of it, you have to be a good programmer :)
Comment posted by Kalps on Monday, October 6, 2008 4:35 AM
Hello, Please correct a grammar mistake over here
quiet difficult to do so
should be
quite difficult to do so

Original comment from sg1fan:
Comment posted by Carol Nadarwalla on Monday, October 6, 2008 1:42 PM
Thanks Kalps. The error has been rectified!!

Site Editor
Comment posted by Subrahmanyam on Wednesday, February 4, 2009 9:59 AM
Great set of points for a developer's motivation.
Comment posted by Ranjeet Kapoor on Wednesday, December 9, 2009 11:11 AM
Style lucid and thought provoking article
for new bees in s/w developement world.
Comment posted by Rohan on Thursday, August 26, 2010 8:48 AM
Really nice one and a must for Every Developer specially for the ones who are new to the S/W Development scenario..
Comment posted by Muhammad Idrees on Thursday, May 26, 2011 11:39 PM
Thanks for good  nice articale
Comment posted by vishalpatwardhan on Thursday, May 24, 2012 6:39 AM
its a helpful ,consolidated article to be followed by programmer to become good developer.