Sunday, 28 June 2015

Career options for computer science engineering graduates

 Computer Science Engineering has become a safe bet for students; as on successful completion of their course they are not restricted to a specific field and can apply to a variety of ITES companies. 
In the past 15 years if one engineering stream has steadily gained prominence it is the stream of ‘Computer Science’. Fueled by the success stories of Infosys, Wipro, Satyam and other homegrown Indian IT companies; the period following the early nineties saw students joining Computer Science engineering en-masse. Then the dotcom bubble burst, the recession set in and the September 9/11 attacks happened.  Overnight things changed – and as US economic policies tightened with a clamour for more jobs to be retained in the US – the number of visas granted for foreigners in skilled jobs decreased.
On a related tangent the IT-BPO sector took a harsh beating as well as many people lost their jobs. Still the sheen and value of a Computer Science engineering degree did not lose its charm as companies continued to hire engineering graduates and put them into intensive training programmes before they were integrated into relevant job-roles. To cut a long story short IT and Computer Science engineering courses continue to remain extremely popular among students aspiring to take up an engineering course after their high school education.   

This article examines the various career options and average salaries on offer for students who have successfully passed their computer science engineering courses. Traditionally computer science engineering students can pick jobs in the software scheme of things that includes the whole gamut of roles from programming, testing, software development and analysis. The hardware and networking part lets students find jobs in aspects of product design and maintenance, database management, system-security and networking, server management etc.

Application development - The development of the mobile phone and distinct operating systems has opened a whole new world of employment opportunities to not just engineers but anyone with a keen eye for design and detail. In the war of the operating systems we see applications, popularly known as ‘apps’ being designed. These apps cover topics from news and media, personal finance, weather and the biggest revenue-generator games. ‘Angry Games’ has been the most popular mobile game in the past few years and it single-handedly changed the fortunes of its company Rovio Inc.

Animation and graphic design are also allied job-roles that students with a keen interest for drawing and sketching and creative minds can apply. Note an engineering degree is not mandatory for these roles and students with a keen interest in animation-art and cartoons get drawn into these roles.

Software Testing has become practically a sub-domain of its own with more and more private institutions offering courses in software and product testing. A strong grasp of programming languages, user interface design and software architecture are requisite for students to seek a career in software testing.

Cyber-security – Technology has its negatives as well doesn’t it? With more and more transactions going online and the rise of online shopping portals and electronic money transfers; the risk of transaction passwords being stolen, secure databases being hacked and identity thefts are not just plots from movies but very scarily real and possible. Ethical hacking and cyber-security courses are highly popular and trained cyber-security experts with an engineering degree in computer science can command a good salary.

Product design – Ever wondered why Apple products are so insanely successful? They blend simplicity and ease of use with cutting-edge technology inside them. All major technology firms invest heavily in research and development and they are continuously innovating to make ‘the next big thing’. Computer science engineers with a specialization in hardware technology and design have a great career path ahead in IT Product Design.
Salaries vary based on the years of experience and specific domain expertise of the applicant. Students who pass out as fresh computer science engineering graduates and get hired as ‘Trainee Engineers’ get paid between Rs 2.25 and Rs 3 lakhs per annum as starting pay-packages. This value also varies from company to company and most companies hiring on campus include a ‘job clause’ that students should work for at least two years with the company.

Computer Science Engineering has become a safe bet for students; as on successful completion of their course they are not restricted to a specific field and can apply to a variety of ITES (IT enabled services companies). These companies offer a variety of services ranging from web-design and analytics to dedicated IT-support services and offer good salaries.

Postscript:

In today’s competitive world it is extremely important that students keep themselves updated of the changes taking place in the world of technology and have good communication skills. Students should exude confidence and learn to write and speak effectively in English. A clear communication style and relevant domain-specific knowledge help students find a good job in the IT-industry. Remember learn to keep your eyes and ears open and be polite with a willingness to learn. With major IT companies in India predicting more jobs across various domains in IT and ITES - the future does look bright

Friday, 26 June 2015

What computer science knowledge/concepts do software engineers use on a daily basis?

For as long as I can remember, there’s been a disconnect between kinds of stuff people ask in software engineering interviews and the day-to-day work that software engineers do. As a recruiter and a former engineer, this disconnect is particularly salient because when I evaluate candidates I have to ask myself two separate questions:
  • Will this person be able to pass a few rounds of coding interviews?
  • Is this person actually good?
