Minha impressão sobre o estágio foi muito boa, pois sempre quis ver "na prática" o que aprendia somente em teoria na faculdade. Por isso, quando tive a oportunidade de ingressar na IMEjr como estagiário e na gestão seguinte como diretor, não deixei passar pois imaginei que seria uma prévia do que encontraria no mercado de trabalho.
Embora a IMEjr seja um pouco desorganizada pela falta de continuidade dos seus integrantes (o que é explicado por vários motivos desde formaturas dos membros até falta de tempo para realizar um trabalho estrutural como, por exemplo, a criação de documentos que permitam a transmissão do conhecimento adquirido para futuras gestões), a empresa júnior dá a seus integrantes uma boa visão sobre como é estar no mercado. Tendo participado tanto da empresa júnior como de uma empresa "de fato", pude comprovar essa afirmação pessoalmente.
Quanto ao estágio na Rerum, sempre tive total liberdade para opinar sobre o que eu via lá. Por exemplo, no caso do R/Gen, verifiquei que não existia nenhuma documentação do código, o que certamente significava redução de produtividade para os programadores que viessem a trabalhar no seu desenvolvimento. Assim, expus o problema ao meu supervisor que concordou comigo e propôs que eu desenvolvesse uma nova versão totalmente documentada.
Com isso, meu supervisor ofereceu-me a possibilidade de praticamente "escolher" o que eu gostaria de fazer na empresa para utilizar posteriormente como trabalho de formatura.
Entretanto, um fator negativo que observei na empresa foi sua desorganização, provavelmente fruto de um crescimento muito grande, especialmente quando houve o "boom" de demanda por aplicações Web. Como haviam vários projetos a serem concluídos em pouco tempo, algumas preocupações com a infra-estrutura (como documentação de código) foram deixadas de lado.
As minhas críticas ao IME referem-se principalmente ao pouco apoio dado à integração entre os alunos e o mercado. Não espero que seja ensinado Visual Basic ou Delphi na sala de aula e nem acho que seria esse o caminho. O que eu acho válido é olhar com mais cuidado para a empresa júnior e fazer dela algo mais do que "fixar cartazes de estágio no mural". Isso pode começar a ser feito, em um primeiro momento, alocando-se uma sala maior para a IMEjr e promovendo-se palestras periódicas com pessoas que estão no mercado de trabalho e ex-alunos. Uma vez organizadas pelo Instituto, as palestras teriam mais credibilidade, já que os alunos do IME infelizmente não se aproximam muito da empresa júnior, realidade muito diferente da observada em outras faculdades da própria USP.
Na minha opinião, as disciplinas mais importantes do IME para o trabalho desenvolvido no meu estágio (além das básicas como Estruturas de Dados, etc) são:
As diferenças entre a forma de trabalho em grupo que eu observei na empresa e na faculdade são poucas. Em ambas, sempre tive a colaboração imediata das pessoas que estavam ao meu redor. Acho que a única grande diferença é na motivação que os membros do grupo têm para oferecer ajuda. Na faculdade essa ajuda é mais altruísta do que na empresa, já que existe muito mais pressão do chefe caso algo não dê certo. Assim, para evitar problemas futuros com prazo, as pessoas ajudam-se na empresa a fim de manter a produtividade. Outro aspecto é o compartilhamento de conhecimento que existe na empresa. Por exemplo, havia uma pessoa na Rerum que sabia tudo sobre programação orientada a objetos mas sequer tinha noções de programação JavScript, HTML ou mesmo sabia usar um FTP. Então, eu pedia dicas de modelagem UML e a ensinava a resolver esses problemas que ela não sabia. Acho que esse tipo de situação é muito mais frequente na área de informática do que em outros setores, uma vez que novas tecnologias surgem a todo instante e não é possível que uma pessoa sozinha retenha todo o conhecimento. Uma consequência imediata disso é a necessidade constante do trabalho em grupo.