Create stunning app designs by customizing your toolbar buttons and toolbar backgrounds. If you want to differentiate your app you'll need to learn how to change your button images with some code.Read More
Even beginner programmers can launch iPhone apps. Read about three new apps for iPhone. These apps were created in a three week course. Several of them launched on the app store after 1-2 months of polish.Read More
If you never ask your users to review your app you're doing it wrong. Learn how I was able to boost my app reviews just by asking with a popup. There's a right and wrong way to ask.Read More
Try to learn iPhone development without any programming experience using a programming primer series. Learn programming concepts that are taught in Computer Science courses at every university.Read More
Being productive sometimes means drinking coffee. If you appreciate a good cup of coffee and you want to learn how to make it, then read this comprehensive post. I'll show you how I brew coffee everyday with freshly roasted beans and a burr grinder.Read More
Feedback can be harsh or non-existent. Learn how I leveraged negative feedback and used it to build better iPhone apps. If you want people to use your apps, you'll need to listen to them.Read More
Scott H Young has recently completed an interesting learning experiment where he took online MIT classes towards a computer science degree. For just $2,000 he received the education from MIT using online resources in one year!
Watch his TEDx talk part-way through the MIT experiment. Since the talk he has finished his goal of completing the MIT degree program in 1 year.
While he missed out on the traditional college experience of networking, he saved hundreds of thousands of dollars to teach himself. He called it the education "a la carte."
Checkout his updated blog on what changes he would make if he were to try it again.
When I first started learning iOS development it was hard. I had stumbling blocks all along the way and good reading materials were hard to find. The issues were so frequent that I started blogging about advanced topics to document what I learned. I fought with the old version of Xcode 3 and the learning curve of Xcode 4. Many things were changing (iOS 3.0, 4.0, 5.0, and 6.0), and the only way to remember how I fixed things was to write it down with pictures.
While my original blog is great for advanced topics it fails to help most beginners. That's why I started http://iPhoneDev.tv to connect and teach artists, designers, entrepreneurs, hobbyists, and tech enthusiasts.
There are a lot more resources today that make learning easier. Stackoverflow.com has more problems and solutions, Apples' World Wide Developer Conference (WWDC) gives free videos about the latest features on iPhone/iPad/iOS/Mac, and the Big Nerd Ranch books have expanded and re-oriented themselves for beginners.
Learning from Other Experiences
I think the most challenging thing I've learned has been how to rock climb, also known as bouldering. At RIT we have a rock climbing gym (Red Barn) and I never liked it until recently.
Indoor bouldering has a set of climbing holds (hands/feet) that are in a "route" or path and marked by colored tape. The goal is to traverse the wall from start to finish to complete the route. Where I found frustration as a beginner was that I couldn't "visualize" how I would solve a path, nor could I complete more than a few steps along the way. I think I spent 2-3 months climbing 1-2 times a week and I didn't see improvement. I didn't even finish a full path for the first two months. So much failure ate away and demoralized me. I started each climbing session knowing that I wasn't going to get much further.
The solution I found was to climb with a beginner, because it allowed me to teach the very few things that I had learned to someone else. Teaching in itself is a learning process that re-enforces what we know. I think I became more aware of how I was holding my body, moving on the wall, and how to identify the mistakes with another beginner. It allowed me to see how I looked on the wall, with someone who wasn't great.
Good climbers show you how to do it right, but bad climbers highlight what you're doing wrong. I think the same thing can be applied to any other field of study.
Find a Beginner Programmer and Connect
A coach is just as important as the rest of the team. When you're working on iPhone app development by yourself it's easy to become frustrated and fail to figure out a bug. What you need is another beginner programmer who you can talk about the problems and teach what you've learned. Together you'll learn more than if you both worked in separate silos.
I think a coach is also good for those times that you hit a wall. As an advanced programmer I've seen a lot of the pitfalls and I've been there before. So I know how to get out, but you won't really learn if I give you all the answers. You'll become dependent on me solving your problems and not you solving your problems. As a coach I teach you good form, how to practice, and how to find the answers.
As you practice and learn to program iPhone apps you need someone, a peer, that can speak the same language with you and not overwhelm your current knowledge level. It's important because they can become a source of motivation and a way to learn more effectively. You can teach them and they can teach you. In the end you'll learn more than you would from just reading a book.
- Find another beginner iPhone programmer or a small group of programmers. (Meetup.com, local iPhone group, or Skillshare group)
- Start reading 1-2 chapters a day of Objective-C Programming: The Big Nerd Ranch Guide.
- Practice as you read about new topics. Keep Xcode open so that you can try and write code.
- Discuss your challenges and how you solved them with another beginner.
Learning Requires Focus
Being productive and focused is the best way to learn. It's important to build habits that promote focus, otherwise you'll keep falling into the same mental traps.
8 Simple Rules for Productive Days
- Write a todo list. I write it at night for the next day and keep it short (3-5 items). I can sleep easier and focus harder on exactly what is needed. It really feels good to cross things off a list!
- No email before 12pm. If I don't look at email my brain won't worry about responding until later in the day. This definitely helps me focus hard in the first 4 hours of my workday.
- No social media before 5pm. Again, this reduces the amount of "new" things my mind can think about. Doing so enables me to relax and just think about my current todo list.
- Drink lots of water. I find that I get headaches with too much coffee and not enough water.
- Exercise. Each time I stop exercising I lose energy and become overwhelmed with all the work I need to do. Exercise can really help me relax after a long day of work.
- Sleep. Setting a regular bedtime and morning wakeup time makes me fresh and ready to go. Without a regular interval it's easy to lose motivation and hard to wake up.
- Wear comfortable clothes. It's amazing how my mood instantly feels better in a soft shirt instead of a coarse shirt. Just thinking about the comfort makes me excited.
- Take breaks. I get tense at the computer, especially when I'm in the zone. To combat that I'm trying to relax more with frequent breaks. My favorite is just leaning over and touching my toes for 40 seconds. I also use BreakTime on my Mac.
What focus tips do you have?
Email me or comment below to share what works for you. Everyone's different and there's other things to try.
Need more motivation?
Do you have a Windows PC and want to experiment with iPhone app development?
Affordable Virtual Mac in Web Browser
If buying a new/used Mac computer isn't an option this year, you can try to borrow a Mac or use a service called Mac in Cloud. MacInCloud.com This cloud service allows you to use the Google Chrome web browser or Microsoft's Desktop Remote to connect to a Mac that's in a data center.
Want to Switch to Mac?
Are you considering switching away from Windows or Linux?
I used to be a die-hard Windows user. I built many computers from scratch and maintained a computer network at home. It was a great learning experience, but there was always something to fix. In 2008 I decided to try a Macbook Pro because you could install Windows on them. I think it was one of the best decisions I've made because it opened so many doors. (Later that year I had an internship at Apple Inc.)
I think Mac computers are a great alternative to Windows PC's and here's why.
- More reliable and better support (AppleCare has replaced my iPad and Macbook at no service charge)
- Simplified menus and options
- Sexy and sturdy product design
- Mac trackpads are far more comfortable and responsive (2-finger scrolling is awesome)
- Videos, pictures, and document previews just work with the operating system. You can browse content faster without installing software bloat.
Already use a Mac?
What were your top 3 reasons for switching? Any tips for non-Mac users?