(Part 3) Best computer hardware & diy books according to redditors

Jump to the top 20

We found 1,470 Reddit comments discussing the best computer hardware & diy books. We ranked the 449 resulting products by number of redditors who mentioned them. Here are the products ranked 41-60. You can also go back to the previous section.

Next page

Subcategories:

Microprocessor & system design books
Mainframes & minicomputers books
Computer hardware upgrade & repair books
Robotics books
Computer hardware peripherals books
Computer design & architecture books
Internet & networking books
Personal computer books
Single board computers books

Top Reddit comments about Computer Hardware & DIY:

u/MIDItheKID · 13 pointsr/raspberry_pi

I've suggested it to a lot of people today (looks like that askreddit thread got a lot of new subscribers over here)

Grab this book. It's a fantastic little book that will get you from 0 knowledge of Linux and the Raspberry Pi, to making a simple game, to setting up buttons to turn lights on/off, to making a file server.

By the time you're done with this book, the only thing you'll be limited to is your imagination. You'll have enough technical knowhow to do most things, and if you don't, you'll know enough of the correct keywords to look it up. It's really a great place to start.

u/RobertJacobson · 11 pointsr/compsci

Just want to add a couple of things:

  1. Despite the significant practical and theoretical challenges mentioned by the other commenters, it is amazing that compilers nonetheless can parallelize some code in specific cases in which it can prove that the parallelizing transformation is equivalent. These automatic parallelization transformations are quite limited for the reasons already discussed. For example, compilers can sometimes use SIMD instructions when it detects repeated computations within a loop. Here's an article about how LLVM auto-vectorizes code. Of course, SIMD isn't multithreading specifically, but it is parallelization nonetheless.

  2. u/Pantajones and u/Tai9ch explained about the centrality of dependencies to the problem of automatic parallelization, and your comment about "dependency trees" is an insightful one. If you want to learn more about how these ideas can be applied to building an optimizing compiler, I recommend Optimizing Compilers for Modern Architectures: A Dependence-based Approach by Randy Allen and Ken Kennedy. Be warned: It's an advanced book that focuses on theory, not a book for beginners.
u/bruno_dmt · 8 pointsr/androiddev

Although old, this book does a very good job explaining the Android architecture https://www.amazon.com/Embedded-Android-Porting-Extending-Customizing/dp/1449308295

Given it was written for Android 4, it doesn't have all the new Treble staff (the basis are still the same, so I think it's still worth reading), but the author has a set of slides that you can read after the book to get the recent changes: https://www.slideshare.net/opersys/presentations

​

Another useful book is https://www.amazon.com/Embedded-Programming-Android-Bringing-Scratch/dp/0134030001 . This one focuses more on getting AOSP running on a new device, and not that much in its internals or customization.

​

