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)