On a topic that has been discussed a lot in recent years, Susam Pal nails it.
I've read a lot of blog posts on the culture at large services corporations, and most (including me) share the same view, that they provide a very bad learning environment for curious engineers. Susam differs by pointing out certain things which not many have done and he does it in detail. When I group companies under the label "traditional services corporations", I don't mean the new services startup like C42, whom I've observed, maintain a very nice environment like that of a startup.
About training provided by these organizations, Susam says,
People think that these organizations are good for freshers because they get a lot of training which they wouldn't get in other organizations. I must remind such people that attending trainings is not equivalent to learning.
He then moves on to talk about other stuff on training. But I would love to expand on the above sentences and add my views to it.
I strongly believe that what the new-comers are taught as trainees, is what is useful from the organizations point of view. The training provided at these organizations is only to ensure that the new guys stay productive from the organization's perspective. The trainees aren't taught with the intention that they are to be moulded as good engineers who can think, ask questions and feed their curious self. They are taught to be code monkeys who type out code according the spec provided and don't even bother to know, if the given spec or architecture is right or requires improvement or hell, it's even worse if you don't know the reason why something is being built in a particular way.
A startup-like culture promotes innovative thoughts, which lead to interesting implementations of ideas. That is one reason why a lot of startups who have gone on to become huge corporations, are striving hard to maintain the startup culture even to this day. Wearing formal attire and producing a bunch of clearly typed documents don't mean good software is being produced. These organizations are walled gardens of technical knowledge for avid tinkerers and like Susam says, they promote mud slinging in different forms. Engineer! Build! Create! (and whatever other verbs that are synonymous). Stop treating them as the only places to work at. You can teach a high school kid Java in a month and comfortably push him to such places.
P.S: If you have constructive ctirique or something to add to this topic, you are welcome. Else don't bug me with corporate nonsense. Feel free to rant about me on your blog!