An algorithm specialist is a computer scientist who researches and designs algorithms for academic and real-world applications. Algorithms are sequences of instructions that perform different types of tasks, and they can be categorized by how long they take to execute. A person who researches algorithms spends a great amount of time trying to find ways to substitute faster-running sequences of instructions for sequences that make an algorithm complicated.

### How Algorithms Are Analyzed

The slowest algorithms require an exponential number of steps in relation to the number of input values. The fastest algorithms can be executed in some constant number of steps, and they aren’t affected by the number of input values. In algorithm design, the number of input values is represented by the variable n, and sometimes additional variables are used for algorithms whose running times depend on the sizes of more than one set of input values. Exponential algorithms typically run in some order of O(C^n) time complexity, where C is a constant and n is the variable number of input values. For example, a simplistic brute-force algorithm for finding a password has to process n combinations of 256 ASCII characters, so it runs in O(256^n) time.

One of the most important areas of algorithm research is the problem of P versus NP, or polynomial-time algorithms versus nondeterministic polynomial-time algorithms. There is a $1 million prize being offered to anyone who can prove that P is or is not NP. This prize has been on offer for several decades, and so far, none of the smartest computer scientists have figured out a way to prove it. If it can be proved that they’re the same, then functions such as the brute-force password crack could run in polynomial time complexity, or O(n^C), where C is any constant.

### Computer Science Research Work Environment

Becoming an algorithm specialist usually requires a doctoral degree. These scientists design programs to do sophisticated work, such as automated financial trading, artificial intelligence, data mining, physics simulations and quantum computing. Computer researchers can be employed by universities or by companies that invest in algorithm technology, such as IBM and Google. A famous example of the work of these scientists is the Watson computer program that competed on Jeopardy in 2011. IBM developed Watson for the purpose of playing against humans on Jeopardy, and it succeeded in beating two former first-place Jeopardy champions.

Algorithm researchers are also employed by banks and investment funds to create automated trading software that reduces the risk of making hundreds or thousands of trades for mutual funds and other types of investments. According to the U.S. Bureau of Labor Statistics, these researchers earned a median annual salary of $102,190 in 2012, and the industry was expected to grow by 15 percent over the next ten years. In the development of computer technology, algorithm research is equally as important as hardware innovation because faster algorithms allow existing hardware to work more efficiently. Currently, developments in software are significantly greater than hardware developments.

Researching algorithms takes a great love of mathematics and quantitative problem solving. Getting a PhD usually takes six to eight years, and a computer science PhD is one of the most difficult degrees to get. If you have a passion for discrete mathematics and want to make breakthroughs in computer science, consider becoming an algorithm specialist.