The Wide World of Coding


Book Description

The best part about coding is that anyone with a computer can learn how to do it. From education to healthcare to entertainment, software touches almost every aspect of twenty-first century life. Take a high-level perspective on the types of people who create that software—including many jobs that do not involve writing code at all. Learn about the software development cycle and the huge variety of skills developers draw on, including psychology, mathematics, and art, to create amazing apps and programs. Explore why diversity is needed to prevent bias in design. Learn about the different coding languages and what they are used for, how developers choose a language, and tools that simplify coding. Jennifer Connor-Smith breaks down stereotypes about coding as a career that is open only to technology-obsessed gamers, revealing ways people use software to improve medical care, nurture dementia patients, promote social justice, and more. Hands-on activities show you how easy it is to learn to think like a coder. The next generation of coders will require diverse teams, creativity, and ethical codes of conduct to create the best and most successful software. Will you be one of them?




Beautiful Code


Book Description

How do the experts solve difficult problems in software development? In this unique and insightful book, leading computer scientists offer case studies that reveal how they found unusual, carefully designed solutions to high-profile projects. You will be able to look over the shoulder of major coding and design experts to see problems through their eyes. This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules. This book contains 33 chapters contributed by Brian Kernighan, KarlFogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers,Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren,Jr., Ashish Gulhati, Lincoln Stein, Jim Kent, Jack Dongarra and PiotrLuszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, AndrewKuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho andRafael Monnerat, Bryan Cantrill, Jeff Dean and Sanjay Ghemawat, SimonPeyton Jones, Kent Dybvig, William Otte and Douglas C. Schmidt, AndrewPatzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman,Laura Wingerd and Christopher Seiwald, and Brian Hayes. Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International.




Coders at Work


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




The Book of Codes


Book Description

This illustrated encyclopedia surveys the history and development of code-making and code-breaking in all areas of culture and society from hieroglyphs and runes to DNA, the Zodiac Killer, graffiti, and beyond.




Getting a Coding Job For Dummies


Book Description

Your friendly guide to getting a job in coding Getting a Coding Job For Dummies explains how a coder works in (or out of) an organization, the key skills any job requires, the basics of the technologies a coding pro will encounter, and how to find formal or informal ways to build your skills. Plus, it paints a picture of the world a coder lives in, outlines how to build a resume to land a coding job, and so much more. Coding is one of the most in-demand skills in today's job market, yet there seems to be an ongoing deficit of candidates qualified to take these jobs. Getting a Coding Job For Dummies provides a road map for students, post-grads, career switchers, and anyone else interested in starting a career in coding. Inside this friendly guide, you'll find the steps needed to learn the hard and soft skills of coding—and the world of programming at large. Along the way, you'll set a clear career path based on your goals and discover the resources that can best help you build your coding skills to make you a suitable job candidate. Covers the breadth of job opportunities as a coder Includes tips on educational resources for coders and ways to build a positive reputation Shows you how to research potential employers and impress interviewers Offers access to online video, articles, and sample resume templates If you're interested in pursuing a job in coding, but don't know the best way to get there, Getting a Coding Job For Dummies is your compass!




Coding Freedom


Book Description

Who are computer hackers? What is free software? And what does the emergence of a community dedicated to the production of free and open source software--and to hacking as a technical, aesthetic, and moral project--reveal about the values of contemporary liberalism? Exploring the rise and political significance of the free and open source software (F/OSS) movement in the United States and Europe, Coding Freedom details the ethics behind hackers' devotion to F/OSS, the social codes that guide its production, and the political struggles through which hackers question the scope and direction of copyright and patent law. In telling the story of the F/OSS movement, the book unfolds a broader narrative involving computing, the politics of access, and intellectual property. E. Gabriella Coleman tracks the ways in which hackers collaborate and examines passionate manifestos, hacker humor, free software project governance, and festive hacker conferences. Looking at the ways that hackers sustain their productive freedom, Coleman shows that these activists, driven by a commitment to their work, reformulate key ideals including free speech, transparency, and meritocracy, and refuse restrictive intellectual protections. Coleman demonstrates how hacking, so often marginalized or misunderstood, sheds light on the continuing relevance of liberalism in online collaboration.




Cool Coding


Book Description

A fun, accessible guide to computers and coding for older children and curious adults.This fun and quirky book provides a fascinating introduction to the world of computer coding, organized into handy bite-sized chunks. Coding, now firmly part of the National Curriculum, is a huge subject and can seem slightly impenetrable, especially to parents, and that’s where this book comes in. Cool Coding contains everything you need to know about computers and coding, from the very basics of binary code and how it works, to the myriad things that coding can actually do, to the brave new worlds of artificial intelligence, robots and cloud computing. It introduces the most popular coding programmes taught in schools, Scratch and Python, and shows how coding can be used to create websites, games and apps, and make robots and moving vehicles, with the help of nifty devices such as the Raspberry Pi. And if you’ve ever wondered what spaghetti code, duck typing, snakecase or The Internet of Things are, you’ll find the answers here.Packed with playful illustrations and inspiring information on the amazing world of coding and computing, this book is the perfect introduction to this most essential of subjects.




