-promotes visibility & transparency.
-is efficient in terms of cost & time to setup.
The biggest drawback is that it does not leave space (mental, sound & time kind of space) for flow to happen easily. Hence you will see productive programming start in late afternoon or lots of head phones. This is less so in shared rooms than in Open space.
Personally I prefer silence during work and have worked in startups with Cubicles, Office(great view of Mt. Rainier), Shared rooms & Open space and would rate individual offices as worse of the lot due to the walls, real and virtual.
How does one become good at problem solving?
http://www.topcoder.com/t
Use Charlie Munger‘s “Mental models” method as another approach, they are covered in this pdf http://www.focusinvestor.
What tools should a modern Python developer have under his belt?
Find out & use
-details of python REPL including dir & help command
-the Python coding standards, PEP 8 & Python API documentation standard, PEP 257.
-Read pythonic code, options include Guido’s essays likehttp://www.python.org/doc
http://www.google.com/sea
-Code to write: Runtime object alteration, even if you do not use it latter. Write an iterator.
-the Python standard library including string, date, persistence, regex, etc.
-create a python package & upload to pypi.
-write some unit tests with unittest\PyUnit\nose, http://docs.python.org/li
For using Python, consider Tornado (web framework) by the FriendFeed (nowFacebook Inc. (company)) team.
If you prefer a book, go through “Building the real time user experience” by Ted Roden
For using Ruby, you can use what VMware Cloud Foundry Platform-as-a-Service (PaaS) uses, Thin webserver, Ruby 1.9 fibers and async DB drivers, see this article http://www.igvita
For Ruby I have also seen references to orbited & juggernaut.