Welcome to MSDN Blogs Sign in | Join | Help

The MSDN Australia Blog

Blogging about everything good for software developers

News

Top Tips for Becoming A GREAT Developer and... your chance to win one of 3 Microsoft Lifecams when you share yours!!

Hi Folks.  If you read last Friday's MSDN Flash you will have seen these "Pearls of Wisdom" from some very successful Developers but, they're so good I want to ensure my Blog "followers" got them AND there's a chance to win a web cam when you share yours!!  So here they are...

Andrew Parsons, MVP, Education Evangelist, Readify
"Be Humble"
A successful developer realises and recognises their limitations and doesn't impose themselves on others. They don't approach programming with arrogance. I'm quite happy to say "I don't know", but I'm also prepared to say "but I'll try to find out". This is often followed by the cry of "help!!!" with the people I work with.

Dr Neil Roodyn, Regional Director, Independent Internet Consultant, Trainer & Author
"Learn the fundamentals and build on them"
To even consider calling yourself a computer programmer, learn how a computer works. Learn how to place values in a register and call machine instructions to manipulate them. Learn how to optimise the memory management in your code and how to increase performance at a fundamental level. Learn how to serialize data in and out of ports. Once you have a strong understanding of the fundamentals, start learning the basics of abstraction, data hiding, responsibility partitioning and polymorphism. Once you have these basic programming skills, learn to work with other people. Software is an output of the team working on it. A solid team builds solid software.

Andy Coates, Developer Evangelist, Microsoft
"Have an Insatiable thirst for Knowledge"
For me, the most important characteristic of a successful developer is an insatiable thirst for knowledge. Take the time to deeply understand the tools and technologies you use. Read blogs from the people who develop and maintain the tools. Take a course from a visiting expert. Ask questions in online forums. Read in-depth books about the field.

Craig Bailey, MVP and Technical Director, Elcom
"Practice! Practice! Practice!"
Craig went all philosophical on me and really researched the answer to this question. He points to some fantastic blogs that also contemplate this question, but inspired by the blog post of Jeff Atwood (Coding Horror) it all boiled down to:
"Successful developers are people who practice."

Mitch Denny, MVP and Principal Consultant, Readify
"Learn Something New Everyday"
Be part of the Developer Community: It comes in blogs, in user groups, in person. Attend, present and communicate.

Roger Lawrence, Group Manager for Developer Evangelism, Microsoft
"It's not a Technology Project, It's a Business Project!"
Successful Developers remember that there is no such thing as "an IT Project" but a "Business Project that relies upon great technology. When programming, always think about the impact your solution will have on the business and the people who will use it.

Bronwen Zande, MVP and Director, Soul Solutions
"Love Learning"
We can't always be on the most exciting project with the latest and greatest technology so look for the learning opportunity in every project be it a new technical skill, a new business domain, or an interpersonal skill.

Tatham Oddie, Developer Consultant
"Learn through sharing"
If you haven't already, contribute to your local user group, and start a blog. To find out why I think these are all important, read why on my blog.

Dr Greg Lowe, Regional Director, Managing Director, SolidQ
"Learn from Other People's Code!"
I think the most important thing that a developer needs to do is to read other people's code. Just like an author doesn't get much better without reading other people's books, a developer can take an awfully long time to learn things the hard way. Reading other people's code can make all sorts of little ideas pop into their heads.

Finula Crowe, Marketing Manager - Designer & Developer Community Microsoft
"Keep reading MSDN Flash - the best way to stay on top of all that is going on at Microsoft for Developers". (Shameless "plug" for MSDN Flash, I know! ;-))

If you have a "tip" you would like to share, post it here and I will award the three most original tips a fabulous Microsoft LifeCam. Entries must be posted by 5 July. Winners will be notified by 7th July.

Good luck!!  Fin


Posted: Wednesday, July 02, 2008 4:45 PM by ausdev

Comments

M. Rajesh said:

One of the most important thing required is having a passion for developing. Unless the person has a passion for technology and thinking beyond the box, he will never excel or grow up to be a good developer. Also good practice and experimenting is one essential point. And the last is "Good knowledge and understanding of the environment in which you are going to program in".

# July 2, 2008 2:35 AM

Eddie de Bear said:

Egoless programming..

Drop your ego, re-use other people code where possible (avoiding Not Invented Here Syndrome), and don't try to "show off" by deliberately making your complicating your code.

Stop "reformatting" other peoples code because you don't like the way they indent etc.

Ego driven development is a massive productivity killer, and helps to foster bad feelings within a team environment..

# July 3, 2008 9:13 PM

Ben Harvey said:

If in doubt consult the MSDN Blog.

Accept the fact that you may not understand every coding fact, but if we work as a team we can overcome our individual limitations

Nothing beats a quick Live search

# July 3, 2008 9:35 PM

Shaun Baggett said:

Ask Questions.

Don't be afraid to admit that you don't know something.

# July 3, 2008 10:36 PM

Ilya Tchivilev said:

Your code will one day be maintained by someone else.  Write the kind of code a stranger would like to read.  The kind of code that says that you take pride in making your code bullet-proof. That kind of code is like putting a final polish on a perfectly crafted item - it is a pleasure for others to work with.  Sure you won't always get the chance to do this or the time, but that's the ideal to aim for.  It's being proud of your work, but letting your work do the talking.

# July 4, 2008 8:22 AM

Ilya T said:

So when are the winners going to be notified

# July 8, 2008 7:19 PM

Douglas Lim said:

Always wear clean undies and develop in your own time! Great software developers come about from reading and practicing what they read.

# July 8, 2008 11:59 PM

Tim Kremer - SSW Consulting Director said:

Learn how to take advantage of existing frameworks such as Microsoft SharePoint and CRM. They will often allow you to offer much more competitive solutions to your clients.

# July 11, 2008 7:24 AM

Graham R Seach MVP said:

Having all the knowledge in the world, and producing the best and fastest code, is of little value unless the end product meets the customer's needs.

Therefore I believe a GREAT developer is one who not only has the skills mentioned above, but who can determine what it is that the customer really wants/needs, and is able to build a solution that matches those requirements.

# July 15, 2008 2:19 AM

Michael Minutillo said:

I realize that it's too late for the prize but I have two suggestions:

1) TEACH: The best way to find holes in your knowlege is to try and teach someone else.

2) DON'T WRITE CODE FOR YOUR COMPILER, WRITE FOR THE MAINTAINER: Most software products spend more than half of their lifespan in maintainence. Be nice to the guys who are maintaining your code. If you gain a 2% speed increase and it takes the maintenance team 2 extra weeks to figure out your code, have you really gained anything?

# July 15, 2008 3:03 AM

Wayne Thompson said:

Always back up your work and comment your code. It will help you and other people working on your projects. Even though everyone knows you should be doing it not everyone does.

# July 15, 2008 3:29 AM

Ben said:

Program horses for courses and be flexible.

1) Dont use the latest OO Software development theory if your team consists of people with structural programming experience.  You wille creat a key person dependency - you.  

2) A lot of theory is based on the premise that 90% of a software lifecycle cost is maintenance . For large core applications this is certainly true but for 80% of the smaller application out there it is likely there will be very little maintenance done and by the time it needs significant changes it will be completely rewritten based on newer technology and ideas.  

3) For small- medium apps its hard to beat 2 Tier Rad . Get the applications out there. For larger organisations a single framework/shell with modules talking to the back end is appropriate but RAD within the modules is great.

4) Avoid distributed applications - if you do need it make it the most important part of the design - design the communication between systems early eg just after you have a conceptual domain. Communication should be in chunky messages with as much information as possible and a lot of your OO design will need to be compromised.

5) For back end systems - note there significantly  longer life and higher long term maintenance costs so design your system well. TDD is great for these systems as the extra expense is returned over the life of the system.

6) Frameworks should not be enforced except for shell and security purposes.

7) Try to develop in the same way with the same tools. This is especially hard with all the goodies that come through. Test and use these in smaller projects until most people are familiar with them . This covers things like Workflow, WCF, WPF , TDD , Dependency Injection , Frameworks , Remoting /ES , LINQ , OR mappers etc.  Try to avoid these technologies in large projects until you have quite a bit of experience.

8) Dont try to design the perfect system if it passes your tests and requirements its good enough. See next point.

9) If a change is required and the code is poorly written refactor it but ONLY if a change is required or a Bug is difficult to fix .  When you need to redesign confine it to the change in question and keep it as small as possible.

10) Modularity is more important than good code /OO principals . With modules it is easy to rewrite the modules that give trouble in the field - There are many cases of cheaply written bad code running for years with no problems.  Hence for larger systems a modular framework for the client and services for the back end have a lot going for them.

11) Code should be elegant and easy to read . If your code needs lots of comments its badly written.

12) Learn from other people never assume you know it all ( even if you do pretend you dont) .

Regards,

Ben

# July 20, 2008 11:56 PM

Peter Hayward said:

I am a great believer in not reinventing the wheel.

Yes learning every possible coding method, construct and style may make for a very experienced programmer however I feel I gain a significant benefit from learning from other peoples code, constructs, patterns, style etc i.e coding by Lego "blocks".

Utlising MSDN examples is very useful as well as inspecting articles like that found on www.codeproject.com.

Life is far too short and too interesting to repeat effort and also to repeat mistakes.

# July 24, 2008 12:01 AM

Neil J said:

Take easy approach to solve the problem. Share thought with peers and try to implement solution instead for giving advise to somebody.

# July 31, 2008 3:23 PM

TK said:

Ben said: "If your code needs lots of comments its badly written."

Wrong.  Good code is ALWAYS documented.  While you need to be mindful in letting/getting the language to do most of the documentation work for you (that'll save you writing needless comments!), you still need to document coding that cannot be explained using the language you intend to write your code in.

"Why are you doing this?"  "What's the basis of doing that?"  "How does this help?"  There are countless things that people write that are not documented, and that often means a good potential for that code to be scrapped because it's not understood.

Writing comments is just as important a skill as writing good code.  What code is to computers, comments are to people.

# August 1, 2008 12:01 AM
New Comments to this post are disabled
Page view tracker