Awesome Programmers Awesome Build Status

awesomeprogrammers.com

A collection of software engineers that deserve to be in this collection. They are the most awesome programmers in history. Lets give them some respect.

Undoubtedly, there are some great candidates that I've overlooked. If you see a programmer, active today or from the past, that you think should be included submit a new issue.

Table of Contents

Databases

Algorithms / Datatypes

Cryptography

Artificial Intelligence

  • Alan Turing: The father of artificial intelligence, the creator of the Turing Test standard for which a machine's ability to exhibit intelligent behavior is measured, and pioneered concepts of machines computing according to a set of rules.
  • Marvin Minsky: Helped establish the principle concepts of artificial intelligence and co-founder of the Massachusetts Institute of Technology's AI laboratory
  • John McCarthy: One of the founders for the discipline of artificial intelligence and coined the term "artificial intelligence".
  • Allen Newell: The co-creator of two of the earliest Artificial Intelligence programs, the Logic Theorist developed to imitate the problem solving skills of humans and the General Problem Solver .
  • Herbert A. Simon: The co-creator of two of the earliest Artificial Intelligence programs, the Logic Theorist developed to imitate the problem solving skills of humans and the General Problem Solver .
  • Cliff Shaw: The co-creator of two of the earliest Artificial Intelligence programs, the Logic Theorist developed to imitate the problem solving skills of humans and the General Problem Solver .
  • Christopher Strachey: The creator of the first functional artificial intelligence program for playing checkers.
  • Nathaniel Rochester: He is sometimes considered to be the founder in the academic field of artificial intelligence by organizing a group in IBM focused on the subject. This group later evolved into the Dartmouth Conferences, the seminal event in the artificial intelligence.
  • Herbert Gelernter: The co-author of the paper "Intelligent Behavior in Problem-Solving Machines" to describe a theorem prover in geometry to exhibit intelligent behavior in machines.
  • Oliver Selfridge: The "Father of Machine Perception" and author of important paper "Pandemonium" introducing the first pattern recognition model Pandemonium architecture and the aspect oriented programming paradigm.
  • Arthur Samuel: The creator of the first self-learning program in artificial intelligence Samuel Checkers.
  • Margaret Masterman: The co-creator of semantic nets for machine translation pioneering the field of computational linguistics.
  • Ray Solomonoff: The creator of universal Bayesian inference for inductive prediction, laying the foundation for mathematical theory of aritifical intelligence.
  • Edward Feigenbaum: The chief developer of the first expert system Dendral primarily used to explore induction in problems for the scientific commmunity, and author of the first articles of artificial intelligence "Computers and Thought".
  • Leonard Uhr: The co-author of significantly valuable paper "A Pattern Recognition Program That Generates, Evaluates, and Adjusts Its Own Operators" describing one of the first machine learning programs.
  • Raj Reddy: The co-creator of early robotic systems like the Hearsay 1 that demonstrated advanced language speaking, and co-creator of many innovative artificial intelligence systems like the "blackboard model".
  • Seymour Papert: The researcher and author with Marvin Minsky of Perceptrons used in artificial neural networks, and the co-director of the MIT Artificial Intelligence Lab.
  • Wally Feurzeig: The creator of the first intelligent computer-assisted instruction system "MENTOR" using a set of rules for problem-solving.
  • Richard Greenblatt: The creator of the MacHack computer chess-playing program which became the first to win against a human opponent in tournament play.
  • Frank Rosenblatt: The creator of the Mark 1 Perceptron neural network device generally recognized as a forerunner to artificial intelligence.
  • Joel Moses: The co-creator of the Macsyma computer algebra system that demonstrated the use of symbolic reasoning for integration problems and became the first successful knowledge-based mathematical program.
  • Roger Schank: The founder of Conceptual dependency theory, a natural language understanding model used in artificial intelligence systems, and founder of computer reasoning process CBR (Case-based reasoning).
  • Yorick Wilks: The early pioneer of the algorithmic method "Preference Semantics" used to computationaly interpret sentences in machine translation systems and in the field of word sense disambiguation.
  • Jaime Carbonell: The creator of the "Scholar" semantic net based program for computer assisted instruction, the creator of "MMR (maximal marginal relevance)" technology for summarizing text in search engines, and founder of the LTI (Language Technologies Institute) Carnegie Mellon University division focused on natural language processing.
  • Feng-hsiung Hsu: The creator of the IBM Deep Blue chess machine showing ability to defeat Grandmaster chess players in tournament play.
  • Andrew Ng: The co-founder of Google Brain research project where one of the first applications of the deep learning model was applied and the co-developer of Robot Operating System.
  • Jeff Dean: The co-founder of Google Brain research project which is used for Android's speech recognition system, photo search and video recommendations.
  • Judea Pearl: The creator of the highly important Bayesian networks probabilistic graphical model and the principal inference algorithms within the model. He is also the developer of a theory for casual inference.
  • Jacek Karpiński: The co-creator of one of the first machine learning algorithms for character and image recognition.
  • Gerald Jay Sussman: The creator of artificial intelligence based CAD technology, the contributor to AI research like Debugging Almost-Right Plans and dependency-based backtracking.

