Itís 5:00pm, I just finished another round of interview with an applicant applying for a Visual C# position. As usual and to my disappointment, he did not pass the skill evaluation exam. The evaluation examines the programmerís logic formulation and problem solving skills. Since I started interviewing applicants a month ago, only 5 out of 81 applicants have answered the problem correctly Ė and none of these 5 answered the problem efficiently. What went wrong?
The skill evaluation consists of two (2) simple exams:
1. Variable Swapping to test your resourcefulness, and
2. Shuffling to test your coding efficiency
Is the problem too hard? These are elementary problem-solving exercises of math college students that cannot be solved the average 7-year experienced programmer. Any software developer would agree with me that programming is co-related to mathematics, which is problem-solving anyway.
Now, I have some speculations why this is happening:
Low Quality Education
A big factor in the worsening quality of programmers is the institution. IT Schools focus more on teaching specific programming languages and programming syntax instead of programming concepts. Although, hands-on experience is a vital part of the learning process, programming concepts such as Object Oriented Programming and System Development are much more essential. New programming languages come up every year, but never forget that concepts on which these new tools are built is very unlikely to change.
Letís admit it, most of our college IT professors cannot unleash our full potential, unless youíre really that passionate about programming. Most of the IT professors have good technical skills but they lack that skill to drive students to learn. Iím petitioning all IT school directors to do a check and find a way how learning can be further improved.
Misconception on Experience
You may find it hard to believe, but the average 7-year experienced programmer cannot solve the two (2) problems I mentioned above. Experience is one of the biggest factor most of employers are looking for Ė but is it a factor? Of Course it is a factor but not a BIG factor. Give a month to a newly graduate with an outstanding knowledge in programming concepts, problem-solving / logic formulation skills and he can even exceed your average 7-year experienced programmer.
The misconception on the years of experience is one factor the programmer slows down or even stops learning. They are too proud of themselves for creating too many wonders and forgetting to improve the rate at which they learn new things.
More than half of the applicants I interviewed are experienced ones, but I advise them to continue learning, be modest, and/or better look for another career if software development is not for them. As an employer myself, Iím looking for someone who can consistently solve problems quickly and efficiently. Programmers with this kind of attributes are proven to excel in their software development career.
It all starts within you (programmer). In the first place, why take the Computer Science Course if all you want is design, photography, nursing, agriculture, housewife, etc. You will never succeed, and you will never look for opportunities to improve. This is normally the behavior if what you do is not something that you really love.
Before going to college, do not seek opinions from your parents, friends and teachers. Take the course that encourages you to do more than the expected.
ďHave the courage to follow your heart and intuition. They somehow already know what you truly want to become.Ē Ė Steve Jobs
If youíre a reader with direct influence in any of the contributing factors above, I petition you to do your share. Judging from my personal experience and from the multitude of applicants Iím interviewing everyday, I regret to tell you that the quality of software developers in the Philippines is getting worse.