Friday, May 21, 2010

What it takes to be a professional programmer?




Are you a programmer just by chance or it’s your passion to be in the field? In order to become a professional programmer you need to possess a genuine interest in the field. Whenever the term software programmer comes to our mind, the only word strike our chord is ‘technical’. But it takes more to be a professional programmer beyond technical terms. Let see the significance of these qualities:

Trustworthiness - Is the person capable of respecting the privacy of the clients? Can your project manager trust you with sensitive information? If you're given clients' data or have signed a non-disclosure agreement, then you are being trusted to respect privacy. You are trusted to check license agreements on third party tools or libraries and to get licenses or permission as required.
Teamwork - Do you cooperate with your team members, help them when they need it, and do not get involved in official politics? Can you do your share of the work and trust your team to do the rest? And can you accept your management (and sometimes even clients) as part of the team, everyone trying to get the same job done?
Leadership - Do you believe in knowledge sharing and can you delegate your task efficiently? Leadership means both earning respect from others and knowing what to do with it. Recognize the skills of your team members, and make sure you can offer each person challenges and development without exceeding what they can cope with at a given time.
Communication - Teamwork can't happen without good communication, nor can accountability. Communication is critical for helping clients to produce usable specifications and feedback. A professional's communication is effective and to the point, whether in person, in email, on the phone or in written documents.

Updating Skills - Are you aware of the latest methodologies in the industry like eXtreme Programming, new libraries, refactoring tools, standards, file formats and protocols, Unicode, XML, SQL, and all the other acronyms, the platforms that your potential clients are using, about cross platform development etc. Basically you need to possess a genuine interest in your field, and to read broadly so you know what's out there and which areas to then read deeply about.
Minimizing Risks Familiarity - Professional programmers keep track of known bugs or any other change they intend to make. Another risk that's often not properly considered is any and all changes to the source code. Source is your livelihood and any change can be a mistake. Professional programmers are careful to do enough testing. A software company will generally have testers but the developers need to know how to get the most out of testers and also how to write their own unit and regression tests to make sure every change in behavior is noticed and checked.
Accountability Writing code for others is a responsibility. You need to make sure your software is reliable. You need to make sure you and the client truly understand the requirements and specifications. You need to have documentation of your work, all current and past bugs, your progress, any problems, signed-off milestones, and more. You are also required to know about some basic legal issues, like software licensing, the terms of your employment contract.
`

1 comment:

  1. you are talking about a software engineer right?
    programmer doesn't need to have all the qualities you quoted! take linus torvaldus for example

    ReplyDelete