SlideShare uma empresa Scribd logo
1 de 39
Becoming a Mac/iOS
Developer
Robert 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
  I will focus on Mac and iOS development, but the
  ideas apply to other specialties
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.
Beginner
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
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
Find a Good Book

The Pragmatic Bookshelf
  iOS SDK Development
  Core Data (out of print but available on Amazon)
  Core Animation
Find a Good Book

The Pragmatic Bookshelf
  iOS Recipes
  Designed for Use
  iPad Programming
Find a Good Book


Design:
  Design Patterns: Elements of Reusable Object-
  oriented Software
  The Design of Everyday Things
Find a Good Book


Maintenance:
  Refactoring: Improving the Design of Existing Code
  Code Complete
Find a Good Book

Management:
 Peopleware: Productive Projects and Teams
 The Mythical Man Month
 Driving Technical Change
Tutorials


 Apple Tutorial
 Stanford on iTunes
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
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
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.
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.
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.
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.
Intermediate
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
Learn Best Practice


Find a good mentor
  It’s hard to learn best practice on your own
  Do code reviews and pair programming
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
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.
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
Learn to Work in Teams


Do code reviews and pair programming
Use a version control system (VCS)
  EVERY developer MUST use version control
VCS Clients


Tower         Cornerstone
Versions      Gitbox
SourceTree    Terminal (for real devs)
Github


Git is the standard VCS
Github is an open source community
Github has many reusable Mac/iOS components.
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
Expert
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
Be a Mentor


Teaching others helps reinforce learning
Return the favor for those who mentored you
Give Presentations

Teaching others helps reinforce learning
Communication skills are critical
Slide Share: presentation sharing service
My Presentations
Stack Overflow


Teaching others helps reinforce learning
Answer questions
Gain reputation in your community
Github


Contribute to one or more open source projects
Makes a great portfolio
Great way to collaborate with others and learn from
them
Master
Change the World

Create a startup
Write a book
Write for a magazine
Do something else crazy
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
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
Questions?

Mais conteúdo relacionado

Mais de Robert Brown

Automatic Reference Counting
Automatic Reference CountingAutomatic Reference Counting
Automatic Reference CountingRobert Brown
 
Grand Central Dispatch Design Patterns
Grand Central Dispatch Design PatternsGrand Central Dispatch Design Patterns
Grand Central Dispatch Design PatternsRobert Brown
 
Grand Central Dispatch
Grand Central DispatchGrand Central Dispatch
Grand Central DispatchRobert Brown
 
Mac/iOS Design Patterns
Mac/iOS Design PatternsMac/iOS Design Patterns
Mac/iOS Design PatternsRobert Brown
 
Quick Look for iOS
Quick Look for iOSQuick Look for iOS
Quick Look for iOSRobert Brown
 

Mais de Robert Brown (8)

Anti-Patterns
Anti-PatternsAnti-Patterns
Anti-Patterns
 
Pragmatic blocks
Pragmatic blocksPragmatic blocks
Pragmatic blocks
 
Automatic Reference Counting
Automatic Reference CountingAutomatic Reference Counting
Automatic Reference Counting
 
Grand Central Dispatch Design Patterns
Grand Central Dispatch Design PatternsGrand Central Dispatch Design Patterns
Grand Central Dispatch Design Patterns
 
Grand Central Dispatch
Grand Central DispatchGrand Central Dispatch
Grand Central Dispatch
 
Mac/iOS Design Patterns
Mac/iOS Design PatternsMac/iOS Design Patterns
Mac/iOS Design Patterns
 
Core Data
Core DataCore Data
Core Data
 
Quick Look for iOS
Quick Look for iOSQuick Look for iOS
Quick Look for iOS
 

Último

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

Becoming a Mac/iOS Developer

  • 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.
  • 5. 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
  • 6. 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
  • 7. Find a Good Book The Pragmatic Bookshelf iOS SDK Development Core Data (out of print but available on Amazon) Core Animation
  • 8. Find a Good Book The Pragmatic Bookshelf iOS Recipes Designed for Use iPad Programming
  • 9. Find a Good Book Design: Design Patterns: Elements of Reusable Object- oriented Software The Design of Everyday Things
  • 10. Find a Good Book Maintenance: Refactoring: Improving the Design of Existing Code Code Complete
  • 11. Find a Good Book Management: Peopleware: Productive Projects and Teams The Mythical Man Month Driving Technical Change
  • 12. Tutorials Apple Tutorial Stanford on iTunes
  • 13. 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
  • 14. 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
  • 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.
  • 20. 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
  • 21. Learn Best Practice Find a good mentor It’s hard to learn best practice on your own Do code reviews and pair programming
  • 22. 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
  • 23. 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.
  • 24. 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
  • 25. Learn to Work in Teams Do code reviews and pair programming Use a version control system (VCS) EVERY developer MUST use version control
  • 26. VCS Clients Tower Cornerstone Versions Gitbox SourceTree Terminal (for real devs)
  • 27. Github Git is the standard VCS Github is an open source community Github has many reusable Mac/iOS components.
  • 28. 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
  • 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 Mentor Teaching others helps reinforce learning Return the favor for those who mentored you
  • 32. Give Presentations Teaching others helps reinforce learning Communication skills are critical Slide Share: presentation sharing service My Presentations
  • 33. Stack Overflow Teaching others helps reinforce learning Answer questions Gain reputation in your community
  • 34. Github Contribute to one or more open source projects Makes a great portfolio Great way to collaborate with others and learn from them
  • 36. Change the World Create a startup Write a book Write for a magazine Do something else crazy
  • 37. 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
  • 38. 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

Notas do Editor

  1. \n
  2. 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
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. 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
  21. \n
  22. \n
  23. 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
  24. 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
  25. \n
  26. \n
  27. \n
  28. 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
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n