

Advice for a beginner iOS developer? - tagabek

Hi, HN! I recently got into iOS development, and I absolutely love it. Last year, I fiddled around with Python, web design, some Java, and even a very tiny amount of Android development. I knew for a while that I wanted to move towards iOS development, but I thought that because I didn't have a Mac, my dream was just a dream. Well, I came to a pretty huge turning point in my life last year, and that shift completely changed my view on what can be reality. I ended up trading my gaming laptop with a friend for a Macbook Pro. After a bit of testing a few methods of learning Objective-C (I tried Stanford's iOS Development class on iTunes U, but I was only able to get through the first assignment), I got Big Nerd Ranch's Objective-C Programming eBook and literally blew through it in a week. I loved it! Immediately afterwards, I bought BNR's iOS Programming eBook, and am now blasting through that. It's an extraordinarily awesome feeling to tackle and accomplish the challenges within the chapters. I also have a few ideas that I cannot wait to build after finishing the book.<p>Anyway, I apologize for my novel, but now I'll get to the point. Can any current iOS developers share some advice?<p>Here are the main things I am looking for:<p>- What are the best ways to get noticed? (My main goal is to work for a startup - I am 18, and a freshman in college as a CS major, but I am open to taking a hiatus if the opportunity came up. I also started meeting developers in my area, and blogging is beginning to be a natural activity for me.)<p>- What are your experiences with building/marketing your first (few) app(s)?<p>- What are the biggest things I should look out for as a beginning iOS developer? Any and all advice is highly appreciated!<p>Side note: I am not solely interested in iOS development but it is 99.9% of my focus right now. I hear, "Software engineering is an industry where you will adapt and constantly be learning," quite often, and that is exactly what I want to do!
======
iaw
"I am 18, and a freshman in college as a CS major, but I am open to taking a
hiatus..."

Finish school first. The degree (and the knowledge you'll gain while you
pursue it and the free time you'll have to pursue other avenues of interest)
is priceless. It's easy to want to rush through college and be a Gates or a
Zuckerburg but realize that there are tons of people that dropped out of
college and are worse off for it.

Working at a start-up is a very risky venture and you're only going to
drastically increase your long-term financial risk by not having a degree
going into it. One may argue that the knowledge you'll gain at the start-up
will be worth more than a degree but my counter is that you'll be closing
doors to other (more-traditional) opportunities by not finishing (it is
substantially harder to go back to school if you take a hiatus for a number of
reasons beyond admissions).

As far as "getting noticed" goes, scrub that mentality right now, prove
yourself first. If you spend 10 hours a week the next 3.5 years writing apps
(and polishing your abilities) and giving them away for free without ads
you'll have proven yourself, getting noticed at that point is just pointing to
an existing body of work. (If you don't know what app to make just clone every
game you've ever liked but make sure it has an awesome UI).

Mind you, these are just my two cents. In my life I've found that as long as I
set a metric for "progress" and work to meet it I've been able to accomplish
my goals. Best of luck.

~~~
tagabek
First of all, thanks for the advice. I am not necessarily planning on dropping
out, but I want to keep myself open to any potentially wonderful experiences.
I also really enjoy school (mainly the CS classes), and I truly understand how
beneficial it is. I've been setting small goals yhat lead to bigger goals for
myself, and it's been working so far, and that is an awesome feeling. I really
want to polish all of my abilities, and assuming I stay in school, I will
dedicate a good portion of my free time to that.

Again, thank you for this bit of wisdom. I realize that I have to remain
realistic, along with being incredibly motivated and pushing for innovation.

~~~
iaw
You sound like you have a good head on your shoulders so I have no doubt
you'll do fine. The one thing I should mention that I didn't cover already is
: be able to handle failure and rejection. It's a little divergent from your
original question but the less you get discouraged by the big set backs the
more likely you're to succeed. There's a lot of commentary on this subject but
the tl;dr is : don't give up even if you don't succeed at first.

In the end it all boils down to an odds game, you can do everything to
increase your odds to a very favorable level but you still have to keep
putting yourself out there when things don't work out as hoped (I haven't
heard of anyone successful who didn't fail drastically at some point.)

~~~
tagabek
That's another great point. From what I've observed, failing seems to be a
natural part of the entrepreneurial process. As you said, anyone who has had
any success, has also tasted failure. When I face this harsh lesson someday, I
will do my best to remember that it happens. Statistics was my favorite class
in high school, so I tend to think of every outcome as a result of odds.

~~~
iaw
I just ran across this : [http://www.thielfellowship.org/become-a-
fellow/about-the-pro...](http://www.thielfellowship.org/become-a-fellow/about-
the-program/) which seems like another option if you really have a dream to
chase and don't want to wait the 3.5 years. Still risky but less so because
Thiel is attached.

~~~
tagabek
It's funny that you bring that up. A few months ago, there was a show called
"20 Under 20," which was a two-day special that followed the Thiel Fellowship
application process. I literally waited 2 months to watch the show, and it was
amazing. Students (all under 20) were put together to accomplish a wide array
of interesting tasks. They got to talk with each other and build a mini-
network within their group. They were put to the stage to give speeches in
front of some of the Valley's top people (entrepreneurs, investors, etc.). In
the end, a handful were chosen to receive $100,000 to follow their dreams, but
they had to drop out of school if they took the offer.

Thanks for the link, though! I really appreciate this fellowship!

------
jlturner
I agree with RandallBrown, get something out there and show the world that you
can finish an app. It'll be good experience too.

As for getting noticed, if you get you get fast at developing, I'd recommend
participating in a hackathon and developing a simple, but useful, app with a
random team. It's a great networking opportunity, and I still get startups and
recruiters trying to hire me from my last hackathon (over a year ago now) in
New York (I wasn't event looking for work).

My main experiences in building my first apps were:

1\. Novel UI is usually not very intuitive, using what Apple gives you will
take you far. People know how to use the basic UI elements, trying to teach
users new behavior is hard (learned this the hard way).

2\. Managing data will be messy if you don't use Core Data. I highly recommend
going back to Stanford's iTunes U course and watching the one (two maybe?) on
Core Data (and watch the Grand Central Dispatch one too if you're unfamiliar
with it). Believe me, Core Data is awesome and once you learn to tame it you
will learn to love it. Far better than rolling your own data
storage/management.

3\. Getting people to use your app is hard - make something _useful_. People
download plenty of apps, but only open a handful of them. Don't bank on being
another Instagram (there are plenty of clones), but make something really
useful. TurboScan is a good example of this. Their UI is rather horrid, but
its really good at doing what its meant to do. Its an app that is truly
useful, and has made it to my (and my closest friends and family's) first
screen. I probably use it 1-3 times a day because its actually very useful.

Good luck with your iOS adventures, love to see what you'd produce.

~~~
tagabek
Thanks for the incredibly helpful advice! I definitely want to participate in
a hackathon within the next couple of years. The experience seems grueling but
extremely rewarding (for most people).

1\. It seems like a good idea is to keep functionality more or less the same,
but maybe amp up the design aspect of the view.

2\. BNR's book has an entire chapter dedicated to Core Data, but I will
definitely check out the lectures on that subject (I may even go through the
entire course if I feel the need).

3\. This is a subject that I have witnessed many developers struggle with. The
idea of creating something that people will WANT to use is something that
excites me more than anything. I realize that I should focus on building
concrete features before I attempt to make a plethora of them. I want to plan
out my future apps before actually coding any of them. I want to teach myself
to develop professionally, right from the beginning.

I really appreciate these tips, as I know I will be checking this thread again
when I really start my own projects.

Thank you! I cannot wait work on amazing projects someday!

------
jeremy_k
I recently graduated and got a position doing iOS development for a start-up.
I'm nearing completion of my first app and two iOS concepts I've found to be
of vital important are Core Data and GCD. Being able to persist the data
you're working with and manage it in a multithreaded context are keys I've
found to creating a good UX.

For learning, I've browsed the Stanford slides, but I mainly read
www.stackoverflow.com. Determining the issue at hand and then seeing how other
developers have solved that issue, I've found, is the easiest way for me to
learn.

~~~
tagabek
First off, congratulations on your graduation and employment!

\- Would you recommend the startup route for a first job?

Core data seems to be one of the top 3 important things with iOS development.
I will make sure to go above and beyond when I get to learning Core Data and
GCD. That shouldn't be more than a week from now!

------
RandallBrown
Build some cool stuff and send out your resumes if you want a job. Smaller
startups are going to be harder to get in with if you don't know someone, but
not impossible.

A really great way to differentiate yourself is to build and publish an app.
It doesn't have to be popular or even that great. Just showing you can build
something from start to finish is a big deal.

~~~
tagabek
I guess I assumed that most younger (or just beginning) iOS developers had
built apps prior to getting offered positions. Right now, I would love a part-
time job or an internship (that pays, because I wouldn'y be able to survive
without money), so that I could remain in school, while doing something within
the software engineering field. I've applied to some local internships, and am
keeping my fingers crossed.

------
GoldenMonkey
Keep meeting developers in your area. meetup.com and google and yahoo groups
are good. Sign up for linkedin.com and add your contacts. Start shipping apps.
The developers you meet will lead you to paying gigs.

