See: Spring Framework, Java Bibliography
- Spring Boot Messaging: Messaging APIs for Enterprise and Integration Solutions 1st ed. Edition, Publisher : Apress; 1st ed. edition (May 4, 2017), B071VG289T ISBN-13: 978-1484212257
See: Spring Framework, Java Bibliography
See also: List of pioneers in computer science and Timeline of the History of Computers
” (WP)
” (WP)
See also: Timeline of the History of Computers
” (WP)
This article presents a list of individuals who made transformative breakthroughs in the creation, development and imagining of what computers could do.
To put the list in chronological order, click the small “up-down” icon in the Date column. The Person column can also be sorted alphabetically, up-down.
Achievement date | Person | Achievement |
---|---|---|
830~ | Al-Khwarizmi | The term “algorithm” is derived from the algorism, the technique of performing arithmetic with Hindu–Arabic numerals popularised by al-Khwarizmi in his book On the Calculation with Hindu Numerals.[1][2][3] |
1944 | Aiken, Howard | Conceived and codesigned the Harvard Mark I. |
1970, 1989 | Allen, Frances E. | Developed bit vector notation and program control-flow graphs. Became the first female IBM Fellow in 1989. In 2006, she became the first female recipient of the ACM’s Turing Award. |
1939 | Atanasoff, John | Built the first electronic digital computer, the Atanasoff–Berry Computer, though it was neither programmable nor Turing-complete. |
1822, 1837 | Babbage, Charles | Originated the concept of a programmable general-purpose computer. Designed the Analytical Engine and built a prototype for a less powerful mechanical calculator. |
1954, 1963 | Backus, John | Led the team that created FORTRAN (Formula Translation), the first practical high-level programming language, and he formulated the Backus–Naur form that described the formal language syntax. |
1964 | Baran, Paul | One of two independent inventors of the concept of digital packet switching used in modern computer networking including the Internet.[4][5] Baran published a series of briefings and papers about dividing information into “message blocks” and sending it over distributed networks between 1960 and 1964.[6][7] |
1874 | Baudot, Émile | A French telegraphic engineer patents the Baudot code, the first means of digital communication.[8] The modem speed unit baud is named after him. |
1989, 1990 | Berners-Lee, Tim | Invented World Wide Web. With Robert Cailliau, sent first HTTP communication between client and server. |
1966 | Böhm, Corrado | Theorized of the concept of structured programming. |
1847, 1854 | Boole, George | Formalized Boolean algebra, the basis for digital logic and computer science. |
1947 | Booth, Kathleen | Invented the first assembly language. |
1969, 1978 | Brinch Hansen, Per | Developed the RC 4000 multiprogramming system which introduced the concept of an operating system kernel and the separation of policy and mechanism, effectively the first microkernel architecture.[9] Co-developed the monitor with Tony Hoare, and created the first monitor implementation.[10] Implemented the first form of remote procedure call in the RC 4000,[9] and was first to propose remote procedure calls as a structuring concept for distributed computing.[11] |
1959, 1995 | Brooks, Fred | Manager of IBM System/360 and OS/360 projects; author of The Mythical Man-Month. |
1908 | Brouwer, Luitzen Egbertus Jan | Founded intuitionistic logic which later came to prevalent use in proof assistants. |
1930 | Bush, Vannevar | Analogue computing pioneer. Originator of the Memex concept, which led to the development of Hypertext. |
1951 | Caminer, David | With John Pinkerton, developed the LEO computer, the first business computer, for J. Lyons and Co |
1978 | Cerf, Vint | With Bob Kahn, designed the Transmission Control Protocol and Internet Protocol (TCP/IP), the primary data communication protocols of the Internet and other computer networks. |
1956 | Chomsky, Noam | Made contributions to computer science with his work in linguistics. He developed Chomsky hierarchy, a discovery which has directly impacted programming language theory and other branches of computer science. |
1936 | Church, Alonzo | Made fundamental contributions to theoretical computer science, specifically in the development of computability theory in the form of lambda calculus. Independently of Alan Turing, he formulated what is now known as Church-Turing Thesis and proved that first-order logic is undecidable. |
1962 | Clark, Wesley A. | Designed LINC, the first functional computer scaled down and priced for the individual user. Put in service in 1963, many of its features are seen as prototypes of what were to be essential elements of personal computers. |
1981 | Clarke, Edmund M. | Developed model checking and formal verification of software and hardware together with E. Allen Emerson. |
1970 | Codd, Edgar F. | Proposed and formalized the relational model of data management, the theoretical basis of relational databases. |
1971 | Conway, Lynn | Superscalar architecture with multiple-issue out-of-order dynamic instruction scheduling. |
1967 | Cook, Stephen | Formalized the notion of NP-completeness, inspiring a great deal of research in computational complexity theory. |
1965 | Cooley, James | With John W. Tukey, created the fast Fourier transform. |
1965 | Davies, Donald | One of two independent inventors of the concept of digital packet switching used in modern computer networking including the Internet.[4][12] Davies conceived of and named the concept of packet switching in data communication networks in 1965 and 1966.[13][14] |
1962 | Dahl, Ole-Johan | With Kristen Nygaard, invented the proto-object oriented language SIMULA. |
1968 | Dijkstra, Edsger | Made advances in algorithms, pioneered and coined the term structured programming, invented the semaphore, and famously suggested that the GOTO statement should be considered harmful. |
1918 | Eccles, William and Jordan, Frank Wilfred | British physicists patent the Eccles–Jordan trigger circuit.[15] The so-called bistable flip-flop, this circuit is a building block of all digital memory cells. Built from Vacuum tubes, their concept was essential for the success of the Colossus codebreaking computer. |
1943, 1951 | Eckert, J. Presper | With John Mauchly, designed and built the ENIAC, the first modern (all electronic, Turing-complete) computer, and the UNIVAC I, the first commercially available computer. |
1981 | Emerson, E. Allen | Developed model checking and formal verification of software and hardware together with Edmund M. Clarke. |
1963 | Engelbart, Douglas | Best known for inventing the computer mouse (in a joint effort with Bill English); as a pioneer of human–computer interaction whose Augment team developed hypertext, networked computers, and precursors to GUIs. |
1973 | Thacker, Charles P. | Pioneering design and realization of the Xerox Alto, the first modern personal computer, and in addition for his contributions to the Ethernet and the Tablet PC. |
1971 | Faggin, Federico | Designed the first commercial microprocessor (Intel 4004). |
1974 | Feinler, Elizabeth | Her team defined a simple text file format for Internet host names. The list evolved into the Domain Name System and her group became the naming authority for the top-level domains of .mil, .gov, .edu, .org, and .com. |
1943 | Flowers, Tommy | Designed and built the Mark 1 and the ten improved Mark 2 Colossus computers, the world’s first programmable, digital, electronic, computing devices. |
1994 | Floyd, Sally | Founded the field of Active Queue Management and co-invented Random Early Detection which is used in almost all Internet routers. |
1879 | Frege, Gottlob | Extended Aristotelian logic with first-order predicate calculus, independently of Charles Sanders Peirce, a crucial precursor in computability theory. Also relevant to early work on artificial intelligence, logic programming. |
1880, 1898 | Sanders Peirce, Charles | Proved the functional completeness of the NOR gate. Proposed the implementation of logic via electrical circuits, decades before Claude Shannon. Extended Aristotelian logic with first-order predicate calculus, independently of Gottlob Frege, a crucial precursor in computability theory. Also relevant to early work on artificial intelligence, logic programming. |
1985 | Furber, Stephen Sophie Wilson | Are known for their work on creating ARM 32bit RISC microprocessor.[16] |
1958, 1961, 1967 | Ginsburg, Seymour | Proved “don’t-care” circuit minimization does not necessarily yield optimal results, proved that the ALGOL programming language is context-free (thus linking formal language theory to the problem of compiler writing), and invented AFL Theory. |
1931 | Gödel, Kurt | Proved that Peano arithmetic could not be both logically consistent and complete in first-order predicate calculus. Church, Kleene, and Turing developed the foundations of computation theory based on corollaries to Gödel’s work. |
1989 | Goldwasser, Shafi | Zero-knowledge proofs invented by Goldwasser, Micali and Rackoff. Goldwasser and Micali awarded the Turing Award in 2012 for this and other work. |
2011 | Graham, Susan L. | Awarded the 2009 IEEE John von Neumann Medal for “contributions to programming language design and implementation and for exemplary service to the discipline of computer science”. |
1953 | Gray, Frank | Physicist and researcher at Bell Labs, developed the reflected binary code (RBC) or Gray code.[17] Gray’s methodologies are used for error detection and correction in digital communication systems, such as QAM in digital subscriber line networks. |
1974, 2005 | Gray, Jim | Innovator in database systems and transaction processing implementation. |
1986, 1990 | Grosz, Barbara[undue weight? – discuss] | Created the first computational model of discourse, which established the field of research and influenced language-processing technologies. Also developed SharedPlans model for collaboration in multi-agent systems. |
1988, 2015 | Gustafson, John | Proved the viability of parallel computing experimentally and theoretically Gustafson’s Law. Developed high-efficiency formats for representing real numbers Unum and Posit. |
1971 | Hamilton, Margaret | Developed the concepts of asynchronous software, priority scheduling, end-to-end testing, and human-in-the-loop decision capability, such as priority displays which then became the foundation for ultra reliable software design. |
1950 | Hamming, Richard | Created the mathematical field of error-correcting code, Hamming code, Hamming matrix, the Hamming window, Hamming numbers, sphere-packing (or Hamming bound), and the Hamming distance.[18][19] He established concept of perfect code.[20][21] |
1972, 1973 | Thi, André Truong Trong and François Gernelle[undue weight? – discuss] | Invention of the Micral N, the earliest commercial, non-kit personal computer based on a microprocessor. |
1981, 1995, 1999 | Hejlsberg, Anders | Author of Turbo Pascal while at Borland, the chief architect of Delphi, and designer and lead architect of C# at Microsoft. |
2008, 2012, 2018 | Hinton, Geoffrey | Popularized and enabled the use of artificial neural networks and deep learning, which rank among the most successful tools in modern artificial intelligence efforts. Received the Turing Award in 2018 for conceptual and engineering breakthroughs that have made deep neural networks a critical component of computing.[22] |
1961, 1969, 1978, 1980 | Hoare, C.A.R. | Developed the formal language Communicating Sequential Processes (CSP), Hoare logic for verifying program correctness, and Quicksort. Fundamental contributions to the definition and design of programming languages. |
1968 | Holberton, Betty | Wrote the first mainframe sort merge on the Univac |
1889 | Hollerith, Herman | Widely regarded as the father of modern machine data processing. His invention of the punched card tabulating machine marks the beginning of the era of semiautomatic data processing systems. |
1952 | Hopper, Grace | Pioneered work on the necessity for high-level programming languages, which she termed automatic programming, and wrote the A-O compiler, which heavily influenced the COBOL language. |
1997 | Hsu Feng-hsiung | Work led to the creation of the Deep Thought chess computer, and the architect and the principal designer of the IBM Deep Blue chess computer which defeated the reigning World Chess Champion, Garry Kasparov, in 1997. |
1952 | Hurd, Cuthbert | Helped the International Business Machines Corporation develop its first general-purpose computer, the IBM 701. |
1945, 1953 | Huskey, Harry | Early computer design including contributions to the ENIAC, EDVAC, Pilot ACE, EDVAC, SEAC, SWAC, and Bendix G-15 computers. The G-15 has been described as the first personal computer, being operable by one person. |
1954, 1962 | Iverson, Kenneth | Assisted in establishing the first graduate course in computer science (at Harvard) and taught that course; invented the APL programming language and made contribution to interactive computing. |
1801 | Jacquard, Joseph Marie | Built and demonstrated the Jacquard loom, a programmable mechanized loom controlled by a tape constructed from punched cards. |
1206 | Al-Jazari | Invented programmable machines, including programmable humanoid robots,[23] and the castle clock, an astronomical clock considered the first programmable analog computer.[24] |
1953 | Spärck Jones, Karen[undue weight? – discuss] | One of the pioneers of information retrieval and natural language processing. |
1970, 1990 | Karnaugh, Maurice | Inventor of the Karnaugh map, used for logic function minimization. |
1973 | Karpinski, Jacek | Developed the first differential analyzer that used transistors, and developed one of the first machine learning algorithms for character and image recognition. Also was the inventor of one of the first minicomputers, the K-202. |
1970~ | Kay, Alan | Pioneered many of the ideas at the root of object-oriented programming languages, led the team that developed Smalltalk, and made fundamental contributions to personal computing. |
1957 | Kirsch, Russell Gray | Whilst working for the National Bureau of Standards (NBS), Kirsch used a recently developed image scanner to scan and store the first digital photograph.[25] His scanned photo of his three-month-old son was deemed by Life magazine as one the “100 Photographs That Changed The World.” |
1936 | Kleene, Stephen Cole | Pioneered work with Alonzo Church on the Lambda Calculus that first laid down the foundations of computation theory. |
1968, 1989 | Knuth, Donald | Wrote The Art of Computer Programming and created TeX. Coined the term “analysis of algorithms” and made major contributions to that field, including popularizing Big O notation. |
1974, 1978 | Lamport, Leslie | Formulated algorithms to solve many fundamental problems in distributed systems (e.g. the bakery algorithm). Developed the concept of a logical clock, enabling synchronization between distributed entities based on the events through which they communicate. Created LaTeX. |
1951 | Lebedev, Sergei Alekseyevich | Independently designed the first electronic computer in the Soviet Union, MESM, in Kiev, Ukraine. |
1670~ | Leibniz, Gottfried | Made advances in symbolic logic, such as the Calculus ratiocinator, that were heavily influential on Gottlob Frege. He anticipated later developments in first-order predicate calculus, which were crucial for the theoretical foundations of computer science. |
1960 | Licklider, J. C. R. | Began the investigation of human–computer interaction, leading to many advances in computer interfaces as well as in cybernetics and artificial intelligence. |
1987 | Liskov, Barbara | Developed the Liskov substitution principle, which guarantees semantic interoperability of data types in a hierarchy. |
1300~ | Llull, Ramon | Designed multiple symbolic representations machines, and pioneered notions of symbolic representation and manipulation to produce knowledge—both of which were major influences on Leibniz. |
1852 | Lovelace, Ada | An English mathematician and writer, chiefly known for her work on Charles Babbage’s proposed mechanical general-purpose computer, the Analytical Engine. She was the first to recognize that the machine had applications beyond pure calculation, and created the first algorithm intended to be carried out by such a machine. As a result, she is often regarded as the first to recognize the full potential of a “computing machine” and the first computer programmer. |
1909 | Ludgate, Percy | Charles Babbage in 1843 and Percy Ludgate in 1909 designed the first two Analytical Engines in history. Ludgate’s engine used multiplication as its basis (using his own discrete “Irish logarithms”), had the first multiplier-accumulator (MAC), was first to exploit a MAC to perform division, stored numbers as displacements of rods in shuttles, and had several other novel features, including for program control. |
1971 | Martin-Löf, Per | Published an early draft on the type theory that many proof assistants build on. |
1943, 1951 | Mauchly, John | With J. Presper Eckert, designed and built the ENIAC, the first modern (all electronic, Turing-complete) computer, and the UNIVAC I, the first commercially available computer. Also worked on BINAC(1949), EDVAC(1949), UNIVAC(1951) with Grace Hopper and Jean Bartik, to develop early stored program computers. |
1958 | McCarthy, John | Invented LISP, a functional programming language. |
1956, 2012 | McCluskey, Edward J. | Fundamental contributions that shaped the design and testing of digital systems, including the first algorithm for digital logic synthesis, the Quine-McCluskey logic minimization method. |
1986 | Meyer, Bertrand | Developed design by contract in the guise of the Eiffel programming language. |
1963 | Minsky, Marvin | Co-founder of Artificial Intelligence Lab at Massachusetts Institute of Technology, author of several texts on AI and philosophy. Critic of the perceptron. |
850~ | Banū Mūsā | The Banū Mūsā brothers wrote the Book of Ingenious Devices, where they described what appears to be the first programmable machine, an automatic flute player.[26] |
1950, 1960 | Nakamatsu Yoshirō | Invented the first floppy disk at Tokyo Imperial University in 1950,[27][28] receiving a 1952 Japanese patent[29][30] and 1958 US patent for his floppy magnetic disk sheet invention,[31] and licensed to Nippon Columbia in 1960[32] and IBM in the 1970s.[29][27] |
2008 | Nakamoto, Satoshi | The anonymous creator or creators of Bitcoin, the first peer-to-peer digital currency. Nakamoto’s 2008 white-paper introduced the concept of the blockchain, a database structure that allows full trust in the decentralized and distributed public transaction ledger of the cryptocurrency.[33] |
1934, 1938 | Nakashima Akira | NEC engineer introduced switching circuit theory in papers from 1934 to 1936, laying the foundations for digital circuit design, in digital computers and other areas of modern technology. |
1960 | Naur, Peter | Edited the ALGOL 60 Revised Report, introducing Backus-Naur form |
1945 | Neumann, John von | Formulated the von Neumann architecture upon which most modern computers are based. |
1956 | Newell, Allen | Together with J. C. Shaw[34] and Herbert Simon, the three co-wrote the Logic Theorist, the first true AI program, in the first list-processing language, which influenced LISP. |
1943 | Newman, Max | Instigated the production of the Colossus computers at Bletchley Park. After the war he established the Computing Machine Laboratory at the University of Manchester where he created the project that built the world’s first stored-program computer, the Manchester Baby. |
1962 | Nygaard, Kristen | With Ole-Johan Dahl, invented the proto-object oriented language SIMULA. |
500 BC ~ | Pāṇini | Ashtadhyayi Sanskrit grammar was systematised and technical, using metarules, transformations, and recursions, a forerunner to formal language theory and basis for Panini-Backus form used to describe programming languages. |
1642 | Pascal, Blaise | Invented the mechanical calculator. |
1952 | Perlis, Alan | On Project Whirlwind, member of the team that developed the ALGOL programming language, and the first recipient of the Turing Award |
1985 | Perlman, Radia | Invented the Spanning Tree Protocol (STP), which is fundamental to the operation of network bridges, while working for Digital Equipment Corporation. Has done extensive and innovative research, particularly on encryption and networking. She received the USENIX Lifetime Achievement Award in 2007, among numerous others. |
1964 | Perotto, Pier Giorgio[undue weight? – discuss] | Computer designer for Olivetti, designed one of the first electronic programmable calculators, the Programma 101[35][36][37] |
1932 | Péter, Rózsa | Published a series of papers grounding recursion theory as a separate area of mathematical research, setting the foundation for theoretical computer science. |
1995 | Picard, Rosalind[undue weight? – discuss] | Founded Affective Computing, and laid the foundations for giving computers skills of emotional intelligence. |
1936 | Post, Emil L. | Developed the Post machine as a model of computation, independently of Turing. Known also for developing truth tables, the Post correspondence problem used in recursion theory as well as proving what is known as Post’s theorem. |
1967–2011 | Ritchie, Dennis | With Ken Thompson, pioneered the C programming language and the Unix computer operating system at Bell Labs. |
1958–1960 | Rosen, Saul | Designed the software of the first transistor-based computer. Also influenced the ALGOL programming language. |
1910 | Russell, Bertrand | Made contributions to computer science with his work on mathematical logic (example: truth function). Introduced the notion of type theory. He also introduced type system (along with Alfred North Whitehead) in his work, Principia Mathematica. |
1975 | Salton, Gerard[undue weight? – discuss] | A pioneer of automatic information retrieval, who proposed the vector space model and the inverted index. |
1962 | Sammet, Jean E. | Developed the FORMAC programming language. She was also the first to write extensively about the history and categorization of programming languages in 1969, and became the first female president of the Association for Computing Machinery in 1974. |
1963, 1973 | Sasaki Tadashi | Sharp engineer who conceived a single-chip microprocessor CPU, presenting the idea to Busicom and Intel in 1968. This influenced the first commercial microprocessor, the Intel 4004; before Busicom, Intel was a memory manufacturer. Tadashi Sasaki also developed LCD calculators at Sharp.[38] |
1937, 1948 | Shannon, Claude | Founded information theory, and laid foundations for practical digital circuit design. |
1968, 1980 | Shima Masatoshi | Designed the Intel 4004, the first commercial microprocessor,[39][40] as well as the Intel 8080, Zilog Z80 and Zilog Z8000 microprocessors, and the Intel 8259, 8255, 8253, 8257 and 8251 chips.[41] |
1956, 1957 | Simon, Herbert A. | A political scientist and economist who pioneered artificial intelligence. Co-creator of the Logic Theory Machine and the General Problem Solver programs. |
1972 | Stallman, Richard | Stallman launched the GNU Project in September 1983 to create a Unix-like computer operating system composed entirely of free software. With this, he also launched the free software movement. |
1982 | Stonebraker, Michael | Researcher at MIT’s Computer Science and Artificial Intelligence Laboratory (CSAIL) who revolutionized the field of database management systems (DBMSs) and founded multiple successful database companies |
1979 | Stroustrup, Bjarne | Invented C++ at Bell Labs |
1963 | Sutherland, Ivan | Author of Sketchpad, the ancestor of modern computer-aided drafting (CAD) programs and one of the early examples of object-oriented programming. |
1967 | Thompson, Ken | Created the Unix operating system, the B programming language, Plan 9 operating system, the first machine to achieve a Master rating in chess, and the UTF-8 encoding at Bell Labs and the Go programming language at Google. |
1993 | Toh Chai Keong | Created mobile ad hoc networking; Implemented the first working wireless ad hoc network of laptop computers in 1998 using Linux OS, Lucent WaveLan 802.11 radios, and a new distributed routing protocol transparent to TCP/UDP/IP. |
1991 | Torvalds, Linus | Created the first version of the Linux kernel. |
1912, 1914, 1920 | Torres Quevedo, Leonardo | In 1912, Leonardo Torres Quevedo built El Ajedrecista (the chess player), one of the first autonomous machines capable of playing chess. As opposed to the human-operated The Turk and Ajeeb, El Ajedrecista was a true automaton built to play chess without human guidance. It played an endgame with three chess pieces, automatically moving a white king and a rook to checkmate the black king moved by a human opponent. In his work Essays on Automatics, published in 1914, Torres Quevedo formulates what will be a new branch of engineering: automation. This work also included floating-point arithmetic. In 1920, Torres Quevedo was the first in history to build an early electromechanical version of the Analytical Engine. |
1965 | Tukey, John W. | With James Cooley, created the fast Fourier transform. He invented the term “bit”.[42] |
1936 | Turing, Alan | Made several foundamental contributions to theoretical computer science, including the Turing machine computational model, the conceiving of the stored program concept and the designing of the high-speed ACE design. Independently of Alonzo Church, he formulated the Church-Turing thesis and proved that first-order logic is undecidable. He also explored the philosophical issues concerning artificial intelligence, proposing what is now known as Turing test. |
1950~ | Wang An | Made key contributions to the development of magnetic core memory. |
1955, 1960s, 1974 | Ware, Willis | Co-designer of JOHNNIAC. Chaired committee that developed the Code of Fair Information Practice and led to the Privacy Act of 1974. Vice-chair of the Privacy Protection Study Commission. |
1968 | Wijngaarden, Adriaan van | Developer of the W-grammar first used in the definition of ALGOL 68 |
1949 | Wilkes, Maurice | Built the first practical stored program computer (EDSAC) to be completed and for being credited with the ideas of several high-level programming language constructs. |
1970, 1978 | Wirth, Niklaus | Designed the Pascal, Modula-2 and Oberon programming languages. |
1875, 1875 | Verea, Ramón | Designed and patented the Verea Direct Multiplier, the first mechanical direct multiplier. |
1938, 1945 | Zuse, Konrad | Built the first digital freely programmable computer, the Z1. Built the first functional program-controlled computer, the Z3.[43] The Z3 was proven to be Turing-complete in 1998. Produced the world’s first commercial computer, the Z4. Designed the first high-level programming language, Plankalkül. |
1970 | Wilkinson, James H. | Research in numerical analysis to facilitate the use of the high-speed digital computer, having received special recognition for his work in computations in linear algebra and “backward” error analysis.[44] |
1973 | Bachman, Charles | Outstanding contributions to database technology.[45] |
1976 | Rabin, Michael O. | The joint paper “Finite Automata and Their Decision Problems,”[46] which introduced the idea of nondeterministic machines, which has proved to be an enormously valuable concept. Their (Scott & Rabin) classic paper has been a continuous source of inspiration for subsequent work in this field.[47][48] |
1976 | Scott, Dana | The joint paper “Finite Automata and Their Decision Problems,”[46] which introduced the idea of nondeterministic machines, which has proved to be an enormously valuable concept. Their (Scott & Rabin) classic paper has been a continuous source of inspiration for subsequent work in this field.[47][48] |
1978 | Floyd, Robert W. | Having a clear influence on methodologies for the creation of efficient and reliable software, and helping to found the following important subfields of computer science: the theory of parsing, the semantics of programming languages, automatic program verification, automatic program synthesis, and analysis of algorithms.[49] |
1985 | Karp, Richard M. | Contributions to the theory of algorithms including the development of efficient algorithms for network flow and other combinatorial optimization problems, the identification of polynomial-time computability with the intuitive notion of algorithmic efficiency, and, most notably, contributions to the theory of NP-completeness. |
1986 | Hopcroft, John | Fundamental achievements in the design and analysis of algorithms and data structures. |
1986 | Tarjan, Robert | Fundamental achievements in the design and analysis of algorithms and data structures. |
1987 | Cocke, John | Significant contributions in the design and theory of compilers, the architecture of large systems and the development of reduced instruction set computers (RISC). |
1989 | Kahan, William | Fundamental contributions to numerical analysis. One of the foremost experts on floating-point computations. Kahan has dedicated himself to “making the world safe for numerical computations. |
1989 | Corbató, Fernando J. | Pioneering work organizing the concepts and leading the development of the general-purpose, large-scale, time-sharing and resource-sharing computer systems, CTSS and Multics. |
1991 | Milner, Robin | 1) LCF, the mechanization of Scott’s Logic of Computable Functions, probably the first theoretically based yet practical tool for machine assisted proof construction; 2) ML, the first language to include polymorphic type inference together with a type-safe exception-handling mechanism; 3) CCS, a general theory of concurrency. In addition, he formulated and strongly advanced full abstraction, the study of the relationship between operational and denotational semantics.[50] |
1992 | Lampson, Butler W. | Development of distributed, personal computing environments and the technology for their implementation: workstations, networks, operating systems, programming systems, displays, security and document publishing. |
1993 | Hartmanis, Juris | Foundations for the field of computational complexity theory.[51] |
1993 | Stearns, Richard E. | Foundations for the field of computational complexity theory.[51] |
1994 | Feigenbaum, Edward | Pioneering the design and construction of large scale artificial intelligence systems, demonstrating the practical importance and potential commercial impact of artificial intelligence technology.[52] |
1994 | Reddy, Raj | Pioneering the design and construction of large scale artificial intelligence systems, demonstrating the practical importance and potential commercial impact of artificial intelligence technology.[52] |
1995 | Blum, Manuel | Contributions to the foundations of computational complexity theory and its application to cryptography and program checking.[53] |
1996 | Pnueli, Amir | Introducing temporal logic into computing science and for outstanding contributions to program and systems verification.[54] |
2000 | Yao, Andrew | Fundamental contributions to the theory of computation, including the complexity-based theory of pseudorandom number generation, cryptography, and communication complexity. |
1977 | Rivest, Ron | Ingenious contribution and making public-key cryptography useful in practice. |
1977 | Shamir, Adi | Ingenious contribution and making public-key cryptography useful in practice. |
1977 | Adleman, Leonard | Ingenious contribution and making public-key cryptography useful in practice. |
1978 | Kahn, Bob | Designed the Transmission Control Protocol and Internet Protocol (TCP/IP), the primary data communication protocols of the Internet and other computer networks. |
2007 | Sifakis, Joseph | Developing model checking into a highly effective verification technology, widely adopted in the hardware and software industries.[55] |
2010 | Valiant, Leslie | Transformative contributions to the theory of computation, including the theory of probably approximately correct (PAC) learning, the complexity of enumeration and of algebraic computation, and the theory of parallel and distributed computing. |
2011 | Pearl, Judea | Fundamental contributions to artificial intelligence through the development of a calculus for probabilistic and causal reasoning.[56] |
1976 | Hellman, Martin | Fundamental contributions to modern cryptography. Diffie and Hellman’s groundbreaking 1976 paper, “New Directions in Cryptography,”[57] introduced the ideas of public-key cryptography and digital signatures, which are the foundation for most regularly-used security protocols on the Internet today.[58] |
1976 | Diffie, Whitfield | Fundamental contributions to modern cryptography. Diffie and Hellman’s groundbreaking 1976 paper, “New Directions in Cryptography,”[57] introduced the ideas of public-key cryptography and digital signatures, which are the foundation for most regularly-used security protocols on the Internet today.[59] |
2018 | Bengio, Yoshua, Hinton Geoffrey, Lecun Yann | Conceptual and engineering breakthroughs that have made deep neural networks a critical component of computing.[22] |
2012 | Silvio Micali | For transformative work that laid the complexity-theoretic foundations for the science of cryptography and in the process pioneered new methods for efficient verification of mathematical proofs in complexity theory. |
2017 | John L. Hennessy | For pioneering a systematic, quantitative approach to the design and evaluation of computer architectures with enduring impact on the microprocessor industry. |
2017 | David Patterson | For pioneering a systematic, quantitative approach to the design and evaluation of computer architectures with enduring impact on the microprocessor industry. |
2019 | Edwin Catmull | For fundamental contributions to 3-D computer graphics, and the revolutionary impact of these techniques on computer-generated imagery (CGI) in filmmaking and other applications |
2019 | Pat Hanrahan | For fundamental contributions to 3-D computer graphics, and the revolutionary impact of these techniques on computer-generated imagery (CGI) in filmmaking and other applications |
~ Items marked with a tilde are circa dates.
Historians credit seminal insights to Welsh scientist Donald W. Davies and American engineer Paul Baran
Essentially all the work was defined by 1961, and fleshed out and put into formal written form in 1962. The idea of hot potato routing dates from late 1960.
Almost immediately after the 1965 meeting, Donald Davies conceived of the details of a store-and-forward packet switching system; Roberts, Dr. Lawrence G. (May 1995). “The ARPANET & Computer Networks”. Archived from the original on March 24, 2016. Retrieved 13 April 2016.
Then in June 1966, Davies wrote a second internal paper, “Proposal for a Digital Communication Network” In which he coined the word packet,- a small sub part of the message the user wants to send, and also introduced the concept of an “Interface computer” to sit between the user equipment and the packet network.
technically, the machine was a programmable calculator, not a computer.
It appears that the Mathatronics Mathatron calculator preceeded [sic] the Programma 101 to market.
” (WP)
See also Kubernetes
See: The Pragmatic Programmer – Your journey to mastery, 20th Anniversary Edition, 2nd Edition, by Thomas David and Hunt Andrew, 1999, 2019, B07VRS84D1 (PragProg)
Fair Use Source: B07VRS84D1 (PragProg)
The Pragmatic Programmer: From Journeyman to Master is a book about computer programming and software engineering, written by Andrew Hunt and David Thomas and published in October 1999.[1] It is used as a textbook in related university courses.[2] It was the first in a series of books under the label The Pragmatic Bookshelf. A second edition, The Pragmatic Programmer: Your Journey to Mastery was released in 2019 for the book’s 20th anniversary, with major revisions and new material reflecting changes in the industry over the last twenty years.” (WP)
“One of the most significant books in my life.” –Obie Fernandez, Author, The Rails Way
“Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.” –Mike Cohn, Author of Succeeding with Agile , Agile Estimating and Planning , and User Stories Applied
“. . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.” –Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks
“. . . lightning does strike twice, and this book is proof.” –VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks
The Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time.
Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.
Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you’ll learn how to:
Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches and major pitfalls of many different aspects of software development. Whether you’re a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you’ll quickly see improvements in personal productivity, accuracy, and job satisfaction. You’ll learn skills and develop habits and attitudes that form the foundation for long-term success in your career.
You’ll become a Pragmatic Programmer.
Authors | Andrew HuntDavid Thomas |
---|---|
Country | US |
Subjects | Education, teaching |
Published | 1999 by Addison Wesley |
Pages | 320 |
ISBN | 978-0-201-61622-4 |
Website | pragprog.com/titles/tpp20/ |
“The book does not present a systematic theory, but rather a collection of tips to improve the development process in a pragmatic way. The main qualities of what the authors refer to as a pragmatic programmer are being an early adopter, to have fast adaptation, inquisitiveness and critical thinking, realism, and being a jack-of-all-trades.[3]” (WP)
“The book uses analogies and short stories to present development methodologies and caveats, for example the broken windows theory, the story of the stone soup, or the boiling frog.[4] Some concepts were named or popularised in the book, such as code katas, small exercises to practice programming skills,[5] and rubber duck debugging, a method of debugging whose name is a reference to a story in the book.[6]” (WP)
Andy Hunt and David Thomas gave a GOTO Book Club interview celebrating the 20th anniversary release of the book, covering their journey to writing the book, how the content has evolved since the first release and what’s remained unchanged in the last two decades.” (WP)
“To participate in the next generation of professional product delivery you have to be pragmatic but disciplined. Otherwise, you are fated to be ungrounded dreamers whose products endanger people and whose ideas never become successfully integrated into the world. Andy and Dave described a pragmatic but disciplined approach which is a key step towards professionalism.”
–Ken Schwaber, co-creator of Scrum and founder of Scrum.org, agile manifesto signatory, and author of Software in 30 Days.
“Picking adjectives is hard work. In The Pragmatic Programmer, Dave and Andy set the tone for their work–thoughtful, expert, aspirational, and full of care for themselves and those they touch through their programs. From its publication, this was the book to read if you wanted to work to improve.”
–Kent Beck, Gusto, author of Extreme Programming Explained: Embrace Change, Test-Driven Development: By Example, and The Smalltalk Best Practice Patterns
“Some say that with The Pragmatic Programmer, Andy and Dave captured lightning in a bottle; that it’s unlikely anyone will soon write a book that can move an entire industry as it did. Sometimes, though, lightning does strike twice, and this book is proof. The updated content ensures that it will stay at the top of “best books in software development” lists for another 20 years, right where it belongs.”
―VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks
“If you want your software to be easy to modernize and maintain, keep a copy of The Pragmatic Programmer close. It’s filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.”
―Andrea Goulet, CEO, Corgibytes; Founder, LegacyCode.Rocks
” The Pragmatic Programmer is the one book I can point to that completely dislodged the existing trajectory of my career in software and pointed me in the direction of success. Reading it opened my mind to the possibilities of being a craftsman, not just a cog in a big machine. One of the most significant books in my life.”
―Obie Fernandez, Author, The Rails Way
“First-time readers can look forward to an enthralling induction into the modern world of software practice, a world that the first edition played a major role in shaping. Readers of the first edition will rediscover here the insights and practical wisdom that made the book so significant in the first place, expertly curated and updated, along with much that’s new.”
―David A. Black, Author, The Well-Grounded Rubyist
“I have an old paper copy of the original Pragmatic Programmer on my bookshelf. It has been read and re-read and a long time ago it changed everything about how I approached my job as a programmer. In the new edition everything and nothing has changed: I now read it on my iPad and the code examples use modern programming languages―but the underlying concepts, ideas, and attitudes are timeless and universally applicable. Twenty years later, the book is as relevant as ever. It makes me happy to know that current and future developers will have the same opportunity to learn from Andy and Dave’s profound insights as I did back in the day.”
―Sandy Mamoli, Agile coach; Author of How Self-Selection Lets People Excel
–This text refers to the hardcover edition.
The bestselling software development guide – more than 200,000 sold – now thoroughly updated by its world-class author team
“One of the most significant books in my life.” ―Obie Fernandez, Author, The Rails Way
“Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.” ―Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied
“. . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.” ―Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks
“. . . lightning does strike twice, and this book is proof.” ―VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks
See also Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
Java Cookbook – Problems and Solutions for Java Developers, 4th Edition, by Ian F. Darwin, 2020, B08651PDL6 (JvCkbk)
Fair Use Source: B08651PDL6 (JvCkbk)
Java continues to grow and evolve, and this cookbook continues to evolve in tandem. With this guide, you’ll get up to speed right away with hundreds of hands-on recipes across a broad range of Java topics. You’ll learn useful techniques for everything from string handling and functional programming to network communication.
Each recipe includes self-contained code solutions that you can freely use, along with a discussion of how and why they work. If you’re familiar with Java basics, this cookbook will bolster your knowledge of the language and its many recent changes, including how to apply them in your day-to-day development. This updated edition covers changes through Java 12 and parts of 13 and 14.
Recipes include:
See also: Java – The Complete Reference, Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
Java – A Beginner’s Guide, 8th Edition, by Herbert Schildt, 2018, B07J2ZZ29H (JvBgnGd)
Fair Use Source: B07J2ZZ29H (JvBgnGd)
A practical introduction to Java programming—fully revised for long-term support release Java SE 11
Thoroughly updated for Java Platform Standard Edition 11, this hands-on resource shows, step by step, how to get started programming in Java from the very first chapter. Written by Java guru Herbert Schildt, the book starts with the basics, such as how to create, compile, and run a Java program. From there, you will learn essential Java keywords, syntax, and commands.
Java: A Beginner’s Guide, Eighth Edition covers the basics and touches on advanced features, including multithreaded programming, generics, Lambda expressions, and Swing. Enumeration, modules, and interface methods are also clearly explained. This Oracle Press guide delivers the appropriate mix of theory and practical coding necessary to get you up and running developing Java applications in no time.
Herbert Schildt is one of the world’s leading programming authors and has written extensively on Java, C, C++, and C#. His books have sold millions of copies worldwide. Herb’s acclaimed books include Java: The Complete Reference, Java: A Beginner’s Guide, C: The Complete Reference, C++: The Complete Reference and C#: The Complete Reference.
Published by McGraw-Hill, 2018
2 Introducing Data Types and Operators
4 Introducing Classes, Objects, and Methods
5 More Data Types and Operators
6 A Closer Look at Methods and Classes
12 Enumerations, Autoboxing, Static Import, and Annotations
14 Lambda Expressions and Method References
B Using Java’s Documentation Comments
C Compile and Run Simple Single-File Programs in One StepD Introducing JShell
See also Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
See: The Well-Grounded Java Developer, Second Edition, by Benjamin Evans, Jason Clark, and Martijn Verburg, 2021, 1617298875 (WelGrJvDv)
Fair Use Source: 1617298875 (WelGrJvDv)
Understanding Java from the JVM up gives you a solid foundation to grow your expertise and take on advanced techniques for performance, concurrency, containerization, and more.
In The Well-Grounded Java Developer, Second Edition you will learn:
The Well-Grounded Java Developer, Second Edition introduces both the modern innovations and timeless fundamentals you need to know to become a Java master. Authors Ben Evans, Martijn Verburg, and Jason Clark distil their decades of experience as Java Champions, veteran developers, and key contributors to the Java ecosystem into this clear and practical guide.
Java’s history of innovation, its huge collection of libraries and frameworks, and the flexibility of the JVM have cemented its place as one of the world’s most popular programming languages. Although it’s easy to get started with Java, understanding how the language intersects with the JVM is the key to unlocking the power of this awesome language and its deep ecosystem of frameworks, tools, and alternative JVM-based languages.
The Well-Grounded Java Developer, Second Edition is a complete revision of the classic original with the latest innovations of the Java platform. It upgrades your existing Java skills with both JVM fundamentals like bytecode, and powerful new features such as modules and concurrency models.
You’ll broaden your understanding of what’s possible by exploring Kotlin and other JVM languages, and learn how functional programming can offer a powerful new perspective. Each concept is illustrated with hands-on examples, including a fully modularized application/library, build setups for Maven and Gradle, and creating your own multithreaded application.
For intermediate Java developers. No experience with the latest Java version or JVM languages required.
Martijn Verburg is the principal SWE group manager for the Java Engineering Group at Microsoft. He is the co-leader of the London Java User Group (LJC) where he co-founded AdoptOpenJDK, the world’s leading (non-Oracle) OpenJDK distribution. He has been made a Java Champion in recognition for his contribution to the Java ecosystem.
Jason Clark is a principal engineer and architect at New Relic, and was previously an architect at WebMD. A regular conference speaker, Jason contributes to the open-source project Shoes, aiming to make GUI programming easy and fun for beginners.
See also Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
Java Quick Syntax Reference, 2nd Edition, by Mikael Olsson, 2018, B079BKJ6CB (JvQSynRf)
Fair Use Source: B079BKJ6CB (JvQSynRf)
Quickly gain the insight necessary to address a multitude of Java coding challenges using this succinct reference guide. Short, focused code examples will help you master Java elements such as modules, boxing/unboxing and more.
You won’t find any technical jargon, bloated samples, drawn out history lessons or witty stories in this book. What you will find is a language reference that is concise, to the point and highly accessible. The book is packed with useful information and is a must-have for any Java programmer.
What You Will Learn
Who This Book Is For
Those with prior experience with Java who want a quick and handy reference.
Mikael Olsson is a professional web entrepreneur, programmer, and author. He works for an R&D company in Finland where he specializes in software development. In his spare time he writes books and creates websites that summarize various fields of interest. The books he writes are focused on teaching their subject in the most efficient way possible, by explaining only what is relevant and practical without any unnecessary repetition or theory. The portal to his online businesses and other websites is Siforia.com.
See also Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
See: Head First Java, 3rd Edition, by Kathy Sierra and Bert Bates, 2021, 1491910771 (HFJav)
Fair Use Source: 1491910771 (HFJav)
Learning a complex new language is no easy task especially when it s an object-oriented computer programming language like Java. You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn’t always want to take in the dry, technical stuff you’re forced to study.
The fact is your brain craves novelty. It’s constantly searching, scanning, waiting for something unusual to happen. After all, that’s the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won’t interfere with your brain’s real work–recording things that matter. How does your brain know what matters? It’s like the creators of the Head First approach say, suppose you’re out for a hike and a tiger jumps in front of you, what happens in your brain? Neurons fire. Emotions crank up. Chemicals surge.
That’s how your brain knows.
And that’s how your brain will learn Java. Head First Java combines puzzles, strong visuals, mysteries, and soul-searching interviews with famous Java objects to engage you in many different ways. It’s fast, it’s fun, and it’s effective. And, despite its playful appearance, Head First Java is serious stuff: a complete introduction to object-oriented programming and Java. You’ll learn everything from the fundamentals to advanced topics, including threads, network sockets, and distributed programming with RMI. And the new. third edition focuses on Java 17, the latest version of the Java language and development platform.
What will you learn from this book?
Ready to learn Java? This book combines puzzles, strong visuals, mysteries, and soul-searching interviews with famous Java objects to engage you in many different ways. It’s fast, it’s fun, and it’s effective. And, despite its playful appearance, Head First Java is serious stuff: a complete introduction to object-oriented programming and Java. You’ll learn everything from the fundamentals to advanced topics.
The new third edition brings the book up to date for Java 8-17, including major recent updates to the Java language and development platform. Java has seen some deep, code-level changes and more modern approaches, requiring even more careful study and implementation. So learning the Head First way is more important than ever.
What’s so special about this book?
If you’ve read a Head First book, you know what to expect–a visually rich format designed for the way your brain works. If you haven’t, you’re in for a treat. With this book, you’ll learn Java through a multi-sensory experience that engages your mind, rather than a text-heavy approach that puts you to sleep.
Kathy Sierra, SCJP, was a codeveloper of the SCJP SCEA exams. Along with her partner Bert Bates, Kathy Sierra created the award-winning Head First programming book series that has sold over 1 million copies, and includes the longest-running tech bestsellers of the past decade. Her background is in developing education games and software for the motion picture industry, and she also created the first interaction design courses for UCLA Entertainment Studies. For more than 15 years she’s been helping large companies, small start-ups, non-profits, and educators rethink their approach to user experience, and build sustainable, genuine loyalty.
Kathy has been interested in learning theory since her days as a game developer (Virgin, MGM, Amblin’). More recently, she’s been a master trainer for Sun Microsystems, teaching Sun’s Java instructors how to teach the latest technologies to customers, and a lead developer of several Sun certification exams. She’s also the original founder of the Software Development/Jolt Productivity Award-winning https://javaranch.com, the largest (and friendliest) all-volunteer Java community.
Bert Bates, SCJP, OCA, OCP, is a Sun Certified Programmer for Java and has been developing software for the last 20 years. He has participated in the development of the SCJP, SCEA, and SCWCD exams. Bert has been teaching software development, including Java programming, for many years. Bert Bates is a 20-year software developer, a Java instructor, and a co-developer of Sun’s EJB exam (Sun Certified Business Component Developer), the SCJP exam and the SCJD exam. Bert has also been teaching software development, including Java programming, for many years. His background features a long stint in artificial intelligence, with clients like the Weather Channel, A&E Network, Rockwell, and Timken.
See also Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
Think Java – How to Think Like a Computer Scientist, 2nd Edition, by Allen B. Downey and Chris Mayfield, 2019, B08234FFCX (TnkJav)
Fair Use Source: B08234FFCX (TnkJav)
Currently used at many colleges, universities, and high schools, this hands-on introduction to computer science is ideal for people with little or no programming experience. The goal of this concise book is not just to teach you Java, but to help you think like a computer scientist. You’ll learn how to program—a useful skill by itself—but you’ll also discover how to use programming as a means to an end.
Authors Allen Downey and Chris Mayfield start with the most basic concepts and gradually move into topics that are more complex, such as recursion and object-oriented programming. Each brief chapter covers the material for one week of a college course and includes exercises to help you practice what you’ve learned.
The updated second edition of Think Java also features new chapters on polymorphism and data processing, as well as content covering changes through Java 12.
Allen B. Downey is a Professor of Computer Science at Olin College of Engineering. He has taught at Wellesley College, Colby College, and U.C. Berkeley. He has a Ph.D. in Computer Science from U.C. Berkeley, and Master’s and Bachelor’s degrees from MIT. Downey is the creator of the bestselling Think series for O’Reilly, including Think Python, Think Complexity, Think DSP, and Think Bayes.
Chris Mayfield is an Assistant Professor of Computer Science at James Madison University, with a research focus on CS education and professional development. He has a Ph.D. in Computer Science from Purdue University and Bachelor’s degrees in CS and German from the University of Utah. https://github.com/ChrisMayfield and https://w3.cs.jmu.edu/mayfiecs
See also Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
Java for Absolute Beginners – Learn to Program the Fundamentals the Java 9+ Way, by Iuliana Cosmina, 2018, B07L5C7GHH (JvAbBgn)
Fair Use Source: B07L5C7GHH (JvAbBgn)
Write your first code in Java using simple, step-by-step examples that model real-word objects and events, making learning easy. With this book you’ll be able to pick up the concepts without fuss. Java for Absolute Beginners teaches Java development in language anyone can understand, giving you the best possible start. You’ll see clear code descriptions and layout so that you can get your code running as soon as possible. After reading this book, you’ll come away with the basics to get started writing programs in Java.
Author Iuliana Cosmina focuses on practical knowledge and getting up to speed quickly—all the bits and pieces a novice needs to get started programming in Java. First, you’ll discover how Java is executed, what type of language it is, and what it is good for. With the theory out of the way, you’ll install Java, choose an editor such as IntelliJ IDEA, and write your first simple Java program. Along the way you’ll compile and execute this program so it can run on any platform that supports Java. As part of this tutorial you’ll see how to write high-quality code by following conventions and respecting well-known programming principles, making your projects more professional and efficient.
Finally, alongside the core features of Java, you’ll learn skills in some of the newest and most exciting features of the language: Generics, Lambda expressions, modular organization, local-variable type inference, and local variable syntax for Lambda expressions.
Java for Absolute Beginners gives you all you need to start your Java 9+ programming journey. No experience necessary.
What You’ll Learn
Who This Book Is For
Those who are new to programming and who want to start with Java.
Iuliana Cosmina is currently a Software Engineer for NCR Edinburgh. She has been writing Java code since 2002 and contributed to various types of applications such as experimental search engines, ERPs, track and trace, and banking. During her career, she has been a teacher, a team leader, software architect, DevOps professional and software manager. She is a Spring-certified Professional, as defined by Pivotal, the makers of Spring Framework, Boot, and other tools, and considers Spring the best Java framework to work with. When she is not programming, she spends her time reading, blogging, learning to play piano, travelling, hiking or biking.
Write your first code in Java 17 using simple, step-by-step examples that model real-word objects and events, making learning easy. With Java 17 for Absolute Beginners you’ll be able to pick up the concepts without fuss. It teaches Java development in language anyone can understand, giving you the best possible start.
You’ll see clear code descriptions and layout so that you can get your code running as soon as possible. Author Iuliana Cosmina focuses on practical knowledge and getting you up to speed quickly—all the bits and pieces a novice needs to get started programming in Java.
First, you’ll discover what type of language Java is, what it is good for, and how it is executed. With the theory out of the way, you’ll install Java, choose an editor such as IntelliJ IDEA, and write your first simple Java program. Along the way you’ll compile and execute this program so it can run on any platform that supports Java. As part of this tutorial you’ll see how to write high-quality code by following conventions and respecting well-known programming principles, making your projects more professional and efficient.
Java 17 for Absolute Beginners gives you all you need to start your Java programming journey. No experience necessary. After reading this book, you’ll come away with the basics to get started writing programs in Java.\
https://apress.com/us/book/9781484270790 and https://smile.amazon.com/Java-Absolute-Beginners-Fundamentals-Programming/dp/1484270797
What You Will Learn
See also Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
See: Modern Java in Action – Lambdas, streams, functional and reactive programming, 2nd Edition, by Raoul-Gabriel Urma, Mario Fusco, Alan Mycroft, 2018, 1617293563 (ModJavAc)
Fair Use Source: 1617293563 (ModJavAc)
Manning’s bestselling Java 8 book has been revised for Java 9 and 10! In Modern Java in Action, you’ll build on your existing Java language skills with the newest features and techniques.
Modern applications take advantage of innovative designs, including microservices, reactive architectures, and streaming data. Modern Java features like lambdas, streams, and the long-awaited Java Module System make implementing these designs significantly easier. It’s time to upgrade your skills and meet these challenges head on!
Modern Java in Action connects new features of the Java language with their practical applications. Using crystal-clear examples and careful attention to detail, this book respects your time. It will help you expand your existing knowledge of core Java as you master modern additions like the Streams API and the Java Module System, explore new approaches to concurrency, and learn how functional concepts can help you write code that’s easier to read and maintain.
Written for developers familiar with core Java features.
“My Java code improved significantly after reading this book. I was able to take the clear examples and immediately put them intopractice.”–Holly Cummins, IBM
“A comprehensive and practical introduction to the modern features of the latest Java releases with excellent examples!”–Oleksandr Mandryk, EPAM Systems
“Hands-on Java 8 and 9, simply and elegantly explained.”–Deepak Bhaskaran, Salesforce
“A lot of great examples and use cases for streams, concurrency, andreactive programming.”–Rob Pacheco, Synopsys
Raoul-Gabriel Urma is CEO and co-founder of Cambridge Spark, a leading learning community for data scientists and developers in UK. In addition, he is also Chairman and co-founder of Cambridge Coding Academy, a growing community of young coders and pre-university students. Raoul is author of the bestselling programming book “Java 8 in Action” which sold over 20,000 copies globally. Raoul completed a PhD in Computer Science at the University of Cambridge. In addition, he holds a MEng in Computer Science from Imperial College London and graduated with first class honours having won several prizes for technical innovation. Raoul has delivered over 100 technical talks at international conferences. He has worked for Google, eBay, Oracle, and Goldman Sachs. He is also a Fellow of the Royal Society of Arts.
Mario Fusco is a senior software engineer at Red Hat working on Drools, the JBoss rule engine. He created the open source library lambdaj, an internal Java DSL for manipulating collections in a functional way.
Alan Mycroft is Professor of Computer Science at the University of Cambridge, where he researches programming languages, their semantics, optimization and implementation. He is a co-founder and Trustee of the Raspberry Pi Foundation.
Copyright
Brief Table of Contents
Table of Contents
Praise for the previous edition, Java 8 in Action, by Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft.
Preface
Acknowledgments
About this book
About the authors
About the cover illustration
Part 1. Fundamentals
Chapter 1. Java 8, 9, 10, and 11: what’s happening?
Chapter 2. Passing code with behavior parameterization
Chapter 3. Lambda expressions
Part 2. Functional-style data processing with streams
Chapter 4. Introducing streams
Chapter 5. Working with streams
Chapter 6. Collecting data with streams
Chapter 7. Parallel data processing and performance
Part 3. Effective programming with streams and lambdas
Chapter 8. Collection API enhancements
Chapter 9. Refactoring, testing, and debugging
Chapter 10. Domain-specific languages using lambdas
Part 4. Everyday Java
Chapter 11. Using Optional as a better alternative to null
Chapter 12. New Date and Time API
Chapter 13. Default methods
Chapter 14. The Java Module System
Part 5. Enhanced Java concurrency
Chapter 15. Concepts behind CompletableFuture and reactive programming
Chapter 16. CompletableFuture: composable asynchronous programming
Chapter 17. Reactive programming
Part 6. Functional programming and future Java evolution
Chapter 18. Thinking functionally
Chapter 19. Functional programming techniques
Chapter 20. Blending OOP and FP: Comparing Java and Scala
Chapter 21. Conclusions and where next for Java
Appendix A. Miscellaneous language updates
Appendix B. Miscellaneous library updates
Appendix C. Performing multiple operations in parallel on a stream
Appendix D. Lambdas and JVM bytecode
Index
List of Figures
List of Tables
List of Listings
Joshua Bloch is a professor at Carnegie Mellon University. He was formerly the chief Java architect at Google, a distinguished engineer at Sun Microsystems, and a senior systems designer at Transarc. He led the design and implementation of numerous Java platform features, including the JDK 5.0 language enhancements and the Java Collections Framework. He holds a Ph.D. in computer science from Carnegie Mellon University and a B.S. in computer science from Columbia University. He is the author of Effective Java.
Born | August 28, 1961 (age 59) Southampton, New York |
---|---|
Nationality | American |
Alma mater | Columbia University (B.S.) Carnegie Mellon University (Ph.D.) |
Scientific career | |
Institutions | Carnegie Mellon University |
Doctoral advisor | Alfred Spector |
“Joshua J. Bloch (born August 28, 1961) is an American software engineer and a technology author, formerly employed at Sun Microsystems and Google. He led the design and implementation of numerous Java platform features, including the Java Collections Framework, the java.math package, and the assert mechanism.[1] He is the author of the programming guide Effective Java (2001), which won the 2001 Jolt Award,[2] and is a co-author of two other Java books, Java Puzzlers (2005) and Java Concurrency In Practice (2006).” (WP)
Bloch holds a B.S. in computer science from Columbia University and a Ph.D. in computer science from Carnegie Mellon University.[1] His 1990 thesis was titled A Practical Approach to Replication of Abstract Data Objects[3] and was nominated for the ACM Distinguished Doctoral Dissertation Award.[4]
Bloch has worked as a Senior Systems Designer at Transarc, and later as a Distinguished Engineer at Sun Microsystems. In June 2004, he left Sun and became Chief Java Architect at Google.[5] On August 3, 2012, Bloch announced that he would be leaving Google.[6]
In December 2004, Java Developer’s Journal included Bloch in its list of the “Top 40 Software People in the World”.[7]
Bloch has proposed the extension of the Java programming language with two features: Concise Instance Creation Expressions (CICE) (coproposed with Bob Lee and Doug Lea) and Automatic Resource Management (ARM) blocks. The combination of CICE and ARM formed one of the three early proposals for adding support for closures to Java.[8] ARM blocks were added to the language in JDK7.[9]
Bloch is currently an affiliated faculty member of the Institute for Software Research at Carnegie Mellon University, where he holds the title “Adjunct Professor of the Practice“.[10]
See also Java Programming Language, Java Glossary, Java Bibliography, Java Reference materials
See: Effective Java, 3rd Edition, by Joshua Bloch, 2017, B078H61SCH (EftJav)
Fair Use Source: B078H61SCH (EftJav)
Java has changed dramatically since the previous edition of Effective Java was published shortly after the release of Java 6. This Jolt award-winning classic has now been thoroughly updated to take full advantage of the latest language and library features. The support in modern Java for multiple paradigms increases the need for specific best-practices advice, and this book delivers.
As in previous editions, each chapter of Effective Java, Third Edition, consists of several “items,” each presented in the form of a short, stand-alone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why.
The third edition covers language and library features added in Java 7, 8, and 9, including the functional programming constructs that were added to its object-oriented roots. Many new items have been added, including a chapter devoted to lambdas and streams.
New coverage includes
Joshua Bloch is a professor at Carnegie Mellon University. He was formerly the chief Java architect at Google, a distinguished engineer at Sun Microsystems, and a senior systems designer at Transarc. He led the design and implementation of numerous Java platform features, including the JDK 5.0 language enhancements and the Java Collections Framework. He holds a Ph.D. in computer science from Carnegie Mellon University and a B.S. in computer science from Columbia University.
2 Creating and Destroying Objects
3 Methods Common to All Objects
Items Corresponding to Second Edition