Monday, June 15, 2009

Does the programming language decide the speed and efficiency of code? Many programmers believe that some languages are more efficient than others, but they are only partly correct. Programmers can sometimes attain more performance from code when they use a lower level language; however, the gained speed is negligible when it is compared to the speed of the algorithm being used. For example, a master assembly programmer could optimize an O(n²) algorithm so that it takes full advantage of every ounce of computer power, but he or she could never outperform an O(n) algorithm written by a new visual basic programmer. The selection of a programming language does not matter for performance as much as the underlying mathematics that a programmer uses.

Mathematics is one of the oldest professions, and it has been maintained and extended by some of the greatest minds in human history. Like many sciences, mathematics gave birth to computer science, and it is used by computer scientist to solve problems and to convey research formally. Mathematics is the beating heart of computer science, and it is the most important language for a programmer to know. Although programmers can reference highly polished algorithms from books, they can have trouble determining where to use them if they do not have a mathematical background. Mathematics provides the tools that programmers need to measure the efficiency and usefulness of algorithms. Since every algorithm has advantages and disadvantages, it is very important for programmers to select the appropriate algorithm to solve a problem. If programmers select poor algorithms for problems, they will develop slower and less efficient software even though they may be using a lower level language. Programmers need to be able to measure and judge the efficiency of algorithms so that they can write high performance software.

In addition to performance, mathematics eduction teaches programmers essential problem solving skills that are useful for programming. Programmers can translate and use many of the formulas of mathematics in their code. For example, programmers can use graph theory to design special data structures or messaging systems for use in their software. Programmers also learn many mathematical rules that they can apply to aid in solving problems. Programmers with knowledge of mathematics are better programmers because they have essential problem solving skills and access to a large array of algorithms.

Besides the educational benefits, mathematics contains powerful tools that programmers can use to check their algorithms for safety and quality. Programmers can use mathematics to verify the design of their code so that they can have mathematical guarantees for security. Programmers can also use mathematics to rigorously prove their code works so that they do not have surprising errors after they release their software. Since society is becoming more dependent on software, programmers will be under increasing pressure to produce secure and reliable code, and mathematical knowledge is essential for programmers to accomplish writing rigorous code.

In Conclusion, programmers should learn and practice mathematics so that they can write more secure, reliable, and fast applications. Programmers who master mathematics can better test their algorithms for security issues, and they can better test their software for quality. Programmers can also use mathematical analysis on their algorithms so that they can produce faster code. In addition, programmers learn essential problem solving skills from mathematics that they need to solve new problems. Mathematics is the heart of computer science, and programmers need to know it to better their profession.