Code


Book Description

The classic guide to how computers work, updated with new chapters and interactive graphics "For me, Code was a revelation. It was the first book about programming that spoke to me. It started with a story, and it built up, layer by layer, analogy by analogy, until I understood not just the Code, but the System. Code is a book that is as much about Systems Thinking and abstractions as it is about code and programming. Code teaches us how many unseen layers there are between the computer systems that we as users look at every day and the magical silicon rocks that we infused with lightning and taught to think." - Scott Hanselman, Partner Program Director, Microsoft, and host of Hanselminutes Computers are everywhere, most obviously in our laptops and smartphones, but also our cars, televisions, microwave ovens, alarm clocks, robot vacuum cleaners, and other smart appliances. Have you ever wondered what goes on inside these devices to make our lives easier but occasionally more infuriating? For more than 20 years, readers have delighted in Charles Petzold's illuminating story of the secret inner life of computers, and now he has revised it for this new age of computing. Cleverly illustrated and easy to understand, this is the book that cracks the mystery. You'll discover what flashlights, black cats, seesaws, and the ride of Paul Revere can teach you about computing, and how human ingenuity and our compulsion to communicate have shaped every electronic device we use. This new expanded edition explores more deeply the bit-by-bit and gate-by-gate construction of the heart of every smart device, the central processing unit that combines the simplest of basic operations to perform the most complex of feats. Petzold's companion website, CodeHiddenLanguage.com, uses animated graphics of key circuits in the book to make computers even easier to comprehend. In addition to substantially revised and updated content, new chapters include: Chapter 18: Let's Build a Clock! Chapter 21: The Arithmetic Logic Unit Chapter 22: Registers and Busses Chapter 23: CPU Control Signals Chapter 24: Jumps, Loops, and Calls Chapter 28: The World Brain From the simple ticking of clocks to the worldwide hum of the internet, Code reveals the essence of the digital revolution.







Effective Programming


Book Description

ABOUT THE BOOK Jeff Atwood began the Coding Horror blog in 2004, and is convinced that it changed his life. He needed a way to keep track of software development over time - whatever he was thinking about or working on. He researched subjects he found interesting, then documented his research with a public blog post, which he could easily find and refer to later. Over time, increasing numbers of blog visitors found the posts helpful, relevant and interesting. Now, approximately 100,000 readers visit the blog per day and nearly as many comment and interact on the site. Effective Programming: More Than Writing Code is your one-stop shop for all things programming. Jeff writes with humor and understanding, allowing for both seasoned programmers and newbies to appreciate the depth of his research. From such posts as "The Programmer's Bill of Rights" and "Why Cant Programmers... Program?" to "Working With the Chaos Monkey," this book introduces the importance of writing responsible code, the logistics involved, and how people should view it more as a lifestyle than a career. TABLE OF CONTENTS - Introduction - The Art of Getting Shit Done - Principles of Good Programming - Hiring Programmers the Right Way - Getting Your Team to Work Together - The Batcave: Effective Workspaces for Programmers - Designing With the User in Mind - Security Basics: Protecting Your Users' Data - Testing Your Code, So it Doesn't Suck More Than it Has To - Building, Managing and Benefiting from a Community - Marketing Weasels and How Not to Be One - Keeping Your Priorities Straight EXCERPT FROM THE BOOK As a software developer, you are your own worst enemy. The sooner you realize that, the better off you'll be.I know you have the best of intentions. We all do. We're software developers; we love writing code. It's what we do. We never met a problem we couldn't solve with some duct tape, a jury-rigged coat hanger and a pinch of code. But Wil Shipley argues that we should rein in our natural tendencies to write lots of code: The fundamental nature of coding is that our task, as programmers, is to recognize that every decision we make is a trade-off. To be a master programmer is to understand the nature of these trade-offs, and be conscious of them in everything we write.In coding, you have many dimensions in which you can rate code: Brevity of codeFeaturefulnessSpeed of executionTime spent codingRobustnessFlexibility Now, remember, these dimensions are all in opposition to one another. You can spend three days writing a routine which is really beautiful and fast, so you've gotten two of your dimensions up, but you've spent three days, so the "time spent coding" dimension is way down.So, when is this worth it? How do we make these decisions? The answer turns out to be very sane, very simple, and also the one nobody, ever, listens to: Start with brevity. Increase the other dimensions as required by testing. I couldn't agree more. I've given similar advice when I exhorted developers to Code Smaller. And I'm not talking about a reductio ad absurdum contest where we use up all the clever tricks in our books to make the code fit into less physical space. I'm talking about practical, sensible strategies to reduce the volume of code an individual programmer has to read to understand how a program works. Here's a trivial little example of what I'm talking about: if (s == String.Empty)if (s == "") It seems obvious to me that the latter case is... ...buy the book to read more!