Register FAQ / Rules Forum Spy Search Today's Posts Mark Forums Read
Go Back   MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Reply
 
Thread Tools Search this Thread Display Modes
Old Apr 21, 2010, 11:02 AM   #26
gnasher729
macrumors G5
 
gnasher729's Avatar
 
Join Date: Nov 2005
Quote:
Originally Posted by hudsonr View Post
Can anyone suggest where I cam get hands-on training for Objective-C at a more affordable price? I am located in Houston, Texas.
Stanford University course on iTunes U (iTunes University). 26 hours introduction to Objective-C and iPhone programming. Free.
gnasher729 is offline   0 Reply With Quote
Old Apr 21, 2010, 02:03 PM   #27
mdatwood
macrumors 6502a
 
Join Date: Mar 2010
Location: Denver, CO
Quote:
Originally Posted by skochan View Post
I think tackling a problem from an object-oriented perspective is very different from approaching the problem procedurally. So why learn one approach to programming first and then have to almost unlearn it after?
I agree with you here, but the problem is that new people to programming are not thinking about approaching a problem procedurally or OO, they are too busy getting stuck on functions, pointers, memory management, parameter passing, etc... Why clutter up these basic concepts with something like obj-c and OO when you can start with C and then have that knowledge transfer directly to obj-c? How can someone without any prior programming knowledge understand reference counting or pools without first understanding malloc/free and beyond that, what actually is going on in the underlying hardware?

I'm not advocating that someone needs to become an expert in C before continuing to obj-c, but that they should use C as a way to learn these base concepts so that when they do start thinking about OO they can focus on OO and not why they have a * after some type declarations and not others.
__________________
Check out my iPhone app!
iAutoCalc
And some of my pictures
mdatwood is offline   0 Reply With Quote
Old Apr 21, 2010, 03:54 PM   #28
Sydde
macrumors 68000
 
Sydde's Avatar
 
Join Date: Aug 2009
Quote:
Originally Posted by mdatwood View Post
I agree with you here, but the problem is that new people to programming are not thinking about approaching a problem procedurally or OO, they are too busy getting stuck on functions, pointers, memory management, parameter passing, etc... Why clutter up these basic concepts with something like obj-c and OO when you can start with C and then have that knowledge transfer directly to obj-c? How can someone without any prior programming knowledge understand reference counting or pools without first understanding malloc/free and beyond that, what actually is going on in the underlying hardware?

I'm not advocating that someone needs to become an expert in C before continuing to obj-c, but that they should use C as a way to learn these base concepts so that when they do start thinking about OO they can focus on OO and not why they have a * after some type declarations and not others.
How can a student possibly grasp all these concepts without some sort of preparatory study? Granted, Garbage Collection does relieve one of the memory management issues (I think, I am almost afraid to try it, especially if it makes me lazier than I already am), but it disappears if you have to move beyond Cocoa. And some things are just not practical or doable from a strictly Cocoa standpoint. Sooner or later, a programmer will have to venture into Core Foundation, Core Services or even deeper, and without an understanding of procedural C, it will be back to class or the books.

I learned obsolete machine language programming from a book in the HS Library many years ago. The great thing about that book was that I only had to read about a third of it: it was arranged with a test question at the bottom of each page with each answer pointing the reader to another page - kind of the precursor to hypertext. That would be a very fine companion to a paper text, a CD containing web pages that lead the reader through the learning experience as smoothly as possible.
__________________
You got to be a spirit. You can't be no ghost.
Sydde is offline   0 Reply With Quote
Old Apr 21, 2010, 05:09 PM   #29
macsmurf
macrumors 65816
 
macsmurf's Avatar
 
Join Date: Aug 2007
I think it is a good idea to start with an object oriented language if you want to write programs in this paradigm. People have a tendency to think that OO is harder than procedural languages but those people (including myself) started out on procedural languages so its difficult to know if they're right.

That pretty much narrows it down to Java, Obj C, or Ruby. I haven't read Kochans book but a lot of people seem to like it a lot, so I think I would start there.

Anyway, all I wanted to say was: Stay away from JavaScript. It's a weird language that a lot of people write really terrible code in and post on the net. The scoping is strange and non-standard and it also has some rather advanced features, such as closures, that may not be the best thing to start out with. Closures are cool but may not be easy to grasp.
macsmurf is offline   0 Reply With Quote
Old Apr 21, 2010, 05:40 PM   #30
BollywooD
macrumors 6502
 
Join Date: Apr 2005
Just d/l a simple open source project, start digging around in the code - change things, and see what happens. Learn by doing.
BollywooD is offline   0 Reply With Quote
Old Apr 21, 2010, 05:57 PM   #31
macsmurf
macrumors 65816
 
macsmurf's Avatar
 
Join Date: Aug 2007
Quote:
Originally Posted by BollywooD View Post
Just d/l a simple open source project, start digging around in the code - change things, and see what happens. Learn by doing.
Well, there's a novel approach. Did you learn to program this way? Personally, I think I would learn more by putting a book under my pillow and extract knowledge from it by osmosis.
macsmurf is offline   1 Reply With Quote
Old Apr 21, 2010, 05:59 PM   #32
lee1210
macrumors 68040
 
lee1210's Avatar
 
Join Date: Jan 2005
Location: Dallas, TX
Guys... hudsonr resurrected/hijacked a year-old thread. You're responding to, in Internet time, ancient posts.

-Lee
lee1210 is offline   0 Reply With Quote
Old Apr 22, 2010, 04:40 PM   #33
macsmurf
macrumors 65816
 
macsmurf's Avatar
 
