Reddit reviews: The best macintosh operating system books

We found 116 Reddit comments discussing the best macintosh operating system books. We ran sentiment analysis on each of these comments to determine how redditors feel about different products. We found 35 products and ranked them based on the amount of positive reactions they received. Here are the top 20.

Top Reddit comments about Macintosh Operating System:

u/BroDudeGuy · 10 pointsr/iOSProgramming

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.

u/darthsabbath · 3 pointsr/learnprogramming

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:

u/empleadoEstatalBot · 1 pointr/argentina

> 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)

u/sam_symons · 6 pointsr/learnprogramming

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.

u/glah · 2 pointsr/sysadmin

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.

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.


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.


    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.


    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/CSMastermind · 2 pointsr/AskComputerScience

Senior Level Software Engineer Reading List

Read This First

  1. Mastery: The Keys to Success and Long-Term Fulfillment


  2. Patterns of Enterprise Application Architecture
  3. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
  4. Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML
  5. Systemantics: How Systems Work and Especially How They Fail
  6. Rework
  7. Writing Secure Code
  8. Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries

    Development Theory

  9. Growing Object-Oriented Software, Guided by Tests
  10. Object-Oriented Analysis and Design with Applications
  11. Introduction to Functional Programming
  12. Design Concepts in Programming Languages
  13. Code Reading: The Open Source Perspective
  14. Modern Operating Systems
  15. Extreme Programming Explained: Embrace Change
  16. The Elements of Computing Systems: Building a Modern Computer from First Principles
  17. Code: The Hidden Language of Computer Hardware and Software

    Philosophy of Programming

  18. Making Software: What Really Works, and Why We Believe It
  19. Beautiful Code: Leading Programmers Explain How They Think
  20. The Elements of Programming Style
  21. A Discipline of Programming
  22. The Practice of Programming
  23. Computer Systems: A Programmer's Perspective
  24. Object Thinking
  25. How to Solve It by Computer
  26. 97 Things Every Programmer Should Know: Collective Wisdom from the Experts


  27. Hackers and Painters: Big Ideas from the Computer Age
  28. The Intentional Stance
  29. Things That Make Us Smart: Defending Human Attributes In The Age Of The Machine
  30. The Back of the Napkin: Solving Problems and Selling Ideas with Pictures
  31. The Timeless Way of Building
  32. The Soul Of A New Machine
  34. YOUTH
  35. Understanding Comics: The Invisible Art

    Software Engineering Skill Sets

  36. Software Tools
  37. UML Distilled: A Brief Guide to the Standard Object Modeling Language
  38. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
  39. Practical Parallel Programming
  40. Past, Present, Parallel: A Survey of Available Parallel Computer Systems
  41. Mastering Regular Expressions
  42. Compilers: Principles, Techniques, and Tools
  43. Computer Graphics: Principles and Practice in C
  44. Michael Abrash's Graphics Programming Black Book
  45. The Art of Deception: Controlling the Human Element of Security
  46. SOA in Practice: The Art of Distributed System Design
  47. Data Mining: Practical Machine Learning Tools and Techniques
  48. Data Crunching: Solve Everyday Problems Using Java, Python, and more.


  49. The Psychology Of Everyday Things
  50. About Face 3: The Essentials of Interaction Design
  51. Design for Hackers: Reverse Engineering Beauty
  52. The Non-Designer's Design Book


  53. Micro-ISV: From Vision to Reality
  54. Death March
  55. Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft
  56. The PayPal Wars: Battles with eBay, the Media, the Mafia, and the Rest of Planet Earth
  57. The Business of Software: What Every Manager, Programmer, and Entrepreneur Must Know to Thrive and Survive in Good Times and Bad
  58. In the Beginning...was the Command Line

    Specialist Skills

  59. The Art of UNIX Programming
  60. Advanced Programming in the UNIX Environment
  61. Programming Windows
  62. Cocoa Programming for Mac OS X
  63. Starting Forth: An Introduction to the Forth Language and Operating System for Beginners and Professionals
  64. lex & yacc
  65. The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference
  66. C Programming Language
  67. No Bugs!: Delivering Error Free Code in C and C++
  68. Modern C++ Design: Generic Programming and Design Patterns Applied
  69. Agile Principles, Patterns, and Practices in C#
  70. Pragmatic Unit Testing in C# with NUnit

    DevOps Reading List

  71. Time Management for System Administrators: Stop Working Late and Start Working Smart
  72. The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services
  73. The Practice of System and Network Administration: DevOps and other Best Practices for Enterprise IT
  74. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale
  75. DevOps: A Software Architect's Perspective
  76. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
  77. Site Reliability Engineering: How Google Runs Production Systems
  78. Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry
  79. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
  80. Migrating Large-Scale Services to the Cloud
