Is there any way you could give your first-reaction answer for "what is the worst thing about working at Google?"
Is there any way you could give your first-reaction answer for "what is the worst thing about working at Google?"
I think this has a chilling effect on employees' participation in outside fora, leading to isolation between the internal community and the "real" Internet community. We have a lot of internal projects that could easily be Free Software, for example, but the person that wrote them got enough intellectual gratification from the internal community, and so never bothered. This is why you see people join Google and then disappear from the Internet. Google's internal community is like the Internet, but without all the bad stuff.
> For me, the worst thing about working for Google is
> how much I know about the future.
I'm assuming you're talking about the future as it relates to Google (future Google projects, future directions for current projects, what Google's end-game is for the self-driving cars, etc). No Google Time Machines in the works or Google Future Viewer for Android? ;-)Although, chances are, if Google (or anyone else) ever invent time travel, you'd already know about it.
My first reaction would probably be "communication overhead". It is a big company, and while we try very hard to work like a startup, it usually means that you have to interact with a lot of teams to get anything substantive done. The great thing is that you get to interact with a lot of very smart people; the hard thing is that you have to interact with a lot of very smart people to get anything done.
I had a back-and-forth with another (ex?) Googler yesterday about this:
I came to Google and said, "how refreshing!" VA Linux Systems was too small (and taught me an awful lot about how not to run a startup). IBM was too large (and awfully bureaucratic). Google for me is a very nice mid-sized company.
If you care a lot about programming languages, you're going to be frustrated. Python: deprecated in production. That leaves Java and C++, which are le suck. Go is genuinely decent but none of the legacy projects (what you'll be tasked on in your first 18 months) are in it.
If you don't care about PL quality or actually like reading thousands-of-lines-long legacy C++ modules (some people do, and it's great for the world that "Sherlock Holmes" types exist).
Google has a lot of pluses, too, and if you get put on a good project it's pretty neat. Plus, the food is awesome (better than what most restaurants serve).
Working on (what you saw as) a legacy project was your experience. My experience was far different (I'm sure many others would agree).
Also, I know plenty of people that started working on non-legacy projects, and I'm working on a legacy project and find it fantastically fulfilling.
To be reasonable about it, I understand this impulse. Python is a pretty poor language to design large-scale systems in. I don't like C++, but one thing I've learned in using Scala and Ocaml is that static typing is a major asset, and that dynamically-typed programs can rot very quickly (even if written in the functional style).
> Python: deprecated in production.
I have no idea where this idea came from.
> the legacy projects (what you'll be tasked on in your first 18 months) are in it.
This is not an accurate generalization. I've been developing completely greenfield Java and Python code since about 3 weeks into starting.
> If you don't care about PL quality or actually like reading thousands-of-lines-long legacy C++ modules
I'm quite curious what role had you "reading thousands-of-lines-long legacy C++ modules" - all the typical C++ infrastructure modules I've used (eg Bigtable) have tons of resources to learn them, and after that I typically find what I need reading auto-generated docs (doxygen/javadox/pydoc/etc).