Jump to content


Photo
- - - - -

Computers 101? What to read, what to do to get reel smart?


  • Please log in to reply
7 replies to this topic

#1 googlyelmo

googlyelmo

    Will I break 10 posts?

  • Members
  • 2 posts
  • Country:
  • Gender:Male

Posted 05 March 2012 - 04:12 PM

I am in fact an ultra-noob here at BR, and regarding hacking/computer internals/programming. I am not nearly as geeky as I want and need to be. Maybe you can help me with that.

I have been using computers, almost all of them Macs since the late 80's. I know my way around the OS X command line well enough to take care of (maintain, troubleshoot) my Intel Macs, and a bit more. Enough *nix also to install/boot/run apps, and VERY basic maintenance/troubleshooting as well. Only enough WIndows to use the machine as an appliance. I also have a very solid background in electronic hardware (an extra-class ham since 1982, so I have built, modified, repaired all sorts of solid state and hollow circuits, from power supplies on up, whole radios, amplifiers, and a few red/blue/beige/tron boxes back when they still worked, and I know much of the theory behind that stuff), such is my C.V. I survived HV circuit building with only a few electrical burns, so I can't be all that dumb. . .

I need a general primer in computer science, along with its history. And I want to start at the lowest, machine level and work up. All the books I have on Mac and Unix and Linux don't really explain or show what a computer really is, how it is constructed, what makes it work, and how people make use of them. Not in a really basic, transistor-by-transistor, switch-by-switch, register-by-register explanation. From Colossus/Eniac up to Cray 85XK. Hardware, software, programming (from Fortran to Objective-C), hardware (from Octal tube-based to beyond Haswell), from the lowest hardware level to natural language & AI. And all the other things I left out because I am a raw noob & don't know any better. Not a project for a weekend, or even a single year of weekends, of course.

Basically, I am looking for a few (or more) good books (websites are great also, but books I can buy are best for me, and I mean printed books. That someone else already printed, so I don't have to burn an entire printer cartridge printing out one PDF or EPUB!). Starting with an overview, something like (or exactly) a first course, first semester college textbook in CSE, and on from there.

So, please, help me with some well considered suggestions for a basic syllabus in computer science and engineering, and information technology. More or less covering at least as much ground as what someone would get in the freshman year of a B.A. degree program in C.S.E.

Mainly books/printed text, but other sources welcomed and needed too. Really, any input from anyone trying to help me along is very gratefully and hungrily received.

--Will

#2 serrath

serrath

    SUP3R 31337

  • Members
  • 181 posts
  • Country:
  • Gender:Male

Posted 05 March 2012 - 11:23 PM

You want "The Art of Assembly". Great book, give it a go. That'll give you the link you want and from there you can start on higher-level languages. My advice to you is to work towards the middle. Learn x86 assembly and then learn Java with a HEAVY focus on Object-Oriented Programming and proper design principles. Then work at Perl, C/C++, etc. You'll be a proper programmer and very well rounded, plus you won't have those awful habits you pick up by starting with C, then C++ and just hacking together all the OOP bits. (Seriously, there are some disgusting C++ programmers out there.)

#3 Powermaniac7

Powermaniac7

    mad 1337

  • Members
  • 138 posts
  • Country:
  • Gender:Male

Posted 06 March 2012 - 03:43 AM

I recently came across a book covering this while I was browsing Amazon looking to see if there was anything I should buy to accompany my Java, A Beginner's Guide (Fifth Edition). Which I had mistakenly bought here at Dymocks for $50 which I could have gotten for half at Amazon...

Anyway I tried looking through the sections I remember I was looking at last time and came across a few books that cover what you ask. Although some only cover the very basics of a computer up to machine code while others cover more in-depth explanations of coding and how that runs a computer.

So the links are

http://www.amazon.co...ref=pd_sim_b_56

http://www.amazon.co.../ref=pd_sim_b_5

http://www.amazon.co...pd_rhf_dp_shvl4

Anyway have a read through the introductions/explanation as to what they are about on Amazon and see if any of them are to your liking. I'm sure there was another one that was quite cheap you could have tried that covered it entirely but I can't find it...Hmm...

EDIT: I just remembered also sign up to this if you want, I have and so far I don't think they have started sending out the weekly material so it isn't to late! Also lots of other computer science and mathematical courses on there =D.

http://www.cs101-class.org/

Edited by Powermaniac7, 06 March 2012 - 03:45 AM.


#4 serrath

serrath

    SUP3R 31337

  • Members
  • 181 posts
  • Country:
  • Gender:Male

Posted 06 March 2012 - 02:20 PM

In the vein of what Powermaniac said, once you get off the ground you can always take a look at MIT's Open Courseware project.

#5 seabass

seabass

    DDP Fan club member

  • Members
  • 44 posts
  • Country:
  • Gender:Male
  • Location:All up in your Kool-aid

Posted 07 March 2012 - 01:09 AM

I second what serrath said. MIT open course ware, although I haven't delved too deep in it, seems to be a good start to what you are looking for.

#6 serrath

serrath

    SUP3R 31337

  • Members
  • 181 posts
  • Country:
  • Gender:Male

Posted 07 March 2012 - 04:32 AM

Woooah, woah, hold up. It's kinda steep stuff, I wouldn't start there; give Art of Assembly a go first, that's going to be very much your kinda book. Then when you've got a basic understanding there, go to Java for Dummies or something, then go to the Open Courseware. The MIT curriculum isn't the complete package, but it does a great job of focusing on the most important ideas. Once you've got a handle on the programming languages' basics, go to MIT's open courseware before you apply those skills; that way you'll pick up the right habits and form.

Edited by serrath, 07 March 2012 - 04:33 AM.


#7 googlyelmo

googlyelmo

    Will I break 10 posts?

  • Members
  • 2 posts
  • Country:
  • Gender:Male

Posted 07 March 2012 - 06:00 AM

Thank you for the replies, there look to be some useful titles in there. And while programming at some level is a goal of mine, let me refine my original post.

If I am a geek at all, I am a hardware geek. I have stood with a smile on my face watching friends who understand OSes and write and debug and hack code scratch their heads when they have a failing power supply or a bearing in a a hard drive about to seize. I do want to get to a point where I can HACK stuff, expecially as Apple seems committed to hiding everything all of a sudden, and making their computers work like, and only like, their iOS devices (OS 11 will certainly be marketed as neither Mac nor iOS, but both, yuck). I already do some shell scripting, and a bit of AppleScript. I know those aren't programming languages, but sometimes it seems that a *nix OS is also a programming language itself, given the way you interact with it. So mainly I want CONTROL, rather than to develop any applications or create a new *nix flavor. It seems to me (given my considerable experience building gasoline engines and fuel systems, and with radio electronics) that a solid grounding in HARDWARE can't fail to be useful (noting my smug little anecdote above).

So I will take a look at Art of Assembly, and the others, and ask this further question: what about logic boards, their components, and cpu's & gpu's. A primer on how they work and are made, advances, problems, plans for the future. I just recently read an Intel doc that explained very well what exactly the Northbridge and Southbridge are, and what they do (and how with Sandy Bridge and beyond, the NB or parts of it, are integrated into the CPU). So anything that specifically looks at the history and theory of computer hardware (and I AM serious that I would like to start with ENIAC and vacuum tube/valve circuitry, or at least microcomputers per se from Altair, PET, Sinclair, Apple I, before 286 and 68k)?

Thanks again!

--Will

#8 Seal

Seal

    Not a fan of clubs.

  • Agents of the Revolution
  • 2,440 posts
  • Country:
  • Gender:Male
  • Location:Canada

Posted 07 March 2012 - 11:59 AM

I quite liked the first volume of "Write Great Code" from No Starch Press (http://nostarch.com/greatcode.htm). It's not actually about coding, so much about how the CPU and computer works from a general overview perspective. The author's thinking is that if you know how a computer works, you'll be more apt to write code that better caters to its limitations/strengths. But it's great from a hardware introduction perspective.

As for circuitry, you might want to consider playing with an FPGA development board. You can grab one for less than a hundred bucks, and get to essentially make your own ICs.

Edited by Seal, 07 March 2012 - 12:02 PM.





BinRev is hosted by the great people at Lunarpages!