First a little back story, but I promise I will get to my questions.
Like many people I've become more and more interested in the possibilities of programming for the iPhone. I have always wanted to learn programming, and I even studied it briefly my first year of college, but then I got sidetracked with another career path. Ten years later I'm ready to dig in and really try to learn C.
I'm primarily a Mac user and plan to learn and develop my programs on Mac, but I do use Windows on a daily basis and do like it, especially the prospect of Windows 7.
Anyway, here is my thought process for learning programming. I know there are a variety of languages that can be learned but, again, my first goal is to design apps and games for the iPhone. Researching iPhone app development it says to program in Objective-C. In researching Objective-C it says it's best to know C first. So I have picked up Learning C on the Mac. From there I plan to go to Learning Objective-C on the Mac, and then finally Beginning iPhone 3 Development: Exploring the iPhone SDK. (It also seems most languages derive from C, sort of like many spoken languages derive from Latin, so it seemed that C was the best choice.)
This is fine for iPhone and Mac development but when I start preparing to program games I really want to do something that's cross platform. Again, here it seems C is a wise choice for the foundation of the program but I realize re-programming for Windows specifically will be necessary.
Then I started hearing about SDL development which many cross platform developers seem to swear by. So now I'm thinking I should learn C as planned, then SDL and then look into more specific C programming for Windows. Does this make the most sense? What do you recommend? I know that this is very ambitious for someone who has never programmed, but I'm very determined to succeed in this.
I appreciate any thoughts you may have.
Personally, I would skip C and go to C++ if you want to do cross-platform development, especially with games. For iPhone, I would go straight to Objective-C.
I heard the old saying that unless you want to write an operating system on your own, then C is the way to go. I don't know how true it is but C has been a question to many people as you may search the forum. Many replies and many respond to rather or not should someone skip C.
You are not like me who has years to spend on learn programming language (I am only 18). I could spend the next 5 years to finish C++, Java, C, Python, and a few others if I choose to. It seems like you are a working person. But let see what Panther has to say about his comment. Mathematix is right too. These two guys are the real MAN, they know what they are talking about. They helped me a lot on the forum.
xDDDD sorry I am a beginner C++. Just my 2 cents.
http://i3physics.com/blog
*-*-*-*__ C++ revolutionized the modern programming language, but what happen to C+? Programming is just a study of chemistry __*-*-*-*
SDL is just a library. You can use it with C++ or C.
My experience is that to move from C to C++, you have to unlearn a lot of C habits that are considered bad practices in C++. It's easier to just start with C++ and pick up the C tidbits you need along the way. I also find C++ code much easier to create/understand, since it gives me far more options for how to create code.
C before C++ was discussed quite thoroughly here: C necessary before C++?
Objective C is a smaller step from C than C++ is, so you might want to take that into account when viewing the thread.
Hey! Check out my new Toyota keyboaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
With all due respect, I very strongly disagree with this from personal experience.
With cross-platform game development we do a lot of low-level code that has little to no requirement for C++ but makes C an absolutely essential language. When writing low-level code you have no need for higher level constructs like the STL, and when strings are handled, the 'string' class/wrapper is actually a big hindrance for a variety of reasons.
When C++ becomes useful is when we wish to make use of specific OO properties that it offers.
Particularly for games, knowing C is an essential skill.
Thank you to everyone who weighed in. I appreciate the input. Since I posted my original question one big change has happened: I'm moving back to Windows as my primary OS from Mac (I'm building a Hackintosh). Because of this and the advice posted here I am forgoing learning C and jumping into C++ on Windows instead of Mac. Then I'll move to Objective-C. This seems like a better method over the one I originally laid out.
I appreciate all the information and support. Thanks again!
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks