PDA

View Full Version : Starting off, need to find a OSX machine!




Jcyochum
Apr 28, 2012, 01:58 PM
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!



miles01110
Apr 28, 2012, 02:29 PM
Can anyone recommend a mac laptop in the sub $250 range that will not bottle neck me potentially developing anything down the line?

For $250 you will not be able to develop anything for modern iDevices nor much that would be useful for current Macs.

Bug-Creator
Apr 28, 2012, 02:54 PM
Dunno, 250$ should be sufficent to get him a 1st gen MacBook in not-so-good condition and should therefore allow Snow Leopard and an XCode version sufficient to create iOS-apps.

Not the latest and the greatest but for someone literally starting at "Hello World" it will make due for atleast the 1st few years....

Jcyochum
Apr 28, 2012, 03:27 PM
For $250 you will not be able to develop anything for modern iDevices nor much that would be useful for current Macs.

That was kind of my question, I've found several 1st gen core 2 macbooks around that range on Craigslist 250-300, would those suffice? I also expect to spend some $ to update the OS. What laptops do you recommend that will handle developing for modern devices, what OSX should I aim to be on? 10.6, 10.7, or the new mountain lion?

Jessica Lares
Apr 28, 2012, 03:51 PM
That was kind of my question, I've found several 1st gen core 2 macbooks around that range on Craigslist 250-300, would those suffice? I also expect to spend some $ to update the OS. What laptops do you recommend that will handle developing for modern devices, what OSX should I aim to be on? 10.6, 10.7, or the new mountain lion?

No, stay away for those machines. Lion runs OKAY on them, but let me tell you. I have issues with it on a late 2011 machine. I've already had to reinstall once after only having it for three months. Safari has issues, and I'm constantly restarting. I have a developer preview on a late 2006 MacBook Pro, but never upgraded due to it getting really old. But just to think how it'll run on THAT machine after using it on the latest model is like wow.

You want to get a newer model, especially since the newest version of Xcode only supports Lion. And you want something that will be able to take advantage of Mountain Lion. Macs are not like Windows based PCs where you can run XP for 5+ years, you're constantly having to update to keep up with developers who don't want to support three different OS versions because of API deprecations and other stuff.

firewood
Apr 28, 2012, 04:01 PM
An old used Mini or iMac with a Core 2 Duo minimum is what you need. A C2D MacBook with a busted display might be a possibility in your price range (bring your own monitor). Earlier Macs will be useless for developing for any iOS devices currently being sold.

chown33
Apr 28, 2012, 05:27 PM
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.

firewood
Apr 28, 2012, 07:20 PM
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.

But he can resell it. Used Macs hold their (re)resale value really well, especially so if he somehow manages to find a Mac that can run Lion and keeps it clean and working.

chown33
Apr 28, 2012, 09:03 PM
But he can resell it. Used Macs hold their (re)resale value really well, especially so if he somehow manages to find a Mac that can run Lion and keeps it clean and working.

To be honest, I was also thinking of other things that happen to laptops while one is at school. Typically involving beer or other forms of alcohol. A $250 investment has less downside risk in such circumstances.

larswik
Apr 28, 2012, 10:56 PM
Me personally, when they have another major release of the iOS I will be buying a Mac Mini to program with. I saw just how tightly Apple likes to integrate the IOS, Xcode and the Mac OS. I wanted the SDK 5.1, but that meant the new Xcode, and that meant I had to upgrade to version 10.7.x from 10.6.x. This move killed a number of my old school programs that I loved to use.

It's better for me to isolate my programming to a specific machine that I can upgrade and such without it effecting my day to day business.

Jcyochum
Apr 28, 2012, 11:19 PM
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.

Thank you. Also I had not realized about the Xcode 4.2 requirements on the book. I guess I pictured being able to write code on a low-end mac being able to use the latest OSX, and having it work across platforms 10.5- mountain lion. I'm very much used to the PC approach of building a computer and having it last and be OS upgradable for 3-4 years or more.

Where would you recommend I start? Right now hardware wise I have an android phone (Froyo), and a Windows 7 gaming rig.

softwareguy256
Apr 29, 2012, 02:02 AM
seriously, just mow some lawns or work at mcdonalds for a month or two and you can scrape $2000. do things the right way or you are dooming yourself to failure. $250 is the least of your concerns if you value your time at all.

throAU
Apr 29, 2012, 03:43 AM
If you're after a cheap mac to learn programming on, i'd be looking for a 2009 spec mini - you'll get more computer for the dollar, and i believe that will run Mountain Lion (when released) also.

