Author Archive for RajeshK

Competency Development

Competency Development

I again thank you all for the good encouraging comments for the last post. It’s good to see this much amount of interest on Open Source. Especially guys like Praveer and Raghul, who have been able to talk a good amount of detail on the examples they’ve pointed out.

Specifically what Raghul talked about, got my thought process going. He was talking about using open source at colleges for learning purposes. The statement he made is of great magnitude and importance. If you really see, it’s a two-sided phenomenon. Using
OSS for learning and competency development is one aspect, but the reverse aspect is of much more importance. It’s not easy to contribute to the community unless we are good developers. Competency is a must for contributing to open source. For e.g, if you see the profile of the developers of some of the most popular open source software like Linux, Apache, MySQL, Gnome etc, you would see how experienced they are. This is not by accident or coincidence and some of these guys would be the first to jump out and say that they are still learning!!!

So I thought I’ll spend some time on how important competency development is and how learning never stops.

The foundation/starting point for this in our industry is being a good programmer in at least one programming language. This is not easy, but to think of it all you’ve got to do is just keep programming!!!!! And this can be fun too. In fact some of the first C programs we ask our freshers to do, is to pick up their favorite game and implement it. This also interests you as you’re able to relate to it. This is why you see only a million sudoku solvers available on the web.

Whichever way you approach it, do not forget the end goal. Ensure that you understand all the important aspects of the language. It is also a bit context sensitive, as some of the finer aspects depend on the domain in which you are programming. For e.g somebody who programs on the embedded/systems software domain in C, will always code to the limitations they are working with. They need to take care of things like Endian-ness, structure padding for cache-line optimizations, double pointer manipulations etc… These are the things that come with practice, but once the foundation is right these are relatively easy challenges J

So, invest your time in competency development which would make it easy to scale up to your goals.

Open Source Software

The adoption of Open Source Software is gaining significant importance in the world today. It is neither a new technology, nor a methodology that will change the way software works, but its ever increasing acceptance and adoption by companies, businesses, governments, software developers, educational institutions, and even students indicates its profound impact in the software community. What started as a small initiative, has hit big time popularity with the likes of Linux, Apache, MySQL becoming great success stories. It has taken us to the level where in anytime you are in need of a particular software, the first thing you do is search in sourceforge.net if we can get something similar which we can directly use or customize.

Open Source software or OSS as its popularly known is governed by the rules of the Open Source Definition and is mostly released under the GNU Public license (GPL).

The advantages of OSS are many but the most prominent one is its simplified license management in terms of usage. This makes it very attractive in spite of the disadvantages like service/support and training/documentation. However off late, there have been major steps taken to fix some of these weak links.

Companies and big corporate bodies are switching to OSS because of the flexibility it provides to them in adding their own features to software and in maintaining them. It also provides a vast ground for software research, which can be taken up without having to invest heavily in terms of reinventing the wheel.

With the giants of the industry like IBM, Sun backing OSS initiatives the future looks exciting for the community. The latest trend increasingly shows that the software community uses OSS as a way for fostering innovation with projects being kicked off in a lot of exciting new technologies. The projects or innovations that were being done as intensive research in organizations are now being implemented in
OSS projects for e.g, virtualization support in Linux Kernel.

Now getting to the context of student community, Open Sourcing of software provides a huge ground to study and involve in the process of creating good software. Several open source-related websites encourage its users to upload source code, download the ones which are being developed for testing, report bugs, etc. It also gives budding software enthusiasts a global arena to expose their software to and gain positive criticism and feedback. OSS provides a good learning platform as you need to download, install, and play around with the software, which is more akin to on-the-job training.