Showing posts with label FWD. Show all posts
Showing posts with label FWD. Show all posts

Thursday, May 29, 2008

THE STORY OF INDIA

The Ant works hard in the withering heat all summer
building its house and laying up supplies for the
winter. The Grasshopper thinks the Ant is a fool and
laughs & dances & plays the summer away. Come winter,
the Ant is warm and well fed. The Grasshopper has no
food or shelter so he dies out in the cold.

Indian Version:
The Ant works hard in the withering heat all summer
building its house and laying up supplies for the
winter. The Grasshopper thinks the Ant's a fool and
laughs & dances & plays the summer away. Come winter,
the shivering Grasshopper calls a press conference and
demands to know why the Ant should be allowed to be
warm and well fed while others are cold and starving.
NDTV, BBC, CNN show up to provide pictures of the
shivering Grasshopper next to a video of the Ant in
his comfortable home with a table filled with food.The
World is stunned by the sharp contrast. How can this
be that this poor Grasshopper is allowed to suffer so?
Arundhati Roy stages a demonstration in front of the
Ant's house. Medha Patkar goes on a fast along with
other Grasshoppers demanding that
Grasshoppers be relocated to warmer climates during
winter . Human Rights group and Koffi Annan criticize
the Indian Government for not upholding the
fundamental rights of the Grasshopper. The Internet is
flooded with online petitions seeking support to the
Grasshopper (many promise Heaven & Everlasting Peace
for prompt support as against the wrath of God for
non-compliance) .

Opposition MPs stage a walkout. Left parties call for
'Bengal Bandh' in West Bengal and Kerala demanding a
Judicial Enquiry. CPM in Kerala immediately passes a
law preventing Ants from working hard in the heat so
as to bring about equality of poverty among Ants and
Grasshoppers.

Lalu Prasad allocates one free coach to grasshoppers
on all Indian Railway Trains, aptly named as the
'Grasshopper Rath'.
Finally, the Judicial Committee drafts the '
Prevention of Terrorism Against Grasshoppers Act'
[POTAGA], with effect from the beginning of the
winter. Arjun Singh makes 'Special Reservation ' for
Grasshoppers in Educational Institutions & in
Government Services.

The Ant is fined for failing to comply with POTAGA and
having nothing left to pay his retroactive taxes,it's
home is confiscated by the Government and handed over
to the Grasshopper in a ceremony covered by NDTV.

Arundhati Roy calls it ' A Triumph of Justice'.
Lalu calls it 'Socialistic Justice '.
CPM calls it the ' Revolutionary Resurgence of the
Downtrodden '
Koffi Annan invites the Grasshopper to address the UN
General Assembly.

Many years later...
The Ant has since migrated to the US and set up a
multi-billion dollar company in Silicon Valley, 100s
of Grasshoppers still die of starvation despite
reservation somewhere in India,
.
..AND
As a result of loosing lot of hard working Ants and
feeding the grasshoppers,

India is still a developing country.




© yankandpaste® from an email forward i got last day

Monday, January 14, 2008

How to recognise a good programmer

How do you recognise good programmers if you’re a business guy?

It’s not as easy as it sounds. CV experience is only of limited use here, because great programmers don’t always have the “official” experience to demonstrate that they’re great. In fact, a lot of that CV experience can be misleading. Yet there are a number of subtle cues that you can get, even from the CV, to figure out whether someone’s a great programmer.

I consider myself to be a pretty good programmer. At the same time, I’ve spent a fair amount of time on the business side of the fence, filtering technical CVs for projects, interviewing people, etc. Thanks to this, I think I have a bit of experience in recognising good programmers, and I want to share it in this article, in the hope that it may help other “business guys” to recognise good programmers. And, who knows, perhaps some programmers who have the potential to be good but haven’t really exploited this can also read this and realise what they need to do to become good (although, as I’ll argue, that’s definitely not accessible to all programmers!).


In his article The 18 mistakes that kill startups, Paul Graham makes the following point:

“… what killed most of the startups in the e-commerce business back in the 90s, it was bad programmers. A lot of those companies were started by business guys who thought the way startups worked was that you had some clever idea and then hired programmers to implement it. That’s actually much harder than it sounds—almost impossibly hard in fact—because business guys can’t tell which are the good programmers. They don’t even get a shot at the best ones, because no one really good wants a job implementing the vision of a business guy.

In practice what happens is that the business guys choose people they think are good programmers (it says here on his resume that he’s a Microsoft Certified Developer) but who aren’t. Then they’re mystified to find that their startup lumbers along like a World War II bomber while their competitors scream past like jet fighters. This kind of startup is in the same position as a big company, but without the advantages.

So how do you pick good programmers if you’re not a programmer? I don’t think there’s an answer. I was about to say you’d have to find a good programmer to help you hire people. But if you can’t recognize good programmers, how would you even do that?”

I disagree with Mr Graham on this one. I think there are a number of very strong indicators of a “good programmer” (and, conversely, strong indicators of a “not-so-good programmer”) that even a business guy can recognise. I’ll summarise some key indicators and counter-indicators in a list at the end of the article.

#1 : Passion
In my corporate experience, I met a kind of technical guy I’d never met before: the career programmer. This is a person who’s doing IT because they think it’s a good career. They don’t do any programming in their spare time. They’re shocked when they find out I have a LAN and 3 computers at home. They just do it at work. They don’t learn new stuff unless sent on a training program (or motivated by the need to get a job that requires that technology). They do “programming” as a day job. They don’t really want to talk about it outside of work. When they do, they talk with a distinctive lack of enthusiasm. Basically, they lack passion.

I believe that good developers are always passionate about programming. Good developers would do some programming even if they weren’t being paid for it. Good programmers will have a tendency to talk your ear off about some technical detail of what they’re working on (but while clearly believing, sincerely, that what they’re talking about is really worth talking about). Some people might see that as maladapted social skills (which it is), but if you want to recognise a good developer, this passion for what they’re doing at the expense of social smoothness is a very strong indicator. Can you get this guy to excitedly chat up a technology that he’s using, for a whole half hour, without losing steam? Then you might be onto a winner.

#2 : Self-teaching and love of learning
Programming is the ultimate moving target. Not a year goes by without some new technology robbing an old, established standard blind and changing half the development universe. This is not to say that all good programmers pick up these changes and ride the bleeding edge. However, there’s a class of programmers that will never, ever pick up a new technology unless forced to, because they don’t like learning new stuff. These programmers will typically have learnt programming at university, and expect to get by on whatever skills they picked up there, plus whatever courses their company is willing to send them on.

If you’re thinking of hiring someone as a programmer, and he ever utters the words “I can work with that, just send me on a training course for a week and I’ll be good at it”, don’t hire that guy. A good programmer doesn’t need a training course to learn a new technology. In fact, the great programmer will be the one talking your ear off about a new technology that you haven’t even heard of, explaining to you why you must use it in your business, even if none of your staff knows how to use it. Even if it’s a technology he doesn’t know how to use yet.

#3 : Intelligence
Some business people assume that lack of social tact and lack of intelligence are the same. Actually, intelligence has several facets, and emotional/social intelligence is only one of them. Good programmers aren’t dumb. Ever. In fact, good programmers are usually amongst the smartest people you know. Many of them will actually have pretty good social skills too. The cliché of the programmer who’s incapable of having a conversation is just that - a cliché. I’ve been to a few meetings of the London Ruby User Group and I can say that with only a very few exceptions, most people there are smart, talkative, sociable, have varied interests, etc. You wouldn’t look at them chattering away in the pub and think “what a bunch of geeks!” - at least until you approach a group and realise they’re talking about the best way to design a RESTful application with a heavy UI frontend.

This doesn’t mean that they’ll all feel comfortable in every social context. But it does mean that if the context is comfortable and non-threatening enough, you’ll be able to have as great a conversation with them as you would with the most “socially enabled” people (perhaps better, since most good programmers I know like their conversation to revolve around actually useful topics, rather than just inane banter).

