{"id":218,"date":"2011-05-25T14:11:35","date_gmt":"2011-05-25T20:11:35","guid":{"rendered":"http:\/\/mattdturner.com\/wordpress\/?p=218"},"modified":"2015-04-07T09:24:38","modified_gmt":"2015-04-07T15:24:38","slug":"beginners-guide-to-learning-cocoa-programming","status":"publish","type":"post","link":"http:\/\/mattdturner.com\/wordpress\/2011\/05\/beginners-guide-to-learning-cocoa-programming\/","title":{"rendered":"Beginner&#8217;s Guide to Learning Cocoa Programming"},"content":{"rendered":"<p><a href=\"http:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2011\/05\/Cocoa-Programming-20081.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-237\" title=\"Cocoa-Programming-3rd-Edition\" src=\"http:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2011\/05\/Cocoa-Programming-20081.jpg\" alt=\"\" width=\"302\" height=\"400\" srcset=\"http:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2011\/05\/Cocoa-Programming-20081.jpg 377w, http:\/\/mattdturner.com\/wordpress\/wp-content\/uploads\/2011\/05\/Cocoa-Programming-20081-226x300.jpg 226w\" sizes=\"(max-width: 302px) 100vw, 302px\" \/><\/a>I recently decided that I wanted to learn to program in Cocoa.  There wasn&#8217;t really a good reason for me to learn it, aside from my desire to learn a new programming language. \u00a0Also it would be nice to know how to make Mac and iOS apps.<\/p>\n<p>I looked around the net for a good beginner&#8217;s guide to learning Cocoa. \u00a0I found one that I highly recommend. \u00a0But, before I talk about the book I used to learn Cocoa I should give a quick note about my programming experience.<\/p>\n<p>Prior to entering the PhD program here at CU Boulder, I have no experience programming at all. \u00a0As my research progressed, I have become rather proficient at programming in Fortran. \u00a0In addition to Fortran, I have taught myself scripting languages such as Python, Bash, C-shell, perl, etc.<\/p>\n<p>So basically, before learning Cocoa I had no real experience programming in an Objective-based language.<\/p>\n<p><!--more-->The book that I recommend for beginner&#8217;s looking to learn Cocoa is <a href=\"http:\/\/www.amazon.com\/gp\/product\/0321503619\/ref=as_li_ss_tl?ie=UTF8&amp;tag=everfun07-20&amp;linkCode=as2&amp;camp=217145&amp;creative=399349&amp;creativeASIN=0321503619\">Cocoa(R) Programming for Mac(R) OS X (3rd Edition)<\/a><img loading=\"lazy\" decoding=\"async\" style=\"border: none !important; margin: 0px !important;\" src=\"http:\/\/www.assoc-amazon.com\/e\/ir?t=&amp;l=as2&amp;o=1&amp;a=0321503619&amp;camp=217145&amp;creative=399349\" border=\"0\" alt=\"\" width=\"1\" height=\"1\" \/>. \u00a0The author of the book gives some very detailed and low level instructions on how to create Apps. \u00a0In addition to the examples given in the book, the author also provides the reader with &#8220;problems&#8221;. \u00a0Basically you are given a task to create an app that performs certain functions. \u00a0Then you are to develop the app from scratch. \u00a0The book does not give any details\/help\/solutions to these problems. \u00a0The solutions are probably available online, however you always learn more if you attempt the problem on your own without help.<\/p>\n<p>Once you have completed the book, a good app to develop that brings most everything together is a working Scientific Calculator.<\/p>\n<p>For a good review of this book, see <a href=\"http:\/\/gigaom.com\/apple\/book-review-cocoa-programming-for-mac-os-x-third-edition\/\" class=\"broken_link\">this post<\/a> by Bob Rudis.<\/p>\n<p>Need help with some of the Challenges in the book? \u00a0Post your question in the comments and I will do my best to answer them.<\/p>\n<h6 class=\"zemanta-related-title\" style=\"font-size: 1em;\">Related articles<\/h6>\n<ul class=\"zemanta-article-ul\">\n<li class=\"zemanta-article-ul-li\"><a href=\"http:\/\/www.readwriteweb.com\/hack\/2011\/05\/4-free-e-books-on-objective-c.php\">4 Free E-Books on Learning Objective-C, the Programming Language of iOS and OSX<\/a> (readwriteweb.com)<\/li>\n<li class=\"zemanta-article-ul-li\">The Complete Guide for Starting iPhone and iOS Development (writings.withoutfriction.com)<\/li>\n<li class=\"zemanta-article-ul-li\"><a href=\"http:\/\/oreilly.com\/catalog\/0636920021025\/\">An Introduction to iOS Programming: From Getting the SDK to Submitting Your First App<\/a> (oreilly.com)<\/li>\n<\/ul>\n<div class=\"zemanta-pixie\" style=\"margin-top: 10px; height: 15px;\"><a class=\"zemanta-pixie-a\" title=\"Enhanced by Zemanta\" href=\"http:\/\/www.zemanta.com\/\"><img decoding=\"async\" class=\"zemanta-pixie-img\" style=\"border: none; float: right;\" src=\"http:\/\/img.zemanta.com\/zemified_e.png?x-id=ec8399b4-ec84-4719-a51c-7772bc7462d8\" alt=\"Enhanced by Zemanta\" \/><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>I recently decided that I wanted to learn to program in Cocoa. There wasn&#8217;t really a good reason for me to learn it, aside from my desire to learn a new programming language. \u00a0Also it would be nice to know how to make Mac and iOS apps. I looked around the net for a good [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":237,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[3,4,5,11],"tags":[17,157,28,8,7,159,158,80],"class_list":["post-218","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-command-line","category-ipad","category-iphone","category-mac","tag-apple","tag-cocoar-programming-for-macr-os-x-3rd-edition","tag-fortran","tag-ios","tag-iphone-2","tag-objective-c","tag-programming-language","tag-python"],"_links":{"self":[{"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/218"}],"collection":[{"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":6,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/218\/revisions"}],"predecessor-version":[{"id":533,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/posts\/218\/revisions\/533"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/media\/237"}],"wp:attachment":[{"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/media?parent=218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/categories?post=218"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mattdturner.com\/wordpress\/wp-json\/wp\/v2\/tags?post=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}