Author: V. Anton Spraul
Publisher: No Starch Press
ISBN: 1593274564
Category : Computers
Languages : en
Pages : 260
Book Description
The real challenge of programming isn't learning a language's syntax—it's learning to creatively solve problems so you can build something great. In this one-of-a-kind text, author V. Anton Spraul breaks down the ways that programmers solve problems and teaches you what other introductory books often ignore: how to Think Like a Programmer. Each chapter tackles a single programming concept, like classes, pointers, and recursion, and open-ended exercises throughout challenge you to apply your knowledge. You'll also learn how to: –Split problems into discrete components to make them easier to solve –Make the most of code reuse with functions, classes, and libraries –Pick the perfect data structure for a particular job –Master more advanced programming tools like recursion and dynamic memory –Organize your thoughts and develop strategies to tackle particular types of problems Although the book's examples are written in C++, the creative problem-solving concepts they illustrate go beyond any particular language; in fact, they often reach outside the realm of computer science. As the most skillful programmers know, writing great code is a creative art—and the first step in creating your masterpiece is learning to Think Like a Programmer.
How to Think Like a Programmer
Author: Paul Vickers
Publisher: Cengage Learning
ISBN: 9781844809035
Category : Computers
Languages : en
Pages : 611
Book Description
How to Think Like a Programmer is a bright, accessible, fun read describing the mindset and mental methods of programmers. Anticipating the problems that student's have through the character of Brian the Wildebeest, the slower pace required for this approach is made interesting and engaging by visual impact of hand-drawn sketches, frequent (paper-based) interactivities and the everyday tasks (e.g. coffee making) used as the basis of worked examples.
Publisher: Cengage Learning
ISBN: 9781844809035
Category : Computers
Languages : en
Pages : 611
Book Description
How to Think Like a Programmer is a bright, accessible, fun read describing the mindset and mental methods of programmers. Anticipating the problems that student's have through the character of Brian the Wildebeest, the slower pace required for this approach is made interesting and engaging by visual impact of hand-drawn sketches, frequent (paper-based) interactivities and the everyday tasks (e.g. coffee making) used as the basis of worked examples.
Think Like a Programmer, Python Edition
Author: V. Anton Spraul
Publisher: No Starch Press
ISBN: 1593278527
Category : Computers
Languages : en
Pages : 0
Book Description
Programming isn’t just about syntax and assembling code—it’s about problem solving, and all good programmers must think creatively to solve problems. Like the best-selling Think Like a Programmer before it (with over 75,000 copies sold worldwide), this Python-based edition will help you transition from reading programs to writing them, in, Python. (No prior programming experience required!) Rather than simply point out solutions to problems, author V. Anton Spraul will get you thinking by exposing you to techniques that will teach you how to solve programming problems on your own. Each chapter covers a single programming concept like data types, control flow, code reuse, recursion, and classes, then a series of Python-based exercises have you put your skills to the test. You’ll learn how to: -Break big problems down into simple, manageable steps to build into solutions -Write custom functions to solve new problems -Use a debugger to examine each line of your running program in order to fully understand how it works -Tackle problems strategically by turning each new concept into a problem-solving tool The Python edition of Think Like a Programmer aims squarely at the beginning programmer, with additional chapters on early programming topics such as variables, decisions, and looping. Version: This book is based on Python 3.
Publisher: No Starch Press
ISBN: 1593278527
Category : Computers
Languages : en
Pages : 0
Book Description
Programming isn’t just about syntax and assembling code—it’s about problem solving, and all good programmers must think creatively to solve problems. Like the best-selling Think Like a Programmer before it (with over 75,000 copies sold worldwide), this Python-based edition will help you transition from reading programs to writing them, in, Python. (No prior programming experience required!) Rather than simply point out solutions to problems, author V. Anton Spraul will get you thinking by exposing you to techniques that will teach you how to solve programming problems on your own. Each chapter covers a single programming concept like data types, control flow, code reuse, recursion, and classes, then a series of Python-based exercises have you put your skills to the test. You’ll learn how to: -Break big problems down into simple, manageable steps to build into solutions -Write custom functions to solve new problems -Use a debugger to examine each line of your running program in order to fully understand how it works -Tackle problems strategically by turning each new concept into a problem-solving tool The Python edition of Think Like a Programmer aims squarely at the beginning programmer, with additional chapters on early programming topics such as variables, decisions, and looping. Version: This book is based on Python 3.
Python and Algorithmic Thinking for the Complete Beginner
Author: Aristides Bouras
Publisher: Packt Publishing Ltd
ISBN: 1836209266
Category : Computers
Languages : en
Pages : 908
Book Description
Unlock the power of Python with this comprehensive guide, “Python and Algorithmic Thinking for the Complete Beginner.” It covers everything from computer basics to advanced decision and loop control structures. Key Features Comprehensive coverage from basic computer operations to advanced programming concepts Step-by-step progression of each topic, along with tips and tricks to enhance coding efficiency In-depth exploration of Python and algorithmic thinking with exercises and practical examples Book DescriptionThis course is meticulously designed to take beginners on a journey through the fascinating world of Python programming and algorithmic thinking. The initial chapters lay a strong foundation, starting with the basics of how computers operate, moving into Python programming, and familiarizing learners with integrated development environments like IDLE and Visual Studio Code. Further, the course delves into essential programming constructs such as variables, constants, input/output handling, and operators. You'll gain practical experience with trace tables, sequence control structures, and decision control structures through comprehensive exercises and examples. The curriculum emphasizes hands-on learning with chapters dedicated to manipulating numbers, strings, and understanding complex mathematical expressions. By mastering these concepts, you'll be well-prepared to tackle more advanced topics. The final chapters introduce you to object-oriented programming and file manipulation, rounding out your skill set. Throughout the course, practical tips and tricks are provided to enhance your coding efficiency and problem-solving skills. By the end of this course, you will have a robust understanding of Python programming and the ability to apply algorithmic thinking to solve real-world problems.What you will learn Understand how computers work and the basics of Python programming Install and use integrated development environments (IDEs) Develop skills in decision and loop control structures Manipulate data using lists, dictionaries, and strings Apply algorithmic thinking to solve complex problems Gain proficiency in object-oriented programming & file manipulation Who this book is for This course is ideal for absolute beginners with no prior programming experience. Basic computer literacy is required, but no specific knowledge of programming or algorithms is necessary. It is also suitable for individuals looking to refresh their Python skills and enhance their understanding of algorithmic thinking. High school and college students interested in programming, professionals seeking to upskill, and hobbyists eager to learn a new programming language will all find value in this course.
Publisher: Packt Publishing Ltd
ISBN: 1836209266
Category : Computers
Languages : en
Pages : 908
Book Description
Unlock the power of Python with this comprehensive guide, “Python and Algorithmic Thinking for the Complete Beginner.” It covers everything from computer basics to advanced decision and loop control structures. Key Features Comprehensive coverage from basic computer operations to advanced programming concepts Step-by-step progression of each topic, along with tips and tricks to enhance coding efficiency In-depth exploration of Python and algorithmic thinking with exercises and practical examples Book DescriptionThis course is meticulously designed to take beginners on a journey through the fascinating world of Python programming and algorithmic thinking. The initial chapters lay a strong foundation, starting with the basics of how computers operate, moving into Python programming, and familiarizing learners with integrated development environments like IDLE and Visual Studio Code. Further, the course delves into essential programming constructs such as variables, constants, input/output handling, and operators. You'll gain practical experience with trace tables, sequence control structures, and decision control structures through comprehensive exercises and examples. The curriculum emphasizes hands-on learning with chapters dedicated to manipulating numbers, strings, and understanding complex mathematical expressions. By mastering these concepts, you'll be well-prepared to tackle more advanced topics. The final chapters introduce you to object-oriented programming and file manipulation, rounding out your skill set. Throughout the course, practical tips and tricks are provided to enhance your coding efficiency and problem-solving skills. By the end of this course, you will have a robust understanding of Python programming and the ability to apply algorithmic thinking to solve real-world problems.What you will learn Understand how computers work and the basics of Python programming Install and use integrated development environments (IDEs) Develop skills in decision and loop control structures Manipulate data using lists, dictionaries, and strings Apply algorithmic thinking to solve complex problems Gain proficiency in object-oriented programming & file manipulation Who this book is for This course is ideal for absolute beginners with no prior programming experience. Basic computer literacy is required, but no specific knowledge of programming or algorithms is necessary. It is also suitable for individuals looking to refresh their Python skills and enhance their understanding of algorithmic thinking. High school and college students interested in programming, professionals seeking to upskill, and hobbyists eager to learn a new programming language will all find value in this course.
The Programmer's Brain
Author: Felienne Hermans
Publisher: Simon and Schuster
ISBN: 163835605X
Category : Computers
Languages : en
Pages : 254
Book Description
"A great book with deep insights into the bridge between programming and the human mind." - Mike Taylor, CGI Your brain responds in a predictable way when it encounters new or difficult tasks. This unique book teaches you concrete techniques rooted in cognitive science that will improve the way you learn and think about code. In The Programmer’s Brain: What every programmer needs to know about cognition you will learn: Fast and effective ways to master new programming languages Speed reading skills to quickly comprehend new code Techniques to unravel the meaning of complex code Ways to learn new syntax and keep it memorized Writing code that is easy for others to read Picking the right names for your variables Making your codebase more understandable to newcomers Onboarding new developers to your team Learn how to optimize your brain’s natural cognitive processes to read code more easily, write code faster, and pick up new languages in much less time. This book will help you through the confusion you feel when faced with strange and complex code, and explain a codebase in ways that can make a new team member productive in days! Foreword by Jon Skeet. About the technology Take advantage of your brain’s natural processes to be a better programmer. Techniques based in cognitive science make it possible to learn new languages faster, improve productivity, reduce the need for code rewrites, and more. This unique book will help you achieve these gains. About the book The Programmer’s Brain unlocks the way we think about code. It offers scientifically sound techniques that can radically improve the way you master new technology, comprehend code, and memorize syntax. You’ll learn how to benefit from productive struggle and turn confusion into a learning tool. Along the way, you’ll discover how to create study resources as you become an expert at teaching yourself and bringing new colleagues up to speed. What's inside Understand how your brain sees code Speed reading skills to learn code quickly Techniques to unravel complex code Tips for making codebases understandable About the reader For programmers who have experience working in more than one language. About the author Dr. Felienne Hermans is an associate professor at Leiden University in the Netherlands. She has spent the last decade researching programming, how to learn and how to teach it. Table of Contents PART 1 ON READING CODE BETTER 1 Decoding your confusion while coding 2 Speed reading for code 3 How to learn programming syntax quickly 4 How to read complex code PART 2 ON THINKING ABOUT CODE 5 Reaching a deeper understanding of code 6 Getting better at solving programming problems 7 Misconceptions: Bugs in thinking PART 3 ON WRITING BETTER CODE 8 How to get better at naming things 9 Avoiding bad code and cognitive load: Two frameworks 10 Getting better at solving complex problems PART 4 ON COLLABORATING ON CODE 11 The act of writing code 12 Designing and improving larger systems 13 How to onboard new developers
Publisher: Simon and Schuster
ISBN: 163835605X
Category : Computers
Languages : en
Pages : 254
Book Description
"A great book with deep insights into the bridge between programming and the human mind." - Mike Taylor, CGI Your brain responds in a predictable way when it encounters new or difficult tasks. This unique book teaches you concrete techniques rooted in cognitive science that will improve the way you learn and think about code. In The Programmer’s Brain: What every programmer needs to know about cognition you will learn: Fast and effective ways to master new programming languages Speed reading skills to quickly comprehend new code Techniques to unravel the meaning of complex code Ways to learn new syntax and keep it memorized Writing code that is easy for others to read Picking the right names for your variables Making your codebase more understandable to newcomers Onboarding new developers to your team Learn how to optimize your brain’s natural cognitive processes to read code more easily, write code faster, and pick up new languages in much less time. This book will help you through the confusion you feel when faced with strange and complex code, and explain a codebase in ways that can make a new team member productive in days! Foreword by Jon Skeet. About the technology Take advantage of your brain’s natural processes to be a better programmer. Techniques based in cognitive science make it possible to learn new languages faster, improve productivity, reduce the need for code rewrites, and more. This unique book will help you achieve these gains. About the book The Programmer’s Brain unlocks the way we think about code. It offers scientifically sound techniques that can radically improve the way you master new technology, comprehend code, and memorize syntax. You’ll learn how to benefit from productive struggle and turn confusion into a learning tool. Along the way, you’ll discover how to create study resources as you become an expert at teaching yourself and bringing new colleagues up to speed. What's inside Understand how your brain sees code Speed reading skills to learn code quickly Techniques to unravel complex code Tips for making codebases understandable About the reader For programmers who have experience working in more than one language. About the author Dr. Felienne Hermans is an associate professor at Leiden University in the Netherlands. She has spent the last decade researching programming, how to learn and how to teach it. Table of Contents PART 1 ON READING CODE BETTER 1 Decoding your confusion while coding 2 Speed reading for code 3 How to learn programming syntax quickly 4 How to read complex code PART 2 ON THINKING ABOUT CODE 5 Reaching a deeper understanding of code 6 Getting better at solving programming problems 7 Misconceptions: Bugs in thinking PART 3 ON WRITING BETTER CODE 8 How to get better at naming things 9 Avoiding bad code and cognitive load: Two frameworks 10 Getting better at solving complex problems PART 4 ON COLLABORATING ON CODE 11 The act of writing code 12 Designing and improving larger systems 13 How to onboard new developers
Death March
Author: Edward Yourdon
Publisher: Prentice Hall Professional
ISBN: 9780131436350
Category : Business & Economics
Languages : en
Pages : 252
Book Description
& • Learn to master the five key issues facing software projects: politics, people, process, project-management, and tools & & • New chapters on estimation, negotiation, and time-management; new coverage of agile concepts; updated references; and more timely examples & & • Helps software professionals seize control of projects before they run out of control
Publisher: Prentice Hall Professional
ISBN: 9780131436350
Category : Business & Economics
Languages : en
Pages : 252
Book Description
& • Learn to master the five key issues facing software projects: politics, people, process, project-management, and tools & & • New chapters on estimation, negotiation, and time-management; new coverage of agile concepts; updated references; and more timely examples & & • Helps software professionals seize control of projects before they run out of control
Learn to Code by Solving Problems
Author: Daniel Zingaro
Publisher: No Starch Press
ISBN: 1718501331
Category : Computers
Languages : en
Pages : 392
Book Description
Learn to Code by Solving Problems is a practical introduction to programming using Python. It uses coding-competition challenges to teach you the mechanics of coding and how to think like a savvy programmer. Computers are capable of solving almost any problem when given the right instructions. That’s where programming comes in. This beginner’s book will have you writing Python programs right away. You’ll solve interesting problems drawn from real coding competitions and build your programming skills as you go. Every chapter presents problems from coding challenge websites, where online judges test your solutions and provide targeted feedback. As you practice using core Python features, functions, and techniques, you’ll develop a clear understanding of data structures, algorithms, and other programming basics. Bonus exercises invite you to explore new concepts on your own, and multiple-choice questions encourage you to think about how each piece of code works. You’ll learn how to: Run Python code, work with strings, and use variables Write programs that make decisions Make code more efficient with while and for loops Use Python sets, lists, and dictionaries to organize, sort, and search data Design programs using functions and top-down design Create complete-search algorithms and use Big O notation to design more efficient code By the end of the book, you’ll not only be proficient in Python, but you’ll also understand how to think through problems and tackle them with code. Programming languages come and go, but this book gives you the lasting foundation you need to start thinking like a programmer.
Publisher: No Starch Press
ISBN: 1718501331
Category : Computers
Languages : en
Pages : 392
Book Description
Learn to Code by Solving Problems is a practical introduction to programming using Python. It uses coding-competition challenges to teach you the mechanics of coding and how to think like a savvy programmer. Computers are capable of solving almost any problem when given the right instructions. That’s where programming comes in. This beginner’s book will have you writing Python programs right away. You’ll solve interesting problems drawn from real coding competitions and build your programming skills as you go. Every chapter presents problems from coding challenge websites, where online judges test your solutions and provide targeted feedback. As you practice using core Python features, functions, and techniques, you’ll develop a clear understanding of data structures, algorithms, and other programming basics. Bonus exercises invite you to explore new concepts on your own, and multiple-choice questions encourage you to think about how each piece of code works. You’ll learn how to: Run Python code, work with strings, and use variables Write programs that make decisions Make code more efficient with while and for loops Use Python sets, lists, and dictionaries to organize, sort, and search data Design programs using functions and top-down design Create complete-search algorithms and use Big O notation to design more efficient code By the end of the book, you’ll not only be proficient in Python, but you’ll also understand how to think through problems and tackle them with code. Programming languages come and go, but this book gives you the lasting foundation you need to start thinking like a programmer.
Think Python
Author: Allen B. Downey
Publisher: "O'Reilly Media, Inc."
ISBN: 1491939419
Category : Computers
Languages : en
Pages : 309
Book Description
If you want to learn how to program, working with Python is an excellent way to start. This hands-on guide takes you through the language a step at a time, beginning with basic programming concepts before moving on to functions, recursion, data structures, and object-oriented design. This second edition and its supporting code have been updated for Python 3. Through exercises in each chapter, youâ??ll try out programming concepts as you learn them. Think Python is ideal for students at the high school or college level, as well as self-learners, home-schooled students, and professionals who need to learn programming basics. Beginners just getting their feet wet will learn how to start with Python in a browser. Start with the basics, including language syntax and semantics Get a clear definition of each programming concept Learn about values, variables, statements, functions, and data structures in a logical progression Discover how to work with files and databases Understand objects, methods, and object-oriented programming Use debugging techniques to fix syntax, runtime, and semantic errors Explore interface design, data structures, and GUI-based programs through case studies
Publisher: "O'Reilly Media, Inc."
ISBN: 1491939419
Category : Computers
Languages : en
Pages : 309
Book Description
If you want to learn how to program, working with Python is an excellent way to start. This hands-on guide takes you through the language a step at a time, beginning with basic programming concepts before moving on to functions, recursion, data structures, and object-oriented design. This second edition and its supporting code have been updated for Python 3. Through exercises in each chapter, youâ??ll try out programming concepts as you learn them. Think Python is ideal for students at the high school or college level, as well as self-learners, home-schooled students, and professionals who need to learn programming basics. Beginners just getting their feet wet will learn how to start with Python in a browser. Start with the basics, including language syntax and semantics Get a clear definition of each programming concept Learn about values, variables, statements, functions, and data structures in a logical progression Discover how to work with files and databases Understand objects, methods, and object-oriented programming Use debugging techniques to fix syntax, runtime, and semantic errors Explore interface design, data structures, and GUI-based programs through case studies
Practical Object-Oriented Design
Author: Sandi Metz
Publisher: Addison-Wesley Professional
ISBN: 0134445570
Category : Computers
Languages : en
Pages : 701
Book Description
The Complete Guide to Writing Maintainable, Manageable, Pleasing, and Powerful Object-Oriented Applications Object-oriented programming languages exist to help you create beautiful, straightforward applications that are easy to change and simple to extend. Unfortunately, the world is awash with object-oriented (OO) applications that are difficult to understand and expensive to change. Practical Object-Oriented Design, Second Edition, immerses you in an OO mindset and teaches you powerful, real-world, object-oriented design techniques with simple and practical examples. Sandi Metz demonstrates how to build new applications that can “survive success” and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples in the easy-to-understand Ruby programming language, all downloadable from the companion website, poodr.com. Fully updated for Ruby 2.5, this guide shows how to Decide what belongs in a single class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Whatever your previous object-oriented experience, this concise guide will help you achieve the superior outcomes you’re looking for. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Publisher: Addison-Wesley Professional
ISBN: 0134445570
Category : Computers
Languages : en
Pages : 701
Book Description
The Complete Guide to Writing Maintainable, Manageable, Pleasing, and Powerful Object-Oriented Applications Object-oriented programming languages exist to help you create beautiful, straightforward applications that are easy to change and simple to extend. Unfortunately, the world is awash with object-oriented (OO) applications that are difficult to understand and expensive to change. Practical Object-Oriented Design, Second Edition, immerses you in an OO mindset and teaches you powerful, real-world, object-oriented design techniques with simple and practical examples. Sandi Metz demonstrates how to build new applications that can “survive success” and repair existing applications that have become impossible to change. Each technique is illustrated with extended examples in the easy-to-understand Ruby programming language, all downloadable from the companion website, poodr.com. Fully updated for Ruby 2.5, this guide shows how to Decide what belongs in a single class Avoid entangling objects that should be kept separate Define flexible interfaces among objects Reduce programming overhead costs with duck typing Successfully apply inheritance Build objects via composition Whatever your previous object-oriented experience, this concise guide will help you achieve the superior outcomes you’re looking for. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Coders at Work
Author: Peter Seibel
Publisher: Apress
ISBN: 1430219491
Category : Computers
Languages : en
Pages : 619
Book Description
Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words “at work” suggest, Peter Seibel focuses on how his interviewees tackle the day-to-day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 15 folks who’ve been kind enough to agree to be interviewed: Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow Joe Armstrong: Inventor of Erlang Joshua Bloch: Author of the Java collections framework, now at Google Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger Douglas Crockford: JSON founder, JavaScript architect at Yahoo! L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal Dan Ingalls: Smalltalk implementor and designer Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler Donald Knuth: Author of The Art of Computer Programming and creator of TeX Peter Norvig: Director of Research at Google and author of the standard text on AI Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress Ken Thompson: Inventor of UNIX Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker
Publisher: Apress
ISBN: 1430219491
Category : Computers
Languages : en
Pages : 619
Book Description
Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words “at work” suggest, Peter Seibel focuses on how his interviewees tackle the day-to-day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 15 folks who’ve been kind enough to agree to be interviewed: Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow Joe Armstrong: Inventor of Erlang Joshua Bloch: Author of the Java collections framework, now at Google Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger Douglas Crockford: JSON founder, JavaScript architect at Yahoo! L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal Dan Ingalls: Smalltalk implementor and designer Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler Donald Knuth: Author of The Art of Computer Programming and creator of TeX Peter Norvig: Director of Research at Google and author of the standard text on AI Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress Ken Thompson: Inventor of UNIX Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker