[HN Gopher] "Code" 2nd Edition
___________________________________________________________________
"Code" 2nd Edition
Author : emme
Score : 456 points
Date : 2022-06-10 17:14 UTC (5 hours ago)
(HTM) web link (www.charlespetzold.com)
(TXT) w3m dump (www.charlespetzold.com)
| muh_gradle wrote:
| I am beyond excited. I have my worn out copy of the first edition
| perched near me. Petzold's Code is by far my favorite computer
| science and programming related book.
| wly_cdgr wrote:
| Hell yeah. An absolute classic
| animesh wrote:
| I majored in electronics (more than a decade ago) but always
| worked in software development. Does it still make sense to
| purchase it? I am eager to buy it, just need the push. :)
| fodmap wrote:
| Yes, it does. Here's a little push for you. I think you'll find
| fascinating how all the pieces of the 'puzzle' fit together
| beautifully.
| animesh wrote:
| Thank you, I decided on it.
| commandlinefan wrote:
| (Assuming the second edition is as good as the first) yes. This
| is the kind of book you can read on a plane ride from New York
| to San Francisco without taking notes or opening up your
| computer, and still get a lot out of. It's captivating but
| conversational and well written.
| anthomtb wrote:
| Buy it.
|
| I finished my Electrical and Computer Engineering undergrad in
| 2008 and have been a software dev ever since.
|
| You won't learn anything new if you had computer architecture
| and digital logic classes. But it's an excellent refresher. And
| so well written that it reads more like light fiction than a
| technical deep dive.
| gjstein wrote:
| I have a similar background in Electrical Engineering and,
| while I enjoyed the book, it did not change my perspective. I
| think the book does a good job of opening up what many
| programmers (and, of course, others) may see as a "black box"
| that they interact with on a daily basis. I recommend it to
| those who do not already have a fairly comprehensive of how a
| computer works, but if you think you pretty much already
| understand how transistors become ALUs and have touched
| Assembly, you may find it a bit boring (as I did).
| systemvoltage wrote:
| I second this. I found it to be a little elementary for me
| since I already know these concepts.
|
| But it is useful for a _lot_ of people who don 't know how a
| computer _really_ works.
| animesh wrote:
| Thanks for this solid comment. Assembly is the one that I am
| most removed from at the moment. It is 15 years or more. So
| it seems like I will enjoy it at the very least.
| mypastself wrote:
| Great book. It might be time to replace my first edition
| hardcover. Looking forward to the follow-up blog post with the
| more detailed info on the updated content.
| systemvoltage wrote:
| We need more people like Petzold in this world. The layers of
| abstraction are stacked so high that we need to provide a
| generalist view of what's going on. Some of these Jenga bricks
| need realignment and people to maintain them, sometimes to re-
| engineer those bricks to be stronger.
|
| We can't just all sit at the top of the tower and wonder why is
| it behaving irratically! Please support by purchasing the book.
| stevoski wrote:
| This book (1st edition, at least) is astonishing. Perhaps the
| best book for coders that I've ever read. I recommend it to all
| the HN crowd.
|
| Reading it, I felt like I actually understood how computers
| worked, right down to the "electricity going through wires" level
| and lower, and how that builds up to if-then statements, etc, in
| a high-level language.
| begueradj wrote:
| The content is something we learn in universities, even deeper.
| I think it's good for self taught programmers
| coldpie wrote:
| This ~$40 book was way, way, way more valuable education
| material than the many thousands of dollars I wasted on a
| university program.
| ThrowawayR2 wrote:
| Don't oversell it. Speaking as someone who has done VLSI
| layout of a 32-bit processor in my student days, Petzold's
| book is a solid popularization but it doesn't cover a tenth
| of what a computer engineering degree does.
| coldpie wrote:
| Fair point. I'm speaking about a computer science degree.
| duped wrote:
| Don't most CS students still have to take logic design,
| microprocessors, operating systems, compilers, etc?
| krallja wrote:
| Depends on the school, for sure. My CS education included
| a course on Computer Architecture, for which the final
| project was to implement your unique architecture on an
| FPGA and demonstrate it running a (simple) algorithm. I
| liked that course so much, I went back for Computer
| Architecture II and learned about pipelining, hazards,
| etc.
| LordDragonfang wrote:
| I can't tell whether I had an unusually good CS education, or
| if I'm missing something, but everything I see discussed in
| this thread as crucial insights taken from this book are
| things I recall being covered at least once in university,
| yeah. Perhaps it's just especially effective in its
| organization and ordering of fundamentals. Still, the praise
| it's getting makes me want to pick up a copy just to see if
| it can fill in any gaps I've missed in truly grokking those
| concepts.
| marai2 wrote:
| I think the difference is that this book in about 200 pages
| or so, starts from two boys using flashlights to attempt to
| "communicate" with each and goes through simple circuits to
| logic gates to CPU, ALU, volatile memory, rudiments of
| assembly language to a high level language. That's the
| difference, hand holding you through the explanations with
| the emphasis on pedagogy rather than being a dry theory
| book.
| sixstringtheory wrote:
| Yes, it consolidates a ton of information very well. I
| think it can appeal both to the beginner/layperson as
| introductory, or to those with more experience to put
| lots of pieces together. I didn't learn much new
| information but it tied together many things, and just
| reviewing and recalling old theory felt like a good
| exercise.
| Barrin92 wrote:
| As a computer science student ( _Informatik_ over here), I
| have to say that my university program was heavy on
| theoretical CS and maths, but there was extremely little in
| terms of hardware or low level engineering. The one
| networking class I took diving into the internet stack was
| probably the closest to it.
|
| Obviously everyone's experience will be different but I think
| of a CS education more of treating computers like an abstract
| machine, not a physical one.
| halotrope wrote:
| I got the first edition and it was transformative. Finally the
| connection between electricity, computers and modern
| communication was made. This all while being a fun-easy read. If
| it was not for this book I would never have started going down
| the rabbit hole of dabbling with ICs, Arduinos and (basic)
| electric circuitry.
|
| As Alan Kay famously said "People who are really serious about
| software should make their own hardware". No need to develop a
| whole computer, just getting your hands dirty with more basic
| electronics than consumer hardware will make you a much more
| complete technician.
| jljljl wrote:
| Love this book. Recommend pairing it with Nand2Tetris to get a
| good understanding of how Computers work:
|
| https://www.nand2tetris.org/
| drivers99 wrote:
| Nand2Tetris is great and I'd like to add "The Pattern on the
| Stone" by Danny Hillis to the list. (I just noticed it was
| revised in 2015.)
| kristopolous wrote:
| Great to see petzold still at it
| planckscnst wrote:
| I recommend this to anyone learning about programming or
| computers. That's usually kids. Last year, I went back to ready
| it again and it started with a story about trying to communicate
| with your friend next door. I thought "oh, this story isn't
| really relatable to kids today - they all have phones".
|
| So I'm really glad there is a second edition and I'm wondering if
| there is a new story.
| eterm wrote:
| This is by far the best book I've read that really made computers
| click for me.
|
| I think it's especially good for people like me who work in
| software development but don't have a computer science degree or
| background. Going from scratch and the very foundations of
| telegraphy all the way through to what opcodes really are and how
| code actually works in memory was an eye opener for better
| understanding what coding really is.
| peterkelly wrote:
| One of the best computing books I've ever read. Looking forward
| to checking out the new edition.
| [deleted]
| uwagar wrote:
| the book that showed me what a pointer is.
|
| there is a hair rising line in that book in italics! almost like
| in a horror book like exorcist or dracula.
|
| 'turn the book on its side. can you see it?, its counting'
|
| hair raising stuff. thanks mr petzold.
| bluedino wrote:
| My favorite Petzold book is 'Programming Windows 95'
| bena wrote:
| I got the Fifth Edition. A book that's served me well. Learning
| the Win32 API, holding open doors, improvised weapon, it does
| it all.
| formerly_proven wrote:
| My sample has a gigantic splat on its back because I threw it
| at some insect many years ago and it was positively crushed
| by The Petzold's impact force. Never cleaned that off because
| it added to the aesthetic of raggedness.
| qbasic_forever wrote:
| As doors got heavier it became necessary to add Petzold's
| windows programming with MFC book to the stack too, another
| massive (and great at the time) tome.
| Dwedit wrote:
| It is a very large book indeed.
| matwood wrote:
| Definitely a classic from back when books were sold by weight.
| JJMcJ wrote:
| It's a large book but has very little fluff or padding in it.
|
| Covers a huge amount of ground.
|
| I learned a lot from it back when I did some Windows work
| back around 2000 to 2005.
|
| Also MFC.
| matwood wrote:
| It was an awesome book, and was basically required for
| win32 programming in the late 90s.
| ultrasounder wrote:
| Great. There goes my summer.:-) Essentially read this book with
| my 14 old Aspie and help him understand and appreciate Software
| and the hardware it runs on it. Thanks for posting this here.
| mtoddsmith wrote:
| I love the antiquated ordering process. Wish I could just click
| buy from my iPhone or send crypto.
| scop wrote:
| This book was absolutely essential when I was first sinking my
| teeth into software programming. Things that seemed either
| arbitrary or completely mysterious suddenly made sense now that I
| had a _contextual understanding of how computers worked_. Without
| having that knowledge, I think my career would have been vastly
| more difficult and frustrating.
|
| While I understand many "get started programming" books/tutorials
| put an emphasis on getting coding asap, I really had to stop and
| learn about _computers_ before I could start coding in a well
| rounded way (and that's coming from a WebDev, who doesn't even
| have to deal with low-level stuff too often!).
|
| Thank you Mr. Petzold!!!
| coldpie wrote:
| Wish I had something to say other than "me, too." I read it
| sometime in high school, well after I'd learned C, and it
| really made me understand what was actually happening to the
| code I wrote. Very helpful later in my career and hobbies too,
| when I have to do reverse-engineering.
| SkyMarshal wrote:
| Same. I think some of us learn best by having a map of the
| territory and an understanding of how everything all fits
| together first. Having that better helps us deep-dive into and
| master specific areas. This one single book provides that map.
| _jal wrote:
| Absolutely. I tend to be mystified and lost without some way
| to place what I'm doing in some larger context, even if that
| context is super-vague or wrong in technical ways.
|
| Had several teachers who utterly refused to provide that,
| repeating "it'll all make sense eventually." Well, it did,
| after I got better teachers.
| scop wrote:
| That's a great observation about teachers. I was fully
| convinced in late middle school that I was an idiot who had
| no hope to achieve good grades or a grasp of subjects. Then
| suddenly I found myself getting As in high school without a
| real change in effort/routines. I attribute that in large
| part to learning the "why" behind various subjects via new
| teachers.
| unwind wrote:
| Uh, as someone with too many years of programming behind me to
| imagine that, can you mention some concrete things that you
| found arbitrary or completely mysterious, and that the booked
| cleared up for you? Thanks.
| jrmg wrote:
| I often wonder: for someone with no understanding of how
| computers work; no idea about electricity and transistors, no
| idea about CPUs executing instructions, no idea about
| software and abstraction: what do they think about when they
| click a 'play' button in a music player, and the interface
| updates and music starts? Do they think about what is
| happening 'inside' the box? I think I do.
|
| I suspect I have a completely different mental model than
| them - just a completely different casual understanding of
| it. I find it hard to imagine how they must see the modern
| world. It must seem like magic!
|
| Note that I'm not at-all speaking about intelligence here.
| Just knowledge.
|
| Anyway: for that person, I think that if they read 'Code',
| their entire understanding of the world would change, which
| is sort of amazing.
| thoms_a wrote:
| I've asked very young students what they think a computer
| is and how it works. There's always at least one student
| who correctly replies: "It's a machine that does what
| someone told it to do".
|
| Of course modern computing devices are absurdly complex and
| intricate machines all the way from silicon to software,
| but the basic mechanism is easily grasped by children. For
| all their complexity, computers are still just programmable
| calculators.
| CamperBob2 wrote:
| _There 's always at least one student who correctly
| replies: "It's a machine that does what someone told it
| to do"._
|
| That's correct, right up until someone tells a computer
| to beat a 9-dan Go master, but not how to do it.
| pbourke wrote:
| > I find it hard to imagine how they must see the modern
| world. It must seem like magic!
|
| I think this is unnecessarily infantilizing. There are a
| great many very complex things in the modern world, and
| people must employ abstractions for most of it.
|
| I think with the rise of multi form factor computing, there
| is more basic literacy about the nature of computers these
| days. People don't think that a phone god makes their phone
| work and a laptop god lets them work on their document.
| jrmg wrote:
| I said 'like magic'. I know they know they're made by
| humans and understandable with effort.
|
| Complex chemistry and materials engineering feels 'like
| magic' to me. I know I could understand it with enough
| effort - but I don't understand it now. I'm sure my view
| of everyday things would change if I did.
| azov wrote:
| What's your mental model of a dog?.. What's happening
| inside when he barks or wags his tail? Why does he like
| carrots more than cheese? How does his memory work?..
|
| The way you think of dogs is probably not very different
| from the way many people think of computers.
| skripp wrote:
| What makes this book great is that it more or less only
| assumes you know how an on-off switch works. Then he goes on
| to teach you how a (although rather primitive) CPU works and
| how you would program it.
|
| The teaching style in this book is so unbelievably good that
| even if you know all the ins and outs of a computer you want
| to read on because he explains everything in a way that you
| wish that you would have come up with yourself.
| jgwil2 wrote:
| > assumes you know how an on-off switch works.
|
| Really he explains how that works too. It's reasoning from
| first principles at its finest. I wish school curricula
| were so well-designed.
| sixstringtheory wrote:
| I didn't discover it until after coding for over 20 years and
| getting a masters in cs, and I really enjoyed it for filling
| in some gaps in my knowledge of the engineering side of
| things and the historical treatment of how various things
| came to be. And it was a great review of all the stuff I did
| already know from formal training and experience. It was a
| quick and easy read, even after tracing through every
| schematic, so I found it very enjoyable.
| scop wrote:
| That's a great question. I started out as a programmer having
| been a casual computer user through my childhood/teenage
| years. I never took apart computers or ventured into how they
| worked. Thus, when I decided to pursue this as a career, I
| had a lot of catch up to do. Here's a couple of things off
| the top of my head:
|
| - The terminal was completely foreign to me. Why is it
| structured so? How are permissions set? Octal?!?!?!
|
| - Why do I have to specify a type in a programming language?
|
| - What/why are all these special characters used in
| programming?!
|
| - Why is a program structured in the way it is? What are the
| levels of abstraction working in a given program?
|
| - What happens when I run/compile my program?
|
| I would also say that learning a little bit of C also really
| helped illuminate computers for me. Not only in the sense of
| _how_ they work, but also why programs use their current
| syntax. For example, for developers who look at Javascript
| for the first time seeing parenthesis, colons, curly
| brackets, etc all make an initial sense: they seem familiar.
| However, to somebody first diving in all of these characters
| seem totally arbitrary! Having gained a sense of how
| computers worked and then a very basic introduction into low-
| level programming, suddenly these high level languages seem
| much less arbitrary.
| unwind wrote:
| Thanks for sharing! I can (of course) understand that many
| of these things seem arbitrary, but would never have been
| able to come up with the list on my own. :)
| percentcer wrote:
| I'm not the OP, but some personal examples:
|
| - why is little-end / big-end a thing?
|
| - why is volatile memory called volatile? and why can't we
| just keep that data around?
|
| - what can a 64-bit computer do that a 32-bit computer can't?
|
| - what do people mean when they say "code is data"
|
| - what's an instruction, really?
|
| - how did people program computers before they had screens?
|
| - how did people program computers before they had keyboards?
|
| - why is it called 2's complement?
|
| And others that I can't recall right now. It's a fantastic
| book and I recommend it to everyone who is the slightest bit
| interested in how computers work.
| unwind wrote:
| That's a great list anyway, thanks!
| kerv wrote:
| I took a course like 10 years from Charles. He was amazing and
| I'm sure this book is just as amazing.
| bloppe wrote:
| Lol "the hidden language of computer hardware and software"
| imagine calling Chinese a "hidden language" on an intro text book
| just because it's not immediately obvious how to speak it.
| SteveDR wrote:
| I mean, if we somehow used Chinese every day without realizing
| it, then yeah that would be a fair analogy. Code is literally
| hidden from users.
| scrollaway wrote:
| Any suggestions on where to preorder this from Europe (Belgium)?
| beezlebroxxxxxx wrote:
| > If you'd like to pre-order the book from the publisher, don't
| try to find the book on the Pearson website. Instead, order the
| book from InformIT.com or MicrosoftPressStore.com or your
| favorite online retailer.
|
| So I imagine any online retailers where you might be able to
| preorder technical books. If you are not adverse to doing so,
| it can probably be pre-ordered in the coming months on Amazon,
| as well.
| rafaelhaseyes wrote:
| In Europe you could for instance order at Blackwells[1], they
| are an independent bookseller and fairly cheap for english
| language books. Even better would be to use a local
| independent bookseller in your own country of course
|
| [1] blackwells.co.uk
| ctur wrote:
| The 1st edition of this book was very influential for a
| generation (or more) of engineers. I can't wait to see how it's
| evolved and what I learn reading a new edition through again.
| no-dr-onboard wrote:
| My wife bought me this book when I was in college and I never
| found time to read it. The comments here make me want to crack it
| open and give it another swing. Thank you all.
| bmitc wrote:
| I still need to get to the first edition copy I have, but now I
| think I'll wait to read it with the expanded bits on CPU
| architecture.
| jmconfuzeus wrote:
| This is the book I used to teach myself basic CS back in 2010.
| user3939382 wrote:
| This is a very respected book. Famous. I've had my copy for
| several years. Never did read it.
| RcouF1uZ4gsC wrote:
| >The iconic graphic still displays the letters CODE in Braille,
| Morse code, and ASCII.
|
| All you have to do is add a '0' to the front of each ASCII
| sequence to make them 8 bits instead of 7 bits, and then they
| will be UTF-8 encoded.
| localhost wrote:
| Code is my favorite technical book of all time [1]. Charles does
| an amazing job of building a computer up from basic principles
| "two young boys who want to communicate after their parents tell
| them to go to bed at night" all the way to modern (for 1999)
| computers. He layers abstraction on top of abstraction all the
| way to a working computer. My only (slight) disappointment in the
| book is that he tries to cover operating systems -> object
| oriented programming in a couple of chapters at the end. That
| could have been a multi-volume series in its own right.
|
| It goes really well with Elements of Computing Systems (2nd ed)
| [2] which I kind of think of as a "lab manual" where you get to
| build a computer from first principles.
|
| [1] https://www.amazon.com/Code-Language-Computer-Hardware-
| Softw...
|
| [2] https://www.amazon.com/Elements-Computing-Systems-second-
| Pri...
| danielvaughn wrote:
| I picked it up years ago, got through the first few chapters,
| but then never finished it. I _loved_ the early buildup and
| still want to go back and keep reading.
| greymalik wrote:
| When the book "builds" a computer, I'm assuming that's a
| virtual computer? If so, what language does it use?
| jagged-chisel wrote:
| GP said "builds up to." It's more about the abstractions
| adding up so that the reader understands how electrons can be
| programmed. There is no implementation of any kind of virtual
| or hardware machine in the book.
|
| He goes: electricity, relays, logic gates, circuits (like
| adders), CPU, RAM ...
|
| It's been awhile so I might have missed a step or two. You'll
| come away knowing how we used electricity to get from
| lightning bolts, to pocket computers. You will not come away
| with a programmable machine.
| Jtsummers wrote:
| If you're actually looking for something that _does_ build to
| a virtual computer, Nand2Tetris (second edition of the book
| _The Elements of Computing Systems_ that goes with it is now
| out) is a great companion to _Code_ :
| https://www.nand2tetris.org/.
|
| _Code_ is more high level, Nand2Tetris and _Elements_ is
| project based but covers some similar territory.
| toma_caliente wrote:
| I have this book and have never read it. I may just wait for the
| second edition to release at this point
| dmitryminkovsky wrote:
| Wow this is awesome. Code was an eye-opening book for me as a
| child. I have a 2 year old, and have been wondering whether he
| could possibly appreciate camera film ISO codes (an early example
| of "a code" in the book), given that he'll likely never see a
| roll of film, or other things like that. An updated edition is
| great news.
| WalterBright wrote:
| I suppose I came to understanding programming in an unusual way.
| I first knew a bit of BASIC and could write simple programs in
| it, how the computer actually worked was a baffling mystery.
|
| My first semester in college, I took a class in semiconductor
| physics. That started with the PN junction, to diodes, to
| transistors, to gates, to flip-flops, to clocking, to registers,
| adders, etc.
|
| Later on, this made learning microprocessors straightforward,
| then assembler, then C, etc.
|
| I suppose it would have been faster to go straight to
| programming, but I am happier knowing how it works all the way
| down.
| ratww wrote:
| I also learned electronics first, but in a much more amateurish
| way. As a kid I loved electronics magazines and building
| projects from them. My dream was a Z-80 kit, but even much
| simpler kits were too expensive for me. I ended up making a
| make-believe computer with a few logic gates, decade counters
| and flip flops. That was my "computer", which taught me digital
| logic. Not a lot of power, but for a 10-11 old it could compute
| the stuff I wanted, and I eventually learned digital logic.
|
| I never got the Z-80 kit but I eventually got a computer with
| DOS, which had QBasic, where I learned to code by modding
| GORILLA.BAS and NIBBLES.BAS. What a weird language, there was
| AND and OR, but not NOR, XOR, NAND and others...
| nurettin wrote:
| I learned it the hard way as well. I think my book was
| "computer architecture" by Morris & Mano you start from PN to
| logic gates to truth tables to carnough diagrams to writing
| your own adder to D transistors to memory to bus to clock to
| cpu to write your own assembly to perform machine instructions.
| endofreach wrote:
| I have no idea how i ended up buying this book last year (haven't
| heard of it from anyone)... the best book i have read in recent
| years. Definitely the best tech book i have or will ever read
| (haven't even finished ,,code" fully yet, lol).
|
| Also: i found a book i always was too scared of starting to read
| (because i didn't want to feel like the biggest idiot trying to
| read it): ,,The Annotated Turing". When i looked at it again
| after having read ,,Code", i saw it was also written by Petzold.
| The way he wrote ,,code" i know, that this will be great. I am
| very excited to read it when i have a few hours to fully block
| for it.
| jgwil2 wrote:
| Haha I like how the cover shifted to dark mode...
| Minor49er wrote:
| This is great news. This book has been highly regarded for being
| able to explain the magic behind what makes a computer actually
| work. The new edition has about 70 pages of additional material.
|
| There is also a companion website that is under construction that
| already has a delightful amount of interactivity, showing how
| binary switches, relays, and gates work:
|
| https://www.codehiddenlanguage.com/
| morninglight wrote:
| "Programming Windows" exposed the simplicity behind the Windows
| architecture. If you had even a smattering of C experience,
| Petzold could get you writing Windows applications the same day
| you opened his book. He triggered an explosion of software
| development.
|
| There are excellent books for novice Linux programmers, but
| unfortunately, nothing compared to Petzold's clear and direct
| presentation.
|
| .
| shadowfox wrote:
| > There are excellent books for novice Linux programmers
|
| Do you have any suggestions in this regard?
| crispyalmond wrote:
| Unsure of novice, but I have this book[0] which is pretty
| great.
|
| [0] https://man7.org/tlpi/
| Stratoscope wrote:
| This brings back fond memories. Charles thanked me in the
| Acknowledgements section of the first edition of Programming
| Windows as "the indefatigable Michael Geary."
|
| I had spent many hours on BIX and CompuServe and maybe GEnie
| helping other Windows programmers get their start.
|
| So I like to think that in a small way I contributed to
| Charles' success in educating a generation of Windows
| programmers.
|
| Remember, friends, always pass it forward.
| pacaro wrote:
| Absolutely! My first software job back in 94, on my first day I
| was given a battered copy of Petzold and told to read and do
| the exercises up to chapter 7. It was an extremely effective
| boot camp for a novice windows programmer
| antiverse wrote:
| Looking back it's really strange that nowhere in our CS/Soft Eng.
| curriculum is it covered exactly what is meant by the term
| "abstraction" when it comes to how a computer works. That it's
| all, after all, shuffling of electrons (underlying MOSFET
| chemistry notwithstanding) and signals is the missing link.
|
| There's other books out there, and Ben Eater's website, that
| indepth show how to construct processor, gates, store "memory",
| and so on.
| 2snakes wrote:
| Right. Imagine a car. Now consider how it is abstracted to you.
| The wheel, the controls, the pedals. That's an abstraction of
| the complex system that is a car.
| skeeter2020 wrote:
| You're describing what was the CompSci option for an egineering
| degree when I went to Uni the first time. If you look at
| another great book for learning the "full picture", Nand to
| Tetris, Comp Sci is the second half of the book while
| Engineering seems to fill the space between physics and low-
| level software.
| qbasic_forever wrote:
| When I was in school 'computer engineering' was the degree you
| wanted for that level of understanding. It was a blend of 50/50
| computer science and electrical engineering. You'd learn enough
| analog EE to understand transistors and enough digital EE to
| understand logic and computer architecture (this is really
| where you learn the gory details of how a CPU works
| internally). Then you'd focus on enough CS to flesh out low
| level OS, systems programming, etc. to make it all work.
| Basically learn enough to go from nothing but a circuit diagram
| to a computer booting up a display with a login prompt for an
| OS you designed and built, on hardware you designed and built.
| skavi wrote:
| Still is as you describe. Just graduated from a CompE
| program.
| xt00 wrote:
| Great book -- read it when I was a teenager -- but one thing that
| I think makes the book a bit harder to explain to smaller kids
| these days is the use of relays for explaining lots of things.
| Its a great concept to explain things but it does tend to cause a
| bit of confusing for younger kids who may not have played with
| electromagnets as much as kids from 20-30 years ago. Not sure
| what to replace relays with but maybe having kids watch a super
| easy to understand video about how relays work would help make
| the book easier to understand for say like an 8 year old reading
| the book.
| rrauenza wrote:
| My kids played a lot with "relays" in Minecraft using Redstone.
| Not quite the same, though!
| xt00 wrote:
| Ha that's a great idea.. sounds like a good idea for a coding
| book.. hey so you know minecraft.. use that knowledge to
| learn how computers work..
| userbinator wrote:
| Hydraulic relays? I vaguely remember coming across a similar
| "bottom-up" book about how computers work many decades ago
| (near the end of the mainframe/minicomputer era) which used
| water flowing through pipes and valves as its analogy.
| Unfortunately the title wasn't so memorable, but I do recall
| the cover was a photo of a little girl filling a bucket from a
| spigot on the outside of a house. Does anyone know what book
| that was? I've searched a bit before, but had no luck.
| ultrasounder wrote:
| very easily substitute using FETs. Essentially the same as
| relays and BJTs but much easier to control logic FETs than
| BJTs.
| squarefoot wrote:
| But that would introduce more complexity (polarity, biasing,
| etc) that would distract from the initial purpose. With a
| relay they should only learn how connecting a battery to pins
| 1 and 2 closes the contacts on 3 and 4. Using relays with
| more throws they can also learn the basics of logic gates,
| flip flops, etc. I believe that relays still have a place for
| educational purposes.
| yumaikas wrote:
| The first edition of this book was my introduction into how
| computers worked at a lower level. It gave me enough of a
| grounding in various concepts that I was able to understand much
| of a Digital Systems class.
|
| It also partly inspired my first efforts at building a scientific
| calculator (which would never be quite finished).
|
| I definitely recommend it for folks who want to build context on
| the lower levels of computers, as a start into understanding
| CPUs, binary/hex, and other parts of how we tricked sand into
| thinking with lighting.
| benjaminclauss wrote:
| would love a similar book for Networking up to the modern
| Internet
| yardie wrote:
| I bought Code and Code Complete around the same time. And started
| reading Code before switching to Complete. And now I'm reminded I
| have the 1st Edition still sitting on my bookcase read about 1/3
| the way through.
| kris-s wrote:
| One of my all-time favorite works of non-fiction. Essential
| reading for software engineers.
| JonD23 wrote:
| I read the 1st edition while I was in high school. I knew I
| wanted to get into tech after reading that book. Many years
| later, I worked with Charles at Xamarin. For weeks after I
| joined, I thought of ways to get him to sign my book. One day I
| heard he was doing a book signing at an event, and I volunteered
| to go. He signed my book, "from bits to mobile", and now it lives
| on the top of my bookshelf.
| nightski wrote:
| Bought it! I own the first one and it's just a fantastic book.
| I've shared it with family members to help them understand how
| computers work (more tech savvy ones at least). But yeah love
| this one.
___________________________________________________________________
(page generated 2022-06-10 23:00 UTC)