This is a continuation of the Ideas are Cheap series.

We all know how much disparity there is between computer science courses in engineering colleges in India and real-world coding skills.

So how about a training institute that fills this gap?

I’m sure the first question is that how is it any different from NIIT? The difference is that it is about programming skills, not about technology. Skills such as:

  1. Reading large amounts of code – which is what really happens 90% of the time in big companies
  2. Debugging – again, maintenance and bug-fixing are the major tasks in any reasonably sized company
  3. Deployment – a hugely underestimated skill/process
  4. Unit testing
  5. Performance engineering
  6. Security aspects
  7. etc.

The best part is that this can work very well with open source. I’m thinking more in terms of the Synovel/SpiceBird model where a for-profit company is working on open source code.

This means:

  • Students get to learn real coding skills and get to see the impact of their code real-time
  • Company profits because the development is being made on their main products and not simply throwaway run-of-the-mill projects.
  • Open Source means interested students can continue contributing even after they “pass out” of the training institute.

And how different is this from Google Summer of Code? GSoc is meant for college students who are already good hackers whereas as this training is to help people become good hackers.

There are tons of ideas that can be taken up and that would be sexy enough to interest students:

  1. How about an open source desktop search application that runs on Windows?
  2. How about creating an open source equivalent of Microsoft OneNote? (or at least a converter from the proprietary .onenote format to any other open format)

Interestingly enough, the training institute can grade students on their hacking skills and eventually become a resumé goldmine for companies that require uber-coders such as the Yahoos, Googles and of course, the startups.

If someone is doing a training programme like this, let me know. I can join as a student.

This Sunday morning, Varun and myself started cycling down Kanakapura Road.

The direction from Bangalore towards Thalagattapura was generally downhill and we started to enjoy the cycling when we saw good green fields on either side and surprisingly, lessening traffic. It’s always fun for me to cycle to the pounding music of The Chemical Brothers.

Cycling down Kanakapura road
Cycling down Kanakapura Road
Cycling down Kanakapura Road
Cycling down Kanakapura road

We crossed Thalagattapura and Kaggalipura and stopped at the lake immediately after Kaggalipura.

This was one of the best spots to stop at. A nice small lake. Some people on the other side were washing their cows, we were relaxing and our bikes resting beside us. After a few minutes, we sat under the shady trees and watched the beautiful water. I was amused at the contrasting situation with so many people just zipping by. Everybody’s in a hurry.

Cycling down Kanakapura road

After 15 min of rest, we started cycling back to Bangalore. Since we enjoyed the downhill journey already, now it was time to face the uphill journey. It was a killer.

We stopped at Thalagattapura to have good vadas, bad dosas and refreshing maazas.

Eventually, we huffed and puffed and reached back at the Kanakapura junction at noon, making it a total of 4 hours and 30 km of cycling (which inevitably meant good sleep after I reached home).

All in all, a good Sunday. I hope I eventually become fit enough to join the Bangalore Bicycling Club on their adventures.

I was trying to analyze the feedback on my website’s new design. There seems to be a trend that relates their usage of the website with their feedback.

While researching on this subject, I found a paper by three people affiliated with the University of Manchester, UK. The paper makes three interesting hypotheses that are eventually proved in their paper:

  1. User preference will be determined by interactions between decision criteria and subject background, specifically design-training and aesthetics, culture and identity.
  2. User intentions will be determined by interactions between decision criteria and the task context; specifically, serious use will favor usability and content, less serious use will favor aesthetics.
  3. User judgment will be determined by interactions among decision criteria; specifically, positive aesthetics will over-rule poor usability.

They randomly asked students to consider three departments for either a one-month summer internship or a five-year PhD. Based on this, they were asked to judge the department websites.
The three departments were under the same university, Stanford – the Design department, the HCI website and the D-School website.

What was interesting to note was that most of them rated the D-school best when asked to consider the one-month summer internship. But when the task was shifted to the five-year PhD, they all rated the HCI website better! All other constraints remained unchanged – the same university, the same websites, the same variation in backgrounds of people, etc.

From my understanding of the results, people prefer less-aesthetic websites for serious/regular usage . Perhaps this explains why advanced users prefer Gmail vs Yahoo! Mail – one focuses on simplicity and elegance while the other focuses on usability and attractiveness.

On the other hand, the study “suggests that users’ overall impression of a website could be a determinant of user satisfaction and system acceptability, even overcoming poor usability experience and poor content”

Perhaps this explains why we are okay with a not-so-great UI on the website but still use it because it has great value since it solves a “critical” issue of buying train tickets. Yet, we wouldn’t have tolerated this kind of UI for other purposes. For example, such a UI could have never worked for a survey website or a form-builder. That’s exactly why has to have such a great UI.

This reminds me of an amazing talk by Geoffrey Moore in an internal Adobe conference. He explained the different types of innovation : product leadership, customer intimacy and operational excellence, which in turn have four types each. The trick for a good company is to have aligned vectors of innovation where they have to excel, and non-aligned vectors of innovation where they have to be “good enough”.

So, in terms of websites, ideally, a website should have to either excel at content and service and be good enough at the aesthetics, or should excel at aesthetics and be good enough at content and service. It does NOT need to excel at both (but of course, it’s good if you can).

I’m such a sucker for good design.

After a couple of years of the nice pop colored theme, I decided to get a new theme, this time by the talented Divya Manian a.k.a. “NimbuPani”.

The main characteristics I was looking for was that the theme should be simple, elegant and functional. And Divya was bang on target.

