Best macintosh operating system books according to redditors
We found 116 Reddit comments discussing the best macintosh operating system books. We ranked the 35 resulting products by number of redditors who mentioned them. Here are the top 20.
We found 116 Reddit comments discussing the best macintosh operating system books. We ranked the 35 resulting products by number of redditors who mentioned them. Here are the top 20.
I would definitely take a look at The iOS Hacker's Handbook. It's an excellent resource for understanding the fundamentals of jailbreaking.
Just learn Objective-C. You'll find much more material and examples and it'll be another language you have under your tool belt. It's also the de facto standard for Cocoa development, even if there are Python bindings.
This book is good: http://www.amazon.com/Programming-Objective-C-2-0-Developers-Library/dp/0321566157/ref=sr_1_1?ie=UTF8&s=books&qid=1250177866&sr=8-1
John Siracusa writes reviews of new major OS X releases for Ars Technica. These reviews are more than a dozen pages long (to the point that the most recent one is also available as a Kindle ebook), so he has to start writing them well in advance of the actual release, using the developer Golden Master seed.
howardgrigg is implying that he will now have to start all over, since he may have found bugs that are now fixed, or successfully used features that now have bugs. (In reality, he'll probably just go through and retest everything—or at least every bug—he mentioned individually.)
iOS has numerous amounts of security mechanisms in place
These are some of the basics and there are lots of good resources out there. I will link some of them below.
https://xerub.github.io/ios/kpp/2017/04/13/tick-tock.html - KPP
https://www.theiphonewiki.com/wiki/Main_Page - iPhone Wiki
https://www.amazon.com/MacOS-iOS-Internals-III-Insecurity/dp/0991055535 - iOS internals
http://newosxbook.com/index.php - iOS internals and code
I personally have no experience, but I've heard good things about iOS hackers handbook. It's most likely not current but it might be a good start.
You can dive right into Objective C, I was only vaguely familiar with C and I've published a few apps without any problems. However, if you're intent on learning C pick up 'The C Programming Language' (K&R), not only the best C programming book, but one of the best programming books ever written.
Objective C books, I recommend one of the two or both books,
'Programming in Objective C 3rd edition' or
'Objective C: The Big Nerd Ranch Guide'
Both of these books are excellent resources for learning and I keep them close by whenever I have a question.
In terms of learning iOS development. I recommend going into iTunes U and downloading the latest Stanford University iPhone development course. I believe Winter 10 is the newest, follow along those classes and the class website, treat it like a real class, do the homework and all the assignments. There is no text book for the class, but this other book by Big Nerd Ranch, 'iOS Programming: The Big Nerd Ranch Way' is totally awesome.
After these classes and books you should have a great foundation for iOS development. Once you feel comfortable with everything and have an app or two under your belt, download Madison Technical College's Advanced iPhone Development course videos from iTunes U and Apple's own WWDC Session Videos.
Each MTC video is about 3 hours, watch them in chunks. The professor, Brad Larson is one of the best iPhone developers out there and in my opinion is one the best contributors to the community, (see his posts on stack overflow).
Lastly, check out www.raywenderlich.com. My personal favorite iPhone development website. It's updated every Monday, Wednesday, Friday with great technical tutorials that are funny and educational.
Best of luck to you and welcome to iOS development :-D.
This might be a bit too deep for what you're looking for currently, but Jonathan Levin is actively writing a series of books on OS X Internals. Worth checking out and much more up to date than Amit Singh's book.
First learn C well. Objective-C is a rather minimal addition to C's syntax, and so while your process will be different, since you'll have to think about objects and messages, you will mostly be doing C programming when you do ObjC programming.
I'm guessing you want to program in ObjC because you want to write Cocoa apps or iOS (iPhone, iPad) apps. If so, once you learn C get a hold of This book. It's simply the best (better than all the rest).
Or you can support my publish and myself by buying the ebook version (mobi, epub, pdf, kindle version) ;)
In both cases, please leave a review on the amazon page: http://www.amazon.com/MacRuby-Definitive-Guide-Cocoa-ebook/dp/B005WL6HBS/
Thanks
The Hillegass book is kinda the Cocoa bible. Clicky.
It's definitely not too late to pick up it up! For learning Objective-C itself, I highly recommend Programming in Objective-C 2.0 by Stephen Kochan; I used that book without any prior C knowledge at all and it was very easy to follow. Even if you feel you know the language pretty well, it's nice to have as a reference.
If you're more of a visual learner, this course here by Stanford on iOS programming is really good and covers everything from Objective-C and memory management right up to multithreading and OpenGL ES (plus it's free).
When you begin spending a decent chunk of time actually writing iPhone apps, the iOS Reference Library is going to become your best friend. It has a ton of guides and sample code all written and kept up-to-date by Apple. For starters, I'd recommend perhaps reading the sections under the "Required Reading" section (namely, the iOS Application Programming Guide, the iOS Development Guide and the iPhone Human Interface Guidelines (HIG for short). If you want all of the information on one single page, click on the .PDF button in the top right corner and you'll get just that. A couple of things which aren't listed on the Required Reading section but I think are worth having a look at are the Cocoa Fundamentals Guide and Apple's own introduction to Objective-C 2.0.
To give you a quick answer to the language-vs.-library question, the language is what you'll be using to manage memory, create loops, create methods and all that jazz, whereas the library is a collection of software which Apple has written to make your life easier. An example is a UITableView, a class written by Apple which only requires a few methods to be filled out and a basic data source, which will give you a scrollable view almost identical to the one found in the iPod app or even Settings app. It's a powerful class but extremely easy to set up if you just want the basics. I'm hoping that slightly cleared things up a bit, but if not, feel free to PM me some questions or even post them here for everybody else to see and learn from. I'm definitely no guru on this stuff, but I'll do my best to help.
I disagree with the suggestions of podcasts, videos, and developer documentation. You really need to start here:
Cocoa(R) Programming for Mac(R) OS X
>I liked the book with a scooter on the front...
Cocoa Programming for Mac OS X
I also recommend that book, along with Programming in Objective-C which I feel gives a more in-depth overview of the underlying Objective-C base of Cocoa.
I second Hackers by Steven Levy. I also recommend The Chip. It's not specifically about programming, but it's a great read.
As to Neal Stephenson, I realize this is sacrilege, but I don't enjoy his novels. I've tried a couple. However, In the Beginning Was the Command Line is a terrific essay.
Some of the well known jail breakers are writing a book on that right now, but it isn't finished.
http://www.amazon.com/iOS-Hackers-Handbook-Charlie-Miller/dp/1118204123
Read iOS Hackers Handbook http://www.amazon.com/dp/1118204123), and this http://www.idownloadblog.com/2011/09/13/i0n1c-exploit-report/).
Sure, here you go:
<http://www.amazon.com/OS-10-9-Mavericks-Technica-Review-ebook/dp/B00G3J8NPQ/ref=sr_1_1?ie=UTF8&amp;qid=1383035965&gt;
https://smile.amazon.com/Beginning-was-Command-Line/dp/0380815931/
Mac OS X Internals: A Systems Approach by Amit Singh is the canonical guide. It focuses on how the operating system works, but that'll provide a lot of insight into how things work at the hardware level, too.
this is a great book on Cocoa and OSX programming. The author worked for NeXT (the company that originally created what is now known as Cocoa) and Apple, and now does Cocoa consulting and is generally a well regarded expert. This book is also an enjoyable read to boot.
Step 1: Familiarize yourself with C++ (yes C++, not C) from cplusplus.com. This step is free.
Step 2: Learn how to use Objective-C for iOS programming from this amazing book.
That should be all you need.
So these are complicated topics. I know more about the iOS side of things, but I'll try to point you towards some Android resources too.
For iOS, a good place to start would be to pick up an iPhone 4. It had fewer exploit mitigations and jailbreaking it was a lot easier. I highly recommend The iOS Hacker's Handbook. It's old, but the same basic concepts apply, especially for older versions of iOS. If you brick a newer iPhone and have to reinstall, you'll lose your jailbreak. With an iPhone 4, all installable versions of iOS are jailbreakable, so if you brick it you can always get back in. If you look at the iPhone Wiki you can see some writeups of some jailbreaks. Evasi0n 6 or 7 might be a good place to start. Get an iPhone 4 running iOS 6 or 7 and try to reimplement the kernel vulnerabilities used by them.
iOS and macOS share a lot of common code, and macOS is a much easier target since you can run it in a VM and it isn't as locked down. So that might be a good place to start to learn how to attack Apple's OSes. Here are some good walkthroughs of some macOS exploits:
@qwertyorioup on Twitter posts some interesting discussions and he has some good writeups on his blog. He also did a good presentation on attacking the xnu kernel.
Jonathan Levin also has some good books on iOS and macOS internals, which you can find more about at his his website. He also has writeups on the TaiG jailbreaks.
For Android, The Android Hacker's Handbook is pretty solid. Jonathan Levin also has an Android internals book here.
I would recommend maybe picking up an Nexus 5. They're pretty cheap and easily rootable so you can hack around on them. Here are some writeups of Android/Linux kernel explotis that might be helpful:
I also found this Android Kernel Exploitation Playground, but I have no idea if it's any good or not.
Regardless, for all of this you need to know C and assembly. For iOS and Android, you need to know ARM, and for macOS you need to know Intel x86_64.
Anyway, hope this helps!
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.
http://www.amazon.com/gp/aw/d/1118057651?pc_redir=1397318140&amp;robot_redir=1
To the Apple's Core, a very detailed read that primarily focuses on the software side.
Senior Level Software Engineer Reading List
Read This First
Fundamentals
Development Theory
Philosophy of Programming
Mentality
Software Engineering Skill Sets
Design
History
Specialist Skills
DevOps Reading List
Just learning a couple of languages won't do if your only concern is learning how to exploit. Learning how operating systems work is equally important if not more, though learning a programming language is an obvious first step.
Now, I don't know if these are absolutely necessary but they are helpful anyway.
Also check out http://winocm.moe/research/2013/09/20/resources-for-getting-started/, I might have repeated what she said.
https://www.theiphonewiki.com/wiki/Up_to_Speed is also useful. However The iPhone Wiki again, is outdated.
This might be a good starting point, but I have no idea how outdated the information is. There's another book that was released last year but I can't remember the name of it.
Edit: Found it
/u/modalbony
A great resource is the official certification textbook, http://www.amazon.com/Apple-Pro-Training-Essentials-Troubleshooting/dp/0321963555/
That's what all of my students study out of when preparing for the ACSP exam, and it goes into more detail than you'd expect about troubleshooting, the startup processes, LaunchAgents/Daemons, etc.
Ars Technica's OS X reviews are very extensive and present a lot of info in a straightforward manner (it may be helpful to go back and read the Mountain Lion (OS x 10.8) article as well).
http://arstechnica.com/apple/2013/10/os-x-10-9/
If you'd rather have something more like a reference book I'd recommend The Missing Manual series. Again, you may find it helpful to read up on the previous version of the OS as well, because Mavericks builds on a bunch of stuff that was introduced in Mountain Lion.
http://www.amazon.com/OS-Mavericks-The-Missing-Manual/dp/1449362249
WHY DO YOU ASK MAINTAINS THE PROPER ATTITUDE OF A DECENT THING?
:)
> From experience, one book is barely enough to get your feet wet
Ha! Definitely. I keep getting ideas for other books I should write.
I'd recommend the following as good general books to read. They're all good no matter what type of programming you do:
That should keep you busy. :)
EDIT: Oh, also, you can read my other two Python books. One is on graphical games with Pygame and the other is on classical ciphers and how to crack them. http://inventwithpython.com
I've got started on iOS programming 3.5 years ago reading the Kochan Objective-C book (probably the 3rd edition).
I am (was) an experienced programmer and found Kochan very helpful, specially on the memory management side of it. Learning C came after that, when I needed to do something that required more performance on iOS.
I also read part of Hillegass Cocoa book because I had it at hand, which got me a good starting point to learn Cocoa Touch online.
For iOS devices, you're going to want to start here, this will get you familiarized with the NeXtStep family of jive turkeys, followed up with a more formal introduction to Objective-C. I'll be honest, having some working knowledge of C will never hurt you, so after you're done with that, take a peek at K&R.
If you're aiming for Android, you have a bit of a different education outlook, I'd recommend brushing up with Head First Java. When I started poking around with Android, I read Hello, Android most of it should be still pretty relevant. I'm not entirely sure if it has been updated as of late, I outgrew it rather quickly, and if you do too; pretty much anything and everything by Mark Murphy is relevant. Best of luck!
I agree that from what I know about Time Machine it's super easy for the average user to successfully use. I think that's really important. You shouldn't have to understand Linux to keep your stuff safe.
Speaking of car analogies, have you read In the Beginning was the Command Line...?
Apple's website is a fantastic reference, but it's not great for learning the language itself. This book has been considered the bible of Objective-C programming.
I'm not aware of many free resources to learn Objective-C other than Apple's reference to Objective-C.
If you are new to programming I would highly recommend you check out Programming in Objective-C by Stephen Kochan. Another good introduction is Beginning Mac Programming by Tim Isted.
If you can wait, go along with rattboi's mention of Hillegass's book (it's great!), and get Programming in Objective-C 2.0 (2nd Edition) (Developer's Library) (Paperback) if you can wait a few months.
I'm about halfway through this book: http://www.amazon.com/Mac-OS-iOS-Internals-Apples/dp/1118057651
It's more software/code/OS based... so don't expect much Hardware coverage in it.
I'm not sure what to suggest for a hardware-history or current hardware-troubleshooting tips. I'm sorta inclined to suggest the official Apple Certified Training Kit: http://store.apple.com/us/product/MA714Z/B/applecare-technician-training
This book was originally posted as an essay on Stephenson's web site, but was later published as a 160-page paperback.
Well I replied while I was on my phone so I couldn't link it. I followed my directions and was able to find it. It is the first book when you search for Objective C 2.0. It's called Programming in Objective C 2.0 and it's written by Stephan Kochan. Here's the link
I found this book pretty helpful to learn the basics. It's annoying because I know you want to jump right into recording and making music, but it's definitely worth your time to do all the boring tutorials - it'll save you a lot of time in the long run.
>What exactly do you mean by watching it to see CPU? I'm quite familiar with Top -u, but is there a way to view just that processes CPU? I kind of want to watch it through my computer while browsing and see what happens.
You need to get its PID first. My favorite way to do that is with System Status from the App Store, which lists running processes with PIDs (although you can't kill them or anything).
Then use:
top -pid PID
To see just that process's stats.
>Does that Jetslammed tweak have anything related to this or help this?
Jetslammed can change a launchdaemon's HighWaterMark RAM limit, the limit of sustained RAM usage at which Jetsam automatically kills the daemon.
http://newosxbook.com/articles/MemoryPressure.html
The HWM can also be changed manually, but, in the end, it doesn't really help that much unless a daemon is only dying due to exceeding its HWM.
It can still be killed for other reasons if the system is low on memory.
It doesn't actually keep discoveryd from EVER being killed, so it doesn't really solve the issue of very large hosts (>300 KB) files causing random website disconnects due to discoveryd dying, leading to DNS failure.
It really just fixes it so that you can have Wifried and a small ad blocking hosts file at the same time since Wifried + even a small hosts file (like Light UHB) will cause discoveryd to use about 9-10 MB, exceeding the 8 MB HWM limit for a long period of time, causing discoveryd to be automatically killed, causing Wifried to re-initialize Wifi, causing random Wifi disconnects, which is even more problematic than even a DNS failure.
Wifried with Jetslammed raises the HWM for discoveryd to 12 MB from 8 MB, preventing the HWM killing of discoveryd with Wifried + small ad blocking hosts file. A large hosts file will exceed even this new limit, but, in that case, where discoveryd uses 20 MB or more, it will be killed by the system anyway for other reasons not related to the HWM.
>So do I have the correct Light UHB? Is that the one you use? I guess I might try reinstalling and maybe see. Haven't had an issue since its crash and (haven't checked today) haven't seen it anywhere near the top when running "top".
I use Light Untrusted Hosts. I've watched discovery's PID for about a month now. It's not being jetsam killed anymore even if I load a LOT of tabs and really stress it out. It never goes over 8 MB (the HWM) for any sustained period of time (even 8 MB requires A LOT of DNS activity), and never reaches enough RAM usage that the system would think to kill it to free memory (10-20 MB). Gamed (the GameCenter daemon) uses more memory than discoveryd with Light UHB . . .
>-unrelated- I love learning about all this stuff and your fountain of knowledge so far. Mind if I asked where you learned so much? I've been learning a lot about daemons lately, especially locationd and backboardd. I'm just curious as to where I can learn more about this stuff, learn how to read crash logs as so far it's just from the little experience I have, etc. I just can't find any good resources..
I've used OS X since it was in beta, and iOS is secretly just OS X in disguise with a TouchUI, a few processes missing, and a few processes added.
This book has been helpful to me in understanding jailbreaking, although it is a bit dated:
http://www.amazon.com/iOS-Hackers-Handbook-Charlie-Miller/dp/1118204123
Also a bit dated, but you may like it if you have a Mac:
http://www.amazon.com/Learning-Unix-OS-Going-Terminal/dp/1449332315/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1418694791&amp;sr=1-1&amp;keywords=OS+X+unix
This wiki is also good. Many devs post on it:
https://theiphonewiki.com/wiki/Main_Page
Cryptonomicon or for that matter any of Neal Stephenson's early work like In the Beginning ... was the Command Line
I know this doesn't immediately help, but these guides might be useful.
Apple Training Series: Mac OS X Directory Services v10.6: This one is great for understanding the way apple directoy services works, even though its for 10.6 not 10.7. I used this when I was banging my head against the wall with my Mac server and it was great.
Apple Pro Training Series: OS X Lion Server Essentials: I haven't actually used this book, but the series it comes from is really well done (IMO) so it would probably be very useful to you.
If you are planning on doing a lot of work in the future with this server, these might be a good investment.
This is the cocoa book I have.
Looks like there's not only a kindle edition but a newer one as well.
Best of luck!
It's an essay he wrote back in 1999, about 150 pages only. I just found a link. I've got it on the kindle myself. dont think its available in danish, sorry. all you teacher needs is an IBAN number though, so youll be fine. just use this as the "main" source and back the rest up with your links.
EDIT: Amazon link if you have to pay for it so your teacher will accept it as a book: http://www.amazon.com/Beginning-was-Command-Line-Neal-Stephenson/dp/0380815931
Take the beaten path. One of the niceties of developing for an established commercial operating system is having a central and authoritative source for documentation, rather than having to comb the web for fragments of information. There are certainly decent books available, but developer.apple.com has everything you need.
Begin at the Mac OS X Reference Library. You seem anxious to dive in, so the Cocoa Application Tutorial, available from the "getting started" section of the reference library, will be an ideal first stop.
You can always buy a jailbreak. Exploit brokers like zerodium pay out 1.5 million dollars for remote jailbreak 0-days.
Side note: *OS Internals Volume III by Jonathan Levin is a good source for people interested in learning about previous techniques used in jailbreaks
Programming in Objective-C is a good explanation of the Objective-C language. It shouldn't be hard to pick up if you're familiar with C. Beginning iPhone 3 Development assumes you have Objective-C knowledge and jumps right into iPhone development explaining how to use XCode as you go.
I agree with all the comments which say to just pick one and start hacking around... with that in mind, I think python is quite easy to get started with and powerful enough that you will find yourself going back to it frequently.
Also, there is real work being done in python. Personally, I have been working on python projects for the past 6 months and it looks like I will be continuing on this course for some time.
In the spirit of getting started, let's write your first python programs:
(or ubuntu/debian: sudo apt-get install python)
Then start hacking around:
>>> print 'Hello World!'
Hello World!
>>> x = 4
>>> x
4
>>> x 10
40
Once you have gotten your feet wet you'll want to see what else you can do and there are plenty of great resource on the WWW. I personally learned python by reading through Mark Lutz' Learning Python and doing the exercises*.
What good beginning references have other people used for starting python?
EDIT: formatting
I know you pointed out that you're interested in OS X, not iOS, but the reality is that most of the good, up-to-date materials on development for the Apple ecosystem are centered around iOS.
There is a Big Nerd Ranch book on OS X development with Objective-C, but it's from 2011. The advent of Swift should give publishers an incentive to update their material on OS X development. A new, Swift-oriented version of the book I linked above is slated (as per Amazon, anyway) for release next month. I look forward to purchasing it myself.
raywenderlich.com also has great tutorials. Most are iOS-oriented, but I found a couple for OS X:
Getting Started With OS X and Swift Pt1
Getting Started With OS X and Swift Pt2
Getting Started With OS X and Swift Pt3
Core Controls and Swift Pt1
Core Controls and Swift Pt2
Don't get discouraged about your lack of experience. The fact of the matter is that app flow in the OS X and iOS realms is not easy to understand at a glance. I can assure you that everybody who writes software in the Apple ecosystem was once confused about the same exact issue.
My stock suggestions:
Maybe this book would be of some help? I just ordered this for myself and from what I've heard about it, it's a very good book to learn about how iOS works & how to defeat it.
[Book](iOS Hacker's Handbook https://www.amazon.com/dp/1118204123/ref=cm_sw_r_cp_api_C0VCybEAQFC95)
AFP548
If it has to do with servers or deployment, this is usually the best source of information. Be aware, the first response is usually RTFM, after all Apple has decent documentation for most features usually.
The last resource I'd recommend is the PeachPit book - amazon link.
I recommend "Learning Python"
to learn the basics of Python.
Then look into one of the plethora of Python web frameworks available. I personally prefer Django and Web.py
Depends how good you are at C++.
Mac OS X Internals: a systems approach
Chapter 10
http://www.amazon.com/Mac-OS-Internals-Systems-Approach/dp/0321278542/
Or this tutorial/writeup:
http://wagerlabs.com/writing-a-mac-osx-usb-device-driver-that-impl
I like books, especially in the early learning stages. Here are some benefits to reading a book :
Some of the above apply to good online resources as well.
I recommend Learning Python by Mark Lutz (O'Reilly) :
http://www.amazon.com/Learning-Python-3rd-Mark-Lutz/dp/0596513984/ref=sr_1_2?ie=UTF8&amp;qid=1311773578&amp;sr=8-2
also : http://www.reddit.com/r/learnpython
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:
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&amp;ie=UTF8&amp;qid=1408986900&amp;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&amp;ie=UTF8&amp;qid=1408986900&amp;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.
I've only begun learning iOS and Objective-C, with very little previous coding experience (some work with Visual Basic in high school...Har har). I'm using The Big Nerd Ranch Guide to iPhone Programming and Programming in Objective-C 2.0. Both come pretty highly recommended, and are even suggested for beginners, though both seem geared towards those with some previous coding experience. Either way I haven't had too much trouble yet, so I imagine someone with expertise in another language shouldn't have issues with these books.
I'm not in the course, but I searched google and found this link
https://www.reddit.com/r/WGU/comments/9s3kjn/just_passed_the_c191_operating_systems_course/
and it recommends this book
https://www.amazon.com/Operating-Concepts-Essentials-Abraham-Silberschatz/dp/1118804929/
I know you siad you wanted a book, but this thread says the course book was really boring
https://www.reddit.com/r/WGU/comments/5nsl6n/c191_help/
and they found this free udacity course very helpful
https://www.udacity.com/course/ud923
other people recommend these vidoes
https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5_k7k
Programming in Objective-C by Stephan Kochen is an excellent intro/reference with detailed and clear explanation of Objective-C (the language you will be using).
You should also get the Big Nerd Ranch Guide to iOS programming for things specific to the iDevices.
Apple's developer reference/wiki covers everything else and is also pretty detailed. Stanford's iPhone development video lectures are okay, but I can see how they come in handy to someone who is just getting started.
You will need a mac (of course) and Xcode, and if you haven't used that before, you will need to get comfortable with it. You will need Xcode for many of it's features but if you are not a fan of the IDE and wish to use an editor for simpler things, many support Obj-C syntax highlighting.
Having a bit of experience myself, I was able to loosely follow a tutorial from a book a friend had lent me (possibly this book) and create a basic calculator app in a couple of hours while reading. If you copied their tutorials without trying to understand it at first, you could have a working app quickly, but it would obviously take longer to actually learn the rules behind it.
Can’t recommend this book enough - really walks you through some essential stuff step by step. Lot of support in their forums too.
Logic Pro X 10.3 - Apple Pro Training Series: Professional Music Production https://www.amazon.com/dp/013478510X/ref=cm_sw_r_cp_api_kRYDAbQHZN7KM
Yeah, i was looking at this one. Looks like it is even cheaper as a Kindle book. http://smile.amazon.com/Apple-Pro-Training-Essentials-Troubleshooting-ebook/dp/B00HJUBRN8/ref=sr_1_5?s=digital-text&amp;ie=UTF8&amp;qid=1412167705&amp;sr=1-5&amp;keywords=Mac+OS+mavericks
Thanks!
I haven't read it in years, but I remember The C Programming Language being very useful.
If you want to learn more about the low level details of how computers work in general, I own the following books and recommend them:
---
Computer Systems: A Programmers Perspective
Computer Organization and Embedded Systems
Hacking: The Art of Exploitation
Operating System Concepts Essentials
Computer Networking: A Top-Down Approach
I'd take a look at these two books :
And if you want to really get into the weeds, this books is very low-level
Mac OS X and iOS Internals
> For those who prefer video lectures, Skiena generously provides his online. We also really like Tim Roughgarden’s course, available from Stanford’s MOOC platform Lagunita, or on Coursera. Whether you prefer Skiena’s or Roughgarden’s lecture style will be a matter of personal preference.
>
> For practice, our preferred approach is for students to solve problems on Leetcode. These tend to be interesting problems with decent accompanying solutions and discussions. They also help you test progress against questions that are commonly used in technical interviews at the more competitive software companies. We suggest solving around 100 random leetcode problems as part of your studies.
>
> Finally, we strongly recommend How to Solve It as an excellent and unique guide to general problem solving; it’s as applicable to computer science as it is to mathematics.
>
>
>
> [The Algorithm Design Manual](https://teachyourselfcs.com//skiena.jpg) [How to Solve It](https://teachyourselfcs.com//polya.jpg)> I have only one method that I recommend extensively—it’s called think before you write.
>
> — Richard Hamming
>
>
>
> ### Mathematics for Computer Science
>
> In some ways, computer science is an overgrown branch of applied mathematics. While many software engineers try—and to varying degrees succeed—at ignoring this, we encourage you to embrace it with direct study. Doing so successfully will give you an enormous competitive advantage over those who don’t.
>
> The most relevant area of math for CS is broadly called “discrete mathematics”, where “discrete” is the opposite of “continuous” and is loosely a collection of interesting applied math topics outside of calculus. Given the vague definition, it’s not meaningful to try to cover the entire breadth of “discrete mathematics”. A more realistic goal is to build a working understanding of logic, combinatorics and probability, set theory, graph theory, and a little of the number theory informing cryptography. Linear algebra is an additional worthwhile area of study, given its importance in computer graphics and machine learning.
>
> Our suggested starting point for discrete mathematics is the set of lecture notes by László Lovász. Professor Lovász did a good job of making the content approachable and intuitive, so this serves as a better starting point than more formal texts.
>
> For a more advanced treatment, we suggest Mathematics for Computer Science, the book-length lecture notes for the MIT course of the same name. That course’s video lectures are also freely available, and are our recommended video lectures for discrete math.
>
> For linear algebra, we suggest starting with the Essence of linear algebra video series, followed by Gilbert Strang’s book and video lectures.
>
>
>
> > If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.
>
> — John von Neumann
>
>
>
> ### Operating Systems
>
> Operating System Concepts (the “Dinosaur book”) and Modern Operating Systems are the “classic” books on operating systems. Both have attracted criticism for their writing styles, and for being the 1000-page-long type of textbook that gets bits bolted onto it every few years to encourage purchasing of the “latest edition”.
>
> Operating Systems: Three Easy Pieces is a good alternative that’s freely available online. We particularly like the structure of the book and feel that the exercises are well worth doing.
>
> After OSTEP, we encourage you to explore the design decisions of specific operating systems, through “{OS name} Internals” style books such as Lion's commentary on Unix, The Design and Implementation of the FreeBSD Operating System, and Mac OS X Internals.
>
> A great way to consolidate your understanding of operating systems is to read the code of a small kernel and add features. A great choice is xv6, a port of Unix V6 to ANSI C and x86 maintained for a course at MIT. OSTEP has an appendix of potential xv6 labs full of great ideas for potential projects.
>
>
>
> [Operating Systems: Three Easy Pieces](https://teachyourselfcs.com//ostep.jpeg)
>
>
>
> ### Computer Networking
>
> Given that so much of software engineering is on web servers and clients, one of the most immediately valuable areas of computer science is computer networking. Our self-taught students who methodically study networking find that they finally understand terms, concepts and protocols they’d been surrounded by for years.
>
> Our favorite book on the topic is Computer Networking: A Top-Down Approach. The small projects and exercises in the book are well worth doing, and we particularly like the “Wireshark labs”, which they have generously provided online.
>
> For those who prefer video lectures, we suggest Stanford’s Introduction to Computer Networking course available on their MOOC platform Lagunita.
>
> The study of networking benefits more from projects than it does from small exercises. Some possible projects are: an HTTP server, a UDP-based chat app, a mini TCP stack, a proxy or load balancer, and a distributed hash table.
>
>
>
> > You can’t gaze in the crystal ball and see the future. What the Internet is going to be in the future is what society makes it.
>
> — Bob Kahn
>
> [Computer Networking: A Top-Down Approach](https://teachyourselfcs.com//top-down.jpg)
>
>
>
> ### Databases
>
> It takes more work to self-learn about database systems than it does with most other topics. It’s a relatively new (i.e. post 1970s) field of study with strong commercial incentives for ideas to stay behind closed doors. Additionally, many potentially excellent textbook authors have preferred to join or start companies instead.
>
> Given the circumstances, we encourage self-learners to generally avoid textbooks and start with the Spring 2015 recording of CS 186, Joe Hellerstein’s databases course at Berkeley, and to progress to reading papers after.
>
> One paper particularly worth mentioning for new students is “Architecture of a Database System”, which uniquely provides a high-level view of how relational database management systems (RDBMS) work. This will serve as a useful skeleton for further study.
>
> Readings in Database Systems, better known as the databases “Red Book”, is a collection of papers compiled and edited by Peter Bailis, Joe Hellerstein and Michael Stonebreaker. For those who have progressed beyond the level of the CS 186 content, the Red Book should be your next stop.
>
> If you insist on using an introductory textbook, we suggest Database Management Systems by Ramakrishnan and Gehrke. For more advanced students, Jim Gray’s classic Transaction Processing: Concepts and Techniques is worthwhile, but we don’t encourage using this as a first resource.
>
> (continues in next comment)
Since you're on a Mac, if you're looking at OS X and iOS development, I'd recommend Objective-C.
As for books on the subject, I would recommend Objective-C Programming: The Big Nerd Ranch Guide and for you to also read the free online tutorial BecomeAnXcoder.
You might also want to look into getting Cocoa Programming for Mac OS X and iOS Programming: The Big Nerd Ranch Guide should you want to further your Cocoa and iOS knowledge respectively.
---
As for Mac IDEs, for Objective-C or C++, look at XCode (take a look in the Mac App Store).
For Java, I think Eclipse is pretty much the only option?
I started with this book and then switched over to learning iphone stuff. Teaches you xcode, cocoa and basic obj-c.
So you are not a reader? Do you really want to give your CC number to some guy you don't know in another country?
I was very please with Aaron Hillegass's book, Cocoa Programming for Mac OS X
I learned objective-c with this book - http://www.amazon.com/Programming-Objective-C-Stephen-Kochan/dp/0672325861
Then to make GUI apps and learn about Cocoa I read through this one -http://www.amazon.com/dp/0321503619/
I found Objective-c frusterating at first but eventually decided it was not so bad. If you know a bit of C then Obj-c isn't that difficult, it's getting to know all the Cocoa classes and stuff that takes time.
Something else I found useful was using the tab completion in Xcode to find things that sounded similar to what I was trying to do and then reading the docs in Xcode.
Maybe try to write a few simple command line programs, then translate some of your other programs to Obj-c, and finally have a crack at building a GUI app.
http://www.techradar.com/us/news/computing/apple/the-linux-users-guide-to-mac-os-x-624449
Most thorough book on OS X: http://www.amazon.com/gp/product/0321963555/ref=pd_lpo_sbs_dp_ss_3?pf_rd_p=1535523722&amp;pf_rd_s=lpo-top-stripe-1&amp;pf_rd_t=201&amp;pf_rd_i=1449332315&amp;pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_r=1QDDYGBHMR9CG5DR1RDZ
How much knowledge of Objective C do you already have? If you already have a good working knowledge of it, you should look into the Big Nerd Ranch books (Amazon link). They're pretty awesome because they show you, in steps, how do write simple programs. If you don't already know Objective C, read Kochan's Programming in Objective C as that starts you at ground zero.
Another option is to watch the Stanford University courses on Objective C. I believe there are 3 semesters online (same class, different teachers) and those are pretty great as well.
Well, there's the Addison Wesley one, the O'Reilly one, and the Apress one.
Pick up Aaron Hillegass' book and also look at the Apress series. For online stuff, cocoadevcentral.com is a good place and I'd also recommend the Objective-C Beginner's Guide. There's a ton of resources out there, just keep poking around online.
> HFS+ definitely still gets fragmented to hell. The OS since 10.4 defragments important files, but large hard drives can get very fragmented.
This is actually a pretty interesting subject. If you've ever read Mac OS X Internals: A Systems Approach, Singh covers it very well.
For starting, you can read John Siracusa's many articles on OS X at Ars Technica. They are both informative and entertaining and stay at a pretty high level.
To get more in depth and really in the weeds, there's this.
Learning C first is a waste of time IMHO. The concepts of C that need to be understood for using the frameworks can be easily learned from a book like Programming in Objective-C.
Now for Cocoa or Cocoa Touch it really only makes sense to get the latest edition of any book related to this topic, as too much has changed over the last couple of years. Even a book from late 2011 would be obsolete in many ways.
Thus I would recommend resorting to online documentation, most notably Apple's Developer Website and start fiddling around with the given examples.
Start with a language like Python. After that it is easier for you to learn C, because you will know at least the basic programming constructs like If-statements, loops, variables etc.
I would learn C with the book The C Programming Language. It's the standard bible for C, short and to the point, and one of the best technical books ever. A good C knowledge is IMHO necessary and useful, because sooner or later you have to use C libraries or at least fall back to the C interfaces of Mac OS or iPhone OS to do certain things that aren't there in the Objective-C abstraction layers.
After you have a solid C knowledge, you can learn about Object Oriented Programming and Objective-C. Apple has a good introduction to both topics: Introduction to The Objective-C Programming Language.
After you know the language, you can learn about Cocoa in the Cocoa Fundamentals Guide and do your first graphical Cocoa application with Xcode and Interface Builder with the Cocoa Application Tutorial.
Then buy the book Cocoa Programming for Mac OS X by Aaron Hillegass. You will learn to use some of the most important Cocoa classes. After that you can stay with the Apple docs and reference.
When you know Cocoa, you can do your first steps with iPhone development very easily by watching the peepcode.com introduction videos IPHONE VIEW CONTROLLERS PART I and IPHONE VIEW CONTROLLERS PART II - oh, peepcode has even a Objective-C introduction video OBJECTIVE-C FOR RUBYISTS but it's very ruby-centric...