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

student_trap

macrumors 68000
Original poster
Mar 14, 2005
1,879
0
'Ol Smokey, UK
Hi all,

I have no experience programming, but am pretty quick at picking stuff up when I need to, and have been wanting to give making apps a go for a couple of years now.

I have decided to bite the bullet, buy a new mac and start learning to make apps (and hopefully make a couple!), but am totally clueless as to what specs are needed for this sort of work, I don't even know which programes I'd need!

So I'm looking at the macbook airs, and trying to decide if 4gb vs 8gb ram is required, and 128 vs 256 SSD is required, can anyone help?

Also, could anyone link me to somewhere that explains the process, or perhaps explains themselves how to go about making apps as a rookie!!

Thanks in advance to anyone that can help!:)
 

Dranix

macrumors 65816
Feb 26, 2011
1,063
543
left the forum
I would say each Mac would be good enough fro Xcode. You should have at least 8GB. A big screen helps imo, but many work fine even on the airs.

If you want a mobile solution any mbp or mbair would be fine with 8GB, but I would recommend getting a 22-24" screen for home usage and hook it to the macbook.

The possible big resolution on the retina macbooks makes them likes for devwork, but they are not cheap. But what am I to talk? /* strokes his DarthMac ^^ */
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,561
6,059
In the interest of avoiding buyer's remorse, I would suggest putting off buying a Mac until after WWDC. Apple usually updates a few models during that... Apple might put off updates until the Fall, though.
 

dejo

Moderator emeritus
Sep 2, 2004
15,982
452
The Centennial State
If you have no experience programming, I would suggest you try to learn some of the basics using whatever non-Mac you have now and see if programming is even your cup of tea. If it's not, you haven't invested in a Mac for the sole purpose of programming on it. If you'd like a Mac for other reasons or are pretty sure you'll enjoy programming, feel free to ignore my advice. :D
 

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
Millions of rookies learned to program on an Apple II+, which had many thousands of times less memory, storage and CPU power than the cheapest recent (OS X) Mac that can be found.

If you want to eventually learn to code iOS apps, then any Mac that can run Mavericks will be sufficient. (Mountain Lion currently works for Xcode 5.1, but who knows how long Apple will continue to support it.)

I know lots of iOS developers who use MBA 11's and 13's. Works great. Some like to attach a very large monitor.
 

ChrisA

macrumors G5
Jan 5, 2006
12,578
1,695
Redondo Beach, California
Hi all,

I have no experience programming, but am pretty quick at picking stuff up when I need to, and have been wanting to give making apps a go for a couple of years now.

I have decided to bite the bullet, buy a new mac and start learning to make apps (and hopefully make a couple!), but am totally clueless as to what specs are needed for this sort of work, I don't even know which programes I'd need!

So I'm looking at the macbook airs, and trying to decide if 4gb vs 8gb ram is required, and 128 vs 256 SSD is required, can anyone help?

Also, could anyone link me to somewhere that explains the process, or perhaps explains themselves how to go about making apps as a rookie!!

Thanks in advance to anyone that can help!:)

I've been in the business for years (decades really) You do NOT need a powerful computer. You don't need a lot of disk space or RAM. But you will find VERY soon that you want as BIG of a screen as you can possibly get. a 27" iMac is reasonable. If you must have a portable computer get a BIG LCD monitor.

ANY current Mac is powerful enough. Well maybe. What is your "app" going to do. If it needs to crunch numbers then the computer needs to be powerful enough to run your app. but DEVELOPMENT is not resource intensive.

Why the big screen size. Because programmers always like to have about a dozen text windows open. You have the source code text file you are editing to make the app, one or two other files you are references and then documentation in the browser windows and likely Google and then you might be running your app in another window. They is good reason to want even TWO 27" monitors but start with one.

Next. Don't expect to learn this in one year. OK maybe you can write some super-simple app that does a student type demo lie simulate a soda vending machine or something.

This is going to be just exactly like learning to be a fiction author. Yes you need to learn to use the word processor but learning that will not make you a good author. FIRST you need to have something to say that people want to pay you so they can read it.

A full on graphic app that uses a mouse and windows is NOT for a beginner. You will start with a text window and keyboard only data entry. So you do NOT need a big computer. A dumpster-salvaged PC running Linux would be ideal.

In fact Linux is MUCH better as a learning environment than a Mac.

I'd even start with something like Arduino and build a little robot as a first project.

Jumping into a full GIU app is a big step. Yu have to learn a lot before you can even start. So start simpler.

One good way to learn about how larger programs work is to become envolved with some Open Source project. Pick something you like, join the developer's email list and just read the emails. At first they will be incomprehensible bt you catch on over time

Find a SIMPLE or even "for dummies" type book and work through all the examples.

People will argue about what "language" to start with. Within reason it hardy matters. You need to learn "programming". That means loops and branches and decomposing complex things into simpler objects and those into even more simple objects and how to TEST your work and a little about version controls and so on. All of this applies to any modern object oriented language like Java, C++, Objective C. Learn any of this and you can switch later.

Java on the Eclipse IDE is a good place to start. It runs the same in Mac, Windows and Linux so the skills are transferable even to Adroid, Windows and Mcs. If you are planning to live ONLY in the Apple world then Objective C is the best place to end up but you need not start there.

Expect this process to take a couple years. It is NOT something you can learn for 15 minutes of watching Youtube videos. Take an on-line class. Figure that most university students are still beginners after their first year of full-time study.

Udacity is pretty good. They have a free intro-to java class that is very basic. I am actually going through there "AI for Robotic" class there thy cover the Google self driving car in some detail. But this class forced by to go back and re-learn my Linear Algebra, Id forgotten even basic matrix arithmetic.

https://www.udacity.com/courses#!/all

Start with whatever computer you have today. There is zoo reason to buy anything until AFTER you can get the basic test window based apps runnig.

EDIT: I just read you sig. Why would you need yet another computer? You have way more than needed already. But maybe you might need a large monitor but even that can wait until you see the reason for it. And you WILL see the reason for it the first imd you try and display four text editor windows on a MacBook.

One thing you might buy is an over-the-top multiply redundant backup system. You will invest 1000+ hours in even a simple App and you'd hate to loose months worth of work because a corrupted files system, theft of the equipment. Accidental over writing or a simple disk failure. Remember that one lightening strike of a power pole 1/2 mile away can destroy ALL of the equipment you have plugged in. So hopefully some of yur backups are far away in some other building and in a fire safe in the nest room and in some on-line backup service.
 
Last edited:

Crichton333

macrumors 6502
May 4, 2014
344
32
I know lots of iOS developers who use MBA 11's and 13's. Works great. Some like to attach a very large monitor.

This seems to be a trend, but you do need to attach a very large monitor, I just cant believe anyone could manage to complete a production process on a 11'. That would be torture for me.
 

dejo

Moderator emeritus
Sep 2, 2004
15,982
452
The Centennial State
...but you do need to attach a very large monitor,

Need is a strong word. It's nice to have, sure, but it isn't absolutely necessary.

I just cant believe anyone could manage to complete a production process on a 11'.

An 11-inch, perhaps not. But I have done quite a bit of iOS programming on my MBA's 13-inch (1440x900px) screen, which happens to have the same resolution as an older-model 15-inch MacBook Pro that it replaced.
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,561
6,059
A full on graphic app that uses a mouse and windows is NOT for a beginner. You will start with a text window and keyboard only data entry. So you do NOT need a big computer. A dumpster-salvaged PC running Linux would be ideal.

In fact Linux is MUCH better as a learning environment than a Mac.

Forcing someone who has used Windows all their life and doesn't program already to use Linux to learn programming doesn't work well. I'll agree Linux is great (definitely superior to Windows, debatably superior to OS X) but lets not make someone learn a new OS at the same time as they learn to program.

