Becoming a Mac/iOS Developer
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Becoming a Mac/iOS Developer

on

  • 2,064 views

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.

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.

Statistics

Views

Total Views
2,064
Views on SlideShare
2,064
Embed Views
0

Actions

Likes
2
Downloads
37
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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 Presentation Transcript

  • 1. Becoming a Mac/iOSDeveloperRobert Brown@robby_brown
  • 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. 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. Beginner
  • 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. 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. Find a Good BookThe Pragmatic Bookshelf iOS SDK Development Core Data (out of print but available on Amazon) Core Animation
  • 8. Find a Good BookThe Pragmatic Bookshelf iOS Recipes Designed for Use iPad Programming
  • 9. Find a Good BookDesign: Design Patterns: Elements of Reusable Object- oriented Software The Design of Everyday Things
  • 10. Find a Good BookMaintenance: Refactoring: Improving the Design of Existing Code Code Complete
  • 11. Find a Good BookManagement: Peopleware: Productive Projects and Teams The Mythical Man Month Driving Technical Change
  • 12. Tutorials Apple Tutorial Stanford on iTunes
  • 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. 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. 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. 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. 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. 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. Intermediate
  • 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. Learn Best PracticeFind a good mentor It’s hard to learn best practice on your own Do code reviews and pair programming
  • 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. 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. 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. Learn to Work in TeamsDo code reviews and pair programmingUse a version control system (VCS) EVERY developer MUST use version control
  • 26. VCS ClientsTower CornerstoneVersions GitboxSourceTree Terminal (for real devs)
  • 27. GithubGit is the standard VCSGithub is an open source communityGithub has many reusable Mac/iOS components.
  • 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. Expert
  • 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. Be a MentorTeaching others helps reinforce learningReturn the favor for those who mentored you
  • 32. Give PresentationsTeaching others helps reinforce learningCommunication skills are criticalSlide Share: presentation sharing serviceMy Presentations
  • 33. Stack OverflowTeaching others helps reinforce learningAnswer questionsGain reputation in your community
  • 34. GithubContribute to one or more open source projectsMakes a great portfolioGreat way to collaborate with others and learn fromthem
  • 35. Master
  • 36. Change the WorldCreate a startupWrite a bookWrite for a magazineDo something else crazy
  • 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. 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. Questions?