On Github llkats / careerdayslides2015
By Lydia Katsamberis / @llkats
JavaScript Engineer at craigslist ☮
HS Degree
Bachelor's Degree
Master's or PhD
Accelerators
HS Degree many of my friends and colleagues dropped out of or didn't even attend college - can't really recommend this because 1) they had been programming since they were little and already had established their reputations by releasing open-source software 2) they missed out on some stuff you only learn in college: how to study; how to collaborate and work in teams; how to communicate - yes they don't have debt, but they started really young. it's harder to start later and get going without a degree Bachelors the rest of my friends/colleages have at least a bachelor's degree, which is probably the best and easiest way to get your foot in the door. many big name companies like Google, Apple, and Facebook require a degree to even apply. master's/phd Some people further their studies of CS with a master's degree, which can help you go into research or academia. I personally came to programming late -- I didn't start until grad school. I graduated with a BA in English at the very start of the recession in 2007, and used my master's to change careers into programming. accelerators There are programs called accelerators that teach you to code in a matter of months. I'm a little suspicious of them because they are not accedited education programs and can be really expensive and time-consuming, while you don't get the benefit of student loans. Many are for-profit. However, I know people who successfully completed the programs and got jobs after, so they are another avenue as well. there are a lot of different paths once you've gotten your background in CS; server-side programming, front-end programming ("web development"), systems, data science, networking, IT, etc. I settled on web development, which means I mostly write websites using HTML, CSS, and JavaScript. Web dev wasn't really taught in my CS degree, but I used the foundations of knowledge that I acquired in my programming courses to teach myself what I needed to know to create webpages.contrary to popular belief, people skills are super important
software is written collaboratively and teamwork is essential
contribution, tutoring, and mentoring are also very important
Skills! Yes, you need to have good people skills. The stereotype of a software engineer is that they are nerdy social outcasts, but software depends on people. It isn’t written in a vacuum, you need to write it collaboratively, and so you need to be able to work with people. Things do get stressful, especially close to deadlines, but you have to keep your cool and get stuff done. You depend on your team and your team depends on you. The most successful engineers are also ones with good social skills -- which you can totally learn. Also, you learn the most by working with others; you teach and learn from each other.junior-level dev in the Bay Area: $60-90k
looked on glassdoor: depends on the type of engineering you pursue, the area you live in, and the company you work formornings: usually emails, meetings, planning
afternoons: programming hours
evenings: more programming
During a typical day, I’ll do some coding. I try to carve out a few consecutive hours for actual concentrated programming work. The rest of the time, I’m documenting or writing tests for coding, emailing, collaborating with others to organize how we’ll build features I also pitch in to interview candidates, write internal tools, and review other people's code for release10am-6pm
pros: pretty flexible w/r/t working from home, taking time off
cons: working nights? weekends? holidays? sometimes! ಠ_ಠ
not to mention meetups, classes, conferences, volunteering, side projects...
When I was with my startup, I would work late, through weekends. Especially at startups, the expectation is that you’re going to put in a lot of hours, while established companies have more regular hours. I used to take my work home a lot and work on the weekends when necessary. I did that for about three years. Now that I'm a little more established in my career, having a work-life balance is more important to me, so I'm lucky to have found a job with pretty regular hours. When I’m not working, I’m also often coding my own projects or contributing to my friends’. It’s a great way to learn new skills, programming languages, and technologies. And if you make something cool enough, you can put it on your online portfolio and use it to get a job!competitive for top jobs, but plenty of jobs to fill too
ways to enter: internships, programming accelerators freelance, building a portfolio
The programming field is fairly competitive, especially when it comes to working at super-desirable companies like Google and Apple. However, there’s also huge demand for programmers, especially here in the Bay Area. It’s also competitive to work at startups, but in a different sense: what you’re competing for is the survival of your company, so you might compete against other companies for market share, and the best customer experience that you can deliver as a programmer might make all the difference. You get into programming by getting a CS degree or by teaching yourself how to code, making some cool things, and showing it to people. And so far, so good on the employment outlook!If I could do it over again, I would start programming in undergrad, make English my minor, and graduate with a CS degree.
please join me
I don't want to get late into my career and only ever be surrounded by dudes. An amazing thing about programming as a career is how empowering it is to create things. Men will tell you all sorts of stupid things like how women are biologically inferior for coding, or just "don't like it". They're full of shit. There's so much opportunity here for everyone to contribute, so don't let people tell you you can't.these slides: my career day slides!(http://bit.ly/CodeCareer2015)
big list of learning resources
learn javascript: JS the Right Way
learn node: Node School
learn HTML: Dive Into HTML5