Short talk for high school career day at Detroit Country Day School about Software Consulting as a career, focusing on independent and client work, and writing apps for the iOS App Store.
2. About @invalidname
• Independent iOS developer and author
• Develop iOS apps for clients
• Also have own apps on App Store ("Road Tip")
• Co-Author, iOS SDK Development and Learning
Core Audio
Remind me to give
away a copy of this
at the end.
3. How I got here
• DCDS, Class of 1985
• Stanford University, Class of 1990 (BS, Symbolic
Systems; BA, English)
• Michigan State University, Class of 1993 (MA,
Telecommunication)
7. Software Engineering
• Design and develop applications and systems for
clients or end-users
• Take requirements, plan how to meet them,
estimate costs and time
• Develop and test software code
• Respond to bug reports and enhancement requests
8. Why You Should Be a Software Engineer
• High income potential
• Safe work environment
• Constant opportunities for growth and change
• Apps are cool
9. Why You Shouldn't Be a Software
Engineer
• Downward pressure on wages from offshoring
• Constant change means you always have to work hard
to keep up
• Poor representation of women, people of color
• App Store prices and the "race to the bottom"
10. Types of employers
• Big companies
• Small / startup companies
• Client work
• Indie development
11. Big companies
• Large (1,000+ employees) companies, usually
established in their field
• May not be explicitly in the technology business
• Safety (or at least the appearance of it)
• Boredom
12. Small companies / startups
• Young companies with a small number of employees
• More likely to be a pure tech company
• Higher risk/reward: more opportunity for
advancement, high likelihood of corporate failure
• May offer stock or options in lieu of competitive
salary
13. Client work
• One-off projects or continuing work based on
contracts (as opposed to salaried employment)
• May be paid hourly or by milestone
• Varying levels of formality
• Much greater responsibility, freedom
14. Indie development
• Developing apps to be provided directly to end-users
• Monetized via direct sale or advertising
• "App Stores" have made this far more practical than it
was five years ago
• Extraordinary risk/reward: for every "Angry Birds",
there are 50 apps that don't earn back their
development costs
19. Education
• High school: math, computer science, English
• College: computer science, electrical engineering,
math, economics/business
• Specializations: media, public policy, medicine, etc.
• Clubs and student groups can help develop people
skills, organizational responsibility
20. Outside the Classroom
• Software meta-skills: debugging, source control (svn,
git), bug tracking, working in teams, IT skills
(hosting, database administration)
• Domain knowledge: graphics (2D and 3D projections,
trigonometry), media (A/V production, compression
theory), security (public-key encryption, certificate
management), etc.
• Keeping up: books, articles, blogs, conferences
22. Before You Graduate
• Publish an app on the App Store!
• Check out an open source project and understand
how it works (bonus points if you contribute to it)
• Attend a meeting of a developer group like
CocoaHeads (Detroit [Pontiac] or Ann Arbor), Mobile
Monday, Java User Group, etc.
• Attend a developer conference (CocoaConf,
MobiDevDay, Girl Develop It, etc.)
23. After Graduation
• College: Most colleges offer computer science and
other engineering programs.
• Some are especially renowned: MIT, CalTech,
Stanford, RPI, Carnegie-Mellon, etc.
• In Michigan: U-M, MSU, Michigan Tech.
• Post-College: Think about moving to a city with lots of
tech companies (Silicon Valley, Seattle, Boston, NYC,
Austin, Atlanta). Makes it easier to switch jobs, meet
colleagues, survive a layoff or implosion.
24. Going Indie
• You can start a company at any time; nice to be able
to fall back on it when day job implodes
• Setting up an LLC or S-Corp costs $500-1,000. Has
significant tax advantages over working as a "sole
proprietor"
• Keep separate books, bank accounts for corporation
and personal use. QuickBooks/TurboTax or hire an
accountant
25. Income for Indies
• Billed client work
• App Store sales (or advertising in apps)
• Writing books, documentation, etc.
• Advertising and sponsored links on your blog
26.
27. Final Thoughts
• Software Engineering is a very approachable career
• Lots of career options: big company versus indie,
server versus desktop versus mobile
• Change is constant
28. Questions!
Feel free to follow up afterwards:
• invalidname@gmail.com
• @invalidname (Twitter)
• CocoaHeads Ann Arbor (second Thursday of every
month)