Hacker News new | ask | show | jobs
by strlen 5390 days ago
> Basically, in SV, you can get 150K salary with 20 years experience and PhD only at Facebook, Google, Oracle, etc.

Absolutely false. If you've got 20 years experience and a Ph.D and are getting $150k at Google, you're getting seriously screwed (a senior/staff SWE is makes more in base + year-end bonus + RSUs). If you're at Facebook, you're still probably making more in _base_ and (again) get RSUs and bonuses worth something.

Outside of these companies, there are tons hiring -- especially for mid-career folks. In fact, Google is a great place for folks early in their career, but they have issues hiring mid-career folks (but they've been getting better about it).

My advice is, know something other than "read text from a database and display it on the screen". Writing basic business/consumer CRUD applications is a solved problem. Yes, it used to be that one would have to use C/C++ and much "tricky" programming to reliably do this (I still remember how complex CRM, ERP and CMS packages from the 1990s were!), but that's not the case now. Nowadays this involves stringing several open source / commercial libraries together, rather than actually building core technology. Not only is building these applications a solved problem, for non-software companies it's actually more beneficial to purchase and customize these applications rather than build their own.

I remember reading stories (in Coders at Work, I believe) where a young programmer working for a hospital (building a record keeping system) had to code/debug assembly. These days he'll be lucky to write a few lines of PHP, but most likely will just end up customizing an existing EMR system.

If you want your programming ability to be an asset you can leverage, there are two ways: you can be a systems/networking/distributed systems developer, or you can learn a topic like computer vision, AI/machine learning/NLP. In first case you should know C, C++, socket programming, distributed systems and (for few companies) general JVM basics (garbage collection, performance) like the back of your hand (this is something you can still do to a large extent on your own time). In the second case, you should be sure to have a solid grasp of the Computer Science / Math / Stats involved.

Both of these are applicable in many areas: from finance, to highly scalable web applications, to stand-alone products (web browsers require a lot of systems programming chops, there is also data mining software, enterprise search, security/spam prevention...). You don't need a Ph.D for both of these, and (unfortunately) outside of Google, Oracle, Facebook and a few other companies (that have a healthy relationship with the academia) a Ph.D. is considered a negative. They do require persistence, passion and willingness to invest time and take risks: taking jobs in companies willing to take a risk _on you_ by giving you challenges and responsibilities.

1 comments

There was a time when a factory worker or auto mechanic could save and buy a house.
My auto mechanic lives right next to my parents, but has slightly more expensive home. My dad is a mathematician, my mom is a software engineers and this is all in Silicon Valley. Yes, they're in Almaden and not in Menlo/Atherton.

A rank-and-file software engineer working on say business applications or relatively non-specialized software can still afford a home in Fremont (even less expensive).

If you want to buy a home in the 280/101 corridor or in Manhattan, yes, you need to do something different. Don't expect to have a 98-99th percentile income without being at 99th percentile in your profession (but again, doable for a Staff Engineer at Google, or someone who joined a relatively safe-bet pre-IPO startup like Facebook).