Three months later, the theme is live. I got eager, so it’s not quite done yet. I’m still tweaking things all over the place.

Update: As always, when there is something new, there will be new glitches. Commenting was broken but it should be working now. Thanks to Manish for alerting me.

I’ve been pondering about specialization vs. generalization in terms of career skills.

I have this notion that I should be a maven, should be an expert at something. But yet, I mostly do things that are the very opposite of this idea.

Since I don’t tend to be a specialist, I tend to not focus on a particular topic. I want to learn about different things and hence I tend to meet people of varied interests, and consequently end up being excited about a lot of different ideas. For example, one of my good friends is someone who I happened to meet on a bus because my seat was next to his, and we talked non-stop for 5 hours from the moment we said ‘Hello’. I was able to connect with him well because I knew a bit about his profession and we had some common terminology right at the beginning of the conversation. And I really love having such conversations. It’s one of the things that really motivate me and it ends up throwing me in different directions.

Maybe it’s not really a generalization vs. specialization debate, and more of an attitude. Then again, I see that people tend to really pigeonhole themselves, such as “I’m looking for C++ jobs” or “I want only bluetooth jobs”. Why? Because they’ll get experience in a particular technology and employers will give higher pay packages to specialists. This means these people focus only on things related to that one particular area and ignore everything else. Somehow I’ve been unable to do this, even though I want to.

As Tim Ferriss puts it:

Most people avoid certain actions because they view changes as permanent. If you make a change, can you go back to doing it like you did before? You can always reclaim your current state in most cases. If I quit my job in industry x to test my artistic abilities in a different industry, worst case scenario, can I go back to my previous industry? Yes. Recognize that you can test-drive and micro-test things over brief periods of time. You can usually reclaim the workaholism that you currently experience if you so decide to go back to it.”

This kind of sums up what I’ve been doing in the past six months – test-driving things over brief periods of time, trying my hand at different things.

Yesterday, I needed some inspiration, so I ended up listening to one of my favorite podcast talks – Jason Fried on “Lessons learned from building Basecamp” (transcript). A few things that he said made a lot of sense, not only in terms of software, but also in terms of career:

  1. Reduce mass
    • Enable change. Enable speed.
    • Do not worry about what may be needed 8 months down the lane.
    • Make just-in-time decisions, when you have the data.
  2. Every decision is temporary.
    • If it is too costly to change, it’s probably wrong.
  3. Getting Real
    • Design the interface first.
    • This is the same as Cal Newport saying “Fix the lifestyle you want. Then work backwards from there.”
  4. Iterate. Start small. Make your first version half a product, not a half-assed product.
    • Do a 30-day trial of things, such as your decisions of trying something new, etc.
    • But do the basics and do them well. For example, if you want to start a blog, don’t expect 1000 readers overnight, work at writing 5 good articles instead.
  5. There are so many more ideas that could be applied including the concept of publicity amplifiers, transparency and trust, blogging, etc.

It’s funny that a methodology for software can be used for lifehacking.

Of course, it’s not just software programmers who have this debate, even designers and productivity specialists do.

Later, I realized that another way of looking at this is “doing as much as required, no more”. Why is this important? Because results matter more than “expertise”. I had an Aha! moment. Suddenly, I feel less guilty and more positive.

I wonder why people consider “social networks” to be a “new thing”. It’s the “rage these days”, they say. Actually, they’ve been around for a while but in a different disguise.

Take the case of the Erdos number:

In order to be assigned an Erdos number, an author must co-write a mathematical paper with an author with a finite Erdos number. Paul Erdos is the one person having an Erdos number of zero. If the lowest Erdos number of a coauthor is k, then the author’s Erdos number is k + 1.

Erdos wrote around 1,500 mathematical articles in his lifetime, mostly co-written. He had 511 direct collaborators; these are the people with Erdos number 1. The people who have collaborated with them (but not with Erdos himself) have an Erdos number of 2 (8,162 people as of 2007), those who have collaborated with people who have an Erdos number of 2 (but not with Erdos or anyone with an Erdos number of 1) have an Erdos number of 3, and so forth. A person with no such coauthorship chain connecting to Erdos has no Erdos number (or an undefined one).

There is room for ambiguity over what constitutes a link between two authors; the Erdos Number Project website says “Our criterion for inclusion of an edge between vertices u and v is some research collaboration between them resulting in a published work. Any number of additional co-authors is permitted,” but they do not include non-research publications such as elementary textbooks, joint editorships, obituaries, and the like. The “Erdos number of the second kind” restricts assignment of Erdos numbers to papers with only two collaborators.

Erdos numbers have been a part of the folklore of mathematicians throughout the world for many years. Amongst all working mathematicians at the turn of the millennium who have a finite Erdos number, the numbers range up to 15, the median is 5, the average Erdos number is 4.65; and almost everyone with a finite Erdos number has a number less than 8.

So, Erdos numbers is essentially a social network that counts the degrees of separation.

Somewhat relatedly, there is also an interesting theory called Dunbar’s number:

Dunbar’s number is the supposed cognitive limit to the number of individuals with whom any one person can maintain stable social relationships: the kind of relationships that go with knowing who each person is and how each person relates socially to every other person.

Dunbar has argued that 150 would be the mean group size only for communities with a very high incentive to remain together. For a group of this size to remain cohesive, Dunbar speculated that as much as 42% of the group’s time would have to be devoted to social grooming.

I wonder what would be the Dunbar number of the social circles that I know of.