Ravi Mohan's Blog

Friday, October 19, 2007

A Few Good Men

One of the oddities of India's "silicon valley" is that there is very little hapening that is technically interesting.

For example, take interest groups. User groups for various topics of technical interest certainly do exist - for some value of "exist". They are unfortunately not very effective. Some common patterns I've seen are

FizzBust - There is a lot of enthusiasm for setting up a group, drawing up an agenda and holding an initial meeting. After that first (or occasionally second) meeting, nothing much happens and the group dies away.

"Eternal Beginners Syndrome" - Every single user group meeting has talks of the variety "Introduction to X" where X is the topic of interest. This is certainly fine *if* people ever move on to intermediate or advanced topics. This rarely happens. What's worse, every one of these "introductions" are (a)focussed on power point presentations and (b) every slide in those horrendous presentations are cut n pasted from the same old books. Encouraging powerpoint for non visual data is the infallible identifying sign of a group that has passed its peak and is now declining in utility and relevance.

A closely related pattern is "Propaganda over Exploration" - the group takes on the attributes of a cult with some members claiming to have "superior wisdom", the dissemination of which becomes the primary aim of the group. Thus rather than have a a collegial group exploring and learning and where appropriate criticizing the focus of the group, one has "masters" and "followers". This quickly drives away any good folks.

"Philosophy Over Code" - This is where people wax lyrical over the virtues of GPL vs the BSD license but haven't written a single piece of open source code in their lives and don't intend to.

"Uncritical Acceptance" - Once in a X user group I suggested that one possible topic for an upcoming "X Conference" would be "Where is the use of X inappropriate". I was quickly shushed with "That is a valid question but asking it in public would "hurt the movement" ". My reaction was "Duh? "movement"? what movement?" but I didn't press further.

The way to run an effective (vs "popular") user group would seem to actively invert all these phenomena. Have a small bunch of experts meet regularly to discuss things of interest. Don't actively try to expand the group or conduct "outreach". Avoid all formal organization and "outreach programs". If someone wanders in after hearing some word of mouth description of what goes on that's fine, but don't actively aim at recruiting or expanding the group. Have everyone bring code (or proofs or papers or whatever the metric of actual progress in the field is) and actively discourage empty philosophizing.

I've been experimenting with some of the above ideas for the last few months and they see to work well. One kind of "community" I'd like to see is of amateur researchers in hard comp sci - amateur in the sense of "pursuing research strictly out of interest and not to get paid" , not "amateur" as in "lacking skill". Assembling a group like this has its own difficulties however. With a few honorable exceptions most members of (Indian) "research groups" of technical companies could be stood up against the nearest wall and shot with no appreciable impact on the output of those groups. Likewise for most researchers in (Indian) government service or the (Indian)educational institutions. But "most" != "all" and that is what keeps me from abandoning the idea.


Mani said...

You often make your statement based on the goodness of your experience-without giving the readers an idea of those varying tastes that you tried and liked. I understand if you don't wish to take names- but I suggest that you apply that rule to the bad ones.
I am a self professed third rated programmer- who is probably where you were 3-4 years back. Your insights are valuable - but I suggest it should be with names(eg: the good user-groups that you frequent). When you spoke of Maths, wouldn't it have added more value, if you had mentioned the books that you stepped thru..(was Concrete Mathematics the first book?) I had to literally scour through your entire blog to find book names.
If you look up your comments, you will notice a trend of questions which hint at what I am suggesting.
...But again- its your blog and you play God here.

Ravi said...

I understand what you are trying to say You make some valid points.

First, I don't write these posts for the benefit of my readers. I write strictly to clarify and systematize my inchoate thoughts. I don't want to sound insulting, but I couldn't care less if no one reads what I write. If I write something that is educational or otherwise useful to others that is a (very welcome) bonus, it is not (and never has been) the primary intention.

Second, I do name names where appropriate (e.g see the comparison the Sudoku efforts of Ron Jeffries and Peter Norvig). I have been fairly merciless with the whole "Agile Programmng" snake oil salesmen. Where I don't name names is where it wouldn't help in making a point.

The folks who run the dysfunctional user groups I referred to are not bad people - they are sincere, well meaning people who are puzzled that their efforts aren't very successful. Hence the naming of patterns of (in my view) suboptimal behavior. It doesn't matter
**who** screws up. It does matter what gets screwed up. The naming of patterns of dysfunction is more useful than naming "bad" people (note the quotes). Keep an eye out for those patterns (if you think they are valid in and of themselves), not for "bad" people/groups.

Third, I don't want to convey the impression that I am somehow exempt from these dysfunctional patterns. I have been part of such groups and indulged in such dysfunctional patterns. God Help Me I was even a "founder member" of one of these Frankenstein "user groups" that is now hurtling into irrelevance.

And finally, as for scouring the blog for the book names, that's good for your character ;-). I have to do a lot of digging to go where I want to and I think it is avlid way of separating the genuinely determined folks from the riffraff. As Randy Pausch said in his farewell speech, "Brick walls exists to keep the *other* guys out".

The important thing is, after all that scouring and finding what did you do? How many chapters of Concrete Mathematics have you worked through so far?

Mani said...

I just took up SICP and little schemer. I cannot "afford"(read:no balls+ no money) to leave work and go fulltime into studies. I recently joined a part-time MS.
I am making a list of books to read- Concrete Mathematics is in there :)
I squandered 10 years doing shit...For now, I plan to go through basics and understanding fundamentals. As of now, I don't have any area of interest. All I know is I want to understand the science in the compsci.I think going down the learning path, I will pick my interest.

Just curious, Did you always have focus on AI? I know you went thru compilers sometime back...
What math book would you recommend to a dumb guy to scrape the basics of discrete maths before Concrete mathematics?
Oh Yes! I have started working on the wall -with small punches (movie - Kill Bill?)

Ravi said...

to answer your questions

1. AI is something I fell into by accident. I started implementing some algorithms and then got majorly interested. If I could do it all over again, I would focus on getting a solid maths background first. Would have saved me time.

2. The book "Concrete Mathematics" **is** the basic book for Discrete Mathematics. If other readers would like to suggest other books, please go ahead.

3. A subtle point, but having particular books (say SICP) on the shelf and having worked through them are totally different end states.I suggest a focus on the latter.

Venkatesh Sellappa said...

Interesting comment Mani.

Mani, I was/am in the same position as you and stumbled on this blog approximately a year ago. The post that helped me with a "book chain" was this :
Look in the comments.

I took the stance of going through Algorithms - thus staying closer to Comp Sci( Rivest and Corman) and jumping into Maths - Calculus or Discrete Maths - when i encounter the mathematical terms that i cannot understand.
I found that this gives me immediate feedback spurring me on and also helps me to "start thinking" mathematically.

Hope this helps.

Vladimir Levin said...

I recently re-read a book called Hackers: Heroes Of The Computer Revolution. It's one of my favourite books, and my favourite section is the one dedicated to the homebrew computer club that launched the personal computer revolution in the late 70s. If you haven't read it, I do highly recommend it. After re-reading the book, I thought your feelings about interest groups resonated with the following:

Lee Felsenstein was gaining confidence and purpose through his role as toastmaster of the Homebrew Computer Club. His express desire was to allow the club to develop as an anarchist community, a society of non-joiners wed, whether they knew it or not, by the Propaganda of the Deed. He saw what Moore and French didn't: for maximum political effect in the war of the hardware hackers against the evil forces of IBM and such, the strategy should reflect the style of hackerism itself. This meant that the club would never be run like a formal bureaucracy.

If he desired a blueprint for failure, he need only look to the south, at the Southern California Computer Society. Starting up a few months after Homebrew's first meeting, SCCS took advantage of the hobbyists in the electronics-intensive area (almost all the high-tech defense contractors are in Southern California) to quickly boost its membership to eight thousand. Its leaders were not happy with the mere exchange of information: they envisioned group buying plans, a national magazine, and an influence which would allow hobbyists to dictate terms to the growing microcomputer industry. Homebrew had no steering committee to confer on goals and directions; it only incorporated as an afterthought, almost a year after inception; it had no real dues requirements only a suggested contribution of ten dollars a year to get its modest newsletter. But SCCS had a formal board of directors, whose regular meetings were often sparked by acrimonious debates on What the Club Should Be. It wasn't long before SCCS was publishing a slick magazine, had a growing group buying program (as much as forty thousand dollars a month), and was considering changing its name to the National Computer Society.

Ravi said...

I own "hackers". It is a great book and well worth reading! I hope you drive as much enjoyment out of it as I did.