Join Date: Aug 2007
Quote:
Originally Posted by gnasher729 View Post
Stanford University course on iTunes U (iTunes University). 26 hours introduction to Objective-C and iPhone programming. Free.
Although the thread was hijacked I wanted to thank you for this pointer. I've been looking for an excuse to learn Obj C and this is a lot of fun, although probably not very useful for people without any OOP experience.

So without further ado I'll try a little hijack of my own.

Impressions so far:

XCode isn't bad but having used IntelliJ Idea I'm not too impressed.

Why introduce dot notation when it cannot be used with more than one parameter? Confusing sugar is confusing.

Closures! Nice! Now all we need is Cocoa support.
macsmurf is offline   0 Reply With Quote
Old Apr 14, 2013, 07:47 AM   #34
DWmFrancis
macrumors newbie
 
Join Date: Nov 2011
Frustrated Beginners

Although the original post for this was written over four years ago, it's still a relevant question. I'm going to give what I think is a short, current (April 2013) answer and then expand on it a bit.

Today, I would suggest RunRev's LiveCode. After many years of development and a recent successful Kickstarter funding, LiveCode is poised to make a real impact on how hard it is to learn to program for iOS.

My situation was similar to the original poster - I wanted to do cool stuff with the iPhone but was struggling with all the nuances of objective C and the iPhone environment. The closest thing I can compare it to is learning a very foreign language. It can take years to become conversationally fluent and unfortunately, computers are real sticklers for grammar, syntax and spelling let along style and content. Objective C takes that to new heights by introducing another layer of abstraction. It's no wonder newbies run from the building screaming.

I worked for Apple for ten years, but not as a programmer. During that time we released a neat little programming environment called HyperCard. It was really exciting because it was built on common metaphors, file cards, buttons, text fields, etc., which made sense, at least in English. To that was added a simple, mostly plain text scripting capability which made it easy to hook things together and respond to user actions. My "real" programmer friends, who were using Pascal at the time, thought HyperCard was a toy for sissies who didn't have the guts to become "real" programmers. Steve killed HyperCard and went on to develop the NextStep programming environment and Objective C (with a lot of help from some really good programmers). Today that is what we are getting in the xCode Integrated Development Environment.

Fast forward 30 years or so...

I'm old enough to remember when we programmed the first computers in binary, with switches. That gave way to machine languages and punch cards and languages like ALGOL, and FORTRAN. Then came Pascal and C. But along the way something else happened. As the layers of abstraction got deeper the art of programming became the arena of "experts". You needed a four year degree and 10,000 hours of coding to be considered functional - and from an entirely practical perspective that is still true. However, there is a shift going on in the industry which I don't think we should ignore.

Macintosh was supposed to be "the computer for the rest of us". It did that by making difficult, complex tasks, easy for the average consumer. It launched a revolution in desktop publishing, personal productivity, and individual creative expression. Today, that continues, even outside the Apple ecosystem. There is one area which hasn't been "userized" yet and that is writing software to run on "the computer/cell phone/tablet.

Now, some if you old school, hard core programmers may think I'm crazy. Let me ask you a question; would you like to go back to writing code in machine language? In another context, would you like to build your own car from a pile of iron and aluminum ore and crude oil? Some of you might, and you'd have the right to be very proud of your accomplishment. However, for the rest if us who want to be able to get from home to the store, or work, or grandma's in minutes, today, we'll be grateful to the Henry Fords and Clausings and Demings who developed steel mills and car factories so others could build cars for us.

But what about those of us who want something that hasn't been put into mass production yet? Those ordinary folks who don't want to have to go to school for four years to be able to take advantage of all the capabilities in their iPhones that someone else hasn't written the code to do? They (we) are out here and we don't want to pay $20,000 to develop and market an app, probably because its just for our own personal use. What about "the rest of us"? Why should we have to spend two to ten years and hundreds to thousands of dollars to be able to a know where a single frame of a home movie was shot or the temperature and humidity where we are currently standing?

There is a shift occurring in the world around user centered design and the democratization of creativity. It's happening in 3D printing and fabrication. The Maker Movement is gathering steam. It started in the fabrication of plastics and metals. It's also got a toe hold in electronics with FPGAs and fully customizable hybrid chips and SOMs. Every step brings us closer to empowering anyone with an idea to be able to more easily express it in form and function. That should be really exciting as it holds the promise to solve some very complex, global problems, and even daily, personal needs, which effect all of us.

What if programming your iPhone was as easy as using it? Why can't there be a "natural language" development environment for iOS with an understandable GUI? From what I've seen so far, LiveCode is a big step in that direction.

Sorry for the long rant. I just think its time to democratize programming too.

-df

Last edited by DWmFrancis; Apr 14, 2013 at 07:59 AM. Reason: Added examples and fixed spelling
DWmFrancis is offline   0 Reply With Quote

Reply
MacRumors Forums > Apple Systems and Services > Programming > Mac Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
thread Thread Starter Forum Replies Last Post
Objective C - An object inside an interface Torchi12 Mac Programming 6 Oct 2, 2011 01:57 PM
Basic Cocoa MVC query - how to keep the same model object around simongoldring Mac Programming 0 Apr 3, 2011 04:17 PM
Please help me learn objective-c basics. lynkynpark86 iPhone/iPad Programming 2 Apr 30, 2010 07:00 AM
Objective C - Is it worth learning ? dmkmil Mac Programming 4 Jan 3, 2009 02:44 PM
Crew needed in northern NJ for MiniDV shoot - beginners welcome! sigamy Digital Video 1 Sep 9, 2005 02:35 PM


All times are GMT -5. The time now is 08:44 AM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC