View Full Version : Learning iPhone programming for people with no programming skills
alchemistmuffin
Jul 9, 2009, 08:57 PM
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
Jul 9, 2009, 09:13 PM
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
Jul 9, 2009, 10:55 PM
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
Jul 10, 2009, 04:09 AM
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
Jul 10, 2009, 04:46 AM
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
Jul 10, 2009, 06:13 AM
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
Jul 10, 2009, 10:42 AM
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.
munkees
Jul 10, 2009, 11:09 AM
I recommend the book Beginning iPhone Development from apress, explains very well as you work your way though the book.
rhett7660
Jul 10, 2009, 11:17 AM
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
Jul 10, 2009, 11:21 AM
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
Jul 10, 2009, 11:33 AM
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.
isaaclimdc
Jul 10, 2009, 11:38 AM
I recommend the book Beginning iPhone Development from apress, explains very well as you work your way though the book.
Yup, I highly recommend this as well. Fantastic resource!
alchemistmuffin
Jul 10, 2009, 11:55 PM
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
Jul 11, 2009, 04:00 AM
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?
the authors of the book recommend Learn Objective-C on the Mac
http://search.barnesandnoble.com/Learn-Objective-C-on-the-Mac/Mark-Dalrymple/e/9781430218159/?itm=1
lildragon
Jul 11, 2009, 05:35 AM
I would recommend Pragmatic for this, as I myself found Bill's way of teaching indespensible.
http://www.pragprog.com/screencasts/v-bdobjc/coding-in-objective-c-2-0
and
http://www.pragprog.com/screencasts/v-bdiphone/writing-your-first-iphone-application
Watch the samplers first to see if you can grasp anything. I especially recommend this free one http://screencasts.pragprog.com/v-bdiphone-helloiphone.mov.zip if you can understand this, you should be able to get going.
Good luck!
miles01110
Jul 11, 2009, 05:43 AM
I don't know anything about programming, language wise, or understanding the code, or how the code works, or what it does
Pick up any beginner's book on C- I think Sam's makes a good series. You could also pick up "The C Programming Language (http://www.amazon.com/Programming-Language-Prentice-Hall-Software/dp/0131103628)" by Kernighan and Ritchie- widely regarded as "the" book for C.
firewood
Jul 11, 2009, 12:18 PM
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
Jul 12, 2009, 12:53 PM
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
Jul 12, 2009, 08:02 PM
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
Jul 12, 2009, 08:40 PM
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
Jul 12, 2009, 09:22 PM
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.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.