Because I am a very very important person, people often ask me how to get a job in programming in Silicon Valley. This is the advice that I’ve been giving them, it’s a work in progress and contributions are welcome.
One option is to get a computer science degree from a decent school, I don’t have very much experience with the wave of dev bootcamps. You’ll need to know enough programming to make a dent. I don’t have any great advice if you’re looking to start learning, since I learned to program on coal powered mechanical typewriters in the 18th century, long before the internet — but nowadays Codecademy looks pretty good.
If you want to teach yourself, here’s what I suggest:
- Find a product that you like with an API. Some ideas: Twilio, Firebase, Meteor, Temboo, or PagerDuty.
- Build something with it. Go ahead and play with the API first a little; but once you know what you want to build, sketch out a plan with some mockups. Planning projects is almost as valuable a skill as building them. Make sure to cover your use cases and who you’re building it for — even if they’re a little contrived for a toy project.
- Post the code to Github & make a live demo (if possible, a video or something if a demo isn’t possible)
- Write a blog post about what you learned & tweet it out CC’ing the company who made the API. This step is critical, people don’t read Github profiles — even if they did, it’s hard to tell your code from someone who just forked some existing projects.
- Repeat & get better every time. At some point you’ll want to move up to contributing to other open source projects, it’s rare you’ll be starting new projects from scratch — usually you’ll be improving or expanding existing code bases.
At some point you should start applying to programming jobs, you have a few options:
- Someone from one of the companies you’ve been building on will reach out to you.
- Find an internship
- Find a programming-adjacent job (it’s always easier to get a job when you have a job)
- Go with a recruiter — they’re a hive of scum and villainy, but they know which companies are willing to hire a super junior person
- internships in programming are paid, sometimes very well.
- Google grows their developers in vats at Stanford, there are lots of other great places to work.
- video game programming is not as much fun as playing video games — and there are too many people excited about joining it, so you’re going to be working harder, for less money on less interesting projects — if you don’t find solving real problems interesting, don’t become a programmer. The Appendix to Philip Greenspun’s Women in Science post is relevant — pick a working environment that you like, rather than a field. If you can genuinely find a happy 40 year old game programmer, go ahead and apply.
- long term, don’t call yourself a programmer (a good rebuttal is Do call yourself a programmer)
- It’s worth reading everything in the sidebar of Joel on Software, possibly starting with Getting your resume read.
- Inspirational success story: Renee at Twilio
Thanks to Yaakov, Sonya and Cherie.