If one opts IT as professional carrier then that person must instill these qualities -
1) Solid understand of a programming language
2) Adequate understanding of chosen language framework and platform
3) Database understand and ability to work
Fill in the missing piece's:
Above 3 you can learn from school, however,
what school wouldn't be able to teach is,
1) Critical thinking
2) Understand the requirement(s)
3) Grasp existing solution and make new changes as per requirement/design
I have been working for IT firms since 2009. Started as developer and currently working not only as Dev team lead but also as Solution Designer. And being a designer is much more challenging then a programmer - saying this with experience. Yes, the following attributes are utterly vital, no question
- Inability to code in contemporary technology platforms,
- Weak English skills,
- Poor comprehension readiness to address foreign clients’ concerns,
- Inadequate soft skills, namely communication and teamwork,
- Poor knowledge of corporate culture, e.g. reporting, compliance, escalations, email etiquette, and protocols.
However,
critical thinking, requirement understanding and understanding as-is and to-be design is what you need to be successful on various projects and this is what any employer would expect from you.
I have worked with many Pakistani's, Indian's and other south asian folks, beside communication issues (which Chinese also do, actually they struggle the most due to language barrier), their biggest challenge is what I elaborated earlier.
That said, the indent of any developer should be:
A)
Understand the framework well enough, because there are many features, which it offers, therefore you wouldn't have to write the code for it, which I also call - "you dont need to re-invent the wheel again"
B)
Understand your requirement, its a must - many developers (even senior's at times) struggles with it. Because if you dont understand that requirement and start moving in a wrong direction then you are officially screwed and in corporate world, you wouldn't get many changes (sometime you only get 2 changes).
C)
Critical thing and learn how to prioritize your tasks
Now coming on job market. Its incredibly challenging to find your first job, because employers are looking for candidates with experience, so what are your choices?
A) Opt a program which offers
internship - this helps a lot, speaking from personal experience
B)
Freelancing
C) Be ready to spend some hours as
volunteer
Take a different approach:
Last but not the least, almost all the school use Java, C++, C##, Microsoft or other free available languages throughout their programs.
What does this means? OP mentioned that
Pakistan’s universities produce around 25,000 IT graduates but merely 5,000 get employed at leading local IT companies
Beside being irrelevant or outdated education, another aspect is supply and demand. There are only X number of Java, C##, C++, .Net and Web developer are needed. Therefore, people should try to think out of the box as well - and what is this out of the box approach?
Opt for ERP system. There are many ERP system which seems intimidating (at times they're), however, this is something not every second person is doing. Therefore, in my book, its totally worth it to do investment on ERP and many renowned corporate houses have implemented ERP system even in Pakistan.