Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

alchemistmuffin

macrumors 6502a
Original poster
Dec 28, 2007
718
692
Hi there.

I am learning how to program iPhone apps, but I have no programming skills.

Do you know any iPhone programming tutorials for people with no programming skills?

If know, what part of programming do I have to know?
 

Jeremy1026

macrumors 68020
Nov 3, 2007
2,215
1,029
If know, what part of programming do I have to know?

All of them. If you only know bits and pieces of programming, you will have flawed, buggy, bulky, memory leaking programs. If you have 0 knowledge at all in any language, I'd suggest starting with a simple language, and learn how to think like a programmer. Once you have that mindset move on to learning the iPhone SDK.
 

alchemistmuffin

macrumors 6502a
Original poster
Dec 28, 2007
718
692
All of them. If you only know bits and pieces of programming, you will have flawed, buggy, bulky, memory leaking programs. If you have 0 knowledge at all in any language, I'd suggest starting with a simple language, and learn how to think like a programmer. Once you have that mindset move on to learning the iPhone SDK.

Do you know any sites that does basic programming for Mac? Or do I have to start with Windows C++ programming? (via Bootcamp?)
 

robbieduncan

Moderator emeritus
Jul 24, 2002
25,611
893
Harrogate
Learn C, not C++ first. Learning Windows programming won't help at all. Once you have a good, solid understanding of C including memory management, pointers, functions etc then learn Objective-C (not C++). Once you have a good grasp of the language you can start to explore the Cocoa Touch API.
 

boyplunder

macrumors regular
Sep 8, 2008
165
0
UK
Let me tell you a story.

I downloaded the SDK last August in a fit of excitement. I had only a passing experience of C, but lots of experience in a number of other programming types, such as VB and Javascript. There were no books, because of Apple's NDA, so for the first month or two I created little rubbish apps that didn't really work. I set myself a simple navigation app structure and worked through each bit. How to load a view. How to set up an outlet. How to make and assign a button. How to use SQLite. And all of the little things in between. I did these over and over again until I understood what I was doing and why. Let me just say I didn't have more than a few hours at a time, and not every day.

By the end of October I created, from scratch, my first navigation app with no reference to a book, tutorial or Apple's reference library. So proud! [My wife said: 'Well done, dear!'] It was basic, but it all worked. Then I discovered these wonderful things called 'leaks'.

By the end of January I had the beginnings of my first two apps I intended to sell. I will be submitting one in the next few days.

I'm about to start my first game, and I fully expect it to be bloody hard work.
 

Jeremy1026

macrumors 68020
Nov 3, 2007
2,215
1,029
Let me tell you a story.

I downloaded the SDK last August in a fit of excitement. I had only a passing experience of C, but lots of experience in a number of other programming types, such as VB and Javascript. There were no books, because of Apple's NDA, so for the first month or two I created little rubbish apps that didn't really work. I set myself a simple navigation app structure and worked through each bit. How to load a view. How to set up an outlet. How to make and assign a button. How to use SQLite. And all of the little things in between. I did these over and over again until I understood what I was doing and why. Let me just say I didn't have more than a few hours at a time, and not every day.

By the end of October I created, from scratch, my first navigation app with no reference to a book, tutorial or Apple's reference library. So proud! [My wife said: 'Well done, dear!'] It was basic, but it all worked. Then I discovered these wonderful things called 'leaks'.

By the end of January I had the beginnings of my first two apps I intended to sell. I will be submitting one in the next few days.

I'm about to start my first game, and I fully expect it to be bloody hard work.

You also had a big advantage of having experience with other languages. The concept of programming is the same language to language, only the syntax changes.
 

boyplunder

macrumors regular
Sep 8, 2008
165
0
UK
You also had a big advantage of having experience with other languages. The concept of programming is the same language to language, only the syntax changes.

I can't say I agree with you there, syntax is a very big hill to climb. I speak French, but that doesn't mean I will find it easy to speak German too. You could say I had an understanding of languages, but didn't know the words to use. Well that's gonna get you far, isn't it?

Learning the building blocks used in Xcode was partly a visual thing for me, which IB helps a lot with, and then working hard at learning the code, which you need to make things do special things. You try making a game in IB. You wouldn't get very far.

My experience is that you have to put some effort in to learn to code. I read so many threads asking for an easy way in, but I don't think there is one.
 

rhett7660

macrumors G5
Jan 9, 2008
14,224
4,304
Sunny, Southern California
All of them. If you only know bits and pieces of programming, you will have flawed, buggy, bulky, memory leaking programs. If you have 0 knowledge at all in any language, I'd suggest starting with a simple language, and learn how to think like a programmer. Once you have that mindset move on to learning the iPhone SDK.

For me this is big.... I am just learning how to program. Not for iPhone stuff but for work. And some of the concepts that I have come up against are hard to imagine or thing, unless you thinking like a programmer. So I have had to go back and re-start what I am doing, trying to learn some of the reasons on why "X" does that or why "Y" did that and why it was put there......

It is very interesting to learn and see...... Using classes, functions, modules etc..... I don't know if these idea's apply to iPhone programming, but man,,,,,,,, Good luck. As others have said, there really is no easy way to do this. You have to get down and dirty and do the work.
 

admanimal

macrumors 68040
Apr 22, 2005
3,531
2
I can't say I agree with you there, syntax is a very big hill to climb. I speak French, but that doesn't mean I will find it easy to speak German too. You could say I had an understanding of languages, but didn't know the words to use. Well that's gonna get you far, isn't it?

But imagine if you didn't even understand the concept of a noun, verb, sentence, etc. and how much harder it would be to learn a French or German then. Since you already know how to think about forming thoughts and communicating using your native language, learning a new one is much easier than if you had no concept at all of how modern languages work (say if you were a caveman who was used to grunting and drawing on walls for communication).

The same is true for programming languages. Once you learn how to think like a programmer and express an algorithm using the idioms that are common across all languages (looping, conditionals, etc.), it is much easier to pick up a new one.
 

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
Learn to program first, any computer language. Try the beginning to program books in the children's section of your local library. Or take a class. Move up to more complicated programming books when that seems way too easy.
 

alchemistmuffin

macrumors 6502a
Original poster
Dec 28, 2007
718
692
Yup, I highly recommend this as well. Fantastic resource!

Here's the thing:

I don't know anything about programming, language wise, or understanding the code, or how the code works, or what it does

Does the book cover through that? For people with no programming knowledge at all?
 

munkees

macrumors 65816
Sep 3, 2005
1,027
1
Pacific Northwest

lildragon

macrumors newbie
Jun 23, 2009
13
0

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
Here's the thing:

I don't know anything about programming, language wise, or understanding the code, or how the code works, or what it does

Does the book cover through that? For people with no programming knowledge at all?

Look up the children's intro to programming sites on Squeak:
http://www.squeak.org/
http://scratch.mit.edu/

You could also check out sites on beginning Logo or Basic.
Neither C nor Obj-C were designed for teaching programming to absolute beginners.
 

lucasgladding

macrumors 6502
Feb 16, 2007
319
1
Waterloo, Ontario
Web frameworks are excellent places to start IMHO. You can pick up a lot from Mac and iPhone programming books, but MVC really gets explained well in large tutorials for Rails, Symfony, Cake, etc. Once you understand that, Cocoa Programming for Mac OS X is great, but make sure you pay attention to notifications, categories, etc. These are easy to overlook and you can build applications without an understanding of these things, but you code will probably be much harder to manage without them. Regardless of the approach, make sure you follow learning resources from start to finish. Abandoning books when you think you learned enough will hurt you in the end.

Best of luck

Luke
 

noodle654

macrumors 68020
Jun 2, 2005
2,070
22
Never Ender
I am not going to lie, I am in the same boat dude. I just bought my membership thing to develop for the iPhone. I have no experience with coding, and I thought that this would be a great challenge and a great introduction into...all this. I am about to buy the suggested Apress books on this, but I just want to be certain which ones I should buy (Objective-C right?). My plan is to create a better weather/marine app for the store, so hopefully this all works out. Any other suggestions? I am not familiar with any of this, but I am very willing to learn it.

How about the iPhone Application Development for Dummies? Seen a lot of good reviews so far. I am about to pull the trigger on that and the Programming in Objective -C 2.0. Or something else?
 

mpemburn

macrumors member
Jan 11, 2008
51
0
Bel Air, MD USA
alchemistmuffin -- I may be wrong but I sense that you've caught a glimmering of how cutting edge (and lucrative) iPhone apps can be and want to get in on the buzz -- but please be patient: you have a long journey ahead of you. If, as your handle suggests, you have some knowledge of alchemy, the dictum "Ora, lege, lege, lege, relege, labora et invenies" ("Pray, read, read, read, re-read, work and you will discover it") applies here in spades. There is much sulphur and salt to separate before you discover the mercury of the programmer's spirit.

All programming languages share essentially the same basic concepts:

* Storage and retrieval of variables. (e.g,, x=10)
* Branches based on logical tests. (e.g., if (x = 10) { do this } else { do that })
* Iterative looping until test conditions are met. (e.g., while(x<10) { do this and that; x=x+1; })

Most also have:

* Key words that act as the verbs and adjectives of the language.
* The ability to define constants and more complex data structures.
* Functions that accept variables (as arguments), perform specific transformations and return results. (e.g., function addUp (a, b) { return a + b })

In languages like C, you'll also have to deal with specific data types (e.g., integers, floating point, character, boolean, etc.) and pointers (memory address locations of variables, etc.). There's also the concept of declaring functions and initializing variables before you use them and the world of compiling source code into object code and linking the result into executable code.

Objective-C is an Object Oriented Programing (OOP) language, and for this you must understand the concept of encapsulation -- class structures that become objects containing methods (a specialized case of functions) and properties. There are also terms and concepts specific to Objective-C such as selectors (generally identical to "methods"), accessors, delegates, categories, etc.

All this may seem pretty daunting when you are starting out but the essential message here is get yourself a good grounding in programming first and the road will be much easier. As I say this, though, it's with the realization that even with more than 25 years of programming experience at the professional level, I still struggle to learn the basics with each new language I take up. Give yourself time and don't become attached to any outcomes for a while. If you stick with it, a passion for the discipline may grow within you and the discovery of new territory will become your guiding light.

-- Mark
 

FarSeide

macrumors 6502a
Feb 17, 2008
865
0
Earth Lane
One thing you have to realize is that you have to have the basics down first or else you wont truly understand how things work behind the scene and why things work the way it does.

Be patient and take baby steps in learning the language. If you invest bit more time up front, you will have an easier time understanding other languages as you move forward.

Good luck and be sure to check back and let us know how your doing.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.