Don’t ever hire a dumb person thinking they’re a good developer. They’re not. If you can’t have a great conversation with them in a relaxed social context, they’re very likely not a good programmer. On the other hand, anyone who’s clearly very smart at the very least has a strong potential to be a good or great programmer.

#4 : Hidden experience
This is correlated with the “Passion” point, but it is such a strong indicator that I’d like to emphasise it with its own point.

I started programming when I was about 9, on a Commodore 64. I then migrated onto the PC, did some Pascal. When I was 14 I wrote a raycasting engine in C and Assembler, spent a large amount of time playing with cool graphic effects that you could get your computer to do by messing directly with the video card. This was what I call my “coccoon stage”. When I entered that stage, I was a mediocre programmer, and lacked the confidence to do anything really complicated. When I finished it, I had gained that confidence. I knew that I could code pretty much anything so long as I put my mind to it.

Has that ever appeared on my CV? Nope.

I strongly believe that most good programmers will have a hidden iceberg or two like this that doesn’t appear on their CV or profile. Something they think isn’t really relevant, because it’s not “proper experience”, but which actually represents an awesome accomplishment. A good question to ask a potential “good programmer” in an interview would be “can you tell me about a personal project - even or especially one that’s completely irrelevant - that you did in your spare time, and that’s not on your CV?” If they can’t (unless their CV is 20 pages long), they’re probably not a good programmer. Even a programmer with an exhaustive CV will have some significant projects that are missing from there.

#5 : Variety of technologies
This one’s pretty simple. Because of the love of learning and toying with new technologies that comes with the package of being a “good programmer”, it’s inevitable that any “good programmer” over the age of 22 will be fluent in a dozen different technologies. They can’t help it. Learning a new technology is one of the most fun things a programmer with any passion can do. So they’ll do it all the time, and accumulate a portfolio of things they’ve “played around with”. They may not be experts at all of them, but all decent programmers will be fluent in a large inventory of unrelated technologies.

That “unrelated” bit is the subtle twist. Every half-decent java programmer will be able to list a set of technologies like “Java, J2EE, Ant, XML, SQL, Hibernate, Spring, Struts, EJB, Shell scripting”, etc.. But those are all part of the same technology stack, all directly related to each other. This is possibly hard to recognise for non-programmers, but it is possible to tell whether their technology stack is varied by talking to them about it, and asking them how the different technologies they know relate to each other. Over-specialisation in a single technology stack is an indicator of a not-so-good programmer.

Finally, if some of those technologies are at the bleeding edge, that’s a good positive indicator. For instance, today (November 2007), knowledge of Merb, Flex, RSpec, HAML, UJS, and many others… Please note that these are fairly closely related technologies, so in a couple of years, someone who knows all these will be equivalent to someone familiar with the Java stack listed in the previous paragraph.

Update: As a clarification to this point, there’s in fact two indicators here: variety and bleeding edge. Those are separate indicators. A good variety of technologies across a period of time is a positive indicator, whether or not the technologies are bleeding edge. And bleeding edge technologies are a positive indicator, whether or not there’s a variety of them.

#6 : Formal qualifications
This is more a of non-indicator than a counter-indicator. The key point to outline here is that formal qualifications don’t mean squat when you’re trying to recognise a good programmer. Many good programmers will have a degree in Computer Science. Many won’t. Certifications, like MCSE or SCJP or the like, don’t mean anything either. These are designed to be accessible and desirable to all. The only thing they indicate is a certain level of knowledge of a technology. They’re safeguards that allow technology recruitment people in large corporations to know “ok, this guy knows java, he’s got a certification to prove it” without having to interview them.

If you’re hiring for a small business, or you need really smart developers for a crack team that will implement agile development in your enterprise, you should disregard most formal qualifications as noise. They really don’t tell you very much about whether the programmer is good. Similarly, disregard age. Some programmers are awesome at 18. Others are awesome at 40. You can’t base your decisions about programmer quality on age (though you might decide to hire people around a certain age to have a better fit in the company; please do note that age discrimination is illegal in most countries!).

As a final note to this, in my experience most average or poor programmers start programming at university, for their Computer Science course. Most good programmers started programming long before, and the degree was just a natural continuation of their hobby. If your potential programmer didn’t do any programming before university, and all his experience starts when she got her first job, she’s probably not a good programmer.


From :http://www.inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer/

© yankandpaste®

Wednesday, October 24, 2007

Article 49-0 of the Indian Constitution

Did you know that there is a system in our constitution, as per a 1969 act, in section "49-O" that a person can go to the polling booth, confirm his identity, get his finger marked and convey the presiding election officer that he doesn't want to vote anyone!
Yes such a feature is available, but obviously these seemingly notorious leaders have never disclosed it. This is called "49-O".
Why should you go and say "I VOTE NOBODY"... because, in a ward, if a candidate wins, say by 123 votes, and that particular ward has received "49-O" votes more than 123, then that polling will be cancelled and will have to be re-polled .
Not only that, but the candidature of the contestants will be removed and they cannot contest the re-polling, since people had already expressed their decision on them .
This would bring fear into parties and hence look for genuine candidates for their parties for election. This would change the way, of our whole political system... it is seemingly surprising why the election commission has not revealed such a feature to the public....
Please spread this news to as many as you know... Seems to be a wonderful weapon against corrupt parties in India... show your power,expressing your desire not to vote for anybody, is even more powerful than voting... so don't miss your chance. So either vote, or vote not to vote (vote 49-O) and pass this info on.

--courtesy: viraju
© yankandpaste®

Thursday, June 21, 2007

Life's Little Instruction Book

---courtesy: Ram---

Have a firm handshake.
Look people in the eye.
Sing in the shower.
Own a great stereo system.

If in a fight, hit first and hit hard.
Keep secrets.
Never give up on anybody; miracles happen everyday.
Always accept an outstretched hand.

Be brave. Even if you're not, pretend to be; no one can tell the difference.
Avoid sarcastic remarks.
Choose your life's mate carefully. From this one decision will come 90 per cent of all your happiness or misery.

Make it a habit to do nice things for people who will never find out.
Lend only those books you never care to see again.
Never deprive someone of hope it might be all that they have.
When playing games with children, let them win.
Give people a second chance, but not a third.

Be romantic.
Become the most positive and enthusiastic person you know.
Loosen up. Relax. Except for rare life-and-death matters, nothing is as important as it first seems.

Be a good loser.
Be a good winner.
Think twice before burdening a friend with a secret.
When someone hugs you, let them be the first to let go.

Keep it simple. Be modest. A lot was accomplished before you were born.
Beware of the person who has nothing to lose.
Don't burn bridges. You'll be surprised how many times you have to cross the same river.
Live your life so that your epitaph could read, "No Regrets".

Be bold and courageous. When you look back on life, you'll regret the things you didn't do more than the one's you did.
Never waste an opportunity to tell someone you love them.
Remember no one makes it alone. Have a grateful heart and be quick to acknowledge those who helped you.
Take charge of your attitude. Don't let someone else choose it foryou.

Visit friends and relatives when they are in hospital; you need only stay a few minutes.
Begin each day with some of your favorite music.
Once in a while, take the scenic route.
Send a lot of Valentine cards. Sign them, 'Someone who thinks you're terrific.'

Answer the phone with enthusiasm and energy in your voice.
Keep a note pad and pencil on your bed-side table,
Million-dollar ideas sometimes strike at 3 a.m.
Show respect for everyone who works for a living, regardless of how trivial their job.

Send your loved ones flowers. Think of a reason later.
Make someone's day by paying the toll for the person in the car behind you.
Become someone's hero.
Marry only for love.

Count your blessings.
Compliment the meal when you're a guest in someone's home.
Wave at the children on a school bus.
Remember that 80 per cent of the success in any job is based on our ability to deal with people.

Don't expect life to be fair.