u/Waitwhatwtf · 2 pointsr/learnprogramming

A fair amount of iOS devs I know say that starting with a background in C can definitely help you in the long run, so I'd highly recommend K&R for that.

After you're done with that, you're definitely going to want to learn the Cocoa API along side Objective-C, and Hillegass does that quite nicely. Once you're familiar with that, this book will help you familiarize yourself with the language further.

Bonus round dice roll:

If you want to make a game, I recommend learning some opengl.

u/PM_ME_UR_DICK_PICS__ · 2 pointsr/jailbreak

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.

  • Start with C then C++ and finally Objective-C. If learning C seems boring/hard take a look at Python first as you'll need it anyway for scripting.

  • Then you'll have to learn ARM/ARM64 to reverse engineer stuff.

    Now, I don't know if these are absolutely necessary but they are helpful anyway.

  • Learn and use Linux/BSD the hard way™, using OS X or Windows won't get you too far IMO (I'd actually include easy distros like Ubuntu into that category). Though OS X is almost a necessity to know how iOS works and interact with it, also important since the two have so much in common.

  • You can buy a book to get a general knowledge about binary exploitation, for that you can use this. It's outdated now so I don't know the current state of affairs, you can substitute it for a more modern book.

  • You'll have to get an iOS specific book. Though again it's outdated.

  • Take a look at these tools. Libimobiledevice is awesome

  • After all that you can use some Wargames/CTFs for practicing your skills, e.g http://overthewire.org, http://wechall.net, http://io.smashthestack.org, https://exploit-exercises.com. Though you can ignore this step I guess

  • Start from old iOS, iOS 4 or 5 seem sweet spot.

    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.
u/ArvoHeikki · 2 pointsr/swift

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.

u/FriedChicken · 1 pointr/apple

I recommend upgrading the graphics card, as I do for any mac purchases.

As for learning the mac, go ahead experiment. You don't have any sensitive documents on the computer, so try stuff out. I highly recommend getting David Pogue's manual:


This will give you an in depth perspective on the operating system. That's all super useful information.

As for accessories, I recommend a good set of speakers, simply because they will last beyond the lifetime of the computer and greatly enhance your voting experience. My Logitech Z-4's (discontinued) I still use every day for the past 8 years. Amazing.

u/[deleted] · 2 pointsr/apple

Cocoa Programming for Mac OS X is probably your best choice if you know a bit of C or have experience with any programming language. It's a book about Cocoa for Mac OS X, but most of it applies to iPhone app development as well.

Pragmatic Programming's Cocoa Programming: A Quick-Start Guide for Developers is also a good one. It will help you getting started easier and more focused to iOS development than Hillegass book.

u/posborne · 2 pointsr/programming

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:

  • Downlad and install: http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi
    (or ubuntu/debian: sudo apt-get install python)
  • Open Start > Python 2.5 > Python (Command Line)
  • You should be presented with the interactive python interpreter

    Then start hacking around:

    >>> print 'Hello World!'
    Hello World!
    >>> x = 4
    >>> x
    >>> x 10

    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
u/Fluffy-Raccoon · 1 pointr/iOSProgramming

If you already know a couple of languages with C/C++ being one of them, diving into Swift should be pretty straightforward. This is a good Swift intro tutorial:



The Swift Programming Language by Apple is a must read and an excellent place to start.


Learning iOS is its own thing. There is a lot of good material out there. These are the two books that helped me the most:

2D iOS & tvOS Games by Tutorials. This book and its predecessor are outstanding. I spent a lot of time on stackoverflow and google that could have been saved just starting here.


Programming iOS 8: Dive Deep Into Views, View Controllers, and Frameworks by Matt Neuburg. iOS 9 is out now, but this is still an excellent book.


u/SnackeyG1 · 2 pointsr/applehelp

Honestly, just use it. OS X isn't difficult and is user friendly. If you have any question there is reddit or Google(or feel free to PM me. If you really want a tool of some sort there is this book. Mac OS X Lion: Visual Quickstart Guide I'll be using it in my awesome easy A class Intro to Mac.

u/ChrisF79 · 1 pointr/learnprogramming

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.

u/ergotron · 2 pointsr/linux

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...?

u/jmnugent · -1 pointsr/apple

> It's so strange to me that an iPhone can't do that while a "traditional PC" can. Why should I rely on a traditional PC to do something so simple? It's definitely not processing power / memory / etc.

Mobile-devices (Apple, Android, WindowsPhone,etc) .... all have some of the same parts (CPU, Memory, Storage, Battery,etc) as a "traditional PC".. but the Operating Systems and code and architecture are different in many significant ways.

Take for example.... Background-Processes. On iOS (iPads, iPhones)... background process are "tomb-stoned" (frozen) to help minimize resource usage and battery drain. That's just 1 example.. but there are probably 100's more. (I'm about halfway through reading this book: http://www.amazon.com/Mac-OS-iOS-Internals-Apples/dp/1118057651 ... which really goes into a lot of depth about how the architectures are similar in some ways and drastically different in others.

Microsoft Windows and Windows Phone have the same type of relationship. They're similar in many ways.. and different in some ways.

> "Is there a good free app (like Paint) that I could leverage to do this?"

On your PC.. or the mobile-devices?... I use Pixelmator on my Mac. I think it's also available for iPad now. You could also use Paint.net on Windows.

u/wcbdfy · 1 pointr/learnprogramming

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.

u/Wolf_Larsen · 1 pointr/Python

I like books, especially in the early learning stages. Here are some benefits to reading a book :

u/AlSweigart · 2 pointsr/learnpython



> 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:

u/MIUfish · 2 pointsr/apple

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!

u/chrizel · -2 pointsr/apple

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...

u/mariox19 · 5 pointsr/programming

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.

u/tortus · 3 pointsr/applehelp

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.

u/silverforest · 1 pointr/IWantToLearn

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?

u/beerncats · 2 pointsr/osx

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).


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.


u/mattetti · 6 pointsr/programming

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/


u/leolobato · 2 pointsr/iOSProgramming

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.

u/CarlZeiss · 2 pointsr/learnprogramming

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.

u/Mysterions · 2 pointsr/Logic_Studio

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.

u/cherryMxMech · 2 pointsr/iOSProgramming

My 2 cent ,Dont spent money with Wiley books.
Most of them written by low experience authors.

I have wasted 8 months spent with their books .
Just to realized ,Its was written by copied Apple's documentation rather than written by experience.

You'll found tons of unsolved bugs , un explained methodologies.

I would recommend 3 books.


Big nerd alway explain deep stuffs with simple words. They're true master .
This is the only beginner book on the market which "explain" how stuffs work .
Rather than just let you copied their codes.
Their books always "Unique" . Because it was sophisticated from their very-deep experience.
Their experience kinda above master level.


My first iOS app deployed with fully custom UI .
Passed Apple's code review in the first launch . Thanks to this book.


This is a book for everyone , a Bible . Which is more useful than Apple's documentation. When you got a bug , open this book first.

u/sceduenga · 1 pointr/apple


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.

u/omfg · 3 pointsr/computing

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.

u/whoamiamwho · 15 pointsr/jailbreak

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.

u/smeezy · 5 pointsr/iOSProgramming
  1. You should learn Objective-C. Start with Learning Objective-C from the Developer site, and follow the rabbit trail to other documents. Also, read up on iOS Application Design

  2. Yes. You can register your app to be woken up in case of a significant location change. Or, you can register your app for continuous location updates in the background, which will kill the user's battery if not used correctly. See Executing Code in the Background.
  3. It may be easier for you to pick up Cocoa programming on the Mac before going to the iPhone. Pick up Aaron Hillegass's excellent Cocoa Programming for Mac OSX and read the first five chapters. (I noticed that Hillegass has produced a new iPhone Programming textbook. I haven't read it but it has good reviews).
