Computers-Languages/Programming
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:
From the simple ticking of clocks to the worldwide hum of the internet, Code reveals the essence of the digital revolution.
A lot of Engineering Managers and leaders studied for years and years to become the best Engineer they possibly could be... and then they were promoted.
It can be very tough for those of us who didn't go into Engineering with the distinct concept that we would become managers, but still want to do our best to support our teams.
I wrote this book because there's so much no one told me about management that I wished I would have known. There's a lot to be purposeful about that many of us learn on the job, and worse: learn on people. This book provides some organization for collaborating with networks of people, working together towards a common purpose.
There seem to be millions of articles and "how to"s on programming and only a handful of resources on Engineering Management- why? It's very tough to talk about something that involves people processes. People are non-deterministic. Working relationships are nuanced, communication is linked with individual values, motivations, power dynamics, and skills. People also have a range of experiences and emotions that are not consistent day-to-day.
Hopefully, in the happiest, most productive sense.
It's imperative that we as managers learn as much as we can and work on ourselves, so that our teams may enjoy a healthy working life and strong relationships. It's not just important, it's crucial that we iterate on our own skills as managers so that we can properly support everyone around us: individuals, peers, leadership, and the business.
I'm sharing what I've learned- not so that you follow my concepts exactly, but rather so that you can be thoughtful about your own leadership and needs. The book goes from the macro to the micro- with topics ranging everywhere from "feedback" to "scoping down PRs".
Though the book is meant to address people in management, individual contributors are welcome to read the book as well- perhaps you need to manage up and need some tools to help guide the conversation, perhaps you just want a peek at other concerns within the business- everyone is invited to the conversation.
For years, companies have rewarded their most effective engineers with management positions. But treating management as the default path for an engineer with leadership ability doesn't serve the industry well--or the engineer. The staff engineer's path allows engineers to contribute at a high level as role models, driving big projects, determining technical strategy, and raising everyone's skills.
This in-depth book shows you how to understand your role, manage your time, master strategic thinking, and set the standard for technical work. You'll read about how to be a leader without direct authority, how to plan ahead to make the right technical decisions, and how to make everyone around you better, while still growing as an expert in your domain.
By exploring the three pillars of a staff engineer's job, Tanya Reilly, a veteran of the staff engineer track, shows you how to: