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

zolito

macrumors newbie
Original poster
Jun 17, 2014
13
0
Seeking an advice from developers on how to become a professional iOS programmer.

I have books, do I need to take a course? Or self study with applying knowledge is ok, I know that I should have a macbook in order to be able to use Xcode.

My experience in programming in little, just worked on basic, visual basic and fortran many years ago, did simple programs.

The difficulty always remains in the coding and how to understand the codes and how they work together.

The book which I have is more than 900 pages, which means it is a very long trip of study.
 
The de-facto professional iOS programmer certification is to have some full-featured quality apps which one has developed using Objective C, already in the iOS App store.

Good ratings and reviews help. These days you will also have to be able to talk in detail about the tools, APIs and design patterns you used to create the apps, to prove you didn't outsource the real design and coding of your apps.

But if you find coding difficult, and aren't driven to figure it out and solve all the programming puzzles you can find, you may not be cut out to be a programmer. Some people need the books and courses. But for some programmers, Apple's immense amount of documentation is plenty.
 
"I have books, do I need to take a course? Or self study with applying knowledge is ok, I know that I should have a macbook in order to be able to use Xcode." What would you consider "professional?" As in working on your own doing freelance work, or working for a big business? That will determine requirements. Big business are typically going to want a BS in CS and to see multiple internships in the industry or relevant years of experience on products. They will each have their own minor requirements. Some want to see products you've actually put into production, some want you to know other areas such as testing and design principles, etc.

My biggest concern is where you say "The difficulty always remains in the coding and how to understand the codes and how they work together." You absolutely have to know how to write and understand code to be a "professional" programmer. I've never met a true programmer that doesn't know how to program (I have met CEO's that consider themselves programmers but haven't written code since becoming CEO - but that's a different story).

"My experience in programming in little, just worked on basic, visual basic and fortran many years ago, did simple programs." I would start doing projects in objective-c/swift and do something other than simple programs. People that hire you to be an iOS programmer will want to see that you can program in iOS languages.
 
"I have books, do I need to take a course? Or self study with applying knowledge is ok, I know that I should have a macbook in order to be able to use Xcode." What would you consider "professional?" As in working on your own doing freelance work, or working for a big business? That will determine requirements. Big business are typically going to want a BS in CS and to see multiple internships in the industry or relevant years of experience on products. They will each have their own minor requirements. Some want to see products you've actually put into production, some want you to know other areas such as testing and design principles, etc.



My biggest concern is where you say "The difficulty always remains in the coding and how to understand the codes and how they work together." You absolutely have to know how to write and understand code to be a "professional" programmer. I've never met a true programmer that doesn't know how to program (I have met CEO's that consider themselves programmers but haven't written code since becoming CEO - but that's a different story).



"My experience in programming in little, just worked on basic, visual basic and fortran many years ago, did simple programs." I would start doing projects in objective-c/swift and do something other than simple programs. People that hire you to be an iOS programmer will want to see that you can program in iOS languages.


Thanks for your reply.

Actually, I would like to work in iOS programming as a freelancer, my bachelor degree is in another engineering discipline other than computer science.

Programming languages are like talking languages, you might know the basics of all (grammar, vocabulary....etc), but if you are fluent in english and never learned french, you cannot say even one correct sentence, the same for programming languages, every language has its coding techniques, sequence and structure.
 
You should start by setting more specific goals within iOS programming. I see a lot of demand for games, graphics, and social network type programming. This is very different from productivity / business type apps.

Games can split from those that use a game engine / game dev platform like Unity and those that are written in ObjC and use Apple's APIs.

If you want to do high end games, Unity might be the way to go.

Programming iOS apps involves knowledge of a language (ObjC/Swift) and the APIs that would be used in what you do.

Knowledge of the APIs is a huge job by itself. There's a TON of things you can do with the camera API alone.

The point is that when you say "I wanna be an iOS programmer," you should narrow it down much like saying "I want to be a writer" and not saying text books, children's books, tech books, novels, poems, ...

If you want to go where the most activity is, it's probably going to be game or social related and you can go to a programmer for hire type site and look at the requirements.
 
You should start by setting more specific goals within iOS programming.

Very true. Now that we know you (the OP) want to do freelance work primarily, see what is available in your hometown for work. Check craigslist or other sites. Deciding what you like to do and/or what is needed though would be a good start.

I will caution that freelancing iOS apps may be difficult, as there isn't a lot of demand for one time apps from my experience. Not that you shouldn't try, but definitely do your research and be open to changing your plan a little bit.
 
If you want to do high end games, Unity might be the way to go.

If you want to do games, period, Unity is the way to go. All the features like Metal aren't aimed at game developers - they're aimed at game engine developers. That's a huge difference and it's crucial to understand it if you want to be involved in the field.

----------

Thanks for your reply.

Actually, I would like to work in iOS programming as a freelancer, my bachelor degree is in another engineering discipline other than computer science.

Some (better) companies realize that degrees mean next to nothing and really just want to see your portfolio, which is essential if you want to be hired. Other companies require a degree, any degree. Few will really require specific degrees.

Programming languages are like talking languages

You're absolutely correct this far into your sentence... I'll come back to this after tearing apart the rest of your sentence.

but if you are fluent in english and never learned french, you cannot say even one correct sentence, the same for programming languages, every language has its coding techniques, sequence and structure.

And you're absolutely incorrect in this part. Each and every thing you said here was wrong.

If you're fluent in English, you can, in fact, speak and recognize some French. If you're fluent in a few other languages besides French, you can speak and recognize some more French, and other languages that you aren't fluent in. And when it comes time to learn those other languages that you aren't yet fluent in, you'll find you can pick them up quite quickly.

Why? Because the languages are all related to each other. French and English are both romance languages derived from Latin and other early European languages.

But you'll recall the first part of your sentence was spot on. How so? Learning programming languages is just like learning speaking languages. Once you know a few programming languages, you can easily read and write other programming languages which you haven't been taught. And when you decide to formally learn the language, it takes hours, not months or years like your first language might take.
 
The issue about knowing English does nothing for understanding French:

Languages have structure, example verbs, nouns, adverbs, etc...

Programming languages have things like loop control: While, For, Repeat...

Understanding how a loop works in one language helps with another language.

It doesn't take very long to understand the difference between Do/While and Repeat/Until... They are both loops.

One language might be = vs := to assign, this is not too hard to understand.

Understanding what assigning a value to a var is much more important.

A great story teller is not made because of understanding verbs/nouns, it's much more about understanding what makes for a good story.
 
Seeking an advice from developers on how to become a professional iOS programmer.

I have books, do I need to take a course? Or self study with applying knowledge is ok, I know that I should have a macbook in order to be able to use Xcode.

My experience in programming in little, just worked on basic, visual basic and fortran many years ago, did simple programs.

The difficulty always remains in the coding and how to understand the codes and how they work together.

The book which I have is more than 900 pages, which means it is a very long trip of study.

Coding isnt everything id say its about 20% of being a good developer. I could be the worst coder on these forums and i somehow make it work so dont get too focused on that. You need a good base but market research, managing your time/efforts, design and marketing tactics are just as important if not more.
 
Coding isnt everything id say its about 20% of being a good developer. I could be the worst coder on these forums and i somehow make it work so dont get too focused on that. You need a good base but market research, managing your time/efforts, design and marketing tactics are just as important if not more.

I disagree. Coding is 80% of being a good developer. You can have others handling the market research, managing your time, design etc... If you can't even code, then no amount of expertise in the other stuff is going to change that. People will be able to sniff out the fact that you can't code right away. Many people can talk a good game when it comes to the other stuff but can you write code on demand and think algorithmically. Some people with vast comp sci knowledge can't code. I'm like WTF?!
 
Yeah if you can't code, and you want to be a programmer, you aren't going to get very far before you have to hire someone to code for you. You might be able to "fake it" but not only will it be more difficult in the long run, but much more time consuming as well if you have to constantly look up youtube or stack overflow to write every line of code.

Knowing theory and stuff only gets you so far. While it can certainly help, at some point you have to get results (code) and not just theory. I don't think there's a certain percentage of being a programmer that is coding.
 
Yeah if you can't code, and you want to be a programmer, you aren't going to get very far before you have to hire someone to code for you. You might be able to "fake it" but not only will it be more difficult in the long run, but much more time consuming as well if you have to constantly look up youtube or stack overflow to write every line of code.

Knowing theory and stuff only gets you so far. While it can certainly help, at some point you have to get results (code) and not just theory. I don't think there's a certain percentage of being a programmer that is coding.

I don't think percentages make any sense. It's like a car that has 4 wheels and goes 100 mph. If one goes flat or falls off, and 3 wheels are left, it doesn't go 75 mph, it goes 0 mph.

That said, there are skills other than actual coding that are necessary for being a successful freelancer. I've seen people fail at freelancing, but it wasn't necessarily because they lacked the coding skill. Sometimes it was, but not always.
 
I disagree. Coding is 80% of being a good developer. You can have others handling the market research, managing your time, design etc... If you can't even code, then no amount of expertise in the other stuff is going to change that. People will be able to sniff out the fact that you can't code right away. Many people can talk a good game when it comes to the other stuff but can you write code on demand and think algorithmically. Some people with vast comp sci knowledge can't code. I'm like WTF?!

Sorry I have to disagree there. There are tons and tons of great coders that can't make more than a few dollars a month on the App Store. This is because they have no idea how to do market research or design. I'm not saying I'm a pro at it either but I think I do market research much better than pure coding.

I'm not saying my code is total crap that crashes nonstop but it's definitely not the most efficient.

What I'm trying to say is a successful solo developer doesn't rely on just one skill. If you want to fly solo you have to have everything + some luck or it's not going to work.
 
There are tons and tons of great coders that can't make more than a few dollars a month on the App Store.
Isn't that what we are talking about here? We aren't talking about how much money one can make from an app. We are talking about being a iOS programmer. You went off on a tangent about making money other skill sets etc...when all the OP asked was about being an iOS programmer.

Money should not be the first consideration. It should be creating great code. Tons of apps and websites have horrible code in them but they generate money. However, if the code is horrible, you end up spending more time and money cleaning up your code than adding on more money generating features to your app.

To be a great coder you need to know how to write great code. All that other stuff is separate from actually doing the work of creating great code to do the job that is asked. When someone wants to be come a professional programmer, writing code is where you start.
 
Last edited:
Isn't that what we are talking about here? We aren't talking about how much money one can make from an app. We are talking about being a iOS programmer. You went off on a tangent about making money other skill sets etc...when all the OP asked was about being an iOS programmer.

Money should not be the first consideration. It should be creating great code. Tons of apps and websites have horrible code in them but they generate money. However, if the code is horrible, you end up spending more time and money cleaning up your code than adding on more money generating features to your app.

To be a great coder you need to know how to write great code. All that other stuff is separate from actually doing the work of creating great code to do the job that is asked. When someone wants to be come a professional programmer, writing code is where you start.

Sorry I think programmer/coder and developer got combined. There is a large difference in my mind. I believe a developer needs all traits while yes a programmer just needs coding skills.

And no the whole point isn't just to make money. but if the goal is to be a professional as in your profession you are going to make money.

All I was trying to get at is if you are a solo developer trying to make a professional living from apps you create by yourself on the App Store you need a lot more than just coding skills.

To be a professional objective-c programmer that works freelance doing parts of projects you just need coding skills.
 
You guys are mixing up app development as a business with app development as a profession or skill.

A professional app developer can work for some other business or company, and without having any marketing knowledge whatsoever (except to make sure their paycheck doesn't bounce). But you have to be able to convince the hiring manager/boss/owner that you are equally or more competent than any other candidates competing for the job.

A businessman doing app developer work as part of their for-profit business had better be good at marketing these days if they want to make any money. If the coding gets too difficult, they can hire someone. But they have to know enough about coding to not hire an incompetent.

Two different things with two different skill sets.
 
You guys are mixing up app development as a business with app development as a profession or skill.

A professional app developer can work for some other business or company, and without having any marketing knowledge whatsoever (except to make sure their paycheck doesn't bounce). But you have to be able to convince the hiring manager/boss/owner that you are equally or more competent than any other candidates competing for the job.

A businessman doing app developer work as part of their for-profit business had better be good at marketing these days if they want to make any money. If the coding gets too difficult, they can hire someone. But they have to know enough about coding to not hire an incompetent.

Two different things with two different skill sets.
That's exactly what I was trying to say more succinctly.
 
Yup.

Let's face it. There are various levels of being a "professional iOS programmer". You could work for a company that writes code for apps, and get a paycheck every other week. You could be a freelance code writer hired to do odd jobs here and there, and get paid after each project is completed. Then there is the scenario which I think most iOS programmers are. One that learns how to code or already knows how to code, and creates his/her own apps, submits them to the app store, and makes money every month, whether loads of cash or simply a few dollars a month.

As long as you are getting "some money" in return for your coding work, you can call yourself a professional coder. Some coders are just a lot more successful at it than others, in one way or another.

:cool: :cool: :cool: :cool:
 
French and English are both romance languages derived from Latin and other early European languages.

I know this is getting off-topic, but English is not a Romance language. It is Germanic. English originally developed as an offshoot of Frisian, which is similar to High Dutch. It was only after the Norman Conquest that it became heavily influenced by French, and then, during the Renaissance, by Latin.

Thus, English is a Germanic language with Romance influences, but not a Romance language.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.