Great software engineers are hard to find, let alone hire and keep.
Which is why more people than ever are trying to become one. The average annual salary for Google (GOOG) software engineers, for instance, now hovers around $145,000 and skyrockets to as much as $550,000, according to job site Glassdoor.
But training to be a software engineer and snagging a high-profile, high-paying position afterwards isn't simple or easy, even for some computer science grads from top-tier schools. Zach Sims, co-founder of the education startup Codeacademy, and Matt Mickiewicz, co-founder of tech job recruiting site Hired.com, offer several do's and don'ts for landing a plum role in Silicon Valley.
Don't: Just take courses.
Build something, like a website or an iPhone app. "If you're just taking a class, it becomes much more about fulfilling the requirements for a class, but if it's about what you want to build, you're constantly being reinforced by seeing the actual manifestations of what you're learning," says Sims. Plus, many potential employers will want to see a portfolio of real-world work demonstrating what you can really do.
Do: Study data structures and algorithms.
Both are computer science fundamentals, and both make up a large part of the interview process with companies, explains Mickiewicz. It's possible for people to build some applications and write a lot of code without having a deep understanding of data structures and algorithms -- and some do -- but that lack of basic understanding is something potential employers will suss out quickly.
Don't: Do it just because.
Understand what you're getting yourself into, and make sure it's for the right reasons. "You can kind of dip your toes in and figure out whether this is something you're really interested in before committing whole-hog," says Sims. He also points out that it's unrealistic to assume you'll get a job at a top company that pays $120,000 a year. "Not everyone works at Google. Not everyone works at a startup."
Also, don't: Think you can fly solo.
Contrary to popular belief, coding isn't always a solo activity conducted from one's college dorm room. (Though of course, it can be.) More often, it's a collaborative process with others, who may for instance, help you figure out what to learn, troubleshoot your code or build on top of it.
But do: Form habits.
"We see a lot of learners say, 'I'll do 15 minutes a day,' sticking to that and actually doing it," explains Sims. Indeed, this piecemeal approach is more realistic than swearing you'll learn how to build a website in two weeks. To borrow the old adage: It's a marathon, folks, not a sprint.