For me, the worst thing about working for Google is how much I know about the future. Reading these discussions is difficult because I have enough information to say a lot more than I'm allowed to. Google does not keep anything from their employees, but they do tell you to be careful about discussing it with anyone outside of 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? ;-)
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:
Oh, you haven't seen "big company" yet, if you think Google is a big company.... I came from IBM which has something like 350,000 people working world-wide.
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.
Is there any way you could give your first-reaction answer for "what is the worst thing about working at Google?"
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).
I don't know where you get the notion that Python is in any way deprecated. I'd hope to know, as both a customer of Python @ Google and a part maintainer of some core Python libraries there. It _is_ discouraged for large projects, but there's a ton of glue in Python and more shows up all the time.
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.
"Deprecated in production" may be taking it too far, but there's an attitude there that Python is a third-class citizen and the Real Language Of Google is C++, with Java a solid second in the context of acquisitions.
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).
Hi, I just started at Google ~4 months ago in NYC.
> 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).
Is there any way you could give your first-reaction answer for "what is the worst thing about working at Google?"