It’s a bit funny that whether the person is good is somewhat immaterial if he isn’t going to make it past the CS fundamentals gauntlet.  That said, I think that the standard interview process isn’t the worst predictor of success on the job — people who are good at solving toy problems, have solid knowledge of various data structures, and for whom evaluating code efficiency is second nature also tend to be good at being engineers.  This is perhaps a classic correlation vs. causation problem — people who are good at being professional coders also tend to be good at being interviewed.  However, I’m not sure that they are good coders entirely because they are good interviewees.  In other words, I would guess that this approach has a pretty high false negative rate.  Unfortunately, I don’t have a good solution to this problem, and surely  lots of false negatives is better for a company than the same number of false positives (especially if the company has a good brand among engineers that affords it a revolving door of applicants).
Recently, someone on Quora asked about what CS concepts are actually used on the job (as opposed to what candidates are expected to bring to the table).  Bulat Bochkariov did an amazing job at attacking both this question and discussing coding interviews.  With his permission, I’ve reproduced his answer here.
Answer by Bulat Bochkariov:
The set of questions people ask is frustratingly disjoint from what’s important day-to-day. There are reasons, but I’ll try not to get sidetracked here.
Here’s a tiny list of things an engineer should be prepared for.
  • It’s 2pm. The release gets cut at noon tomorrow. (Or we could delay, but that would suck kind of a lot.) This piece of code is running way too slow for us to ship it with our names on it. How would you decide what to do? And then how would you do it? Remember that there’s still that other feature we were working on.
  • We need to do X. You know our stack and our toolchain. Research the options, then determine the next step and take it.
  • MySQL is seriously melting with this growth. We can’t keep doing all these joins.
  • There’s a critical bug in production.
  • We’re losing velocity. Our crufty code is keeping us from making changes quickly. What’s the root of the problem? What would really good abstractions look like? What are we trying to do? And how do we keep doing it while cleaning up this mess?
  • EventMachine is leaking more than normal.
  • Someone took out Git. There’s a crater.
  • Is it ok not to encrypt this? Like, what’s the worst that could happen. Right?
  • I think we’ve been hacked.
  • We’ve got an interview today. They even mentioned some security experience. What do we ask? How? What will it tell us?
For the most part, no one cares if you can make a red-black tree. It’s not something you’ll be doing. It’s just a proxy for a few things that do matter: your ability to solve new problems and an understanding of the content in a core CS curriculum—or whether you can write code that compiles and runs. But those are just the basics. They’re necessary, but they’re not sufficient.
What’s more important is your understanding: whether you can see the forest for the trees and find your way to where you’re going. You don’t think in JavaScript or Python but in problems and solutions, on multiple dimensions at once. You know the details are important but they aren’t the point—except when they are, and you can tell the difference.
You don’t do stuff that’s clearly bad; consider that a given. You don’t leave O(n^2) code turds on the floor or weird recursion time bombs that will blow the stack if n gets bigger than a thousand. But in aMaslow pyramid for programming, that stuff is on the bottom steps. It’s important to keep reaching for the top.
The most important question you can ask is “why.” What problem does this project solve, and what problems is it made of? Why should I consider Factor A over Consequence B? Why the hell is there a ServletBeanAdapter here? And keep in mind that sometimes it’s because an engineer took time to fully understand the problem, examined the upside, noted the risk to his or her own timetable, considered the security concerns, thought about maintainability, sketched out some more powerful solutions, decided not to waste the effort here, and made a quick decision that looked right when faced with finite time and lots of ambiguity. That’s what software engineering is about. You develop judgment and you learn from your mistakes.
And that’s what no one asks about.

Here’s where I should say a couple things. First: I’m a “new grad,” which means I’ve interviewed enough that I can’t count them on my fingers and toes, but I wouldn’t need to grow a lot of extra hands. That leaves me biased in a number of ways. Second: The context is important. If you work on machine learning, you’ll definitely need some statistics. For distributed systems, you’ll need data structures and concurrency. I don’t mean to say that core CS is not important. I’m talking here in generalities, so please don’t take them for specifics.