I'd even start with something like Arduino and build a little robot as a first project.

Between Arduino and Blackfin, I would pick Arduino every time. But it seems to me that embedded system programming is definitely more complicated than writing a command line program for your computer, no matter how simple the embedded programming setup is. So why bother?

People will argue about what "language" to start with. Within reason it hardy matters. You need to learn "programming". That means loops and branches and decomposing complex things into simpler objects and those into even more simple objects and how to TEST your work and a little about version controls and so on. All of this applies to any modern object oriented language like Java, C++, Objective C. Learn any of this and you can switch later.

There's a lot of great choices for first languages. There are a lot of terrible choices you've never heard of (esolangs).

Java on the Eclipse IDE is a good place to start. It runs the same in Mac, Windows and Linux so the skills are transferable even to Adroid, Windows and Mcs.

This is the part that made me want to respond.

Eclipse is the wrong IDE for every programming language and every toolchain. It's a POS and I have no idea how it became as popular as it is. It's the absolute worst IDE I have ever used. I'd choose to use a text editor like Sublime (great choice for text editor, but it's not an IDE) before I'd choose to use Eclipse.

When it comes to Java development, the right choice of IDE is JetBrain's IntelliJ IDEA:

https://www.jetbrains.com/idea/

If you're looking for an IDE for another language, I suggest looking at JetBrain's other IDEs.

One thing you might buy is an over-the-top multiply redundant backup system. You will invest 1000+ hours in even a simple App and you'd hate to loose months worth of work because a corrupted files system, theft of the equipment. Accidental over writing or a simple disk failure. Remember that one lightening strike of a power pole 1/2 mile away can destroy ALL of the equipment you have plugged in. So hopefully some of yur backups are far away in some other building and in a fire safe in the nest room and in some on-line backup service.

I throw most of my personal projects in a free Dropbox folder and just have everything automagically sync with their servers. That's my backup method. For work I generally use GitHub.
 

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
This seems to be a trend, but you do need to attach a very large monitor, I just cant believe anyone could manage to complete a production process on a 11'. That would be torture for me.

Millions of programmers were productive developing large production applications for decades before such things as very large bitmapped displays were available and affordable. It's all about what you're used to. Newer programmers have been made lazy by more modern displays. Some kids think it's torture to walk a kilometer to school in nice weather, instead of riding in mom's air conditioned SUV watching a movie (thus the obesity epidemic). An MBA 11 is tons better than a VAX+VT100, Xerox Alto, et. al.
 

student_trap

macrumors 68000
Original poster
Mar 14, 2005
1,879
0
'Ol Smokey, UK
Btwm why can'T you code on your MacPro?

Hi all,

Firstly, thanks to everyone for your input thus far, it is all very helpful and I am very grateful for it.

Just to clear up a couple of things,

I am not new to OSX, I've been here for a while, but its programming that I've never done.

My background has been in photography/videography which I have done and got paid for in the past (although not for a few years).

