Does going for technical certifications helps one grow as a programmer or it is just to demonstrate that you are a field matter expert ?
It demonstrates that you have the time and money to take a subjective quiz that is easy to cheat.
Hard work, reading and experience makes you a better coder.
It pushes you to do some studying that you might not otherwise fit in.
I'm taking some certifications, and I assure you there is a lot that you don't discover working.
You may learn some minor new functionality via the certification process, but overall they demonstrate that you are a subject matter expert. People that I have spoken to only take the certifications to: 1. Get a bonus from their current company, or 2. Make it easier to get hired by a new company.
It does neither. Taking the courses can help you to learn new techniques and skills. However, the simple fact that one possesses a technical certification says nothing about whether they actually know any of the material. I've met people with MCDBAs, who were unable to write a simple select query, or configure log shipping. Many certifications are only tested with multiple choice, and therefore, can be obtained with a couple days-weeks of intense studying.
Some can be helpful, as they force you to study material in areas where you might not have had much experience. The real problem is that the testing really sucks. It becomes more of a problem in test taking than one of learning new material.
The other problem is the requirements that some organizations have that require you to do the basic certs before you're allowed to do the more advanced ones. Often the basic certs are a waste of time and money.
It provides a tangible form of 'level of expertise' metric to companies. It is flawed in the way that all metrics are flawed though, in that it only measures certain measurable objectives and doesn't provide any meaningful information outside of that.
It can be a foot in the door though, as it can get your resume to the top of the pile for consideration quicker. I wouldn't say they improve expertise though (certainly, someone who has certifications in certain areas won't for certain be more compentent in said areas than another programmer... it just means they bothered to buy a piece of paper that says they are)
You might even ask if getting a degree in IT make you a better programmer. Just because you studied to take a test, doesn't necessarily mean you are a good programmer.
In retrospect, I suppose a company should try to develop the perfect test, so that if a programmer studied to pass it, it would have the affect of influencing coding behaviours, but often a .NET or PHP, or Python test (name whatever language you want here), will only be testing on general concepts needed to effectively use the language, but won't go deep enough to figure out if you can create a helper or controller class for a contact address book, or some simple application.
Nonetheless, if you're a good programmer, and you know this, and want to give interviewers a warm fuzzy, who may happen to not know how to program but need you to fill their one programmer slot, then a certification may help you get the job, especially if your soft skills may not shine in the interview.
Assuming that you want to improve your skills and you're not just working the system for the piece of paper, a good certification curriculum encourages you to learn the subject matter in a more comprehensive and systematic way than you'd learn on the job, where you tend to know only the subset of the API that your stuff relies on, and where if something works, there can be a lot of pressure to move on to the next thing rather than satisfying yourself that it works for the right reason, that it's going to work on every platform, etc.
Multiple choice quizzes have a bad reputation, and rightly so if the only reason you can answer a question is because you happened to memorise the answer in your cramming session- "oh, I know this one!". But honest preparation for multichoice quizzes isn't about spoofing or guesswork, it's about being able to come up with good reasons not only for picking a given answer, but for eliminating each of the other possible answers, either because they're wrong or because they're less appropriate given the context.
That kind of preparedness for a test starts to resemble real world expert knowledge: you can predict how a system is going to behave given certain starting conditions, rather than guessing or muddling through, and you can give sure, unambigious, logical reasons why.
I don't think that technical certifications can improve your programming skills. If anything, it demonstrates your ability to study and retain material long enough to take a test. I've seen plenty of people who I didn't think were great programmers pass certification exams like it wasn't a problem.
However, I do believe that it can expand your base of knowledge. For example, the Microsoft certifications that I've obtained gave me a passing familiarity with some things that I hadn't used before.
Perhaps it depends on the attitude with which you approach studying.
Either can really be the answer depending on the situation. If someone has spent decades in a technology then the certification may not improve their skills, whereas if someone is going into a new technology in pursuit of a certification this may make them a better programmer by adding something else to the various technologies that someone knows.
Sometimes the information can be academic in going for a certification or handling those multiple choice tests that can be a pain to do because how often when confronted with a problem will you know that one of a,b,c, or d will be the solution? :)
Yes, absolutely, if you have to practice programming outside your comfort zone while studying.
You can either take it for the right reasons or the wrong reasons, but forcing yourself to learn in the benefit of most certifications.
I think it depends on how you approach studying and preparing for an certification exam. If you just cram then no. If you research and practice the skills the cert exam covers then maybe there is a chance you will be a better programmer.
I do feel the cert exams exposes one to more areas that they would normally not use in day to day work and can give one insight into different ways to do some things. In my experience something I have seen preparing for a cert exam over weeks has come back up months later and I have turned to my study material or books or even knew what to look up to use something I have never used before.
So it just depends. Your approach and attitude are the key.
I think certifications are just for HR staff, if you read the biographies of the great programmers you never see Certification section. It's just another title :)
I have never considered someone a subject matter expert because they have a cert. In my experience, the certified people often knows less than the non-certified of the things I really need them to know.
As to whether it will help you grow as a programmer, I suppose it can expose you to information you aren't familiar with and that will help you grow you skills, but honestly I think there are as or more effective ways to accomplish the same goal without certifications. Certifications seem to focus on the obscure, open source work or personal prjects may be better at getting you real experience solving real problems.