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

harlanjmichael

macrumors newbie
Original poster
Mar 11, 2014
7
0
Hello everyone,

I was hoping that I could get advice from those who already know programming or who have just started out programming. I am looking for advice on how to learn programming; through certain books, videos, etc. I currently only use Apple products, but I am also very familiar with Windows. I would be doing any coding activities through my MBP or iMac, so please keep that in mind that I will be acting solely through Apple devices.

Let me state that I am not seeking to switch careers into programming, but rather, I am interested in pursuing it as a full-time hobby. I am 23 and work from 9-5 on weekdays, so I am able to commit the time at night and on weekends. Although I understand basic computers and OS X, let me state that I have no scripting or programming experience. Does it make sense to learn a certain language first? Maybe read a specific book or textbook...

Any advice will be very appreciated. I hope to hear from any of you and I apologize in advance if I forgot to put any specific info in my question.

Kind regards,

Harlan
 

chrono1081

macrumors G3
Jan 26, 2008
8,711
5,155
Isla Nublar
Hello everyone,

I was hoping that I could get advice from those who already know programming or who have just started out programming. I am looking for advice on how to learn programming; through certain books, videos, etc. I currently only use Apple products, but I am also very familiar with Windows. I would be doing any coding activities through my MBP or iMac, so please keep that in mind that I will be acting solely through Apple devices.

Let me state that I am not seeking to switch careers into programming, but rather, I am interested in pursuing it as a full-time hobby. I am 23 and work from 9-5 on weekdays, so I am able to commit the time at night and on weekends. Although I understand basic computers and OS X, let me state that I have no scripting or programming experience. Does it make sense to learn a certain language first? Maybe read a specific book or textbook...

Any advice will be very appreciated. I hope to hear from any of you and I apologize in advance if I forgot to put any specific info in my question.

Kind regards,

Harlan

Well if you like Apple stuff I'd suggest this path:

-Download Xcode (its free)

-Grab this book: http://www.amazon.com/Objective-C-Programming-Ranch-Edition-Guides/dp/032194206X/ref=dp_ob_title_bk

And start working through it.

Be aware of a few things with programming:

1. You will get frustrated at parts and you will get confused about parts. This is just part of programming. Don't ever hesitate to ask on here anything you have questions about.

2. Don't overload yourself. If you do 60 pages in a night chances are you won't remember half of it. Learn it in small, bite sized chunks and make sure to think about what you learned.

3. Keep at it, even if its just a chapter every few nights. You'll learn a lot in no time. Also the fun stuff comes after the basics, there's no way to skip.
 

harlanjmichael

macrumors newbie
Original poster
Mar 11, 2014
7
0
Thank you.

Well if you like Apple stuff I'd suggest this path:

-Download Xcode (its free)

-Grab this book: http://www.amazon.com/Objective-C-Programming-Ranch-Edition-Guides/dp/032194206X/ref=dp_ob_title_bk

And start working through it.

Be aware of a few things with programming:

1. You will get frustrated at parts and you will get confused about parts. This is just part of programming. Don't ever hesitate to ask on here anything you have questions about.

2. Don't overload yourself. If you do 60 pages in a night chances are you won't remember half of it. Learn it in small, bite sized chunks and make sure to think about what you learned.

3. Keep at it, even if its just a chapter every few nights. You'll learn a lot in no time. Also the fun stuff comes after the basics, there's no way to skip.

Thank you chrono1081 for the detailed response. I have heard of this particular Objective-C book and I have just ordered it for my iPad. I am definitely not planning to rush things. In fact, I am sort of guy who enjoys reading an instruction manual frontwards and backwards to understand everything fully. And I hear the practice problems in the book are great. Thank you for the recommendation.

And thanks robvas for the website that you posted. I visited Code Academy last night and I am excited to get started.

Thank you both for your help!
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,612
6,148
I strongly suggest you come up with a specific project that you want to make real. Programming is too vast a topic to just dive into - you need to let us know a specific domain you're interested in so we can recommend specific languages, frameworks, and tools you'll need to familiarize yourself with.

Having said that, Python is the easiest language to learn. If you're not going to come up with a specific project you want to do, learn Python.

Everything you need to learn Python is already installed on all Macs out of the box. Zed Shaw has a free eBook called Learn Python the Hard Way. I suggest learning it that way.
 

firewood

macrumors G3
Jul 29, 2003
8,141
1,384
Silicon Valley
There are plenty of books on programming for kids, dummies, idiots, etc. Maybe you can find such in your local library or used book store. I would start there. Not with Objective C.

Learning to code is hard for many people, so start with the easiest stuff you can find, and work the problem sets and exercises until you start to find the ones for kids are beginning to seem not to hard for you any more.
 

devilofspades

macrumors member
Jul 20, 2011
76
0
this question has been asked numerous times by numerous people, and i will give you the same basic response. if you plan on "learning" programming then by all means start with the c language. people say this a ton without any real explanation as to why. well here is the why, and why it is so important. objective-c is a strict superset of c, meaning it is c. other languages like java & c# are object oriented like objective-c but the flexibility of objective-c lets you actually write c code inline with objective-c code. the truth of the matter is most of the advanced apple frameworks like core animation, core graphics, etc are c based frameworks that have c functions (if you don't know what a "c function" is, is exactly why you should learn c first). the problem with glossing over this, and i'll admit i was even guilty of doing this when i started, is you don't really understand or grasp what is actually happening. google is a great resource, but it makes us all lazy at times. the last thing you want to be doing is cut and paste a bunch of code for a project you are working on and have no clue to how it works.

the next thing that most people over look is objective-c vs. apple frameworks. they are two different things. this is important to understand, because like i said before some frameworks are objective-c based, like uikit which does the pretty buttons and such, and then things like core graphics which is c based that does pretty drawings and such. but wait, you might ask, isn't a button a drawing? why yes, yes it is. uikit, is just an high level object oriented overlay for the lower level c based core graphics framework. think of (very loosely because this is a silly analogy) objective-c being like a scripting language for a more complex language. powershell is a good example of this. powershell uses simple "commandlets" that are one line "actions" that under the hood do much more complex dotnet framework tasks. like when you go to a sandwich place and say "make me a sandwich". a sandwich doesn't magically appear, someone goes through the motions on assembling that sandwich for you and "returns" you a complete sandwich. programming is very much like this concept.

i'll digress at this point, but the bottom line is if you truly want to "learn" programming and not just cobble lines of code together, you need to have a good understanding of how things work, what the nomenclatures are, how to write code efficiently, understand different data types, etc. once you have a good hold on these things, learning a "new" language is relatively easy as they all pretty much work in similar ways. objective-c & c are nice because they are so tightly coupled together. as far as books go, i say the same thing all the time. go check out a bunch of them, because each one has a specific style that you may or may not gravitate to. i've read books that make me say "that makes no sense what so ever", but the same information worded differently will trigger a light bulb ah-ha moment. so its a very personalized experience as everyone learns differently. once you find a book you like, note the author and look at other books by the same person or persons. once you start formulating your own understandings, it becomes easier to read books that you don't necessarily like because now you're able to grasp ideas and concepts better. its like going to the gym, it sucks when you don't know how to do any exercises correctly or have the proper from, but once you do it just sucks cuz its hard work but nothing worth doing is easy. hope that long winded diatribe helps.

if all this was too much for you to read, then give up now because programming is way harder than this...
 
Last edited:

harlanjmichael

macrumors newbie
Original poster
Mar 11, 2014
7
0
this question has been asked numerous times by numerous people, and i will give you the same basic response. if you plan on "learning" programming then by all means start with the c language. people say this a ton without any real explanation as to why. well here is the why, and why it is so important. objective-c is a strict superset of c, meaning it is c. other languages like java & c# are object oriented like objective-c but the flexibility of objective-c lets you actually write c code inline with objective-c code. the truth of the matter is most of the advanced apple frameworks like core animation, core graphics, etc are c based frameworks that have c functions (if you don't know what a "c function" is, is exactly why you should learn c first). the problem with glossing over this, and i'll admit i was even guilty of doing this when i started, is you don't really understand or grasp what is actually happening. google is a great resource, but it makes us all lazy at times. the last thing you want to be doing is cut and paste a bunch of code for a project you are working on and have no clue to how it works. the next thing that most people over look is objective-c vs. apple frameworks. they are two different things. this is important to understand, because like i said before some frameworks are objective-c based, like uikit which does the pretty buttons and such, and then things like core graphics which is c based that does pretty drawings and such. but wait, you might ask, isn't a button a drawing? why yes, yes it is. uikit, is just an high level object oriented overlay for the lower level c based core graphics framework. i'll digress at this point. the button line is if you truly want to "learn" programming and not just cobble lines of code together, you need to have a good understanding of how things work, what the nomenclatures are, how to write code efficiently, understand different data types, etc. once you have a good hold on these things, learning a "new" language is relatively easy as they all pretty much work in similar ways. objective-c & c are nice because they are so tightly coupled together. as far as books go, i say the same thing all the time. go check out a bunch of them, because everyone one has a specific style that you may or may not gravitate to. i've read books that make me say "that makes no sense what so ever", but the same information worded differently will trigger a light bulb ah-ha moment. so its a very personalized experience as everyone learns differently. once you find a book you like, note the author and look at other books by the same person or persons. once you start formulating your own understandings, it becomes easier to read books that you don't necessarily like because now you're able to grasp ideas and concepts better. its like going to the gym, it sucks when you don't know how to do any exercises correctly or have the proper from, but once you do it just sucks cuz its hard work but nothing worth doing is easy. hope that long winded diatribe helps.

Thank you, it has helped a lot. I have been reading about c and objective-c and I am understanding where you are coming from. I am definitely starting with reading about c first and I appreciate your comments about them.
 

960design

macrumors 68040
Apr 17, 2012
3,795
1,674
Destin, FL
Learning to program is like learning new spoken language, like Hungul. Think about reading a book to learn Hungul. You can absolutely do it, but it will be difficult and frustrating. As soon as you figure it all out and you head out to the real world to try it, all the native speakers will have trouble understanding your accent or phrasing.

It is a thousand times easier to learn programming from someone. They can answer ( this forum can be that someone ) a sticking point you will reach. You can struggle and google it for hours or days, but we could probably answer it in seconds.

I agree with Nerd Ranch Books as a pretty good book ( I have it on my shelf ). I teach a programming club and most people just want to get their hands dirty as fast as possible. I normally start everyone with something like GreenFoot. Download it for free at greenfoot.org and read the tutorials or buy a book from amazon on it. You will be writing an asteroids like game in a week. Then move on to something like Cocos2D to get your feet ( and entire body ) wet in the iOS world. Next I'd try something like Nerd Ranch to get into the gritty of coding and finally I'd go with something non aligned to any OS like Java ( ducking shoes, tomatoes, ssl slurs ). Others will choose a different path here. But by now you'll know enough to pick that path.

Good luck. Once you figure it out, programming is very easy.
 
Last edited:

tekboi

macrumors 6502a
Aug 9, 2006
731
145
EasŦcoast
I personally use teamtreehouse.com

The learning structure is VERY organized. It's not free but definitely worth the investment in my opinion.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.