Two newer books I have recently found (although I haven't had time to read them) are https://www.amazon.com/Android-System-Programming-customizing-debugging/dp/178712536X (same author as the previous one, content mostly related to building the kernel and getting AOSP running in a new device/emulator) and https://www.amazon.com/Learning-Embedded-Android-N-Programming-ebook/dp/B01841W9AU

They are still pre-treble, but they are probably still useful.

​

Besides those, if you want something more related to internals and not so much on how to "get the source code and build AOSP", you could check https://www.amazon.com/Android-Security-Internals-Depth-Architecture/dp/1593275811 and https://www.amazon.com/Android-Hackers-Handbook-Joshua-Drake/dp/111860864X

u/grules · 8 pointsr/programming

Just read the table of contents of a couple of advanced compiler books:

Advanced Compiler Design and Implementation

Optimizing Compilers for Modern Architectures: A Dependence-based Approach

It is a different ball game.

u/TaxableBat · 7 pointsr/findapath

Alright, so before anything else drop what you're doing and study hardware, repair, and maintenance. This is all basically in the A+ course if you choose to take the test for it. Networking extends off of hardware and repair, and Programming requires knowledge of both A+ and Networking depending how far you take a program. I did programming at first with really basic goofy programs.


So A+ is by far the best route to start, and let me emphasize you will want to only be working on one area at a time. Start hardware/repair, then go networking. In fact I recommend going CompTia to get certifications in them. A+ is the hardware certification, Network+ is after that, and Security+ is after that.


I started A+ and since completing it I've been working on a retail tech job. Not the best tech work, but it can certainly be fun. Going out onsite for repairs, swapping out parts, removing viruses. It's fun, and you meet a lot of cool people doing it. Go buy this book. Jean Andrews covers EVERYTHING in hardware and computer repair and maintenance. Also available, Professor Messer has free A+ study videos on his website. Both of those are the main study materials I used to get my cert.


Now here is the by far biggest piece of advice I can give you...GET STARTED NOW. I waited my senior year of high school to get A+ certified. Had I started earlier, I would have left with A+, Net+, and Sec+ all under my belt. It's a horrible feeling having missed out on great opportunities. My school even offered subsidizing the tests, because they can cost quite a bit. If you would like any more advice on the subject, or if anyone else has questions for me, reply or send a message to my inbox. I'd love to help with getting you into the IT field.

u/maredsous10 · 7 pointsr/ECE

I'd check Amazon for older books you can get on the cheap. Schaum's outlines as mentioned are also good.

Books

u/ElectricRebel · 5 pointsr/compsci

For compilers:

u/cmcollander · 5 pointsr/raspberry_pi

I used this book in my computer architecture and assembly course and it was amazing for learning and understanding assembly on the Raspberry Pi. I highly recommend it.

http://www.amazon.com/Raspberry-Assembly-Language-RASPBIAN-Beginners/dp/1492135283

u/bengineering101 · 4 pointsr/raspberry_pi
  1. Get a model B+. The biggest improvement as far as a novice user is concerned is that it has 4 USB ports. The model B only had 2, so if you wanted to plug in something like mouse + keyboard + WiFi dongle + webcam, you'd need an external powered USB hub. So the B+ is well worth it just for that.

  2. Don't feel bad - you're right that a lot of the blog posts/tutorials you can find online are written for people who already understand Linux and electronics, so will be full of jargon that you don't understand. For example, many people will point you to the elinux.org wiki in the sidebar - but IMO that isn't well-written for beginners, so it isn't a good starting point.

    There are definitely some completely beginner-friendly resources out there. Many of them have a series of lessons you can follow one at a time. Typical "beginner" tutorials will start you off with something very simple, like blinking an LED. Then you learn how to use a button press to toggle an LED on and off. This gets you familiar with the very basics of inputs and outputs, and then you can start doing more complicated projects.

    Here are four YouTube channels with good tutorial videos (they were linked to from the official announcement of the Model B+, so you know they're legit):

  • RaspberryPiIVBeginners (particularly check out the series of "Raspberry Pi - GPIO & Python" videos here)
  • The Raspberry Pi Guy
  • Raspi.TV
  • Geek Gurl Diaries

    If you don't mind spending money, I definitely recommend this book:

  • Getting Started with Raspberry Pi

    This book is written for kids, but it's just as useful to a novice adult:

  • Adventures in Raspberry Pi

    I haven't looked through any of these in detail yet, but there are a bunch of resources on the official website (and ideally, since their original mission was K-12 education, these will be written for beginners):

    http://www.raspberrypi.org/resources/learn/

    Anyway - I'd probably recommend starting out with the "blink an LED, push a button" route, but it's up to you. Browse through the tutorials and see if there's something that really catches your eye. If you have trouble understanding something, feel free to message me (I work in science education so I'm used to explaining stuff like this), or just make a new post in this sub. Generally, if you've at least tried to figure it out on your own/have done your homework and can write an articulate post like you've done here, you'll get some helpful responses (as opposed to "hey guyz i don't understand/know what to do with a raspberry pi what should i do", in which case people will usually tell you to go Google it).
u/CosmicGame · 4 pointsr/mac

I’d really recommend The Missing Manual series by David Pogue (tech writer for the New York Times)…his writing is clear, concise and easy to understand without making the reader feel stupid.

Since you’re a “switcher” from PCs, I’d recommend you start with this one:
Switching to the Mac: The Missing Manual, Mavericks Edition




u/BeowulfShaeffer · 4 pointsr/programming

Most of what he says carries over to the .NET world with minor changes. And vice-versa - Joe Duffy's Concurrent Programming on Windows addresses some of the same things, even though it's really a Windows / .NET book.

threads are threads. The names of the functions we call change from platform to platform but the basic synchronization problems are the same everywhere.

One more plug: Allan Downey's free Little book of Semaphores will blow your mind if you're interested in really learning threads.

u/LocalAmazonBot · 3 pointsr/mac

Here are some links for the product in the above comment for different countries:

Amazon Smile Link: Switching to the Mac: The Missing Manual, Mavericks Edition


|Country|Link|
|:-----------|:------------|
|UK|amazon.co.uk|
|Spain|amazon.es|
|France|amazon.fr|
|Germany|amazon.de|
|Japan|amazon.co.jp|
|Canada|amazon.ca|
|Italy|amazon.it|
|China|amazon.cn|




This bot is currently in testing so let me know what you think by voting (or commenting). The thread for feature requests can be found here.

u/redsymbol · 3 pointsr/devops

While cringing at the 2.0 meme just as much as anyone, I have to recommend my favorite technical devops book right now, which actually has "devops 2.0" in the title:

http://www.amazon.com/dp/152391744X/

It's written by a stellar engineer, for engineers... focused on the technical challenges in implementing devops, rather than hand-waving about culture and vague ideas. All substance, no fluff. Marvelously well written. Opinionated, in the good way (i.e. takes a stand on things and explains his reasoning, leaving you free to disagree).

My only concern is that it's so specific to the technologies of 2016 that - when the current edition inevitably becomes outdated in a year or three - the author will break my heart by declining to put in the work to make an updated version.

u/darkharlequin · 3 pointsr/raspberry_pi

Wish I'd had these last semester. I did a rPi project with assembly reading an encoder and changing the brightness of an led with pwm. Learned a lot from this book on rPi assembly Raspberry Pi Assembly Language RASPBIAN Beginners: Hands On Guide https://www.amazon.com/dp/1492135283/ref=cm_sw_r_cp_apa_yVumxb1C2SQQY

Edit: if anyone wants to see me butcher assembly here's my project writeup.

https://drive.google.com/file/d/0B4TXqpPTeSTicGVWZjBDQ2RsUjQ/view?usp=drivesdk

u/jgm27 · 3 pointsr/ECE

The second book is good. You might also want to check out: Modern Processor Design: Fundamentals of Superscalar Processors https://www.amazon.com/dp/1478607831/ref=cm_sw_r_cp_api_M8YmxbVCM44YW

u/FearMonstro · 3 pointsr/compsci

Nand to Tetris (coursera)

the first half of the book is free. You read a chapter then you write programs that simulate hardware modules (like memory, ALU, registers, etc). It's pretty insightful for giving you a more rich understanding of how computers work. You could benefit from just the first half the book. The second half focuses more on building assemblers, compilers, and then a java-like programming language. From there, it has you build a small operating system that can run programs like Tetris.

Code: The Hidden Language of Hardware and Software

This book is incredibly well written. It's intended for a casual audience and will guide the reader to understanding how a microcontroller works, from the ground up. It's not a text book, which makes it even more more impressive.

Computer Networking Top Down Approach

one of the best written textbook I've read. Very clear and concise language. This will give you a pretty good understanding of modern-day networking. I appreciated that book is filled to the brim of references to other books and academic papers for a more detailed look at subtopics.

Operating System Design

A great OS book. It actually shows you the C code used to design and code the Xinu operating system. It's written by a Purdue professor. It offers both a top-down look, but backs everything up with C code, which really solidifies understanding. The Xinu source code can be run on emulators or real hardware for you to tweak (and the book encourages that!)

Digital Design Computer Architecture

another good "build a computer from the ground up" book. The strength of this book is that it gives you more background into how real-life circuits are built (it uses VHDL and Verilog), and provides a nice chapter on transistor design overview. A lot less casual than the Code book, but easily digestible for someone who appreciates this stuff. It culminates into designing and describing a microarchitecture to implement a MIPS microcontroller. The diagrams used in this book are really nice.

u/mfukar · 3 pointsr/askscience

> When we say dual core of quad core processor, what we really mean is a single integrated chip (CPU) with 2 (dual) or 4 (quad) processors on it. In the old days processors were single core so this confusion didn't arise as a single core processor was just a processor.
>

Many CPUs can be included in a single integrated die.

In "the old days" there were multi-chip modules includinged multiple CPUs (and/or other modules) in separate ICs.

> A processor consists of a control unit (CU) and a arithmetic logic unit (ALU).

And many other things, which it sometimes shares (MMUs, I/O controllers, memory controllers, etc). Don't be too picky over what a processing unit includes. For those that want to dive in, grab this or this book and read on.

> The combination of components is why just having more cores or more GHz doesn't always mean a faster CPU - As the onboard cache and other factors can also slow the processing down, acting as a bottleneck.

Bit of a superfluous contrast, these days. Using anything external to the CPU slows it down, by virtue of propagation delays alone. That's one of the reasons we want many cores / CPUs. The more CPUs or faster clocks question is a red herring - here's an article that explores why (the context is CAD, but the observations are valid in most areas of application).

u/LiquidLogic · 3 pointsr/arduino

For learning to program the Arduino, I HIGHLY recommend Simon Monk's : Programming Arduino, Getting Started with Sketches books.


For the electronics side, his Electronics Cookbook: Arduino and Raspberry Pi is also great.


Jeremy Blum's : Exploring Arduino is also very nice.

u/arturoman · 3 pointsr/programming

My complete rebuttal to your poor assessment of the complexity of a computer's architecture is covered here:

http://www.amazon.com/Computer-Architecture-Quantitative-Approach-Kaufmann/dp/1558605967

u/Dalriata · 3 pointsr/dwarffortress

No, the hardcover book is like $200, this paperback version was $30 on Amazon.

u/ed7coyne · 3 pointsr/androiddev

This book is far and away the best resource I have found for Android internals: https://www.amazon.com/Embedded-Android-Porting-Extending-Customizing/dp/1449308295

Unfortunately it is out of print, I read it on safaribooksonline.com but you can probably find copies elsewhere too.

u/pitch_away · 3 pointsr/AskElectronics

Here are 2 awesome guides: 1 & 2. But as indicated in this thread you probably should get a well know micro-controller and use it to build a knowledge base. The Arduino is an Italian micro-controller that is based on an Atmel chipset. It has a massive online following and support for it can be found in /r/Arduino or here at their website. This has numerous shields that can be added on to add features. These are things like GPRS (SMS and Mobile connectivity), Ethernet (Wireless) and Motor Control. You can buy components and such from: https://www.sparkfun.com/ ; https://www.adafruit.com/ ; http://www.mouser.com/ . The Arduino favors hardware prototyping and tinkering. The Arduino is programmed using its own software that is free and available. It has its own IDE (integrated development Environment) and is programmed using its own take on the assembly language. It is quite easy to use, well supported and open source.

Also, you might consider the Raspberry Pi which is explained in this Ted Talk by Eben Upton one of the creators of the board. I believe it uses AVR. The "A" board is slightly smaller (storage) and boots linux from a SD card or Flash as does the "B" which has slightly more storage and WiFi hardware. The Pi is typically programmed in Python but can be used I think with almost any language(C, C+, Assembly etc.)

Also, there is a Micro called BeagleBone. It is similar to Pi but has a few different features. It is very powerful and can be researched(as a starting point here. I know very little about this board and believe it to be more advanced than the former 2 I had mentioned.

These resources can be used for the Arduino: Getting Started and Cookbook.

A few resources to get started: Python & Pi and Getting Started

The first 2 resources I listed 1 & & 2 Are absolutely brilliant. They teach basic electronics introduction to Eagle Cad A free PCB (printed Circuit Board) program that people use to draw schematics and PCB. Which is pretty important. I linked the free version which is more than powerful enough for a beginner. The resource [1] is really helpful I would read it thoroughly if interested. Also, places like http://makezine.com/ is a good place for DIYers. Also you might like this news channel that follows hacker stuff (it is from Y-Combinator an Incubator for some silicon valley start ups) listed here. These links should cover you for a while.

u/deanmsands3 · 3 pointsr/ProgrammingLanguages
u/SmithNineSix · 3 pointsr/Python

I have this one and it is actually great for beginners. Good for learning both Python and the GPIO hardware of the Pi.

u/treeturtle · 3 pointsr/learnprogramming

You can definitely learn, but don't think it'll be quick and painless. If you're a book guy This book will definitely get you going. However, I'll say it, starting programming in obj-c is a bitch. Syntactically it can be extremely overwhelming ( I tried to learn obj-c first ). If it becomes too much, take a step back and try good old C, or a much prettier language like Java, Python, or Lua which will help you understand all the concepts of programming before jumping into app development which can be extremely complex.

After being scared off by obj-c I officially started down my programming path by going through This book which was an absolute pleasure to read and a great "hold your hand" guide to basic programming. The great thing about this is that you'll be learning C concepts which all carry over to obj-C and you'll be getting very familiar with Xcode and the debugger which, again, carry right over into obj-C and app development.

u/apresskidougal · 3 pointsr/Juniper

Junos genius - lots of SRX examples and prep

https://cloud.contentraven.com/junosgenius/login

​

Day one for IOS engineers - lots of useful stuff for translating IOS to junos

https://www.juniper.net/us/en/training/jnbooks/day-one/fundamentals-series/junos-for-ios-engineers/

​

Oriely Juniper networks warrior - lots of practical useful examples

https://www.amazon.com/Juniper-Networks-Warrior-Guide-Implementations/dp/1449316638

​

Juniper VLABS beta - (need to create an account) Free vSRX \ vMX \ vQFX labs on demand - this is awesome not sure how long it will be free for but its really great.

https://iam-sso.juniper.net/iamsso/xlogin.jsp?bmctx=EAD61BB3DBCABD64C2A4A2AEA570E281A2AC4DFBB2A56B46EC0E51905266BBE6&password=secure_string&contextType=external&username=string&challenge_url=%2Fiamsso%2Fxlogin.jsp&request_id=21424465658294541&authn_try_count=0&locale=en_US&resource_url=%252Fuser%252Floginsso

​

​

u/dave84 · 3 pointsr/programming

Do you have any previous programming experience? Are you just looking to learn the core Objective-C language or do you mean the Mac OS X Cocoa framework too?

If you're coming from C++ check out this PDF.

Learn Objective-C on the Mac assumes you know some C and it doesn't really touch on the Cocoa framework, it sticks to the command line. I have found it useful.

Programming in Objective-C 2.0 seems to covers Objective-C and Cocoa and the reviews look good, but I haven't read it.

u/GrayDonkey · 3 pointsr/java

You need to understand there are a couple of ways to do Java web development.

  • Servlets & JSPs. - Check out Core Servlets and JavaServer Pages or the Java EE Tutorial. Note that I link to an older EE tutorial because the newer versions try to switch to JSF and not much changed in Servlets and JSPs between Java EE 5 and 6. I recommend learning Servlets and JSPs before anything else.
  • JSF - A frameworks that is layered on top of Servlets and JSPs. Works well for some tasks like making highly form centric business web apps. Most of the JSF 2 books are okay. JSF is covered in the Java EE 6 Tutorial
  • Spring - Spring is actually a bunch of things. You'd want to learn Spring MVC. If you learn any server-side Java web tech besides Servlets and JSPs you'd probably want to learn Spring MVC. I wouldn't bother with GWT or any other server-side Java web tech.
  • JAX-RS - After you get Servlets and JSPs down, this is the most essential thing for you to learn. More and more you don't use server-side Java (Servlets & JSPs) to generate your clients HTML and instead you use client-side JavaScript to make AJAX calls to a Java backend via HTTP/JSON. You'll probably spend more time with JavaScript:The Good Parts and JavaScript: The Definitive Guide than anything else. Also the JAX-RS api isn't that hard but designing a good RESTful api can be so be on the lookout for language agnostic REST books.

    Definitely learn Hibernate. You can start with the JPA material in the Java EE tutorial.

    As for design patterns, Design Patterns: Elements of Reusable Object-Oriented Software is a classic. I also like Patterns of Enterprise Application Architecture for more of an enterprise system pattern view of things. Probably avoid most J2EE pattern books. Most of the Java EE patterns come about because of deficiencies of the J2EE/JavaEE platform. As each new version of Java EE comes out you see that the patterns that have arisen become part for the platform. For example you don't create a lot of database DAOs because JPA/Hibernate handles your database integration layer. You also don't write a lot of service locators now because of CDI. So books like CoreJ2EE Patterns can interesting but if you are learning a modern Java web stack you'll be amazed at how archaic things used to be if you look at old J2EE pattern books.

    p.s. Don't buy anything that says J2EE, it'll be seven years out of date.
u/giantsparklerobot · 3 pointsr/raspberry_pi

There's a lot of Raspberry Pi kits on Amazon that come with wires, a breadboard, some LEDs, and other electronic components. The CanaKit Ultimate is one such kit that's a good price for what it contains. In addition to the Pi kit get him some books with interesting projects.

  • Getting Started with the Raspberry Pi
  • Raspberry Pi Projects for the Evil Genius
  • Raspberry Pi Projects

    These are all pretty good books and have interesting projects. If your son is actually interested in engineering don't let him just stick XBMC or RetroPi on the thing and call it a day. While those projects might be interesting in their own right you're not really learning much if you're just assembling a video player or video game emulator.

    If he puts together some interesting projects with the Pi get him a Radio Shack gift card for his birthday. They're trying to get back to being the electronic hobby retailer of choice so they're carrying Pis, Arduinos, and stocking more electronic components.

    What's nice about a good kit is a lot of the components will be useful in other types of projects. Breadboards and good wires work just as well on an Arduino as they do on a Raspberry Pi.
u/privateLoginUsername · 2 pointsr/learnprogramming

Also if you're willing to spend a small amount of money to help I really found this book (https://www.amazon.co.uk/Raspberry-Pi-Projects-Sean-McManus/dp/1118555430/ref=sr_1_10?ie=UTF8&qid=1484694825&sr=8-10&keywords=Raspberry+pi++book) and the Raspberry Pi itself to be of immense help when trying to learn Python, especially when it came to things like embedded software in the board and the AI side of some of the wee games you came make

u/Human_Ballistics_Gel · 2 pointsr/arduino

I found this book to be very helpful, specifically with the programming.

Programming Arduino: Getting Started with Sketches, Second Edition (Tab) https://www.amazon.com/dp/1259641635/ref=cm_sw_r_cp_apip_JiLpNCgexyZf6

u/driscoll42 · 2 pointsr/ECE

If you go to Amazon's page for the book you can actually find the relevant section on Page 17 of the "Look Inside!" free preview

u/petrithor · 2 pointsr/simpleios

> (assume i have programming background in javascript/web front end.)

Um, are you sure you're ready to jump into iOS development?

Unless I'm reading this incorrectly, it doesn't seem like you have any C or OOP (like Java) programming experience. You'll definitely want to be at least comfortable with C-like syntax and message-passing, inheritance and objects, etc.

Actually, I'll have you answer that for yourself. Watch the first lecture in the iOS dev series from Stanford on iTunes. Around minute 11 the professor goes over what concepts you need to understand in order to be able to follow along with the course. If you don't understand all of the concepts listed, then you aren't ready yet.

Also, you've got to have a Mac. Have at least a Mac Mini (which are the cheapest Macs you can get refurb'd / used).

Here's what I would do assuming I am correct about your programming experience:

1. Learn C on the Mac.

It's for beginners, and will go over the basics of C. Objective-C, the programming language for iOS, is a strict superset of C, so they share a lot of syntax.

1.a The C Programming Language (recommended)

This one isn't for beginners, and is a bit stale, but is the de facto book for learning all of the intricacies of C. While it isn't absolutely necessary, the better you understand C (including pointers, memory, etc.), the easier time you'll have with iOS dev. I absolutely recommend going through it in its entirety, though this isn't necessary. It'll also be good to know C in the future if you plan to pursue software development.

2. Programming in Objective-C

This will teach you Objective-C, related OOP, and using XCode 4.

3. Beginning iPhone 4 Development

This will probably rehash some stuff related to Objective-C and XCode, but for the most part is a great introduction to iPhone development.

Use this book in tandem with the Stanford lecture series. Read the first few chapters, watch the first 2 lectures, do the homework exercises as if you were in the course along with the examples from the book, and just go from there. There might be some redundancy, but I think the combination of reading, listening, and doing will really help you understand the material.

If you need short tutorial refreshers at any point, Cocoa Dev Central is a great resource.

From there, you should be able to start making your own apps, and just use Google, StackOverflow, and http://developer.apple.com/ for all of your questions not previously answered or if you get stuck.

As you go through the process of learning all of these new programming concepts, try to develop ideas for what apps you want to develop. As you learn more, try to piece together how you would accomplish certain aspects of the ideas, and if you can, maybe even code the bits (like certain functions) you can.

There are no set milestones.. it's a gradual process of learning and getting better at programming and iOS development. Your goal should be to just create your own working app entirely based of your own ideas and work.

u/chris_p · 2 pointsr/mac

Ideas:

  • How about learning programming? Learn Objective-C, then you could develop both mac and iOS apps on your iMac. They're great for coding!
  • Even better, you could learn ruby, a modern and relatively easy to learn programing language and develop web applications with rails (A big part of the ruby community is using macs).
  • Start learning Flash and make some good flash games.
  • Or become an expert in Photoshop!
  • Download and watch a few good HD movies. They look amazing on the iMac screen.
  • Learn something new by taking an online Stanford class, for example computer science, anatomy or game theory.


    If that's not enough, browse the App store. I'm sure you'll find some inspiration.
u/leonardovaz · 2 pointsr/learnprogramming

This book is a good resource for learning Assembly Language. The author released the book under GNU Free Documentation License and it's also available in PDF format.

u/Superdupercudder · 2 pointsr/cscareerquestions
u/[deleted] · 2 pointsr/programming

Programming From the Ground Up for low level programming, and how computers actually work.

Also free in PDF from http://savannah.nongnu.org/projects/pgubook/

u/jfasi · 2 pointsr/programming

There is one book you need to have i you're going to be using Cocoa. Once you get a footing with Objective C as a language, you should buy yourself a copy of Cocoa Design Patterns. This covers Cocoa by teaching you first the rationale behind it, then shows you how to do things.

Also, this would probably be a worthwhile read, if only for the terminology it introduces.

Good luck!

EDIT: I personally learned Objective C using this book, and I'd recommend it to you as well.

u/servohahn · 2 pointsr/arduino

I bought a couple kits on Amazon that come with PDF manuals on CD. Things like this. I got this book which really helped me understand sketches instead of just modifying other people's code.

I got into arduino because I had these two kits:

https://www.amazon.com/Make-Electronics-Components-Pack-1/dp/B00T0UCLIK/ref=sr_1_2

https://www.amazon.com/Make-Electronics-Components-Pack-2/dp/B00T0UCLF8/ref=sr_1_3

Which are meant to go with this book (although I think they might be meant for the first edition of the book). It's awesome, this guy explains how most basic components work as he guides you through several projects.

Finally, go to your local Radio Shacks today and get some components on the cheap. Look for resistor packs, LEDs, capacitors, toggles (switches, buttons, etc.), battery holders, hookup wire, heat shrink tubing, logic chips, timer chips, transistor packs, DIP sockets, PCB, project boxes, any arduino boards, motors, servos, solder, tools (like precision screwdrivers, soldering irons and accessories, IC extractors, wire cutters/strippers). If you get into this hobby, you might regret missing this clearance sale.

u/krypt_o · 2 pointsr/JNCIA

> Does Juniper have a Similar program to Packet Tracer?

No, but kind of.

https://www.juniper.net/us/en/products-services/nos/junosphere/

> What materials are best to study for the JN0-102?

Juniper has some good training videos on their website. CBTNuggets also has some. Never watched any Youtube channels that might cover Juniper, but they do exist.

Books:
https://www.amazon.com/Junos-Enterprise-Routing-Practical-Certification/dp/1449398634/ref=sr_1_3?ie=UTF8&qid=1495212847&sr=8-3&keywords=jncia

https://www.amazon.com/Junos-Enterprise-Routing-Practical-Certification/dp/1449398634/ref=sr_1_3?ie=UTF8&qid=1495212847&sr=8-3&keywords=jncia

https://www.amazon.com/Juniper-Networks-Warrior-Guide-Implementations/dp/1449316638/ref=la_B007IVLZ8K_1_2?s=books&ie=UTF8&qid=1495212854&sr=1-2


> What other advice can you give coming from mainly cisco knowledge

If you have CCNA or greater, just get used to the commands and the inter-workings of JuneoS.

u/grauenwolf · 2 pointsr/csharp

If you want to learn it the right way, read this book. I warn you, it is deeply technical. But there is no better source.

https://www.amazon.com/Concurrent-Programming-Windows-Joe-Duffy/dp/032143482X

u/puppy2016 · 2 pointsr/dotnet

> You might adopt new things, but you're not adopting new ideas.

Bad ideas? No.

> Even Visual Studio doesn't work that way anymore and it's moving to more processes,

Yes, that's why the VS 2015 performance is much better than VS 2017 on the same hardware.

> For a dozen reasons, including security, performance

Can you elaborate how the split to multiple processes improves the performance? To create a new process is very expensive operation, compared to a new thread. The same with sharing data across processes versus threads. There is no benefit.

Process isolation can "resolve" poor code quality when a buggy code is more isolated. Again, it isn't any improvement, just a poor fix of having more incompetent developers on the board :-/

> When you're using synchronisation primitives you're doing message passing via shared state, and every time you hit one your code becomes synchronous.

No, you don't understand basic things. Recommended reading Concurrent Programming on Windows

u/DCoder1337 · 2 pointsr/PHP

If you are working on a small project with three tables, you don't need to worry too much. The problems arise when you have a large system where good architecture and appropriate patterns become really important.

With AR, the model class is responsible for both a) modelling a domain object and b) saving it to the DB and loading it back. Which means the model class gets mixed with methods like beforeSave, afterSave and afterFind to turn DB column values into your domain values and back (e.g. timestamps and datetimes converted to DateTime, complete with some timezone). This breaks the Single Responsibility Principle. Note: this is not a big deal for a small solution where your business logic is simple, but it tends to get worse as the system grows.

If an attribute holds something more complex than a string/number (e.g. a DateTime, a custom Money class, etc.), you have to manually (un)stringify it using beforeSave and afterSave (or stow the original value away somewhere in an additional private property).

  • Are you sure those conversions are lossless (of course they should be, but are you certain, especially with datetime/timezones)? I've been bitten by (my own fault) fun bugs before where a DateTime was constructed with a local timezone, then (correctly, by design) saved and unstringified into a DateTime with UTC, and suddenly that entity's publication date is different than it was before...
  • What happens if there's an exception thrown between beforeSave and afterSave - what state is your model left in? Personally, I am not fond of a property that can be both a string and an object at different times.

    See also: Martin Fowler - Patterns of Enterprise Applications.
u/hellobilly · 2 pointsr/androiddev

Check out the Porting and Tuning sections.
Also, the book Embedded Android is good (but getting old) and the guy who wrote it, Karim Yaghmour, as some videos on YouTube, if you prefer that.

u/celacantus · 2 pointsr/Assembly_language

Have you ever heard of [opensecurity training] (http://opensecuritytraining.info)? they have a pretty good introductory Intel x86 course.


The most common resource used is the Intel manual.


If you are looking for some good books I'd recommend the csapp.cs.cmu.edu or the programming from ground up (the last one is best for your needs I think)

u/KyleRochi · 2 pointsr/raspberry_pi

Another convert! Its actually really fun, I am using it in my CS class. Normally I write in C or Python but assembly is really cool in that you are explicitly telling the computer how to move information around. My teacher recommends this book.

u/CaptainDjango · 2 pointsr/learnprogramming

If you're after a book, try Learn C on the Mac for the very fundamentals of C. It's a bit of a spend (but I know for a fact you can get the pdfs from other... less legal sources). I swear by the series, and I wholly recommend you give it a go!

u/yoda17 · 2 pointsr/programming

I've pretty much done it all, but am kinda dumb, so I stick with the easy stuff :) As for the OS loop...that pretty much everything there is to an OS. I briefly attended an OS design classn(I'd already read this book on my own and dropped it early on. Anyway, the prof who had a ph.d. in OR and OS said on the first day of the class that there haven't been any significant changes to operating systems since 1955 as far as basic architectures go.

I'm basically a software engineer too mostly in the scientific fields for process and system design. Some of the software is, or was at the time, some of the most complex software written. The application programming is the complex part @ > 99.5% of SLOC. The OS just manages the tasks and keeps them safe from one another and handles IPC. Anyway, being intimate with the hardware makes this all almost trivial...that's what hardware is supposed to do.

u/MaximaxII · 2 pointsr/raspberry_pi

Getting started with Raspberry Pi by Matt Richardson and Shawn Wallace should be good. Haven't read it though, but I've heard it's a good read.

u/paulandthemonkey · 1 pointr/techsupport

I am not a pro , but I am in school going for It and i may be right or i may be wrong on a couple points .

Not sure how necessary it is but it does provide a framework structure and direction. many people are self taught some go through the system.

I would consider picking up some books and start reading. if you don't want to shell out big bucks you can usually get a previous edition for cheap and most information is the same . you can also find torrents of some books.
some are worth buying as reference , and to develop a level of commitment.

Be willing to help others to gain practical experience, read posts of solved and unsolved problems.

Jean Andrew A+ guide to managing and maintaining PC 8th edition:

http://www.amazon.com/Guide-Managing-Maintaining-Printed-Access/dp/1133135080/ref=sr_1_1?ie=UTF8&qid=1395794977&sr=8-1&keywords=jean+andrews+a%2B+guide+to+managing+and+maintaining+your+pc+8th+edition

i have seen a torrent of this and covers the generals, hardware and software

HTML 5 and CSS3, pearl script, PHP , python, etc. and nutshell books are good.

Database (access MYSQL).

Learning linux/unix , command line .

You caa download Virtual box for free and play with different systems by getting .ISO of different operating sytems

u/Zidanet · 1 pointr/arduino

If you have no idea where to start, try starting with this book: http://www.amazon.co.uk/30-Arduino-Projects-Evil-Genius/dp/007174133X

It's quite cheap, designed for beginners and has awesome starter projects. I'd highly reccomend it.

I was in your position, really excited about the tech, but had no idea where to start! The book has some really cool projects and is very hands on. Each project has a parts list and a tools list so you can make sure you are ordering the right thing and know what you are doing. It got me going right away, and it's very easy to understand.

u/Shnazzyone · 1 pointr/randomactsofamazon

I must become even more of a madman. I will use this book (on my handyman wishlist)

Using the knowledge of arduino i will build a fighting giant robot.

u/AnonysaurusRex · 1 pointr/ECE

I run tutorials and labs for a "Foundations of Digital Design" unit. We use:

http://www.amazon.com/Digital-Design-Computer-Architecture-Harris/dp/0123704979

From my experience this is a good book, an improvement on what we used to use (Mano & Kime).

u/NeptLudi · 1 pointr/NoStupidQuestions

I generally thing the basics can be picked up without much instruction (but I tend to like to dig around and find stuff vs reading books), but it is all those little tips and tricks you mention that really make a system truly useful. I was lucky enough to move over to OS X over 10 years ago, so I got to learn each piece as the system evolved vs trying to learn it all at once. The same goes for iOS.

With each release over those years, Apple has posted a page like this which lists out all the new features so you know what is available to you.

https://www.apple.com/osx/whats-new/features.html

The keynote when they announce stuff gives the big features (I don't know if those are captioned or not), but these pages fleshes it out and gives the rest of the picture. It doesn't take too long to go through and I find it amazingly helpful. Any time I see those "10 hidden tricks" articles I usually already know between 8-10 of them.

I'd say the basics from going from Windows to Mac are the following:

  • Keyboard shortcuts generally use Command instead of Control. To help learn, check out the shortcuts listed in the menus next to the command. Use the search box in the Help menu to search the menu items if you can't find what you're looking for.
  • Learn what a DMG file is and how to install applications from it. Some developers design the DMG in a way to make this obvious, others do not.
  • When in doubt, drag and drop... it normally does what you want.
  • Go through every pane in System Preferences to see what is in there.

    David Pogue (former tech columnist of the NY Times, now at Yahoo Tech) writes the "Missing Manual" for OS X when each new release comes out. It is a bit of a tongue in check title based of the very issue you're having. At this point, I'm not sure if you'd want to get the current version or wait for Yosemite to release and the book to come out, since it is right around the corner and the system has a huge UI overhaul.

    Here is the Missing Manual for Mavericks.... 880 pages.

    http://www.amazon.com/OS-X-Mavericks-Missing-Manual/dp/1449362249/ref=la_B000AP8Q6U_1_4?s=books&ie=UTF8&qid=1408986900&sr=1-4

    Here is the version for those switching from Windows. I'm not sure the exact differences, but it probably has some more stuff on migration and might use some Windows ideas to explain OS X (but I'm guessing here).... this one is 800 pages.

    http://www.amazon.com/Switching-Mac-Missing-Manual-Mavericks/dp/1449372260/ref=la_B000AP8Q6U_1_5?s=books&ie=UTF8&qid=1408986900&sr=1-5


    Hopefully some of this help. I haven't read any of the books, but my dad has the Missing Manual and in recent years as become a fan of Pogue's writing.
u/CodeSquad · 1 pointr/raspberry_pi

Anything you do, do not buy this book , or this one . Just a waste of money.

u/bizcs · 1 pointr/csharp

Now, all that said, there are various synchronization primitives that can be used, and there also some generic rules that you should always try to follow:

  1. When using thread-affine locking primitives (such as a Mutex or a CLR lock), all operations inside of the lock should occur quickly.
  2. In general, locks should be read-only - they should not change between accesses, or they may break synchronization
  3. Many readers can safely access a data structure at the same time without risk, provided that those readers do not modify the data structure itself in any way (our hypothetical queue did not support this, because Dequeue did modify the data structure).
  4. Others. You can spend years and years researching this.

    Primitives:

  5. CLR locks (see the C# lock keyword)
  6. Mutexes (thread-affine)
  7. Semaphores (generally not thread-affine)
  8. Reader/Writer locks (thread-affine, uses per-thread state)
  9. Manual/Auto Reset Events (not thread-affine)
  10. The CountdownEvent class (on .NET, can't recall if this is thread-affine or not)

    Anyway, this is probably the most detailed response I've ever typed to anything on the internet, so... I'll leave you with some recommendations.

    I think Jared Parsons summarizes the problems pretty well here and here.

    You can also have a look at Joe Duffy's blog. I'd also highly recommend his book Concurrent Programming on Windows. He discusses general operating systems concepts, some of which are specific to Windows, concurrent programming in C# and C++, and various other details... Really great read.
u/blahbot90 · 1 pointr/AskEngineers

Ok, so you're into space. Go into EE. That's probably the most useful advice I can give you. Seriously, spacecraft are pretty much electrical projects and without people in CS and EE, you couldn't do ANYTHING.

Buy an arduino, they're super cheap, start experimenting with it. What I highly suggest you do, and it is also what I do in my spare time to learn, is the following, which is build a satellite!

  1. Buy this starter book

  2. Purchase one arduino (Uno or Pro Mini would be my suggestion), 2 XBEE Radios (one for on the satellite, one for the computer), maybe a couple of sensors (accelerometer, altimeter, GPS, whatever you want).

  3. Now start programming and get your computer to send signals to the arduino, or the other way around.

    Its a very long project, especially for a beginner, and it can be expensive (~200-300) but if you do it right, its a ton of fun, and I have something that can take measurements and send them a mile out to my computer. But for me, its super awesome.

    I also built a rocket, and launched that sucker up, and watched it come down. Had the satellite transmit data, plotted it on Google Earth and had a 3D graph of the trajectory. Its such a great feeling to have something like this succeed.

    Edit: Forget learning the math/science reading side, you'll get that regardless of where you go and I would highly recommend practical experience over reading over the subjects that will likely just fly over your head. When I was 15, theory was the first thing that would make me fall asleep, actually building something with my hands would keep me up til the sun rose.
u/korish77 · 1 pointr/Juniper

Forget what I have turned on, followed pretty much what was in one of these books, can't remember which:
https://smile.amazon.com/gp/product/0596100140

https://smile.amazon.com/Juniper-Networks-Warrior-Guide-Implementations/dp/1449316638/

They are both pretty good reads for learning juniper stuff.
Good for best practices etc.

u/Zaonhort · 1 pointr/techsupport

I'm actually taking a class in college right now that at the end I can take the A+ certification. I rather like my textbook which is A+ Guide to Managing & Maintaining Your PC as its fairly straightforward if not extremely long.

Part of my class also includes Testout which has videos and training sessions that I feel really helps me learn the material and you can take the Testout PC Pro Certification with that as well which just proves along with A+ that you can install hardware rather than be given scenarios as with the A+ exam as I understand it

u/StrskyNHutch · 1 pointr/ECE

The research project I was working on was specifically geared towards improving TLB misses by restructuring the cache, but over the course of being prepared for this, I read this book front to back. I learned a lot about how a microprocessor is designed and how its pipelined stages work together, and I wanted to know if that knowledge could be translatable to a hardware related field. I know I'm probably not qualified to work in this field full time but I was hoping I could get at least get my foot through the door with an internship

u/NeoMarxismIsEvil · 1 pointr/arduino

In this case you're mostly buying the books and not getting that much hardware. In particular that kit seems to skimp on some of the small cheap components like resistors.

For about the same money you could get these:

Programming Arduino: Getting Started with Sketches, Second Edition (Tab) https://www.amazon.com/dp/1259641635/

Elegoo Mega 2560 Project The Most Complete Ultimate Starter Kit w/ TUTORIAL, MEGA 2560 controller board, LCD1602, Servo, Stepper Motor for Arduino Mega2560 UNO Nano https://www.amazon.com/dp/B01EWNUUUA/

Total: $70.19

u/DuckGod · 1 pointr/norge

Arduino er en veldig god start i min mening, om du ikke mener det er overveldende. Det er jo fort litt elektronikk og kode som må læres før man gjør kule prosjekter, men det er ikke egentlig så ille om man ikke biter av for mye om gangen. En fordel med Arduino er at du bruker et språk veldig likt C++, så hoppet fra Arduino til C++ er ikke så stort.

Er noe mer usikker på det med lærebøker, men det finnes en del hobbybøker med x prosjekter i som kunne vært en god basis, som f.eks denne eller denne.

Skulle han ha mer intresse av koding enn nødvendigvis å lage duppedingser vil jeg derimot peke retning python. Code Academy har et helt greit begynnerkurs (gratis) for nybegynnere.

u/mariox19 · 1 pointr/learnprogramming

Whatever anyone says—in my opinion—this is the most important book on C, if you're pretty new to programming and want to learn it:

https://www.amazon.com/C-Plain-English-Brian-Overland/dp/1558284303

I would recommend this, to go hand-in-hand with the above:

https://www.amazon.com/Learn-C-Mac-David-Mark/dp/1430218096

After that—assuming all goes well—you need to learn the C standard library. You should also probably pick up the K&R book (google it, if you don't know what it is) to drive home the language. Good luck!

u/DJ027X · 1 pointr/comparch

A quick search found http://www.amazon.com/Modern-Processor-Design-Fundamentals-Superscalar/dp/1478607831 as well as http://www.ebay.com/itm/like/111520297055?lpid=82
I have no idea what their contents are though, or if they cover what you are looking for

u/lawanda123 · 1 pointr/india

Hi,

Can somebody recommend me good books/sources for the following-:

1.Advanced Design Patterns - OOPS + Functional
2.Refactoring
3.Big data analytics and ML algorithms
4.Any fast track course/refresher for JS + Angular(Im looking for something that has finer details,ive done JS in the past but ive forgotten most of it)

Also,ive picked up on some of Martin Fowlers books for now,but would like more perspective-:

https://www.csie.ntu.edu.tw/~r95004/Refactoring_improving_the_design_of_existing_code.pdf

http://www.amazon.in/Enterprise-Application-Architecture-Addison-Wesley-Signature-ebook/dp/B008OHVDFM

Would highly recommend these for anyone interested..

u/delirial00 · 1 pointr/programming

I don't really like that book. Not that it's poorly written, it just didn't click with me.

I'd recommend "Learn Objective-C on the Mac". It's got a very solid Objective-C foundation, and it had very good examples which helped me make sense of the matter.

Note: I believe Apress is about to release (or maybe has released already) a book on Cocoa also, but I can't comment on that one yet.

http://www.amazon.com/Learn-Objective-ndash-C-Mac/dp/1430218150/ref=pd_bbs_3?ie=UTF8&s=books&qid=1239082003&sr=8-3

u/Limeman36 · 1 pointr/devops

The DevOps 2.0 toolkit:

https://www.amazon.com/DevOps-2-0-Toolkit-Containerized-Microservices/dp/152391744X

Also available as epub on google books.

u/throwaway4939393248 · 0 pointsr/learnprogramming

http://www.amazon.in/Programming-Ground-Up-Jonathan-Bartlett/dp/0975283847/ref=sr_1_1?ie=UTF8&qid=1468501621&sr=8-1&keywords=Programming+from+the+ground+up

This book is what I have.

Book language is "Linux Assembly X86"

Oh, so higher level is easier? I will research this, and Python Ruby thanks.