Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Becoming a Mac/iOSDeveloperRobert Brown@robby_brown
So You Want to be a Mac/iOS Developer?What to expect:  This presentation contains everything I wish I knew  two years ago ...
So You Want to be a Mac/iOS Developer?What not to expect:  This is not an introduction to Objective-C, Xcode, or  any othe...
Beginner
Find a MentorFind one to three people who you can ask questionsWhen you hit a problem, spend an hour trying to figureit out...
Find a Good BookMac/iOS: Objective-C Programming: The Big Nerd Ranch Guide Beginning iOS 5 Development iOS Programming: Th...
Find a Good BookThe Pragmatic Bookshelf  iOS SDK Development  Core Data (out of print but available on Amazon)  Core Anima...
Find a Good BookThe Pragmatic Bookshelf  iOS Recipes  Designed for Use  iPad Programming
Find a Good BookDesign:  Design Patterns: Elements of Reusable Object-  oriented Software  The Design of Everyday Things
Find a Good BookMaintenance:  Refactoring: Improving the Design of Existing Code  Code Complete
Find a Good BookManagement: Peopleware: Productive Projects and Teams The Mythical Man Month Driving Technical Change
Tutorials Apple Tutorial Stanford on iTunes
Stack OverflowQ&A for developers by developersLots of developers have the same problems as youIf someone hasn’t already ask...
LinkedInStart right away, even if you don’t have a good résuméConnections are more valuable than skills  Skills are import...
Twitter @daringfireball: John Gruber—Straightforward Apple news and opinions. WARNING: Coarse language! @mattgemmell: Matt ...
Twitter @gzicherm: Gabe Zicherman—Authority on gamification. WARNING: Coarse language! @bdudney: Bill Dudney—Former Apple e...
Twitter @glyphish: Glyphish—Quality, inexpensive iOS icons. @macrumors: MacRumors—Most “reliable” Apple rumors. @macrumors...
Twitter @darthvader: Darth Vader (obviously)—Great comic relief for nerds. @davedelong: Dave Delong—Apple employee and ama...
Intermediate
Learn Best PracticeMost developers/books/tutorials don’t follow goodpractice :(Design patterns are generic best practicesO...
Learn Best PracticeFind a good mentor  It’s hard to learn best practice on your own  Do code reviews and pair programming
Learn to Design CodeDesign Pattern: formalized description of best practiceThere is a vast difference between code that wo...
Learn to Design UIDesign for mobile first!If your app doesn’t look good, no one will buy it even ifit has amazing functiona...
Learn to Work in TeamsMost interesting software is written by a teamGood communication skills are criticalKnowing how to d...
Learn to Work in TeamsDo code reviews and pair programmingUse a version control system (VCS)  EVERY developer MUST use ver...
VCS ClientsTower         CornerstoneVersions      GitboxSourceTree    Terminal (for real devs)
GithubGit is the standard VCSGithub is an open source communityGithub has many reusable Mac/iOS components.
BloggingTeaching others helps reinforce learningWriting skills are criticalGreat Book: Technical BloggingMy Blog: Robs Pro...
Expert
Find a Specialty Find an area that interests you and dig deep You should enjoy what you do Broad knowledge is critical, bu...
Be a MentorTeaching others helps reinforce learningReturn the favor for those who mentored you
Give PresentationsTeaching others helps reinforce learningCommunication skills are criticalSlide Share: presentation shari...
Stack OverflowTeaching others helps reinforce learningAnswer questionsGain reputation in your community
GithubContribute to one or more open source projectsMakes a great portfolioGreat way to collaborate with others and learn ...
Master
Change the WorldCreate a startupWrite a bookWrite for a magazineDo something else crazy
SummaryKnow who and where to get helpNetwork and develop good reputationHave a portfolio both of code and writingBe involv...
Want to Learn More?Lots of links in previous slideshttp://penny-arcade.com/patv/episode/so-you-want-to-be-a-developer-part...
Questions?
Upcoming SlideShare
Loading in …5
×

Becoming a Mac/iOS Developer

2,514 views

Published on

Getting started as a developer in any language or platform can be a struggle. This presentation contains all the little things I wish I knew when I started as an iOS developer.

Published in: Technology

Becoming a Mac/iOS Developer

  1. 1. Becoming a Mac/iOSDeveloperRobert Brown@robby_brown
  2. 2. So You Want to be a Mac/iOS Developer?What to expect: This presentation contains everything I wish I knew two years ago I will focus on Mac and iOS development, but the ideas apply to other specialties
  3. 3. So You Want to be a Mac/iOS Developer?What not to expect: This is not an introduction to Objective-C, Xcode, or any other tools.
  4. 4. Beginner
  5. 5. Find a MentorFind one to three people who you can ask questionsWhen you hit a problem, spend an hour trying to figureit out on your ownIf you can’t solve it after an hour, ask your mentor
  6. 6. Find a Good BookMac/iOS: Objective-C Programming: The Big Nerd Ranch Guide Beginning iOS 5 Development iOS Programming: The Big Nerd Ranch Guide
  7. 7. Find a Good BookThe Pragmatic Bookshelf iOS SDK Development Core Data (out of print but available on Amazon) Core Animation
  8. 8. Find a Good BookThe Pragmatic Bookshelf iOS Recipes Designed for Use iPad Programming
  9. 9. Find a Good BookDesign: Design Patterns: Elements of Reusable Object- oriented Software The Design of Everyday Things
  10. 10. Find a Good BookMaintenance: Refactoring: Improving the Design of Existing Code Code Complete
  11. 11. Find a Good BookManagement: Peopleware: Productive Projects and Teams The Mythical Man Month Driving Technical Change
  12. 12. Tutorials Apple Tutorial Stanford on iTunes
  13. 13. Stack OverflowQ&A for developers by developersLots of developers have the same problems as youIf someone hasn’t already asked your question, youcan ask the community yourself
  14. 14. LinkedInStart right away, even if you don’t have a good résuméConnections are more valuable than skills Skills are important tooRecruiters can’t find enough iOS developersLink to blog and portfolio
  15. 15. Twitter @daringfireball: John Gruber—Straightforward Apple news and opinions. WARNING: Coarse language! @mattgemmell: Matt Gemmel—Great iOS dev and blogger. WARNING: Coarse language! @cocoanetics: Oliver Drobnik—Another great iOS developer and blogger.
  16. 16. Twitter @gzicherm: Gabe Zicherman—Authority on gamification. WARNING: Coarse language! @bdudney: Bill Dudney—Former Apple engineer and great author for The Pragmatic Bookshelf. @mzarra: Marcus Zarra—Author for The Pragmatic Bookshelf and Cocoa Is My GirlFriend.
  17. 17. Twitter @glyphish: Glyphish—Quality, inexpensive iOS icons. @macrumors: MacRumors—Most “reliable” Apple rumors. @macrumorslive: MacRumors—Live tweets Apple events. Good for events that aren’t broadcasted.
  18. 18. Twitter @darthvader: Darth Vader (obviously)—Great comic relief for nerds. @davedelong: Dave Delong—Apple employee and amazing developer. @robby_brown: Robert Brown—Hey, that’s me! Independent iOS contractor and blogger. No brownie points for following me.
  19. 19. Intermediate
  20. 20. Learn Best PracticeMost developers/books/tutorials don’t follow goodpractice :(Design patterns are generic best practicesOther best practices are language specificFollow the naming conventions of the languageDevelop a coding standard
  21. 21. Learn Best PracticeFind a good mentor It’s hard to learn best practice on your own Do code reviews and pair programming
  22. 22. Learn to Design CodeDesign Pattern: formalized description of best practiceThere is a vast difference between code that worksnow and code that will continue to work in the futureMac/iOS naturally pushes good design patterns
  23. 23. Learn to Design UIDesign for mobile first!If your app doesn’t look good, no one will buy it even ifit has amazing functionalityThe Mac/iOS community naturally gravitates towardgood UI/UXBe aware of why and how other app are designed.
  24. 24. Learn to Work in TeamsMost interesting software is written by a teamGood communication skills are criticalKnowing how to design helps to subdivide projectsA good coder is not necessarily a good projectmanager and vice versa
  25. 25. Learn to Work in TeamsDo code reviews and pair programmingUse a version control system (VCS) EVERY developer MUST use version control
  26. 26. VCS ClientsTower CornerstoneVersions GitboxSourceTree Terminal (for real devs)
  27. 27. GithubGit is the standard VCSGithub is an open source communityGithub has many reusable Mac/iOS components.
  28. 28. BloggingTeaching others helps reinforce learningWriting skills are criticalGreat Book: Technical BloggingMy Blog: Robs Program Knowledge Base A collection of obscure errors and elegant solutions
  29. 29. Expert
  30. 30. Find a Specialty Find an area that interests you and dig deep You should enjoy what you do Broad knowledge is critical, but deep knowledge gets the good jobs My specialties: Multithreading, Core Data, UI/UX Design
  31. 31. Be a MentorTeaching others helps reinforce learningReturn the favor for those who mentored you
  32. 32. Give PresentationsTeaching others helps reinforce learningCommunication skills are criticalSlide Share: presentation sharing serviceMy Presentations
  33. 33. Stack OverflowTeaching others helps reinforce learningAnswer questionsGain reputation in your community
  34. 34. GithubContribute to one or more open source projectsMakes a great portfolioGreat way to collaborate with others and learn fromthem
  35. 35. Master
  36. 36. Change the WorldCreate a startupWrite a bookWrite for a magazineDo something else crazy
  37. 37. SummaryKnow who and where to get helpNetwork and develop good reputationHave a portfolio both of code and writingBe involved in the communityHelp others
  38. 38. Want to Learn More?Lots of links in previous slideshttp://penny-arcade.com/patv/episode/so-you-want-to-be-a-developer-part-1http://penny-arcade.com/patv/episode/so-you-want-to-be-a-developer-part-2
  39. 39. Questions?

×