Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Becoming a Mac/iOS Developer

Becoming a Mac/iOS Developer

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.

Rob Brown

March 08, 2012
Tweet

More Decks by Rob Brown

Other Decks in Programming

Transcript

  1. 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
  2. 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.
  3. Find a Mentor Find one to three people who you

    can ask questions When you hit a problem, spend an hour trying to figure it out on your own If you can’t solve it after an hour, ask your mentor
  4. Find a Good Book Mac/iOS: Objective-C Programming: The Big Nerd

    Ranch Guide Beginning iOS 5 Development iOS Programming: The Big Nerd Ranch Guide
  5. Find a Good Book The Pragmatic Bookshelf iOS SDK Development

    Core Data (out of print but available on Amazon) Core Animation
  6. Find a Good Book Design: Design Patterns: Elements of Reusable

    Object- oriented Software The Design of Everyday Things
  7. Find a Good Book Management: Peopleware: Productive Projects and Teams

    The Mythical Man Month Driving Technical Change
  8. Stack Overflow Q&A for developers by developers Lots of developers

    have the same problems as you If someone hasn’t already asked your question, you can ask the community yourself
  9. LinkedIn Start right away, even if you don’t have a

    good résumé Connections are more valuable than skills Skills are important too Recruiters can’t find enough iOS developers Link to blog and portfolio
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. Learn Best Practice Most developers/books/tutorials don’t follow good practice :(

    Design patterns are generic best practices Other best practices are language specific Follow the naming conventions of the language Develop a coding standard
  15. Learn Best Practice Find a good mentor It’s hard to

    learn best practice on your own Do code reviews and pair programming
  16. Learn to Design Code Design Pattern: formalized description of best

    practice There is a vast difference between code that works now and code that will continue to work in the future Mac/iOS naturally pushes good design patterns
  17. Learn to Design UI Design for mobile first! If your

    app doesn’t look good, no one will buy it even if it has amazing functionality The Mac/iOS community naturally gravitates toward good UI/UX Be aware of why and how other app are designed.
  18. Learn to Work in Teams Most interesting software is written

    by a team Good communication skills are critical Knowing how to design helps to subdivide projects A good coder is not necessarily a good project manager and vice versa
  19. Learn to Work in Teams Do code reviews and pair

    programming Use a version control system (VCS) EVERY developer MUST use version control
  20. Github Git is the standard VCS Github is an open

    source community Github has many reusable Mac/iOS components.
  21. Blogging Teaching others helps reinforce learning Writing skills are critical

    Great Book: Technical Blogging My Blog: Rob's Program Knowledge Base A collection of obscure errors and elegant solutions
  22. 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
  23. Give Presentations Teaching others helps reinforce learning Communication skills are

    critical Slide Share: presentation sharing service My Presentations
  24. Github Contribute to one or more open source projects Makes

    a great portfolio Great way to collaborate with others and learn from them
  25. Change the World Create a startup Write a book Write

    for a magazine Do something else crazy
  26. Summary Know who and where to get help Network and

    develop good reputation Have a portfolio both of code and writing Be involved in the community Help others
  27. Want to Learn More? Lots of links in previous slides

    http://penny-arcade.com/patv/episode/so-you-want- to-be-a-developer-part-1 http://penny-arcade.com/patv/episode/so-you-want- to-be-a-developer-part-2