I'm very much used to the PC approach of building a computer and having it last and be OS upgradable for 3-4 years or more.

Where would you recommend I start? Right now hardware wise I have an android phone (Froyo), and a Windows 7 gaming rig.

A 250 dollar mac laptop is going to be a lot older than 3-4 years, and already had its operating system upgrade support.

If you already have a PC, you can perhaps install a copy of Linux and play with GNUStep. The tools aren't as friendly, but you can learn objective-c at least with that, without buying a mac.

Jcyochum
Apr 29, 2012, 11:13 AM
seriously, just mow some lawns or work at mcdonalds for a month or two and you can scrape $2000. do things the right way or you are dooming yourself to failure. $250 is the least of your concerns if you value your time at all.


I have to work two jobs this summer and save $8000 in three months in order to pay for college, $2000 for me is close to 4 months of bills/spending money. I "have" to spend $2000 to code "hello world"? Why would you even recommend buying a new mac vs used? Sure if I see potential In my coding I'll upgrade. Even the computers @ my UNI are low level Imacs, and windows PCs for our Computer Sci classes.

If anyone gets a job at mcdonalds for the entire summer to just to "pay" for a new mac they are a complete idiot, its not possible to save $500 in two months working at minimum wage when you have bills. I'd love to run through the math with you.

7.25/hr pay, after taxes on each check @ 40 hours a week =$290 /wk -$30 for taxes $260. $1040 a month in income, subtract rent of $600, food $120, gas $120. I'd have $200 left for savings. Thats Not even subtracting other bills(phone). Looks like I'm going to be working at mcdonalds for 10 months.

FYI I don't know if your assuming I'm a kid in high school hence the McDonald scenario (thanks btw), I'm 20 and already have 2 years done, and my first degree complete. I'm transferring to a state school into honors genetics and biotechnology, I was asked if I'd be interested in bioinformatics, which involves coding. Specifically I'd want to target mobile devices because of just that their touch interface and mobility, which can be a great tool in medicine and health.

I honestly didn't think this would be a difficult question to ask in this forum, maybe I should of worded it differently.

"Where is a good starting point to learn the needed fundamentals that will serve me in the future to code on mobile touch interfaces?"


Thanks Thro I'll start messing around with linux, going to ask my computer sci buddies @ school on Monday what they would recommend(they hate macs). This was just a thought this weekend. I have a week left of finals and need to focus on the transferring process and what programs I should/shouldn't take. Exposing myself a bit I imagine will give me an idea of the basic principles and what I'd potentially be doing down the line, and whether it's something I'd like to do.

Again I appreciate your replies, Chown33, larswick and thro. Really gave me a insight again to how fast technology is moving especially in the mac world.

ender land
Apr 29, 2012, 11:44 AM
If you are already at a university you should be able to find computer labs and have access to all this stuff for free.

chown33
Apr 29, 2012, 11:46 AM
"Where is a good starting point to learn the needed fundamentals that will serve me in the future to code on mobile touch interfaces?"

The short answer to that is the short answer to any "What's a good starting point" question:
Start with the fundamentals.

For programming, that's: data types, data structures, conditionals, loops, functions. Factoring, encapsulation, decomposition, composition. Classes and objects, if heading for OOP (http://en.wikipedia.org/wiki/Object-oriented_programming), otherwise consider a functional language (http://en.wikipedia.org/wiki/Functional_programming). You can easily cover the fundamentals with a $250 used Macbook.

Bioinformatics is a relatively narrow field, so once you have the fundamentals, you should focus on the specific tools for the field. For that, you should talk to someone actually in the field. Today's tools may have changed by the time you get to that point.

I don't see how mobiles fits into bioinformatics, except as a presentation device. Perhaps clarify that for us. Otherwise programming mobiles for bioinformatics isn't going to be that much different than programming for any other data-intensive app, such stock-market data, financials, etc. You want graphs and data-handling. Advanced math presented simply. And so on. It's going to come down to getting data in and out, and clarity of presentation. All that is just a small matter of programming. Android is programmed in Java, and iOS is programmed in Objective-C. Both platforms have web-browsers programmed in JavaScript, HTML, and CSS (as does WinPhone). In all those cases, you would still start with the same fundamentals.

softwareguy256
Apr 29, 2012, 01:03 PM
Are they really an idiot? They spend 2 months to get a new machine and learn everything as quickly and easily as possible vs the poor guy trying to hack and find workarounds to problems on an outdated product he shouldn't even have to be worrying about in the first place. Sorry I didn't tell you what you wanted to hear, feel free to learn things the hard way.

