1. There are 10 types of people in the world: those who understand binary, and those who don’t.
2. My pokemon bring all the nerds to the yard, and they’re like you wanna trade cards? Darn right, I wanna trade cards, I’ll trade this but not my charizard.
3. If at first you don’t succeed; call it version 1.0.
4. Microsoft: “You’ve got questions. We’ve got dancing paperclips.”
5. I’m not anti-social; I’m just not user friendly
6. Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
7. I would love to change the world, but they won’t give me the source code.
8. The glass is neither half-full nor half-empty: it’s twice as big as it needs to be.
9. A computer lets you make more mistakes faster than any invention in human history - with the possible exceptions of handguns and tequila.
10. The box said ‘Requires Windows 95 or better’. So I installed LINUX.
11. My software never has bugs. It just develops random features.
12. People say that if you play Microsoft CD’s backwards, you hear satanic things, but that’s nothing, because if you play them forwards, they install Windows.
13. In a world without fences and walls, who needs Gates and Windows?
14. The speed of sound is defined by the distance from door to computer divided by the time interval needed to close the media player and pull up your pants when your mom shouts “OH MY GOD WHAT ARE YOU DOING!!!”
15. Passwords are like underwear. You shouldn’t leave them out where people can see them. You should change them regularly. And you shouldn’t loan them out to strangers.
16. Failure is not an option — it comes bundled with Windows.
17. You have just received the Amish Computer Virus. Since the Amish don’t have computers, it is based on the honor system. So please delete all the files from your computer. Thank you for you cooperation.
18. MICROSOFT = Most Intelligent Customers Realize Our Software Only Fools Teenagers
19. Artificial Intelligence is no match for Natural Stupidity.
20. You know it’s love when you memorize her IP number to skip DNS overhead.
21. Girls are like internet domain names; the ones I like are already taken.
22. A Life? Cool! Where can I download one of those?
23. Enter any 11-digit prime number to continue…
24. Windows has detected you do not have a keyboard. Press ‘F9″ to continue.
25. Ethernet (n): something used to catch the etherbunny.
26. UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity.
27. Hand over the calculator, friends don’t let friends derive drunk.
28. The difference between e-mail and regular mail is that computers handle e-mail, and computers never decide to come to work one day and shoot all the other computers.
29. A thousand Words are worth a picture, and they load a heck of a lot faster.
30. Software is like sex: It’s better when it’s free.
31. How do I set a laser printer to stun?
32. Better to be a geek than an idiot.
33. Unix, DOS and Windows…the good, the bad and the ugly.
34. Who is General Failure and why is he reading my disk?
35. Alcohol & calculus don’t mix. Never drink & derive.
36. “Concept: On the keyboard of life, always keep one finger on the escape button.”
37. I spent a minute looking at my own code by accident. I was thinking “What the hell is this guy doing?”
38. Windows XP -now comes with free anger management courses.
39. Who needs friends? My PC is user friendly.
40. Never make fun of the geeks, one day they will be your boss.
Showing posts with label Software Development. Show all posts
Showing posts with label Software Development. Show all posts
Friday, May 25, 2007
Wednesday, April 18, 2007
Great Software Quotes....!!!!! Enjoy It
UNIX is simple. But It just needs a genius to understand its simplicity.
–Dennis Ritchie
Before software can be reusable, it first has to be usable.
–Ralph Johnson
Good judgment comes from experience, and experience comes from bad judgment.
–Fred Brooks
Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why it works. Programmers combine theory and practice: Nothing works and they don’t know why.
It’s hard enough to find an error in your code when you’re looking for it; it’s even harder when you’ve assumed your code is error-free.
-Steve McConnell Code Complete
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
-Gerald Weinberg
The Six Phases of a Project:
Enthusiasm
Disillusionment
Panic
Search for the Guilty
Punishment of the Innocent
Praise for non-participants
Good code is its own best documentation. As you’re about to add a comment, ask yourself, ‘How can I improve the code so that this comment isn’t needed?’
Improve the code and then document it to make it even clearer.
–Steve McConnell Code Complete
The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt.
–Bertrand Russell
No matter how slick (efficient) the demo is in rehearsal, when you do it in front of a live audience the probability of a flawless presentation is inversely proportional to the number of people watching, raised to the power of the amount of money involved.
One of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs.
–Robert Firth
Fifty years of programming language research and we end up with C++?
–Richard A. O’Keefe
C programmers never die. They are just cast into void.
If debugging is the process of removing bugs, then programming must be the process of putting them in.
–Edsger Dijkstra
You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time.
–(Bertrand Meyer)
(Thoughtful…)
There are two ways to write error-free programs; only the third works.
–Alan J. Perlis
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
–Bill Gates
The first 90% of the code accounts for the first 10% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.
–Tom Cargill
Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning.
–Anon
As soon as we started programming, we found to our surprise that it wasn’t as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.
–Maurice Wilkes discovers debugging, 1949
I did say something along the lines of “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows your whole leg off.”
–Bjarne Stroustrup
It has been said that the great scientific disciplines are examples of giants standing on the shoulders of other giants. It has also been said that the software industry is an example of midgets standing on the toes of other midgets.
–Alan Cooper About Face
Computers are dumb and yet they give you answers.
–Pablo Picasso
If the code and the comments disagree, then both are probably wrong.
–attributed to Norm Schryer
Even if you’re on the right track, you’ll get run over if you just sit there.
–Will Rogers
Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer .
–Fred Brooks, Jr.
As we said in the preface to the first edition, C “wears well as one’s experience with it grows.” With a decade more experience, we still feel that way.
–Brian Kernighan and Dennis Ritchie
Simplicity is prerequisite for reliability
–Edsger W.Dijkstra
I’ve finally learned what “upward compatible” means. It means we get to keep all our old mistakes.
–Dennie van Tassel
Rules of Optimization:
Rule 1: Don’t do it.
Rule 2 (for experts only): Don’t do it yet.
–M.A. Jackson
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
–Alan Kay
Every program has (at least) two purposes:
the one for which it was written,
and another for which it wasn’t.
–Alan J. Perlis
Technology is dominated by two types of people:
Those who understand what they do not manage.
Those who manage what they do not understand.
–Putt’s Law
Copy and paste is a design error
–David Parnas
Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else.
–Eagleson’s law
Posted From http://www.shocking.wordpress.com
–Dennis Ritchie
Before software can be reusable, it first has to be usable.
–Ralph Johnson
Good judgment comes from experience, and experience comes from bad judgment.
–Fred Brooks
Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why it works. Programmers combine theory and practice: Nothing works and they don’t know why.
It’s hard enough to find an error in your code when you’re looking for it; it’s even harder when you’ve assumed your code is error-free.
-Steve McConnell Code Complete
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.
-Gerald Weinberg
The Six Phases of a Project:
Enthusiasm
Disillusionment
Panic
Search for the Guilty
Punishment of the Innocent
Praise for non-participants
Good code is its own best documentation. As you’re about to add a comment, ask yourself, ‘How can I improve the code so that this comment isn’t needed?’
Improve the code and then document it to make it even clearer.
–Steve McConnell Code Complete
The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt.
–Bertrand Russell
No matter how slick (efficient) the demo is in rehearsal, when you do it in front of a live audience the probability of a flawless presentation is inversely proportional to the number of people watching, raised to the power of the amount of money involved.
One of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs.
–Robert Firth
Fifty years of programming language research and we end up with C++?
–Richard A. O’Keefe
C programmers never die. They are just cast into void.
If debugging is the process of removing bugs, then programming must be the process of putting them in.
–Edsger Dijkstra
You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time.
–(Bertrand Meyer)
(Thoughtful…)
There are two ways to write error-free programs; only the third works.
–Alan J. Perlis
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
–Bill Gates
The first 90% of the code accounts for the first 10% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.
–Tom Cargill
Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning.
–Anon
As soon as we started programming, we found to our surprise that it wasn’t as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.
–Maurice Wilkes discovers debugging, 1949
I did say something along the lines of “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows your whole leg off.”
–Bjarne Stroustrup
It has been said that the great scientific disciplines are examples of giants standing on the shoulders of other giants. It has also been said that the software industry is an example of midgets standing on the toes of other midgets.
–Alan Cooper About Face
Computers are dumb and yet they give you answers.
–Pablo Picasso
If the code and the comments disagree, then both are probably wrong.
–attributed to Norm Schryer
Even if you’re on the right track, you’ll get run over if you just sit there.
–Will Rogers
Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer .
–Fred Brooks, Jr.
As we said in the preface to the first edition, C “wears well as one’s experience with it grows.” With a decade more experience, we still feel that way.
–Brian Kernighan and Dennis Ritchie
Simplicity is prerequisite for reliability
–Edsger W.Dijkstra
I’ve finally learned what “upward compatible” means. It means we get to keep all our old mistakes.
–Dennie van Tassel
Rules of Optimization:
Rule 1: Don’t do it.
Rule 2 (for experts only): Don’t do it yet.
–M.A. Jackson
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
–Alan Kay
Every program has (at least) two purposes:
the one for which it was written,
and another for which it wasn’t.
–Alan J. Perlis
Technology is dominated by two types of people:
Those who understand what they do not manage.
Those who manage what they do not understand.
–Putt’s Law
Copy and paste is a design error
–David Parnas
Any code of your own that you haven’t looked at for six or more months might as well have been written by someone else.
–Eagleson’s law
Posted From http://www.shocking.wordpress.com
Tuesday, April 10, 2007
Use of Regular Expression in Javascript
you need to define the regular expressions that the script will match against your visitors' input:
var fnameRegxp = /^([a-zA-Z]+)$/;
This statement checks that only upper or lowercase case letters, repeated one or more times, pass the validation test, which, unless you’re hoping to send your newsletter to C3PO, should be the case. Remember when I mentioned that regular expressions can still return true if there are incorrect characters present, provided that the correct pattern of characters is somewhere within the string? Putting the circumflex and dollar sign at the beginning and end of the regular expression ensures that this does not happen, and that the string is only valid if it contains just what you’re asking for.
var lnameRegxp = /^([a-zA-Z]+)$/;
var houseRegxp = /^([0-9A-Za-z]+)$/;
These then check that the surname entered is also any upper or lowercase character repeated one or more times, and that the house name consists of just numbers and letters. You could have shortened this to /^([\w]+)$/ using the shorthand escape code for "any word character," but that would allow underscores to be used, which rarely feature in property names.
var pcodeRegxp = /^([A-Za-z]{1,2})([0-9]{2,3})([A-Za-z]{2})$/;
var telnoRegxp = /^([0-9]{11})$/;
I’ve used local examples for the post code (the UK version of a zip code) and telephone regular expressions. UK postcodes are in a format consisting of one or two letters, followed by two or three numbers (depending on the county), and followed again by two letters. It should be easy to see how you could change this to match your own local form of postal or zip code and telephone number formats. The phone number check simply ensures that the correct number of numbers is present. Following these comes the most complex of regular expressions -- those that check for valid email addresses and URLs:
var emailRegxp = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;
var urlRegxp = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+)/;
Due to sub-domains, there may be any number of characters and dots preceding the @ sign. The first of these expressions says that any word character displayed one or more times can then be followed by a dot, then any number of word characters displayed zero or more times, followed by the @ symbol, followed by any word character displayed one or more times, followed by a dot and two or three word characters repeated at least once but no more than twice, so email addresses ending in .com or .co.uk will pass, whereas .co.uk.com would fail. Similarly, the URL may begin with either http://www. or https://www. or ftp://www. or just www. once followed by any word character one or more times, followed by a dot and any number of word characters at least once but no more than twice.
Finally, the date of birth check allows dates in the format dd/mm/yyyy or dd-mm-yyyy, both formats being equally as popular:
var dobRegxp = /^([0-9]){2}(\/|-){1}([0-9]){2}(\/|-)([0-9]){4}$/;
We then need to actually test that each of the values submitted are in the correct format. I accomplished this by using a series of nested if statements and alerts. This method is useful for demonstration and testing purposes, although in reality, a for…next loop would probably be more efficient, and some kind of color highlighting scheme that would flag the erroneous input values a different color, say red, on the form itself would be more professional. The example if statements and alerts however, can be constructed as follows:
if (fnameRegxp.test(fname) != true)
alert("First name appears to be incorrect");
if (lnameRegxp.test(lname) != true)
alert("Last name appears to be incorrect");
if (houseRegxp.test(house) != true)
alert("Address 1 appears to be incorrect");
if (pcodeRegxp.test(pcode) != true)
alert("Address 2 appears to be incorrect");
if (telnoRegxp.test(telno) != true)
alert("Telephone number appears to be incorrect");
if (emailRegxp.test(email) != true)
alert("Email address appears to be incorrect");
if (email != verEmail)
alert("Email appears to be incorrect");
if (urlRegxp.test(url) != true)
alert("URL appears to be incorrect");
if (dobRegxp.test(dob) != true)
alert("Date of Birth appears to be incorrect");
Notice that instead of using a regular expression to check that the second email address entered (that should be the same as the first for verification purposes) is correct, we simply check that its value is exactly the same as the first email address entered.
Finally, if all of the data is in the correct format, we need this program to output a "Data Correct" alert and change the value of the action property of the form to the name of the cgi function that will process the data. Once again, against a professional backdrop, the true alert would probably be removed in favor of a fresh page thanking the visitor for their time, but this is useful for demonstration and
testing purposes:
else {
alert("Data Correct");
document.myForm.action.value = "process.cgi";
}
}
Another benefit to using regular expressions to validate user input is that any fields that are checked against a regular expression fail if the field is left blank, so you don’t have to write any separate omission checking functions.
Explaining regular expressions is almost as difficult as coding them. It will be far easier for you to see what I mean by writing and playing around with them yourself. Unfortunately, it is not possible to be 100 percent certain that all information entered is correct, but with regular expressions you can at least be sure that 99 percent of the data is correct.
Although this may seem like a cumbersome amount of code, without regular expressions, it would be ten times as long. Using client-side validation is not the securest way to validate your forms, but it may save processing time on your server by ensuring that only correct data is passed to it in the first place. Other than that, JavaScript is both quick and easy to implement and the regular expressions subset of the language is simpler than that of some of the more powerful Web programming languages, so for sites that don’t need maximum security, it is certainly worth considering.
var fnameRegxp = /^([a-zA-Z]+)$/;
This statement checks that only upper or lowercase case letters, repeated one or more times, pass the validation test, which, unless you’re hoping to send your newsletter to C3PO, should be the case. Remember when I mentioned that regular expressions can still return true if there are incorrect characters present, provided that the correct pattern of characters is somewhere within the string? Putting the circumflex and dollar sign at the beginning and end of the regular expression ensures that this does not happen, and that the string is only valid if it contains just what you’re asking for.
var lnameRegxp = /^([a-zA-Z]+)$/;
var houseRegxp = /^([0-9A-Za-z]+)$/;
These then check that the surname entered is also any upper or lowercase character repeated one or more times, and that the house name consists of just numbers and letters. You could have shortened this to /^([\w]+)$/ using the shorthand escape code for "any word character," but that would allow underscores to be used, which rarely feature in property names.
var pcodeRegxp = /^([A-Za-z]{1,2})([0-9]{2,3})([A-Za-z]{2})$/;
var telnoRegxp = /^([0-9]{11})$/;
I’ve used local examples for the post code (the UK version of a zip code) and telephone regular expressions. UK postcodes are in a format consisting of one or two letters, followed by two or three numbers (depending on the county), and followed again by two letters. It should be easy to see how you could change this to match your own local form of postal or zip code and telephone number formats. The phone number check simply ensures that the correct number of numbers is present. Following these comes the most complex of regular expressions -- those that check for valid email addresses and URLs:
var emailRegxp = /^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{2,3}){1,2}$/;
var urlRegxp = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([\w]+)(.[\w]+)/;
Due to sub-domains, there may be any number of characters and dots preceding the @ sign. The first of these expressions says that any word character displayed one or more times can then be followed by a dot, then any number of word characters displayed zero or more times, followed by the @ symbol, followed by any word character displayed one or more times, followed by a dot and two or three word characters repeated at least once but no more than twice, so email addresses ending in .com or .co.uk will pass, whereas .co.uk.com would fail. Similarly, the URL may begin with either http://www. or https://www. or ftp://www. or just www. once followed by any word character one or more times, followed by a dot and any number of word characters at least once but no more than twice.
Finally, the date of birth check allows dates in the format dd/mm/yyyy or dd-mm-yyyy, both formats being equally as popular:
var dobRegxp = /^([0-9]){2}(\/|-){1}([0-9]){2}(\/|-)([0-9]){4}$/;
We then need to actually test that each of the values submitted are in the correct format. I accomplished this by using a series of nested if statements and alerts. This method is useful for demonstration and testing purposes, although in reality, a for…next loop would probably be more efficient, and some kind of color highlighting scheme that would flag the erroneous input values a different color, say red, on the form itself would be more professional. The example if statements and alerts however, can be constructed as follows:
if (fnameRegxp.test(fname) != true)
alert("First name appears to be incorrect");
if (lnameRegxp.test(lname) != true)
alert("Last name appears to be incorrect");
if (houseRegxp.test(house) != true)
alert("Address 1 appears to be incorrect");
if (pcodeRegxp.test(pcode) != true)
alert("Address 2 appears to be incorrect");
if (telnoRegxp.test(telno) != true)
alert("Telephone number appears to be incorrect");
if (emailRegxp.test(email) != true)
alert("Email address appears to be incorrect");
if (email != verEmail)
alert("Email appears to be incorrect");
if (urlRegxp.test(url) != true)
alert("URL appears to be incorrect");
if (dobRegxp.test(dob) != true)
alert("Date of Birth appears to be incorrect");
Notice that instead of using a regular expression to check that the second email address entered (that should be the same as the first for verification purposes) is correct, we simply check that its value is exactly the same as the first email address entered.
Finally, if all of the data is in the correct format, we need this program to output a "Data Correct" alert and change the value of the action property of the form to the name of the cgi function that will process the data. Once again, against a professional backdrop, the true alert would probably be removed in favor of a fresh page thanking the visitor for their time, but this is useful for demonstration and
testing purposes:
else {
alert("Data Correct");
document.myForm.action.value = "process.cgi";
}
}
Another benefit to using regular expressions to validate user input is that any fields that are checked against a regular expression fail if the field is left blank, so you don’t have to write any separate omission checking functions.
Explaining regular expressions is almost as difficult as coding them. It will be far easier for you to see what I mean by writing and playing around with them yourself. Unfortunately, it is not possible to be 100 percent certain that all information entered is correct, but with regular expressions you can at least be sure that 99 percent of the data is correct.
Although this may seem like a cumbersome amount of code, without regular expressions, it would be ten times as long. Using client-side validation is not the securest way to validate your forms, but it may save processing time on your server by ensuring that only correct data is passed to it in the first place. Other than that, JavaScript is both quick and easy to implement and the regular expressions subset of the language is simpler than that of some of the more powerful Web programming languages, so for sites that don’t need maximum security, it is certainly worth considering.
Monday, April 9, 2007
10 myths & facts about working in the Indian IT industry
10 myths & facts about working in the Indian IT industry
India's booming information technology industry already hires more than a million employees and the numbers are set to grow manifold over the years.
Yet, the Indian IT sector, which has brought India on the global map (far removed from the West's perception of India being the land of diseases, poverty and snake charmers), is still grappling with the issue of high-end and low-end jobs and seeking out ways to go up the value chain.
Here are the 10 myths and facts about IT industry that you must know.
Myth #1: Company A has offered more salary than Company B, so it is better than Company B.
Fact: A bigger salary does not always mean better job-satisfaction. Big companies (with good cash flows) can afford to give more salaries than other relatively mid-sized or small companies or start-ups.
Also some companies outsource loss-making units or less revenue-generating product and maintenance work to India to cut costs, so job satisfaction for someone more interested in work content than the money is going to feel low.
For start-ups and small companies, salaries might not be very good, but they might offer stock options or bonus to compensate for this. Also work content in these companies might be better than big companies.
Some venture capitalists in the United States, when looking to fund start-ups, have begun to ask those companies whether they have an India-specific plan. Since these companies work on new/innovative products, work content is likely to be good.
Myth #2: Let me join Company A. If I don't like it, I will leave it and find a better job elsewhere.
Fact: Unless you are very clear about your goals and ambition you will keep changing jobs time and again. The best thing is to decide what you want to do quite early on in your career.
However, this seems a daunting task. This is true for someone with less than 3-4 years' experience and has no idea about the industry and what one wants to do. In addition, most of the companies hiring from campuses do not decide in advance what project the selected candidates will be working on. Later on, when works get assigned it does not match one's ambitions.
Also, most institutes/colleges put restriction on the number of job offers one can accept, so the selection of companies is not by choice. However, if you have joined a company that works on specific areas that are not to your liking then it is best to look out for another.
It is quite difficult for the company to find something that is specific to your interest, as it is beyond its scope. However, for you next job search, you should clearly indicate to your prospective employer that you are looking to work in a specific area (it is advisable to specialise in one domain/work area) and whether the company does that kind of work and you can be involved in that work.
Do not put off asking this after joining as it would be too late by then. It is best to give multiple interviews and decide on the one that best matches your aspirations. Don't let salary be the lone criterion when you make your decision.
Myth #3: Infotech work is more of 'a routine job.' No high-end work gets done in India.
Fact:This might be true in many cases, but the opportunities to work on challenging and complex projects is increasing in India. Currently, very few companies (rough estimate: 10-15%) in India are doing this. If you are the brainy type, seek out such companies. Using the best brain to do routine jobs can lead to job-dissatisfaction soon.
Also, most companies that launch their operations in India tend to give easy assignments in the beginning and you might feel that the job content is quite simple. But the important part is that is once you finish the project to the satisfaction of all stakeholders, the overseas management becomes confident in offshoring more complex work.
If the management is not convinced, then you will continue to do the daily chore. So, the bottomline is that if your team delivers quality product on time, you will get good work in the future.
Myth #4: Only product companies do exciting work.
Fact: The fact is that the typical work content in product companies involves a mix of routine and challenging tasks. In product companies, delivering a quality product is of great importance and as a result a typical product release involves multiple rigorous testing and bug-fixing phase.
This is a typically mundane and repetitive task and not always interesting. But it is important to understand that this is a critical task from company's perspective, as nobody would want to deliver a buggy product in the market and lose customer confidence.
So you cannot just focus on design and coding, and ignore testing and bug-fixing. Not only this, you should be flexible enough to work in any area whether you like it or not. You get both exciting and non-exciting work in the long run.
Myth #5: The Indian IT industry cannot offer the kind of job requirement I am looking for.
Fact: It requires a lot of effort to select the company of your liking. With so many companies setting up shop in India, this has made things even more difficult. Don't follow the principle 'my friend is working there, so I should follow him/her.' The requirement of your friend might be different from yours and you should seek companies that meet your requirement.
For experienced people, it is best to go through recruiters and indicate your exact requirement to them. If the recruiter is good, he will shortlist the companies that meet your expectations. If you find that the recruiter is not going by your interests, look for another recruiter.
Myth #6: I received a mail from a placement service saying that the job openings it has matches my profile.
Fact: Most of the recruiters/placement services send bulk mail to all and sundry. They do not scan resumes properly and just match keyword(s). Personally, I have received mails from recruiters, who say that my profile matches the job they have on offer, but if I look at the opening it does not match at all.
It is best to clear this with the recruiter before you agree to appear for an interview. This saves you the embarrassment of being on the ground that your profile/experience does not match the job profile.
Most companies rely heavily on recruiters for non-fresher openings and if they do not filter the candidate correctly, then most likely HR will not filter it either and call you for an interview!
Myth #7: Working abroad is better than working in Indian companies.
Fact: This might not be always true. If you are going to work as a consultant in the US, you might land up a worse job than what you were doing in India. With the IT doom of 2000 there is a very small pool of highly qualified professionals available in the US and they normally get better jobs than Indian consultants do.
Typically, in product companies, consultants are hired to do less critical work or work that can be done easily. If your expectation is to do high-end work, you will have to wait longer to do it. It is a much better option to obtain a master's degree from top-rated university in the US to bag better jobs.
Product companies usually hire the best brains from these universities to do the challenging work for them. Also the biggest advantage of working overseas is that you get to work with the best brains and learn a lot from them. It typically takes 4-5 years of overseas experience to get a good understanding of the overall execution of software products.
Myth #8: Management ladder is a much better option than technical ladder.
Fact: If you are the kind who loves to be technical, look for an organisation that encourages career growth for core technical work and pays salary at par with management salary for the same zone.
The demand for senior technical and senior architect professionals will grow as more high-end, specialised work gets done in India. Some companies have both managers and architects in the same project.
The manager takes care of the people and project execution, while the architect takes care of all technical aspect of the project. For complex and large projects, it is not possible for the manager to wear, both, the technical and the managerial hats, and hence the need to hire architects to take care of all technical aspects.
If you find the employer saying that you will be doing 20 per cent management and 80 per cent technical work, treat the statement with caution. Most likely it might turn out to be the other way around!
Myth #9: I am working abroad. If I relocate and work in India I won't get the same job satisfaction.
Fact: This is no longer true. The nature of the jobs done in India is as good as that in the US or other countries. The only difference is that the products that are futuristic in nature are not so prevalent in the Indian IT industry. In addition, career growth in India is much better -- and faster -- than overseas.
Myth #10: My satisfaction with the Indian IT industry is not in my hands.
Fact: As stated in the facts to the above myths, you yourself are solely responsible for job satisfaction. You have to research well when making a career plan and ensure you are at the right place.
India's booming information technology industry already hires more than a million employees and the numbers are set to grow manifold over the years.
Yet, the Indian IT sector, which has brought India on the global map (far removed from the West's perception of India being the land of diseases, poverty and snake charmers), is still grappling with the issue of high-end and low-end jobs and seeking out ways to go up the value chain.
Here are the 10 myths and facts about IT industry that you must know.
Myth #1: Company A has offered more salary than Company B, so it is better than Company B.
Fact: A bigger salary does not always mean better job-satisfaction. Big companies (with good cash flows) can afford to give more salaries than other relatively mid-sized or small companies or start-ups.
Also some companies outsource loss-making units or less revenue-generating product and maintenance work to India to cut costs, so job satisfaction for someone more interested in work content than the money is going to feel low.
For start-ups and small companies, salaries might not be very good, but they might offer stock options or bonus to compensate for this. Also work content in these companies might be better than big companies.
Some venture capitalists in the United States, when looking to fund start-ups, have begun to ask those companies whether they have an India-specific plan. Since these companies work on new/innovative products, work content is likely to be good.
Myth #2: Let me join Company A. If I don't like it, I will leave it and find a better job elsewhere.
Fact: Unless you are very clear about your goals and ambition you will keep changing jobs time and again. The best thing is to decide what you want to do quite early on in your career.
However, this seems a daunting task. This is true for someone with less than 3-4 years' experience and has no idea about the industry and what one wants to do. In addition, most of the companies hiring from campuses do not decide in advance what project the selected candidates will be working on. Later on, when works get assigned it does not match one's ambitions.
Also, most institutes/colleges put restriction on the number of job offers one can accept, so the selection of companies is not by choice. However, if you have joined a company that works on specific areas that are not to your liking then it is best to look out for another.
It is quite difficult for the company to find something that is specific to your interest, as it is beyond its scope. However, for you next job search, you should clearly indicate to your prospective employer that you are looking to work in a specific area (it is advisable to specialise in one domain/work area) and whether the company does that kind of work and you can be involved in that work.
Do not put off asking this after joining as it would be too late by then. It is best to give multiple interviews and decide on the one that best matches your aspirations. Don't let salary be the lone criterion when you make your decision.
Myth #3: Infotech work is more of 'a routine job.' No high-end work gets done in India.
Fact:This might be true in many cases, but the opportunities to work on challenging and complex projects is increasing in India. Currently, very few companies (rough estimate: 10-15%) in India are doing this. If you are the brainy type, seek out such companies. Using the best brain to do routine jobs can lead to job-dissatisfaction soon.
Also, most companies that launch their operations in India tend to give easy assignments in the beginning and you might feel that the job content is quite simple. But the important part is that is once you finish the project to the satisfaction of all stakeholders, the overseas management becomes confident in offshoring more complex work.
If the management is not convinced, then you will continue to do the daily chore. So, the bottomline is that if your team delivers quality product on time, you will get good work in the future.
Myth #4: Only product companies do exciting work.
Fact: The fact is that the typical work content in product companies involves a mix of routine and challenging tasks. In product companies, delivering a quality product is of great importance and as a result a typical product release involves multiple rigorous testing and bug-fixing phase.
This is a typically mundane and repetitive task and not always interesting. But it is important to understand that this is a critical task from company's perspective, as nobody would want to deliver a buggy product in the market and lose customer confidence.
So you cannot just focus on design and coding, and ignore testing and bug-fixing. Not only this, you should be flexible enough to work in any area whether you like it or not. You get both exciting and non-exciting work in the long run.
Myth #5: The Indian IT industry cannot offer the kind of job requirement I am looking for.
Fact: It requires a lot of effort to select the company of your liking. With so many companies setting up shop in India, this has made things even more difficult. Don't follow the principle 'my friend is working there, so I should follow him/her.' The requirement of your friend might be different from yours and you should seek companies that meet your requirement.
For experienced people, it is best to go through recruiters and indicate your exact requirement to them. If the recruiter is good, he will shortlist the companies that meet your expectations. If you find that the recruiter is not going by your interests, look for another recruiter.
Myth #6: I received a mail from a placement service saying that the job openings it has matches my profile.
Fact: Most of the recruiters/placement services send bulk mail to all and sundry. They do not scan resumes properly and just match keyword(s). Personally, I have received mails from recruiters, who say that my profile matches the job they have on offer, but if I look at the opening it does not match at all.
It is best to clear this with the recruiter before you agree to appear for an interview. This saves you the embarrassment of being on the ground that your profile/experience does not match the job profile.
Most companies rely heavily on recruiters for non-fresher openings and if they do not filter the candidate correctly, then most likely HR will not filter it either and call you for an interview!
Myth #7: Working abroad is better than working in Indian companies.
Fact: This might not be always true. If you are going to work as a consultant in the US, you might land up a worse job than what you were doing in India. With the IT doom of 2000 there is a very small pool of highly qualified professionals available in the US and they normally get better jobs than Indian consultants do.
Typically, in product companies, consultants are hired to do less critical work or work that can be done easily. If your expectation is to do high-end work, you will have to wait longer to do it. It is a much better option to obtain a master's degree from top-rated university in the US to bag better jobs.
Product companies usually hire the best brains from these universities to do the challenging work for them. Also the biggest advantage of working overseas is that you get to work with the best brains and learn a lot from them. It typically takes 4-5 years of overseas experience to get a good understanding of the overall execution of software products.
Myth #8: Management ladder is a much better option than technical ladder.
Fact: If you are the kind who loves to be technical, look for an organisation that encourages career growth for core technical work and pays salary at par with management salary for the same zone.
The demand for senior technical and senior architect professionals will grow as more high-end, specialised work gets done in India. Some companies have both managers and architects in the same project.
The manager takes care of the people and project execution, while the architect takes care of all technical aspect of the project. For complex and large projects, it is not possible for the manager to wear, both, the technical and the managerial hats, and hence the need to hire architects to take care of all technical aspects.
If you find the employer saying that you will be doing 20 per cent management and 80 per cent technical work, treat the statement with caution. Most likely it might turn out to be the other way around!
Myth #9: I am working abroad. If I relocate and work in India I won't get the same job satisfaction.
Fact: This is no longer true. The nature of the jobs done in India is as good as that in the US or other countries. The only difference is that the products that are futuristic in nature are not so prevalent in the Indian IT industry. In addition, career growth in India is much better -- and faster -- than overseas.
Myth #10: My satisfaction with the Indian IT industry is not in my hands.
Fact: As stated in the facts to the above myths, you yourself are solely responsible for job satisfaction. You have to research well when making a career plan and ensure you are at the right place.
Saturday, March 3, 2007
The Software Development Life Cycle
1. Programmer produces code he believes is bug-free.
2. Product is tested. 20 bugs are found.
3. Programmer fixes 10 of the bugs and explains to the testing department that the other 10 aren’t really bugs.
4. Testing department finds that five of the fixes didn’t work and discovers 15 new bugs.
5. Repeat three times steps 3 and 4.
6. Due to marketing pressure and an extremely premature product announcement based on overly-optimistic programming schedule, the product is released.
7. Users find 137 new bugs.
8. Original programmer, having cashed his royalty check, is nowhere to be found.
9. Newly-assembled programming team fixes almost all of the 137 bugs, but introduce 456 new ones.
10. Original programmer sends underpaid testing department a postcard from Fiji. Entire testing department quits.
11. Company is bought in a hostile takeover by competitor using profits from their latest release, which had 783 bugs.
12. New CEO is brought in by board of directors. He hires a programmer to redo program from scratch.
13. Programmer produces code he believes is bug-free.
And the cycle continues….
2. Product is tested. 20 bugs are found.
3. Programmer fixes 10 of the bugs and explains to the testing department that the other 10 aren’t really bugs.
4. Testing department finds that five of the fixes didn’t work and discovers 15 new bugs.
5. Repeat three times steps 3 and 4.
6. Due to marketing pressure and an extremely premature product announcement based on overly-optimistic programming schedule, the product is released.
7. Users find 137 new bugs.
8. Original programmer, having cashed his royalty check, is nowhere to be found.
9. Newly-assembled programming team fixes almost all of the 137 bugs, but introduce 456 new ones.
10. Original programmer sends underpaid testing department a postcard from Fiji. Entire testing department quits.
11. Company is bought in a hostile takeover by competitor using profits from their latest release, which had 783 bugs.
12. New CEO is brought in by board of directors. He hires a programmer to redo program from scratch.
13. Programmer produces code he believes is bug-free.
And the cycle continues….
Subscribe to:
Posts (Atom)