Computer science internships give students studying computer science a valuable opportunity to practice and improve their skills in a professional environment. Such internships come in a variety of different forms, ranging from basic information technology work to complex software engineering internships. Some internships involve helping professors at universities with theoretical work while others might be based at software firms or at other companies, large or small. Some computer science internships, particularly those based at large, successful software firms, are paid while others, such as those based at smaller firms, may be unpaid or might only offer a small cost-of-living stipend. Internships are commonly available to undergraduate and graduate college students, but sometimes are available to postgraduates and to high school students as well.
Most computer science internships, particularly those offered by software development companies or by companies that produce complex hardware such as central processing units and video cards, are generally intended to offer practical job experience in computer science. In such internships, interns work closely with professionals in the field and help with day-to-day tasks such as programming, testing, and debugging. In some computer science internships, the intern works on a collaborative project while in others he is given his own project on which to work.
Computer science internships may also take place in academia, giving interns a chance to work with professors on theoretical issues in computer science. Computer science is a rapidly growing field in both business and academia, so opportunities to work on cutting edge research in academia are relatively abundant. Common areas of research include artificial intelligence, cryptography, and the development of methods to apply computer technology to mathematical problems. Whether or not a student is paid for an academic computer science internship generally depends on the amount of funding available to the professor or his laboratory.
Not all computer science internships take place at companies doing computation-based work or with college professors working on computational theory. Computer science has applications in fields as diverse as linguistics, biology, and physics, so individuals skilled in computer science techniques are in high demand across the board. A student of computer science could find an internship in a biology lab working on a bioinformatics project, for instance, or work with a professor studying computational linguistics. One highly regarded computer science skill is the ability to apply computational techniques to diverse problems whether or not they are directly connected to the field of computer science.