Thursday, May 31, 2012

Software skills for freshers

Every year millions of "Professionals" pass out from numerous Engineering colleges and Professional institutes spread across the country seeking opportunities in the highly rewarding Information Technology field. Why I emphasized the word Professional has a reason. Wikipedia describes the word Professional as -

professional is a person who is paid to undertake a specialized set of tasks and to complete them for a fee. The traditional professions were doctorsengineerslawyers,clergymen and commissioned military officers. Today, the term is applied to architectsaccountantseducatorsengineersscientiststechnology expertssocial workers and many more.

Depending on the quality of the institutes, the students have varied level of skills. These skills do not really match up to the expectations of any IT/Software Companies. So they cannot be really referred to as "Professionals". So how does a fresher becomes a professional?

Most of the top notch IT company put these freshers hired via campus, through various training programs before inducting them into the projects. These programs range from 3 months to 6 months in duration. Usually these companies have their own in house training facilities or out source it to a vendor. These programs are supposed to transform the freshers into "Professionals". 

But not all companies can afford to spend so much time and money on the campus recruits. Moreover there is a vast majority of students who are not able to make it to the companies through campus placement. These students usually end up spending their own money on acquiring some kind of skills in one of the numerous training institutes namely CDAC, NIIT etc. They undergo 3-6 months course which are again designed to turn these freshers in "Professionals".

These courses are usually tuned towards helping the student learn a programming language or understand a technology. However, these training programs really lack the depth and breadth to make a well rounded Professional. My opinion might be a little biased as I do not have any information on the training programs of top notch company like Infosys and TCS. However I have interviewed and have hired and worked with a large number of students from CDAC. They do a pretty decent job, however still I feel there are many missing pieces and usually these students take around a year or so to really become a "Professional" which justifies the definition above.

In this world of information overload, I find it amusing that students and companies are not really making good use of the quality education available for free. To sight an example, 15 years back when I was studying Digital Signal Processing (DSP), I used to refer a book by Prof Oppenheim, from MIT. DSP being a difficult subject, it was difficult to learn it on my own and the faculty could only provide only a myopic view of the subject. Recently I discovered the full fledge DSP course taught by Prof Oppenheim at MIT available on iTunes. I was so excited that I downloaded and going through it just for fun.

The point I am trying to make is that there is so much information available for free. What you need is a good Internet connection which has become a reality now. One can easily get a 2 Mbps speed for less than 1000 bucks. There is no need to actually attend the expensive courses at the institutes. If you are really motivated, you can learn everything taught at these institutes by world renowned  faculties, on your own at fraction of cost and without traveling anywhere. But what is needed is a guidance in terms of the following-

1. What to learn
2. Where to learn
3. How to learn
4. How to get queries answered
5. How to put learning into practice 

Through this blog I will try to address these questions. Digital revolution has changed a lot of things and one thing which must change is the way we learn. 

Lets adopt this new way of learning, lets call it Learning 2.0 !




Sunday, June 13, 2010

High performance C++ Library

http://www.boost.org/

Highly optimized, well tested, high performance C++ libraries.

error A2085

error A2085:instruction or register not accepted in current CPU mode

If you get this error in assembly code, then changing the .386 directive to .586 resolves the problem.

Intel x86 assembly programming

An excellent resource for Intel x86 assembly programming and C++ code optimization

http://www.agner.org/optimize/

Using Microsoft Assembler (MASM) with VS2008

Simple step by step guide to using microsoft assembler with Visual Studio-

http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c9411__2/An-Introduction-to-Assembly-Language-Part-I.htm

Applicable for Visual Studio 2008 as well.

Saturday, March 22, 2008

OpenGL ES

OpenGL ES is the OpenGL specs for the Embedded Systems. As mobile platforms move towards 3D graphics, its but obvious that OpenGL programming for Mobile devices would catch the fancy of the developers. A good place to start is Anca's blog http://ancaalimanescu.blogspot.com/search/label/OpenGL%20ES
Ofcourse theres a whole lot of resources for J2ME 3D programming, the resources for native programming seems to short of expectation. But the resources for OpenGL for desktop environment is in abundance and can be used for Mobile environments as well, but one must pay attention to the fact that many of the features of the desktop world has been sacrificed for getting a small footprint for the OpenGL ES.
A good 3D performance depends on the hardware accelration provided by use of graphics chipsets. The obvious players are nVidia, AMD, Intel & TI.

Thursday, January 10, 2008

Google

Find out what google is upto, here.... http://googleblog.blogspot.com/