In my experience, what people ask is more like this.
  • FizzBuzz variants; easy looping questions. (Because it would be rude to check your pulse.)
  • Counting nodes or levels in some sort of tree. The goal is usually to see if you can think recursively or how you’ll try to hack the problem if you don’t. I love to harp on these, but honestly they make pretty good screens.
  • Basic questions from an algorithms class. Can you solve a searching problem if you aren’t told how? Can you mentally connect the properties of BFS with level-order printing in a binary tree?
  • Data structure questions with a fairly clear right answer. Given some data and a time or space constraint, can you process it a certain way? Can you make a stack with constant-time maxValue()? What structures would you hook together for an LRU cache? A lot of these are just fill-in-the-blank if you know the standard structures’ time and space costs, but that’s already showing that you know something worth knowing.
  • Sometimes they’re just random made-up problems that you probably won’t guess in advance. Maybe some weird string questions or a twist on a dynamic programming problem. Some companies might ask more mathy stuff like rolling averages or random number generation.
And of course there’s plenty more. There’s a bunch of different lists online that people study with. I just don’t think what’s in them is the point. The most important thing I have to share, strictly true or not, is that the skills you’ll need for interviews are not the skills you’ll need at work.
If you’re interviewing, brush up on your textbook knowledge. Practice your dynamic programming. Go code up a union-find in C. Worry less about what skills you really need and more about the ones you need to demonstrate. They’re different. The standard problems people test you on are proxies for the things they really want. They just have a funny and imperfect way of finding out

Uses of Computers in various fields

Uses of Computers in Education

CBT are different programs that are supplied on CD-ROM. These programs include text, graphics and sound. Audio and Video lectures are recorded on the CDs. CBT is a low cost solution for educating people. You can train a large number of people easily.

Benefits of CBT

 Some benefits of CBT are as follows:
  1. The students can learn new skills at their own pace. They can easily acquire knowledge in any available time of their own choice.
  2. Training time can be reduced.
  3. Training materials are interactive and easy to learn. It encourages students to learn the topic.
  4. Planning and timing problems are reduced or eliminated.
  5. The skills can be taught at any time and at any place.
  6. It is very cost effective way to train a large number of students.
  7. Training videos and audios are available at affordable prices.

Computer Aided Learning (CAL)

Computer aided learning is the process of using information technology to help teaching and enhance the learning process. The use of computer can reduce the time that is spent on preparing teaching material. It can also reduce the administrative load of teaching and research. The use of multimedia projector and PowerPoint presentations has improved the quality of teaching. It has also helped the learning process.

Distance Learning

Distance learning is a new learning methodology. Computer plays the key role in this kind of learning. Many institutes are providing distance learning programs. The student does not need to come to the institute. The institute provides the reading material and the student attends virtual classroom. In virtual classroom, the teacher delivers lecture at his own workplace. The student can attend the lecture at home by connecting to a network. The student can also ask questions to the teacher.

Online Examination

The trend of online examination is becoming popular. Different examination like GRE, GMAT and SAT are conducted online all over the world. The questions are marked by computer. It minimizes the chance of mistakes. It also enables to announce the result in time.

Online Training Resources

  • Lynda.com    (For different Software training and Web development and CMS tutorials)
  • CBT Nuggets (For certification in Networking Technologies by CISCO & Microsoft)
  • Nettuts +      (For web technologies and web programming languages)
  • Byte-Notes    (And of course Byte-Notes.com for intrudctory level programming tutorials and lecture notes)

Uses of Computers in Business

The use of computer technology in business provides many facilities. Businessmen are using computers to interact with their customers anywhere in the world. Many business tasks are performed more quickly and efficiently. Computers also help them to reduce the overall cost of their business. Computer can be used in business in the following ways.

Marketing

An organization can use computers for marketing their products. Marketing applications provide information about the products to customers. Computer is also used to manage distribution system, advertising and selling activities. It can also be used in deciding pricing strategies. Companies can know more about their customers and their needs and requirements etc.

Stock Exchange

Stock Exchange is the most important place for businessmen. Many stock exchanges use computers to conduct bids. The stockbrokers perform all trading activities electronically. They connect with the computer where brokers match the buyers with sellers. It reduces cost as no paper or special building is required to conduct these activities.

Uses of computers in Medical Field

Hospital Management System

Specialized hospital management softwares are used to automate the day to day procedures and operations at hospitals. These tasks may be Online appointments, payroll admittance and discharge records etc.

Patient History

Hospital management systems can store data about patients. Computers are used to store data about patients, their diseases & symptoms, the medicines that are prescribed.

Patients Monitoring

Monitoring systems are installed in medical wards and Intensive care units to monitoring patients continously. These systems can monitor pulse, blood pressure and body temperature and can alert medical staff about any serious situations.

Life Support Systems

Specialised devices are used to help impaired patients like hearing aids.

Diagnosis Purpose

A variety of softwares are used to investigate symptoms and prescribed medication accordingly. Sophisticated systems are used for tests like CT Scan, ECG, and other medical tests.

Tuesday, 23 June 2015

Why Study Computer Science?

It is an exciting time to be a computer scientist!
We are living in the midst of a revolution powered by computers. This revolution has invaded all aspects of society. It is a communication revolution, a transportation revolution, a medical revolution, an entertainment revolution. Consider the things you would need to give up if you were to live a day without computers:
  • Social networking: email, IM, Facebook, texting, cell phone, landline phone
  • Transportation: GPS, car (anti-lock brakes, electronic ignition, …), planes, trains
  • Medical systems: electronic health records, nearly all medical tests
  • Commerce: ecommerce, ATMs, credit cards, debit cards
  • Entertainment: iPods, digital TV, cable TV, movies (most use computer enhancement in some way), remote control devices
Beyond these daily uses of computer technology, it has also become central to many other enterprises. Scientific research often uses in-silico experimentation, that is, experimentation done on computer models rather than the real world. Consider climate change research, for example. It is not possible to design and carry out an experiment to evaluate the effects of carbon emissions on the environment. This must be done using computer models, which, of course, leads to disagreements. Whose model is better? One model may emphasize the oceans, another the poles.
Medicine and medical research rely extensively on computers. Drug discovery research involves studying computer models of proteins, viruses and drugs prior to actually synthesizing and experimenting with potential drugs. Medical equipment is extensively computerized. Communications technology has opened up the field of telemedicine, so that medical expertise can reach rural areas and third world countries like never before.
Computers also reach into how we are governed. Electronic voting has been pushed by the government, but computer scientists are concerned about the security, accuracy and privacy of votes cast electronically. The Patriot Act greatly expanded the government’s ability to listen in on private communications, many of which are electronic. The net neutrality debate will decide the future of the Internet. Computer technology has been central to the success of the military. Cyberwarfare is just around the corner --- whether we are the attackers or the defenders, it is coming!

The Discipline of Computer Science

Central to all of these things we take for granted are computers: hardware, software and innovative applications. Indeed, computer science is an extraordinarily creative enterprise. It has changed the way we live, has propelled our economy forward through innovation and will continue to do so for the foreseeable future.
Still, it might not be clear what “computer science” is. Perhaps a better term for what we study is “computational thinking”. Computational thinking primarily emphasizes that we are interested in problem solving with computers. This problem solving can be viewed from many angles:
  • Logic - How can you describe a solution to a problem so precisely that a stupid computer, with no commonsense can execute it? Understanding the answer to this involves understanding the basic instructions found in programming languages, boolean logic, and also the most essential physical components of a computer.
  • Algorithms - How do you compose logical steps together to solve a problem? How do you do so efficiently? How do you prove mathematically that your algorithm is correct?
  • Abstraction - Problems that are solved with computers tend to be large and complicated. It is not possible to understand in detail the complete solution to a problem. Developing abstractions allow a computer scientist to decompose a problem into smaller pieces, solve those pieces individually and combine the results to form a total solution. How do we decompose problems in this way? How do we describe abstractions so that others can understand them without knowing the internal details?
  • Computability - What problems are solvable by computers? Currently, some things that are very easy for people to do are very difficult for computers - speech understanding and image recognition are two of these. Still other problems have simple algorithms, but the algorithms would take many years to calculate the solutions to problems of any realistic size. How do we know if a problem is intractable?
Beyond these essential elements of computational thinking, computer science encompasses many more specialized fields, including information retrieval, software engineering, bioinformatics, computational geometry, computer graphics and animation, computer architecture, networking, distributed systems, programming languages, ...

Computer Science and Liberal Arts

Computer science contributes to a liberal arts education in two primary ways as described above. First, computer science can provide a student with the necessary education to innovate in extraordinary ways. Computer technology is at the heart of many endeavors to make a meaningful difference in the world, whether through scientific research, medical advances, helping disabled people lead more fulfilling lives, improved communication and transportation or many other areas. These advances generally happen not by applying existing technology to a new problem, but by collaborating with experts in other fields and developing innovative solutions.
Second, computational thinking can bring careful, logical approaches to problem solving and an understanding of the power of abstraction to many enterprises. The ability to think logically and to develop abstractions is applicable even if one does not ultimately write those solutions in a programming language.
One might also wonder what value the liberal arts bring to a computer science education. We believe strongly that the communication skills and the ability to think broadly about issues set our graduates apart from students from more technical institutions. In fact, our graduates have gone off to many top graduate schools, including Carnegie Mellon, Stanford, MIT and Brown. Graduate schools are very happy to have our students who can think critically about problems, and read, write and speak better than many other beginning graduate students.
Furthermore, it is citizens who are well versed in both computer technology and the social sciences who are needed to guide our country through the complex issues of security and privacy, electronic voting, net neutrality and other social issues

Monday, 22 June 2015

10 Skills computer science students should have

1) Be logical
When computer science professor James O'Dell was asked what the important basics to master for computer science were, the first thing he said was to have a good foundation in logic.
“It really does go a long way,” he said. “When you are discreet with logic, it works well in developing the skills needed for algorithms and coding when it comes to computer science.”
2) Be mathematic 
Math is also an important factor in computer science, O'Dell said. 
“In every way, computer science is based around a mathematical foundation,” he said. “So when you’re programming functions and commands into computers, you need to understand the basis of all of that is in mathematics.”
3) Challenge yourself
One thing that can help an aspiring computer specialist is by testing in real-life technical situations, said Matthew Wright, computer science associate professor. He said people can seek these opportunities out on the Internet.
“I really recommend that people try TopCoder,” Wright said. TopCoder is an online website that holds weekly competitions to see who is the most skilled in computer programming.
“There’s many more like it out there on the Internet,” Wright said.
4) Get involved with a group
Nothing develops skills more than hanging around a group of friends who shares the same interests, Wright said. 
“Getting involved with a group of that caliber really develops your skills,” Wright said. “It’s much better to learn with a group of friends, learning the same technical skills, than it is a teacher lecturing in a class.”
5) Be calm in stressful environments
One thing that computer engineering senior Sean Pierce recommends is being able to process large amounts of technical information quickly.  
“The computer can be a toy, not just a tool,” Pierce said. “One should choose a field where one has a natural passion, and those who tinkering with their computer will probably be comfortable working with it professionally."
6) Be creative
Being a computer expert doesn’t really mean you are restricted to one single method or practice. Being a computer expert means branching out and always striving for the impossible.
“Nothing in computers is ever really isolated,” Pierce said. “It is important to have a general breadth of computer knowledge, because computer scientists often have to develop interesting solutions to interesting problems.”
7) Branch out
Computer science alumnus Patrick Baggett said that to succeed as a computer genius, a person needs to be diverse.
“You need to learn software engineering, how computers work, how operating systems work, as well as countless programming languages,” Baggett said.  
Pierce agreed with Baggett and followed up on his own examples.  
“A famous misquote from Edsger Dijkstra was, ‘Computer science is no more about computers than astronomy is about telescopes,’ meaning that computers are our tools, and while we are experts at using our tools, they do not define the field as a whole,” Pierce said. 
8) Read and write a lot of code 
While it doesn’t sound fun to be going through countless streams of code and data, Pierce said that it is a necessity in order to stay in the computer science workforce.
“Your career will require it,” he said. “Due to technology becoming exponentially complex, one must continuously update their skills to stay competitive within the field." 
9) Understand your tools
“You need to understand how your tools work,” Baggett said. “You need not only know what a compiler, linker, assembler, interpreter and web browser is, but what they do for you to succeed.”
10) Learn from failure, then quickly move on
“You need to have a business mindset,” Pierce said. “Even though business majors are our natural enemies and there is typically a difference in ethics, having a business perspective is incredibly valuable.”

Sunday, 21 June 2015

10 Best Programming Languages of 2015

1. Java

Java is considered as the perfect language for the developers and programmers to learn. Currently it is the top-most programming language and has grabbed the highest position with Android OS yet again, though it was a bit down a few years ago. Java can be utilized for mobile-based applications, enterprise level purpose, for creating desktop applications, and for establishing Android apps on tablets and smartphones.

2. PHP

The web developers should learn about PHP or Hypertext Preprocessor, a well-known programming language. With the help of PHP, you can enlarge a web app very quickly and effortlessly. PHP is the actual foundation of many strong content management systems, for example, WordPress. PHP is really a valuable programming language for the developers and programmers.

3. JavaScript

While you are expanding your site, JavaScript is extremely functional as this language can immensely assist you in generating communication for your website. You can utilize various in style frameworks in JavaScript for constructing superb user interface. When you’re into web development, it’s very important to known about JavaScript for making interactive web pages. JavaScript is applied for including animations on the web pages, loading fresh images, scripts or objects on web page, and craft hugely responsive user interfaces.

4. Python

For becoming skilled at all-in-one language, you should begin learning Python language that has the ability to expand web apps, data analysis, user interfaces, and many more, and frameworks are also available for these tasks. Python is utilized by bigger companies mostly that can evaluate vast data sets, thus this is a huge chance to learn it and be a Python programmer.

5. Objective-C

If you are the one who is interested on constructing apps for iOS, then you have to know about Objective-C language efficiently. The most preferred choice for all the web developers is Objective-C. When you have learnt Objective-C, you can begin applying XCode that is known to be the authorized software development tool from Apple. Thus you can quickly produce iOS app that can be noticeable in App Store.

6. Ruby

Another popular programming language is Ruby and Ruby on Rails. This can be learnt easily, and also very strong and clear-cut. If you’ve small time in hand and still want to craft any project, then you can surely utilize Ruby language. This programming language is applied massively for web programming, and hence turned out to be the ideal selection for the beginner companies.

7. Perl

Perl is also a well-accepted programming language that offers distinct tools for various obscure setbacks such as system programming. Though this programming language is a bit puzzling, but it is really a strong one that you can learn for this year, and renew your knowledge. Perl is mainly used for sites and web app expansion, desktop app development and system administration, and test automation that can be applied for testing databases, web apps, networking devices, and many more.

8. C, C++ and C#

You can increase your knowledge by learning about C this year that is unique programming language. Being the oldest, it should be learnt firstly when you start up, and it is mainly applied in forming different softwares.
C++ or C plus plus is a bit more progressive than C, and utilized immensely in forming hardware speeded games. It is an ideal selection for strong desktop software as well as apps for mobiles and desktop. Known to be the strongest language, C++ is applied in vital operating systems, such as Windows.
After learning these 2, you can go ahead in knowing about C# language. It won’t be difficult for you to get accustomed with C# after knowing C and C++. C# is actually the prime language for Microsoft applications and services. While executing with .Net and ASP technologies, you are required to be familiar with the C# accurately.

9. SQL

When you are executing on databases such as Microsoft SQL server, Oracle, MySQL, etc, you should be aware of SQL programming language or Standard Query Language. From this language, you can achieve the proficiency of acquiring the needed data from big and multifaceted databases.

10. Swift

Swift is reflected upon as the trendiest program language for expanding apps for Apple products. This language can be utilized by you for building up apps for iOS activated devices and Apple’s MAC in quick and simple method. When you are keen to expand a superb iOS application, then it is better for you to gain knowledge of Swift programming language.
Hence, the above programming languages are known to be the best ones of 2015. So the developers and programmers should ensure that they’re updated regarding them. Knowing such programming languages will certainly take them to a greater level altogether in their career!



Back-end (Server-side) table in most popular websites
WebsitesASP.NETCC++DErlangGoHackJavaJavaScriptPerlPHPPythonRubyScalaXhp
Google.comNoYesYesNoNoYesNoYesNoNoNoYesNoNoNo
YouTube.comNoYesYesNoNoYesNoYesNoNoYesYesNoNoNo
Facebook.comNoNoYesYesYesNoYesYesNoNoYesYesNoNoYes
YahooNoNoNoNoNoNoNoNoYesNoYesNoNoNoNo
Amazon.comNoNoYesNoNoNoNoYesNoYesNoNoNoNoNo
Wikipedia.orgNoNoNoNoNoNoNoNoNoNoYesNoNoNoNo
Twitter.comNoNoYesNoNoNoNoYesNoNoNoNoYesYesNo
BingYesNoNoNoNoNoNoNoNoNoNoNoNoNoNo
eBay.comNoNoNoNoNoNoNoYesYesNoNoNoNoNoNo
MSN.comYesNoNoNoNoNoNoNoNoNoNoNoNoNoNo
Microsoft
Linkedin.comNoNoNoNoNoNoNoYesYesNoNoNoNoYesNo
PinterestYes
Ask.com
Wordpress.comNoNoNoNoNoNoNoNoNoNoYesNoNoNoNo