Tools

Operating Systems

  • Dennis Ritchie: The co-creator of the Unix operating system family that inspired the architecture of many modern operating systems like Linux.
  • Ken Thompson: The co-creator of the Unix operating system family and one of the original developers for the Plan 9 operating system.
  • Rob Pike: The co-creator of Plan 9 operating system and the Inferno operating system.
  • Linus Torvalds: The creator of the Linux Operating System Kernel and the Git distributed version control system.
  • Brian Kernighan: One of the original developers of the Unix operating system family, often credited to coin the name.
  • Dave Cutler: The co-creator of Windows NT operating system family which it's kernel is still the foundation of the modern Microsoft operating system.
  • Ian Murdock: The creator of one of the most popular Linux operating system distribution Debian.
  • Douglas McIlroy: The creator of Unix / Linux feature Pipeline that chains a sequence of process together with a pipe character, the creator of Unix based data comparison tool diff utility, and the creator of the Unix based listing command sort.
  • Russ Cox: The core developer of the Plan 9 operating system, and the core developer of the Go programming language.
  • Theo de Raadt: The creator of OpenBSD, focused on portability, standardization, correctness, proactive security and integrated cryptography.
  • Robert Creasy: The project developer for the first full virtualization hypervisor, the IBM CP-40

Development Frameworks

Programming Languages

Theory

  • Edsger W. Dijkstra: Led the Structured Programming movement helping set standards for quality software development and eliminating harmful practices like the GOTO statement. He also introduced the concepts of "recursion" and "stack" with the creation of ALGOL 60 compiler.
  • Alan Kay: He helped pioneer the idea of object-oriented programming and helped create the Smalltalk language originally used for graphical interfaces.
  • Maurice Wilkes: The designer of EDSAC, the first computer with an internally stored program. Also helped define concepts like microprogramming, symbolic labels and macros.
  • Tony Hoare: The author of influential paper "An axiomatic basis for computer programming", and the creator of the influential language Communicating sequential processes for describing patterns of interaction in concurrent systems.
  • Allen Newell: Along with Herbert Simon, he helped create Information Processing Language (IPL) which introduced the concept of list processing and often cited as the first functional programming language.
  • Herbert A. Simon: Along with Allen Newell, he helped create Information Processing Language and the Heuristic Compiler, the first system with capabilities for automatic programming.
  • Ivan Sutherland: The first to define the notion of "objects" and "instances" during the development of Sketchpad.
  • Peter Naur: The co-creator of the influential programming language Algol 60 introducing nested function with lexical scope, and the co-creator of the Backus-Naur form one of the main notation techniques for context free grammars used to describe syntax of programming languages.
  • Jean-Yves Girard: One of the discoverers of System F, the polymorphic lambda calculus that forms the theoretical basis for Haskell and ML.
  • John C. Reynolds: One of the discoverers of System F, the polymorphic lambda calculus that forms the theoretical basis for Haskell and ML.
  • Barbara Liskov: The co-creator of the important object-oriented subtyping definition Liskov substitution principle and the co-creator of CLU programming language that introduced key features like abstract data types, iterators and use of classes with constructors.
  • Robin Milner: The creator of ML functional programming language, the first language to use a polymorphic type inference alongside type-safe exception handling, and the creator of concurrency theory CCS (Calculus of communicating systems).
  • Christopher Strachey: The co-creator of Denotational semantics or Scott–Strachey semantics formalizing the definitions of programming languages by creating mathematical denotations describing expressions from the language.
  • Dana Scott: The co-creator of Denotational semantics or Scott–Strachey semantics formalizing the definitions of programming languages by creating mathematical denotations describing expressions from the language.
  • Noam Chomsky: The creator of the Chomsky hierarchy, a containment heirarchy for classes of formal grammars.
  • Seymour Ginsburg: The creator of the Abstract family of languages Theory, and proved languages like ALGOL are context-free.

Compilers

  • Grace Hopper: The inventor of the A-0 System, often considered as the first compiler but functioned as a loader for Assembly resulting to the development of higher level programming languages like COBOL.
  • John Backus: The co-creator of the first high-level compiled programming language FORTRAN and its compiler, often credited as being the first optimizing compiler and fully complete compiler.
  • Frances E. Allen: The author of the paper "Program Optimization" that laid the basis for systematic analysis of computer programs, the author of "Control Flow Analysis" that uses intervals to analyze data flow, and the co-author of the paper "A Catalog of Optimizing Transformations" which is one of the main analysis strategies used in optimizing compilers.
  • Richard Matthew Stallman: The creator of the GCC (GNU Compiler Collection) system which has been adopted as the standard compiler system by many operating systems.
  • Nathaniel Rochester: The creator of the first assembler, translating assembly code into byte code for the first mass-produced computer that he also created, the IBM 701.
  • Lois Haibt: The co-creator of the first high-level compiled programming language FORTRAN and its compiler.
  • Alon Zakai: The creator of emscripten, the LLVM to JavaScript compiler.

Computer Graphics

Computer Architecture / Theory

  • Alan Turing: The creator of the Turing machine also known as the "automatic machine" because of its ability to automate sets of mathematical operations at a time when computing process was all handled by humans. This important discovery led to the fundamental principles of modern computing directly inspiring most digital systems including the Von Neumann architecture.
  • Kurt Gödel: The creator of Gödel's incompleteness theorems often considered to be the foundation of theoretical computer science and inspiration to Turing and Church, the creator of universal formal languages and the limits of proof and computation, and the creator of the proof for axiomatized arithmetic to not be both logically consistent and complete in first-order predicate calculus.
  • Charles Babbage: The creator of the concept for a programmable general-purpose computer with the design of the Analytical Engine and the creator for a prototype for a less powerful mechanical calculator .
  • Edsger W. Dijkstra: The first to publish papers in the field of concurrent programming and distributed programming while discovering concepts like mutual exclusion and the semaphore.
  • John von Neumann: He created the universally important von Neumann architecture that describes the design for a digital computer that continues to be the basis of modern computers with breakthrough concepts like shared address space for memory. He also started the field of cellular automata and is considered to be the creator of the first computer virus while studying self-replicating programs.
  • Leslie Lamport: The creator of the industry standard Sequential consistency memory model, the creator of "Atomic and regular registers" that helps solve semantic problems when multiple resources interact to shared data, the creator of of distributed computing paradigm State machine replication for building fault-tolerance by coordinating commands across replicated servers, and the co-discoverer of the Byzantine fault tolerance failure definitions.
  • Alonzo Church: The creator of mathematical logic system and computation model to simulate single-taped Turing machines called Lambda Calculus, and the co-creator of the Church–Turing thesis formalizing the definitions of computable functions.
  • Claude Shannon: Known as "the father of information theory", he wrote the seminal paper "A Mathematical Theory of Communication" explaining that information can be reduced and encoded as bits to essentially discover the field of information theory and entropy. He is also the author of an important paper that became the foundation of digital circuit design, and the creator of the Signal-flow graph.
  • Ada Lovelace: The creator of mathematical operations for Charles Babbage's mechanical machines now recognized as being one of the first algorithms for a machine so is now considered to be one of the first computer programmers.
  • J. C. R. Licklider: The creator of concepts for modern-style interactive computing, and an early researcher at Arpanet for concepts of a connected network like the internet.
  • Stephen Cole Kleene: The creator of Regular expression pattern matching mechanism, and the creator of mathematical logic branch recursion theory
  • John McCarthy: Developed the concept of time-sharing for computers with multiprogramming.
  • John Cocke: The creator of the Reduced Instruction Set Computing (RISC) architecture that optimized the basic set of computer instructions appropriately for the compiler to produce a high performance pipelined processor.
  • Fernando J. Corbató: The co-author of a paper that describes one of the earliest time-sharing computer systems CTSS (compatible time-sharing system) and the original creator of the influential time-sharing operating system Multics which pioneered many concepts widely adopted by almost all operating systems like Unix.
  • Per Brinch Hansen: The creator of the RC 4000 multiprogramming system introducing the concept of operating system kernels and microkernel architectures with the separation of policy and mechanism, the co-createor of the synchronization construct for threads with mutex and blocking ability known as the monitor, the first to implement a remote procedure call, and the creator of the "Distributed Processes" language for distributed systems using RPC for external requests.
  • Gerard Salton: The creator of vector space model for information retrievel.
  • Sophie Wilson: The co-creator of the Acorn RISC Machine (ARM) architecture, the most widely used model for modern smartphones, and the creator of the BBC Basic language for the acorn systems.
  • Tommy Flowers: The creator of the Colossus computer, the first programmable digital computing systems.
  • Fred Brooks: The co-creator of the System 360 computer that introduced 8-bit byte addressing and first to emphasize the distinction of "system architecture" and implementation.
  • George Boole: The creator of Boolean Algebra mathematical logic which has inspired the basis of logic gates and computer science.
  • Michael O. Rabin: The co-creator of the Nondeterministic finite automaton a kind of state machine that has several possible transitions out of each state.
  • Dana Scott: The co-creator of the Nondeterministic finite automaton a kind of state machine that has several possible transitions out of each state.
  • Margaret Hamilton: The creator of important concepts in asynchronous systems, priority scheduling, and end-to-end testing.
  • Herman Hollerith: The creator of the punch-card Tabulating machine sparking the era of automatic data processing systems.
  • Joseph Marie Jacquard: The creator of Jacquard loom one of the first punch card controlled programmable mechanized loom.
  • Nikolay Brusentsov: The creator of a computer using ternary logic called the Seturn.
  • Vannevar Bush: The creator of what influenced hypertext, Memex, originally conceived to store compressed information.
  • Paul Baran: The co-creator of the packet switched computer network for an early prototype of internet technology at ARPANET.
  • Jean Bartik: The co-developer of early "stored program" computers and considered to be one of the first computer programmers, using the ENIAC, a vacuum tube computer during a time when "programming" meant using cables, dials, and switches to physically rewire the machine.
  • Richard Hamming: Defined numerical methods, automatic coding systems, and error-detecting and error-correcting codes
  • Nathan Marz: The author of the data-processing Lambda architecture designed to use stream-processing or batch processing to handle data at a large scale.
  • Eric Brewer: The original writer of the CAP theorem stating that a distributed computer system cannot simultaneously provide the guarantees Consistency, Availability and Partition Tolerance.
  • John Atanasoff: He is known as the father of the computer. With the help of one of his students Clifford E. Berry, in Iowa State College, during the 1940s, he created the ABC (Atanasoff-Berry Computer) that was the first electronic digital computer.

Protocols / Standards

Development Processes

Analysis / Verification

Books / Papers

Miscellaneous

Hardware

  • Glenford J. Myers: The author of the original patent for register scoreboarding on a microprocessor chip