Thursday, November 10, 2011

Teaching IT to kids

All schools nowadays have a dedicated computer science curiculum from the time, when kids can start spelling words. My kids go through exams, labs, assignments etc. on computer science. Having not had that kind of focus in my primay school education and working on IT for a living i wonder if that is the right thing to do.

First of all kids nowadays, know how to operate a computer and play games before they can attend any of these classes. My daughter definitely knew where the games that interested her were and how to get to them without anybody teaching her that. That's what having a few cousins of all age groups does, i guess. From there on, they figure out how stuff works. So really school classes is not the first thing where they get initiated into computers.

From what i have seen, schools use two primary tools to teach computers. One is a graphing software called Logo which is very popular for kids education and the other is Microsoft Office Products. Fundementals of computer science are not given that much importance to, because i guess they are not that cool. There are a very few schools that start with a programming language like python, but they are few and far between. The intentions here are good, as Logo allows kids to write scripts for graphing and is a good first step for programming languages. Microsoft products i think possibly provides them with the basic set of tools such as text editor (Word), Spreadsheet (Excel) etc. But things go wrong from there in my opinion.

Microsoft powerpoint is a tool that should be banned for kids. Powerpoint because of its nature encourages everbody to do bullet point lists and broken down sentences without any regard to grammar. Primary school kids should be encouraged to write in full sentences with a subject, predicate and everything, which is what powerpoint bullet list precisely doesn't allow you to do.

There is something about teaching prepackaged software early on for kids that is so wrong. Good thing about packaged software is they give results fast. I see my daughter gets excited when she can put an animation on powepoint and get it to work. But kids and even computer professionals for that matter who get exposed to fully developed packaged software early on are less likely to develop skills in basic IT such as putting together components to build software. Results are not that quick and often not so attractive, that turns them off.

One of the other things that's very common also is use of search tools to get information. It is not exactly new that, there are assignment help and answers available on the internet which makes kids school lives very easy. Once they know how to work google search, you will see them running upto the computer for any questions trivial to complex and get answers without having to think or work their way through. Dictionary, atlas, news paper, monthly magazines, General Knowledge books are hardly used, because Google search is a better way to find accurate information. Art of patiently looking at information and working with what you get are getting completely lost.

I have tried teaching my daughter a programming language with minimal success. I picked a language in which iam not an expert myself, and i can learn with her. Let's see how it goes !!!!

Big Data Technologies : Innovation or a whole lot of hype.

I have been working with DW/BI Technologies for over 12 years now. Of late the hype seems to be around Big Data Analytics and the technologies around that. While some of the hype is understandable for a new technology a look around the technology landscape, you immediately know these technologies are nowhere near ready for mass consumption. One of the main reasons for this of course is, not everybody has a big data problem. Still many of the problems that we deal with, even at the enterprise level are adequately addressed by databases and DW technology that has existed for a long time.

All these technologies are relatively immature and most of the time not usable once you get past the developer community. Forget about your end users getting comfortable with these technologies it's not going to happen, not at the present level of maturity. One of the other things about hadoop and hbase is that, it seems like they are all open source and you are getting it all free or for very low cost. But scalability always comes at a cost.

Company i work for is into Big Data Technologies in a big way and don't get me wrong, i spend an awful lot of time more than i would like fiddling around with these technologies because its interesting. But if you are going to make an investment on big data analytics then i think the first question has to be will it produce actionable insights. This problem is not unique to Big Data projects. According to several research papers 80% of DW/BI projects are a failure because it doesn't translate into business benefits.

DW/BI projects are unique because to make it work, it requires complete end user and stakeholder involvement. Many departments in most companies will have internal dynamics, so there will be problems in enforcing data uniformity, Master Data Management and agreeing on key metrics that is important for business. What this does most of the times, if there is no strong leadership will take the BI project in multiple directions resulting in a free for all.

With Big Data, more data is going to collected from all these various divisions, which then needs to be analyzed and results derived out of using reporting. So in my opinion, any company setting out on big data analytics has to have a very good view of  what their end result is, to avoid getting lost in the sea of data.

As developers and architects, one other important thing to remember suitability of a technology for a particular problem. Just because its new and hip, big data analytics technologies doesn't always work for all problems. Traditional databases and BI as it's done now will still apply to a wide range of problems.

So if you ask my opinion, i would say, get yourself familiar with hadoop and hbase etc. and if you get a problem to work on with these technologies its great. Stay up with these technologies, but recognize they are not for every problem. Last but not the least, prepare yourself by enhancing your knowledge on how databases deal with some of the problems of scalability and high availability that hadoop and big data technologies is supposed to address.