Unfortunately my Mac Pro is not currently with me, long story but I won't have access to it for a while, and while waiting for WWDC is a very sensible idea, time is quite a precious commodity for me, and I have some for the next month, but after that it'll probably be swallowed up by work:(.

So over the weekend I bought a rmbp 13", the one with 8gb ram and 256HD. I liked the airs for the portability but just couldn't say no to that screen for just a little extra!

Now comes the hard part, but its a journey I've been looking to take for a long while!

Ideally i'd like to start writing apps for iOS (i have loads of ideas and it'd be great to actually make something, rather than going 'that'd be great if...').

What would be the best/quickest method to get into the right sort of languages to code for iOS? Are there any applications that can make the process more visual, or is it only possible through learning the hard way?

Also, how long should I expect it to take before I can start making apps?
 

Crichton333

macrumors 6502
May 4, 2014
344
32
Millions of programmers were productive developing large production applications for decades before such things as very large bitmapped displays were available and affordable. It's all about what you're used to. Newer programmers have been made lazy by more modern displays. Some kids think it's torture to walk a kilometer to school in nice weather, instead of riding in mom's air conditioned SUV watching a movie (thus the obesity epidemic). An MBA 11 is tons better than a VAX+VT100, Xerox Alto, et. al.

OK, your feelings still wont mask the problems he will face regarding a small screen for work versus a bigger one. I just want to help him with the things I went through developing apps for the iPhone.

http://stackoverflow.com/questions/12957380/reduce-the-xcode-simulator-retina-4-inch
 

atticus27

macrumors regular
Feb 2, 2009
200
0
Pittsburgh, PA
any current mac will work. I use a 13" rmbp (for grad school) and it runs ever app I need. Elcipse xCode, final cut, ect
If you want an air I would wait until WWDC for the retina models. If you need to buy one now I'd get a 13" pro.
Learn java, then try out the android (or iOS) bootcamp books for code-ing apps. They're pretty easy to understand (and have good step by step instructions) provided you already know the language.
 

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
OK, your feelings still wont mask the problems he will face regarding a small screen for work versus a bigger one.

Your problems may or may not be big enough to cause any other iOS developer a significant problem. I know plenty of iOS developers who very often code on MBA 11's on the road, many with successful (as in paid revenue well above beer money) production apps in the store.

Granted, there are a few situations where two 27" monitors (or one or two 4k's with a Mac Pro) makes debugging certain iPad Retina issues easier.
 

TouchMint.com

macrumors 68000
May 25, 2012
1,625
318
Phoenix
I started out with a MacBook but quickly moved to an iMac for the larger and more accurate screen colors (design wise). Back then it was actually agood deal to get an iMac since you couldn't get a 27inch for under 500-600.

Now that you can get 27-30inch for like 250 I'd say go with an air and just connect to a big monitor.
 

Dranix

macrumors 65816
Feb 26, 2011
1,063
543
left the forum
What would be the best/quickest method to get into the right sort of languages to code for iOS? Are there any applications that can make the process more visual, or is it only possible through learning the hard way?

I would say get these 2 books and get going:

http://www.amazon.com/Objective-C-P...ion-Guides/dp/032194206X/ref=pd_bxgy_b_text_y

http://www.amazon.com/iOS-Programmi...99408426&sr=8-1&keywords=ios+programming+nerd

Do the exercises in each chapter and you will get better fast.
 

trsblader

macrumors 6502
May 20, 2011
450
203
I agree with most of what's here. I would like to just throw an alternative idea out there. You mentioned you have no experience programming at all. Before you buy a mac solely for programming, might I suggest learning another language, such as java, on your current machine before spending big bucks on a Mac. Programming isn't for everyone, and although you pick things up quick, you may just find that it isn't for you for one reason or another. It would suck to buy a computer only to find out you don't want to continue iOS programming.

That, of course, assumes that your only reason for wanting a Mac is for iOS programing. I guess ask yourself "If I don't continue programming, do I really want this Mac." You could always sell it, but you take the chance of losing money selling it used.

Other than that, I'd look up some of the books other members posted, read them, do the exercises, and the get started. Your first projects don't have to be anything to change the world. Simple apps for practice will teach you a lot. I'd suggest going beyond exercises and tutorials online. For instance, one of the first tutorials I learned was a basic unit converter. It had a text box and one button. You entered a distance in feet and it converted it to inches. Super basic. Then I added more buttons and functions. You could select what unit you converted from and what unit you converted to. Then I extended it to temperatures and weights. I would never think of publishing it, but it gave me a chance to practice on my own.
 

Dranix

macrumors 65816
Feb 26, 2011
1,063
543
left the forum
I don'T know why it gets called time and time again: Java is beside C++ the worst possible language to learn programming. The hideous library makes working with it hard even when able to code, for beginners it is more like corporal punishment.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.