<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Beginning Mac and iPhone Development</title>
	<atom:link href="http://zachbanks.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://zachbanks.wordpress.com</link>
	<description>A beginner&#039;s course into the exciting world of Mac OSX and iPhone development.</description>
	<lastBuildDate>Wed, 17 Jun 2009 08:01:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='zachbanks.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Beginning Mac and iPhone Development</title>
		<link>http://zachbanks.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://zachbanks.wordpress.com/osd.xml" title="Beginning Mac and iPhone Development" />
	<atom:link rel='hub' href='http://zachbanks.wordpress.com/?pushpress=hub'/>
		<item>
		<title>New to programming: Learn how to program on a Mac (Part 1).</title>
		<link>http://zachbanks.wordpress.com/2009/06/17/new-to-programming-learn-how-to-program-on-a-mac-part-1/</link>
		<comments>http://zachbanks.wordpress.com/2009/06/17/new-to-programming-learn-how-to-program-on-a-mac-part-1/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 07:24:54 +0000</pubDate>
		<dc:creator>Zach Banks</dc:creator>
				<category><![CDATA[Beginning Mac and iPhone Development]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://zachbanks.wordpress.com/?p=3</guid>
		<description><![CDATA[New to programming? Want to learn to write applications for the iPhone and Mac OSX. Then read this post. This post outlines the basics of computer programming and how to program in Objective C, the main programming language on the Mac.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zachbanks.wordpress.com&amp;blog=8206669&amp;post=3&amp;subd=zachbanks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><span style="font-weight:normal;">So you wanna learn to program on a Mac?</span></h3>
<p>So you have seen all the cool things that the Mac and iPhone can do, and you have said to yourself, I want to be able to make my computer/iPhone do that. Then you have already taken your first step of your journey of becoming a great Mac and iPhone programmer. Becoming a computer programmer is no easy task. It takes time and dedication, but the reward is great. So if you have the desire and are ready for a challenge &#8230; read on and discover for yourself what the world of Cocoa can offer you!</p>
<p>Programming on a Mac is a very rewarding experience, and, in time, you will find it much easier than programming on any other platform. If you want to learn to program on a Mac or iPhone, you will need to learn a programming language called <strong>Objective C</strong>. <em>Learning Objective C as your first programming language can be a very difficult task, and one that I recommend that you do not try. </em>Later in this post I will explain why you shouldn&#8217;t attempt to tackle Objective C if you have never written a line of code in your life. If you understand the basics of computer programming and some basic methodology of <strong>Object Oriented Programming</strong>, then and only then should you start learning Cocoa. (Please note if you are new to programming and really want to learn Objective C without learning another language first, please do, but be warned it will be very difficult to understand. I am simply trying to advise you not to make the same mistakes that I made when I was first learning Objective C). The following will be a primer on computer programming, and will help you start off your journey on becoming a Mac/iPhone programmer.</p>
<h3><span style="font-weight:normal;">What is Programing?</span></h3>
<p>As I stated before, programming is no easy thing to learn. Whether you&#8217;re programming for a Mac or Windows (or Linux computer for that matter) you still have to learn the fundamentals of computer programming. Before I can tell you what programming is, you need to understand what a <strong>program</strong> is. A program (also known as an <strong>application</strong>) is simply a list of instructions that a computer uses to accomplish a task. Every application you use whether it is Microsoft Word, Safari, or iChat is simply a list of instructions that the computer uses to help you do a specific task (like browsing the web, or instant messaging your friends). A <strong>programmer</strong>, tells the computer what to do and how to do it. Furthermore, programmers write programs/applications for non-programmers (like Joe the Plumber) to use to help accomplish a specific task, and this process is known as programming. A programmer tells the computer what to do by giving it commands written in a <strong>programming language</strong>. C, Java, Objective C, C++ are all examples of programming languages. HTML and CSS are not programming languages. Without getting into the details, the computer reads the instructions that you have written (in a programming language) and converts it into code that the computer can read, and then executes those instructions.</p>
<h3><span style="font-weight:normal;">There are 2 types of applications.</span></h3>
<p>There are 2 types of applications: GUI and CLI. A <strong>GUI (Graphical User Interface)</strong> is the type of application that the user sees on their screen. A GUI application has a window, buttons, text fields, and all other types of <strong>UI (User Interface)</strong> controls that users can interact with. Microsoft Word, Safari, iChat, iMovie, iPhoto, Internet Explorer, Firefox, and pretty much all the other applications you use are GUI applications.</p>
<div id="attachment_9" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-9" title="GUI Application" src="http://zachbanks.files.wordpress.com/2009/06/voila_capture142.png?w=544" alt="iCal is an example of a GUI application."   /><p class="wp-caption-text">iCal is an example of a GUI application.</p></div>
<p>The other type of application is one that you may have never used before (depending on how old you are). A <strong>CLI (Command Line Interface)</strong> application is an application that simply displays text to the user. UNIX and DOS are the best examples of CLIs. As you are learning Objective C (or any other programming language for that matter) you will have to write CLI applications, so you will become very familiar with them.</p>
<div id="attachment_10" class="wp-caption aligncenter" style="width: 490px"><img class="size-full wp-image-10" title="CLI Application" src="http://zachbanks.files.wordpress.com/2009/06/voila_capture15.png?w=544" alt="The text inside the Terminal is an example of a CLI application."   /><p class="wp-caption-text">The text inside the Terminal is an example of a CLI application.</p></div>
<h3><span style="font-weight:normal;">The 2 Styles of Programming.</span></h3>
<p>In computer science, there is two types of programming styles: <strong>Object Oriented Programming</strong>, and <strong>Procedural Programming</strong>. In procedural programming, the programmer defines a series of steps for the computer to complete and the computer completes each step in a linear fashion. This is how many of the first programming languages, like C, BASIC, and Fortran were designed. On the contrary, Object Oriented Programming create objects that talk to each other in order to accomplish tasks. This programming paradigm is very prevalent and popular with modern programming languages because it allows the programmer to extend his code and reuse his code more than he could with procedural programming. Some object oriented programming languages are: Java, Objective C, C++, C#, Python, Ruby and more. Since Objective C is an object oriented language, and learning how object oriented programming works is key to understanding how to program in Objective C.</p>
<h3><span style="font-weight:normal;">Why you should NOT learn Objective C if you have NO programming experience.</span></h3>
<p>Objective C is a dynamically typed, object oriented language, and because it is object oriented, you must have some knowledge of basic programming terms such as variables, assignment operators, and functions etc. You must also have a <em>very basic </em>knowledge of C. I want to emphasize the word &#8220;basic&#8221;. You need to have an understanding of the basic syntax, and pointers. Once you become more fluent in Objective C and start getting into more advanced topics, then you will need to have a deeper understanding of C, but until then you need only a very basic knowledge. If you have never written a line of code before in your life, try learning a language such as Python. Python is one of the simplest languages to pick up because its syntax is really easy to understand. You don&#8217;t have to read an entire book on Python, just read enough to learn what a variable is, how assignment operators work, and what functions are. (Note: Python is not the only good starter language out there, Ruby is also a very good alternative; however, whatever you do, DO NOT learn a procedural programming language such as Visual Basic 6, or C in great detail because the concepts and approaches are totally different from object oriented approaches, and it will confuse you).</p>
<h3><span style="font-weight:normal;">Are you up to the challenge?</span></h3>
<p><span style="font-weight:normal;">Learning Objective C is your gateway into the exciting world of Mac OSX and the iPhone, and is very rewarding. Despite the initial learning curve, Objective C is a very simple, elegant programming language and you will much more fun with it than you would with Java, or C++. So, if understand the very basics of programming, and are ready to learn, come join me as we undercover the basics of object oriented programming, and write our first Objective C program!<br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zachbanks.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zachbanks.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zachbanks.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zachbanks.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/zachbanks.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/zachbanks.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/zachbanks.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/zachbanks.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zachbanks.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zachbanks.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zachbanks.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zachbanks.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zachbanks.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zachbanks.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zachbanks.wordpress.com&amp;blog=8206669&amp;post=3&amp;subd=zachbanks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://zachbanks.wordpress.com/2009/06/17/new-to-programming-learn-how-to-program-on-a-mac-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bcde63cb89eb3fa3b1d2c3eeef50d37d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">zachbanks</media:title>
		</media:content>

		<media:content url="http://zachbanks.files.wordpress.com/2009/06/voila_capture142.png" medium="image">
			<media:title type="html">GUI Application</media:title>
		</media:content>

		<media:content url="http://zachbanks.files.wordpress.com/2009/06/voila_capture15.png" medium="image">
			<media:title type="html">CLI Application</media:title>
		</media:content>
	</item>
	</channel>
</rss>