I have to work two jobs this summer and save $8000 in three months in order to pay for college, $2000 for me is close to 4 months of bills/spending money. I "have" to spend $2000 to code "hello world"? Why would you even recommend buying a new mac vs used? Sure if I see potential In my coding I'll upgrade. Even the computers @ my UNI are low level Imacs, and windows PCs for our Computer Sci classes.

If anyone gets a job at mcdonalds for the entire summer to just to "pay" for a new mac they are a complete idiot, its not possible to save $500 in two months working at minimum wage when you have bills. I'd love to run through the math with you.

7.25/hr pay, after taxes on each check @ 40 hours a week =$290 /wk -$30 for taxes $260. $1040 a month in income, subtract rent of $600, food $120, gas $120. I'd have $200 left for savings. Thats Not even subtracting other bills(phone). Looks like I'm going to be working at mcdonalds for 10 months.

FYI I don't know if your assuming I'm a kid in high school hence the McDonald scenario (thanks btw), I'm 20 and already have 2 years done, and my first degree complete. I'm transferring to a state school into honors genetics and biotechnology, I was asked if I'd be interested in bioinformatics, which involves coding. Specifically I'd want to target mobile devices because of just that their touch interface and mobility, which can be a great tool in medicine and health.

I honestly didn't think this would be a difficult question to ask in this forum, maybe I should of worded it differently.

"Where is a good starting point to learn the needed fundamentals that will serve me in the future to code on mobile touch interfaces?"


Thanks Thro I'll start messing around with linux, going to ask my computer sci buddies @ school on Monday what they would recommend(they hate macs). This was just a thought this weekend. I have a week left of finals and need to focus on the transferring process and what programs I should/shouldn't take. Exposing myself a bit I imagine will give me an idea of the basic principles and what I'd potentially be doing down the line, and whether it's something I'd like to do.

Again I appreciate your replies, Chown33, larswick and thro. Really gave me a insight again to how fast technology is moving especially in the mac world.

throAU
Apr 29, 2012, 09:05 PM
This may be a blessing in disguise actually.

GNUstep + objective C on linux won't be as friendly, but you'll have to get a better understanding of what is going on earlier. Once you've had a bit of a dabble with objective-C syntax, you can decide whether or not buying a mac for full on obj-c + cocoa/cocoa-touch development is worth it.

PrismaticRealms
May 2, 2012, 03:17 PM
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!

Hi Jcyochum.

I think that it's great that you're considering starting programming on a Mac. I find Mac programming lots of fun and a great platform to learn on. In my opinion, any Mac computer with at least OS X Tiger (10.4) would be sufficient for you to learn Mac programming with. Whatever you can afford, it doesn't need to be the most up to date machine, but I have to say, at $250 you're really scraping the bottom of the barrel. Stick with Intel powered Macs that have at least Core 2 Duo, Core i3, Core i5, Core i7 or Xeon processors.

If you intend on programming for iOS devices, however, you will need to use at least Xcode 3.2.3 with iOS SDK 4.0.1 which I believe has an official minimum OS X requirement of 10.6.4 (Snow Leopard). You'll be programming for the previous generation of iOS at this level.

If you do buy an older Mac, make sure you get the CDs that came with it, as Xcode is on one of them. If you don't have the CDs, you can go to developer.apple.com to sign up to the Mac Developer Program ($99/year) and from there you can download new and old versions of Xcode, including Xcode 3.2.3/iOS SDK 4.0.1. You can also download the latest Xcode for free from the App Store, but that requires a minimum of Mac OS X 10.7.3.

If you intend on eventually having an up-to-date Mac, then I suggest you buy a Mac computer with at least OS X 10.5 (Leopard) and then update it as soon as you can. The 10.6 Snow Leopard update is still available for purchase at apple.com but who's to say how long it will stay there. Once you have Snow Leopard, then you can upgrade to 10.7 Lion using the App Store. The minimum hardware requirements for Lion is a Core 2 Duo powered Mac with 2 GB RAM (may work with 1GB, but probably not recommended.)

With all that being said, since you say you are a complete newbie to programming, I would not start with the book you mentioned as Objective-C requires a certain level of C language knowledge. If you don't know C at all, I suggest starting there. The book I used to learn C from, which is considered by most to be THE C book (especially since it was co-authoered by the father of C himself), is The C Programming Language (ISBN 0-13-110362-8.) Once you know C, then I recommend you move on the book you mentioned, or an earlier edition of that book which covers the older Xcode toolset. After that, you can pick up an iOS programming specific book, or a book on the Cocoa frameworks, or both!