Hey all! I'm totally new to programming, and I'm looking to take a dive into the programming world to see if its something I'd be interested in majoring or minoring in, and I'd really like to start on a mac. Can anyone recommend a mac laptop in the sub $250 range that will not bottle neck me potentially developing anything down the line?
Also, maybe good recommendations on C books for a complete newbie? I've done some poking around and found a couple people have recommended here. One being the big nerd ranch guide on Objective-C
http://www.amazon.com/Objective-C-Programming-Ranch-Guide-Guides/dp/0321706285/ref=sr_1_2?s=books&ie=UTF8&qid=1335634456&sr=1-2#productPromotions. Ideally I want to exclusively focus on touch interface programming I.E Ipad, Iphone , Android, windows phones.
Any help or direction is greatly appreciated, thanks all!
I see several contradictory goals here:
1. New to programming; may not like it.
2. Low cost computer wanted.
3. Long-lifetime computer wanted.
4. Big Nerd Ranch Objective-C book.
5. Exclusively mobile devices.
1 & 2 are in harmony, but are in varying amounts of conflict with 3-5. Low cost computers won't have long lifetime, because any computer in the $250 range will be an older used model.
The cited book is written for Xcode 4.2, which requires an OS version of 10.7 Lion, also answering one of your other questions from a later post. If the book requires a certain OS and Xcode version, substituting with older versions is unlikely to work out.
Focusing exclusively on mobile devices means you will almost certainly need a recent model computer, running recent OS and Xcode versions. This is not going to happen for $250.
You can learn programming on an older computer, but probably not for mobiles, or at least not for recent ones. You should be able to learn whether you like programming without focusing exclusively on mobiles. Lots of us, me included, learned programming long before mobiles, so limiting yourself early is in some ways a sure route to disappointment. Once you have the fundamentals well in hand, you can move to mobiles a lot more easily.
There is very little programming overlap between Android, iOS, and Windows phones, except in basic principles or unless you go with web-apps**. The languages are completely different, and if you don't know any programming language, then becoming proficient at one is plenty of work by itself. Diversifying too early is another sure route to disappointment and failure.
Since you don't know whether you'll even like programming, nor what your innate talent for it is, and considering you have a low budget, I recommend forgoing the mobile focus for now.
I also recommend forgoing the long-lifetime computer. If you pay $250 for one that meets your current needs, and that you can learn on, then worst-case you've wasted $250 even if you never resell it. You can lose a lot more than $250 by springing for a new (or even recent) model that is capable of Lion and Xcode 4.2 (to match your book), even if you
do resell it. If you decide after 6 months that programming isn't your thing, you could probably resell your $250 computer for $150 or even $200, further reducing your downside risk.
FWIW, making tradeoffs to meet realistic goals is one of the core principles of engineering. Having realistic goals is another, but I digress. In any case, I suggest an engineering approach: define your goals, define your budget, then find a solution that fits. If nothing fits, start cutting. If you prioritize your goals (see numbered list above), you'll be able to more accurately assess which ones to cut and which ones to keep.
** Web-apps means written in HTML, CSS, and JavaScript. Even here, there are differences between platforms. Not just between iOS, Android, and WinPhone, but between different browsers and different versions of browsers. There are plenty of bugs in older WebKit browsers (iOS & Android) that make writing JS and CSS a real PITA. And if you're targeting mobile devices, you really need to have the target mobile device for testing. I wasn't half as shocked going between Safari and IE7 as I was between desktop Safari and mobile Safari, when I was making a web-app.