What if computer languages were superheroes in an alternate universe. How would they behave. How would they compare to our well known superheroes?

C would be like Batman. Nobody wants to call him to save them in case of an emergency. But everybody thinks he can do anything.

C++ is like The Hulk. Powerful as hell. Can actually do anything. God save you if something goes wrong 

JavaScript would be everyone's favorite. Like the Iron Man. It has a good part with armor and lots of weapons. But Use it long enough and bad part start to show up. Battery dies and often backfires.

Java is like Green Arrow. Old School Method. Lots of tricks up its sleeves. Requires setup and is slow. But gets the job done.

C# is Hawkeye. Nobody's favorite. Obligatory Green Arrow ripoff that just kinda has to be there. Used only cause its backed by a big organization.

Shell Script is like Captain America. Quick, fast and always ready for action. Can't do without it.

Python is SuperMan! It has a super power of everything. Just import and voila! its done!

sed and awk are Fast and clumsy. Just like Flash. If used properly they can be very beneficial. However, not everyone can handle them.

Latex would be Black Widow. Its good to have and use. Its there to just look good. Doesn't really serve any purpose.

BrainFuck! This Bad-ass is not a superhero. Its a super villain. Nobody really understands it. It just wants to watch the world burn in horror, slowly and painfully! 

Groovy, 'nuff Said!

Images are just for illustration. All images/ names belong to respective owners.

It goes by many names, Quality Assurance, Quality Engineering, Software Testing or in short Testing. It is a process of executing code with the intention of finding errors or what we call Software Bugs! Bugs, which if found in timely manner, can save significant time and trouble to the end user and helps maintain credibility of the software company. It does not take a software engineer to understand how important testing is!

One day I was explaining different roles of a software engineer to my mother. I explained her about programming, user interface, developer and tester. Her immediate question was, So testing is something which must be done by seniors and highly experienced people? I was speechless! But it makes sense, right? You are essentially evaluating the work done by others. Which requires you to thoroughly understand the product and technology. And only with years of experience, can you foresee the errors which developers usually make in coding.

Unfortunately, wrong! This is not the way work is done in the industry. And I had no explanation for why it is this way.

The short history of computer and programming is already filled with disastrous results caused by small mistakes in programming which could have easily been avoided.

Launch of Mariner 1 - Source
The famous Mariner 1 dangerously changed direction towards North Atlantic Shipping Lanes shortly after launch and had to be destroyed since faulty application of the guidance commands made steering impossible.
Reason? A mathematical formula which was hand-transcribed in the code was missing an overbar. This caused normal variations in the velocity to be treated as serious and incorrect corrections were made by the software which caused Mariner 1 to steer towards Earth. (read more)

Another, and rather more disastrous situation was narrowly avoided by Stanislav Petrov, Retired Lieutenant Colonel of Soviet Air Defense Forces, which otherwise could have led to World War 3, and possibly destruction of Earth. In 1983, An early warning system detected 5 missiles launched towards Soviet Union by United States. Petrov dismissed it as false alarm as he was sure if USA ever attacked, it would launch much more than 5 missiles.
It was later discovered that a software bug picked up solar reflection on high altitude clouds as missile attacks. ( details )

These are just two of the many examples of software bugs causing irrecoverable damage to property and human lives. 

Many of these problems could have been avoided by testing the software thoroughly before putting into use. An error in a mathematical formula can be caught in a single run of a software test. Then why don't we do this?

Most of the companies I have worked for or have heard about does not consider testing as important as development. Pay grade and hiring bar is usually much lower in Testing/ QA profiles than in development profiles.

Even if companies give equal importance to testers and software testing they usually end up shipping faulty software. A common reason is the lack of time. Product development is usually time constrained by customer demands, staying ahead of competitors and resource constraints. To meet with these demands, tight deadlines are set giving less time for development and even less time for testing. 

Choose ANY TWO!  - source

Its a well known fact that a software can be delivered with any two of the three qualities GOOD, FAST and CHEAP (read more). Less time for development means faulty product, overshot development deadlines and almost no time for testing. To top it off, many companies do not give importance to testing and does not hire adequate no of Software Testers and the product takes a massive hit on quality.

What can be done here? The competitive market will always remain the same. Time will always be the most expensive resource. Focus will always be on delivering the product early development will remain of prime importance.

But all this does not mean that quality has to take a hit. It certainly does not mean that testing is not as important as development. It means that we have to do our best in the limited time and resources given to us.

With this in mind, we are building an ONLINE COMMUNITY FOR TESTERS where you can learn, discuss and solve test challenges online, participate in online codeathons, and get job offers.

Log on today, and be a part of fastest growing community of testers and developers. Meet great minds, get help, enhance your coding skills and get amazing job offers, all at edufyme.com.
Different programmers follow different rules. They have different preferences when it comes to coding, conventions and tools. We have put together some of the common differences in the form of images. View, share and enjoy!

The problem of choice

The n00b vs the experienced

Night and Day

The quick keyboard vs the easy mouse

The vim wizard vs the gedit fan

The coder vs the explainer