Becoming a Mac/iOS Developer

2,324 views
2,179 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
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,324
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
49
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide
  • \n
  • Tips are divided into categories: beginner, intermediate, expert, and master. The line between categories is fuzzy.\nThis is not an introduction to Objective-C or programming Mac/iOS.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Usually there is good reason why developers stray from good practice, but this is rarely stated. Even more rare is to give a full example of the difference. \n
  • \n
  • \n
  • Functionality is critical too.\nThere is a great tendency to copy other app’s UI design without asking why or how. A design that works for one app may not be appropriate for another. \n
  • Programming in a team is very different than working alone.\nYou should be easy to get along with. \nEven open source projects need to follow good team structure and practice.\n
  • \n
  • \n
  • \n
  • Knowing how to use a client and the terminal is very valuable. Clients can save a lot of time, prevent mistakes, and visualize information better. However, there are times when you may not have your favorite client available or the client may not support a needed feature. \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 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?

    ×