Ten Simple Tips To Become A Valuable Software Professional

An athlete doesn’t instantly compete in the Olympics simply because she pumped her Reebok sneakers. A musician doesn’t instantly play Mozart symphonies just by listening to one of his masterpieces . A general doesn’t win a war simply by watching a war movie. All these examples have an intrinsic way of dealing with self-realization and application:

  • It takes time
  • It takes practice
  • It takes motivation
  • It takes inspiration
  • It takes discipline
  • It takes courage
  • It takes effort
  • It takes concentration
  • It takes perseverance
  • It takes education

It takes the same energy as the examples above to become a key, valuable and respected software professional, e.g. programmer, developer, architect, tester, SQA, vendor, trainer, etc. So how do you become a key leader in the field? Are there any steps to follow? I don’t think so. However, I do believe there are tips one can consider.

Here are my ten simple tips on how to become a valuable software professional.

1. Read literature on the subject

When was the last time you read a book or an article on a specific subject related to software engineering? If you’re not in the habit of taking a piece of literature in your hands, I hope you will break that habit, because reading is a privilege that not most of us have, and it can help you grow both as a person and a professional. In Code Complete, Steve McConnell writes that the average programmer reads less than one technical book per year. Reading a book written by a pioneer like Caper Jones, Cem Kaner, Karl Wiegers or Gerry Weinberg will set you apart from the majority of beginners and some professionals, because you are learning from experts in the field and their mistakes from the past can be very valuable for your future. That doesn’t mean you won’t make mistakes! Everybody makes mistakes. This is how you become the best in the field: by trying and by failing. The question you should ask yourself is Why would I waste my time in repeating the same classical mistakes instead of preventing them? The authors I have mentioned above are pioneers in the software development field, and they have taken time to write down their mistakes and their solutions for them. There are various medium of literature to read from: magazines, books, ebooks, blogs, newsletters, whitepapers, tutorials, etc. A tip: start out general so that you can build your habit of reading, and as time goes by, you can specialize in various areas such as programming, architecture, patterns, requirements gathering and analysis, software quality, testing, etc.

2. Write literature on the subject

Share your knowledge with others by writing articles, tutorials, books, or other type of literature in magazines, blogs, etc. Sure it takes time, but the benefit of it is much greater. I took almost five hours of effort to write this article, but if it can help at least one student, one professional or one aficionado, then it is worth it. There is also some research involved in writing a technical article, so you’re still returning to the first tip: reading; therefore, you’re still learning and growing. It’s a win-win situation.

3. Attend conferences

Some are free and some are not, but depending on the scope of the conference, you will learn a thing or two. Maybe you won’t learn anything technical, but you sure will learn something about communicating to an audience. Try to make it a goal in your professional life to attend at least one or two conferences a year. Remember that speakers have a mix of experience and research when they present a topic. They took the time you didn’t have to present you something worthwhile. You can attend international, as well as local conferences. For example, in Montreal there are bi-weekly conferences on Microsoft technologies (Microsoft Visual Studio Group of Montreal), Agile practices (Agile Montreal), software process improvement (SPIN Montreal) and software quality and testing (SQPA). In any case, conferences give you the opportunity to also meet new faces and network with other professionals like you. This tip is also related to reading and writing, since you can read about the topic before attending a presentation, and then write about it to solidify your understanding and sharing your opinion with the community.

4. Attend a professional or academic class, training or seminar

I am pro education and I think every human being should be glad to have the ability to learn. If you’re a student, I say to you “Well done. Don’t give up.” If you’re a professional, I say to you “Well done. Don’t give up learning.” There is something special and worthwhile when a little group of people are sitting in a class, and learn altogether from a teacher. I agree, sometimes the teacher isn’t the best, but remember that the teacher once sat in the same seat as you did. If you don’t learn from the teacher, you will learn from the textbooks, the materials, or even better: the other students; therefore it’s still a win-win situation. I don’t care much whether it is a professional class or an academic class. I know one is more pragmatic and the other more theoretical, but you’re still going to learn something. If something is too theoretical for your taste, see if you can do some research on the subject or attend a conference on it to get a better understanding.

5. Listen to audio on the subject

There are many podcasts available on the Internet about software development, processes, practices, tools, etc. Just google for “software development podcasts”, and you’ll see for yourself. Listening, as you know, is not the same activity as reading or writing. Your brain works differently. Nevertheless, the outcome is the same: you will learn something. Now the trick is to find the time to listen to one. I suggest listening when you’re doing some physical activity, such as cleaning the house or exercising at the gym. Don’t listen when you need to concentrate mentally on something, since it’ll be harder to capture the full intent of the show. It’s like drawing a square with one hand and a circle with the other hand: it’s possible, but very hard to do.

6. Watch a video on the subject

You can also watch online videos, presentations (aka webcasts). Some presenters also use PowerPoint presentations so that you can take notes while listening. There are various topics being presented by independent individuals or corporate speakers. If there’s something you didn’t quite get, you can always rewind the video. Some presentations also allow online real-time collaboration, so that you can ask questions to other people tuned in. I sometimes take some time to watch dnrTV, which uses a Camtasia capture of the presenter’s computer to better visualize his intent.

7. Join a professional society

Joining a professional society will expand your domain knowledge with other professionals who might have more experience than you. For students, this is incredible because the fees are just a fraction of the regular price. For instance, I pay less than 30$ a year for my ACM and IEEE membership. In return, I get valuable newsletters, magazines and invitations to participate in my local chapter. For professionals, this is an excellent way to build your network. If you’re working at a company, verify if the company can pay your membership.

8. Apply your knowledge

When I first started to learn how to drive, I spend my time reading books on how to drive, how to park…basically a Driving For Dummies kind of book. But the very first day I sat behind the wheel and accelerated, it was as if I have forgotten everything about driving. You see, sometimes theory without application is null. When you read an article, listen to an audio cast or watch a presentation, take some time to apply what you have learned. You can write about it as I have mentioned above, or even teach. You’ll be amazed in discovering new things about the related subject as you do so. You can also start a new project, or even participate in the development of one (e.g., SourceForge).

9. Get certified

What a greater way to apply your knowledge than to pass a formal exam on a subject? Most respected certifications have a body of knowledge as its core basis for knowledge and understanding. Personally, I prefer going with independent certifications such as the ones from IEEE, QAI or ASQ, instead of company-specific ones like Microsoft or Oracle, because I prefer to focus on the seldom changing software principles rather than the always changing technologies or tools, but that is my own opinion. Getting certified doesn’t give you the title of Master of a subject, but it does show your competency on it. For more information on various software certifications, I strongly suggest you to visit this site www.softwarecertifications.org. By the way, the software engineering field also has its own body of knowledge in case you were wondering: the SWEBOK.

10. Have fun investing in yourself

Last but not least, have fun when learning or applying your knowledge. If you’re tired of reading or listening to something, just set it aside and do something else. I truly believe that God gave us enough hours in a day to become the most we can be in a lifetime. Remember to live and enjoy your life. Technology will come and go, even after you die. That being said, ask yourself if there’s a contribution that you can bring into this field that can help others in the future. I’m glad for people like Steve McConnell, W. Edwards Deming, Joseph M. Juran, Timothy Lister, Tom DeMarco, Cem Kaner, Eric Evans and the like who have helped me grow to become a good software professional thanks to their writings and presentations.

The software development or engineering field is truly amazing. I hope this list of tips will help your knowledge on this subject to grow.

This post has been viewed: 4120 times. kick it on DotNetKicks.com

 

Similar posts you might be interested in reading:

12 Comments

  1. Software Engineering » Blog Archive » Enter the 2008 Ford Shelby GT:

    [...] Ten Simple Tips To Become A Valuable Software Professional to software engineering? If you re not in the habit of taking a piece of literature in your hands… to become a key, valuable and respected software professional, e.g . programmer, developer… are my ten simple tips on how to become a valuable software professional. 1. Read literature… in the software development field, and they have taken time to write down their mistakes and their solutions…, patterns, requirements gathering and analysis, software quality, testing, etc. 2. Write literature [...]

  2. karthik ragubathy:

    hi brian
    your Ten Simple Tips To Become A Valuable Software Professional is very helpful
    i am by the way studin in my first year ug in computer engineering
    i dream of becoming a reputed software professional
    can u give some tips for me

  3. Kelly:

    Bless you Brain,
    I appreciate this topic on, Ten Simple To Become A Valueable Software Professional.
    I must confess that, by God’s grace this topic helps me alot.
    Firstly, i am using this topic as a guideline to my career because, i am doing Software Engineering in University.
    Secondly, it is also a source of help to my friends even now, i am forwarding this topic to my friends.
    Thanks we appreciate you and may God’s grace keep guiding you In Jesus Name Amen.
    From Kelly
    Software Developer/Project Manager

  4. adam:

    you mean it takes “perseverance?”

    Perseveration is the uncontrollable repetition of a particular response, such as a word, phrase, or gesture, despite the absence or cessation of a stimulus, usually caused by brain injury or other organic disorder.

    good article though :)

    –adam

  5. Brian Di Croce:

    Hey Adam, you’re absolutely right. That was a mistake from my part, I’m glad you noticed it. Thanks! :)

  6. John:

    You mention SWEBOK…one ACM report considers it harmful:

  7. John:

    Oops, the link:
    An Assessment of Software Engineering Body of Knowledge Efforts
    http://www.cs.washington.edu/homes/notkin/bok_assessment.pdf

  8. Clinton:

    Thanks for taking the time to summarize this information for us, it is much appreciated. In IT we are knowledge workers, if we don’t refine and upgrade our knowledge we become less relevant. We therefore owe it to ourselves to do just what your article says.

  9. DCR:

    “Tips to Succeed in Software Engineering Student Projects”, available at http://StudentProjectGuide.info

  10. ize:

    thank you brian! great article. You’re a blessing! :-)

  11. Muktar Ali:

    hi brain
    Really these 19 points are really important for a IT professional

  12. Jahanzeb:

    Thanks Brain for these useful tips. With tips like these I hope to become a successful software engineer like you some day. Thanks again.

Leave a comment

Powered by WP Hashcash