u/5HT-2a · 0 pointsr/applehelp

> 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.

u/guiltydoggy · 0 pointsr/osx

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.

u/DpkgDan · 33 pointsr/jailbreak

I would definitely take a look at The iOS Hacker's Handbook. It's an excellent resource for understanding the fundamentals of jailbreaking.

u/create_a_new-account · 1 pointr/WGU

I'm not in the course, but I searched google and found this link

and it recommends this book

I know you siad you wanted a book, but this thread says the course book was really boring

and they found this free udacity course very helpful

other people recommend these vidoes

u/PicklesInParadise · 1 pointr/learnprogramming

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:


u/Medicalizawhat · 1 pointr/learnprogramming

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.

u/mattfromseattle · 1 pointr/cocoa

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.

u/tyme · 5 pointsr/cocoa

>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.

u/CannonBall7 · 7 pointsr/osx

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.

u/Beansdtw · 1 pointr/Logic_Studio

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

u/4221 · 2 pointsr/books

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

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/tbone80 · 2 pointsr/apple

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.

u/zappbwr · 1 pointr/osx

Depends how good you are at C++.

Mac OS X Internals: a systems approach
Chapter 10


Or this tutorial/writeup:

u/kevinherron · 26 pointsr/programming

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

u/ioscreation · 1 pointr/jailbreak

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)

u/tiddIywinks · 1 pointr/AskReddit

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.

u/codepoet · 1 pointr/programming

Well, there's the Addison Wesley one, the O'Reilly one, and the Apress one.

u/smitcolin · 2 pointsr/sysadmin

Cryptonomicon or for that matter any of Neal Stephenson's early work like In the Beginning ... was the Command Line

u/tofergregg · 1 pointr/cocoadev

I was very please with Aaron Hillegass's book, Cocoa Programming for Mac OS X

u/anteater_sa · 1 pointr/Python

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

u/tiiv · 0 pointsr/simpleios

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.

u/gregK · 1 pointr/programming

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?

u/gayguy · 2 pointsr/programming

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

u/thethax · 2 pointsr/IWantToLearn

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.

u/TheMiamiWhale · 1 pointr/iOSProgramming

I'd take a look at these two books :

u/a_raconteur · 1 pointr/iOSProgramming

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.

u/MattTheGr8 · 2 pointsr/apple

My stock suggestions:

  1. the Big Nerd Ranch book on iPhone/iOS programming (called iPhone in the 1st edition, iOS in the second... here's a link to the second edition: http://amzn.com/0321773772).

  2. the Developing Apps for iOS class on iTunes U (http://is.gd/CPqCvY)

  3. if you have never programmed in a C-like language before, I have heard that "Programming in Objective-C" is a good book, though I haven't read it myself (http://amzn.com/0321711394)
u/TheIceCreamPirate · 4 pointsr/jailbreak

Some of the well known jail breakers are writing a book on that right now, but it isn't finished.


u/sbodd1990 · 3 pointsr/apple


To the Apple's Core, a very detailed read that primarily focuses on the software side.

u/mipadi · 3 pointsr/apple

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.

u/alk509 · 6 pointsr/programming

The Hillegass book is kinda the Cocoa bible. Clicky.

u/dxu · 1 pointr/iphone

I started with this book and then switched over to learning iphone stuff. Teaches you xcode, cocoa and basic obj-c.

u/too_clever_username · 2 pointsr/books

This book was originally posted as an essay on Stephenson's web site, but was later published as a 160-page paperback.

u/maxjg · 1 pointr/AskReddit

This book is considered to be the bible of Objective-C development. Give it a shot.

u/hizinfiz · 2 pointsr/jailbreak

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/joemoon · 6 pointsr/programming

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

u/ReddestDream · 2 pointsr/jailbreak

>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.


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:


Also a bit dated, but you may like it if you have a Mac:


This wiki is also good. Many devs post on it: