Solução: The given key was not present in the dictionary.!

Fazia tempo que não postava aqui nada relacionado à código, mas isto merece um post. Havia algumas semanas que fiz uma limpeza em meu computador. Andava instalando tudo quanto é besteira e tive inclusive de fazer alguns testes de conexão ASP.NET com MySQL, ocasião na qual tive de instalar o conector do MySQL. Bom, durante a “limpeza” acabei removendo o conector do MySQL, mas ficou para trás uma conexão com o dito-cujo no Server Explorer do meu Visual Studio 2010, que desde então, parou de permitir a manipulação das conexões. Ficava lá apenas a conexão com o finado MySQL que nem existia mais em minha máquina, disparando a mensagem “Unable to add connection. The given key was not present in the dictionary.”. Tentei várias e várias soluções, achando que o problema era com o SP1 que tinha instalado a pouco no meu VS, mas tudo em vão. Estava quase decidido a reinstalar o VS, senão meu Windows inteiro (vida de programador sem VS não é vida…) quando resolvi dar uma buscada mais a fundo no Google e encontrei a solução…

Solução

Bom, o problema todo mundo entendeu: eu tinha um conector do MySQL instalado, criei uma conexão, removi o conector e depois disso nunca mais consegui manipular o Server Explorer novamente que ficava me xingando. Existam basicamente três soluções, dependendo de quão radical você é ou se tem alguma conexão importante salva no Server Explorer.

A primeira solução, é reinstalar o conector que você usava antigamente e reiniciar o Visual Studio. Neste caso, eu teria de baixar o conector .NET do MySQL no site oficial deles e instalar na minha máquina, para só depois remover a conexão com MySQL do Server Explorer e depois excluir o conector.

A segunda opção, é ir em “C:\Users\[usuario]\AppData\Roaming\Microsoft\Visual Studio\10.0\ServerExplorer\”, obviamente trocando o nome de usuário pelo seu usuário (note que provavelmente se você excluisse seu usuário e criasse-o novamente, iria funcionar pois as configurações do Server Explorer são por usuário). Nesta pasta, entram as duas soluções restantes: se você tem conexões importantes que não podem ser perdidas, abra o arquivo XML “DefaultView.SEView” e remova a entrada com problema (o Visual Studio deve estar fechado). A outra solução, mais radical, é apagar esse arquivo por completo e já era. Basta reiniciar o Visual Studio e estará tudo em perfeita ordem.

Obviamente eu não achei esse diretório sozinho, tendo encontrado a solução completa no blog Flatlander.

O que fazer depois da escola?

collegeOuço muitas pessoas criticarem os cursos de bacharelado todos os dias. Geralmente o fazem pessoas com pouca instrução formal, que por falta de capacidade financeira ou simples ignorância, desdenham os cursos superiores tradicionais, chamando-os de antiquados, fora da realidade do mercado e longos demais.

Como bacharel que sou, sinto-me um pouco ofendido, uma vez que estas pessoas, de certa forma, criticam o caminho pelo qual optei e que tantos me benefícios me trouxe e ainda trará. Recentemente estava com várias idéias sobre o que escrever a respeito, e quando li o excelente post Devo Fazer Faculdade? no blog do Fábio Akita, me motivei a também falar a respeito.

Distanciamento do Mercado

Em primeiro lugar, bacharelado não visa inserir ninguém no mercado de trabalho. Ponto.

As pessoas que buscam os cursos de bacharelado tem a falsa sensação (ou lhes vendem esta ideia absurda) de que a faculdade é uma espécie de curso profissionalizante pra entrar no mercado. É óbvio que pessoas com instrução superior estarão sempre em vantagem em entrevistas de emprego, seleção de currículos, etc, mas isso porque os empregadores analisam apenas currículo e não necessariamente o conteúdo vistos no curso ou os conhecimentos reais das pessoas. Ou então estão apenas querendo estagiários para baratear mão-de-obra (caso mais comum).

Cursos de bacharelado visam fomentar o estudo de uma área de conhecimento, como as Ciências da Computação, a Engenharia da Computação ou os Sistemas de Informação. Elas visam instigar o aluno a pesquisar, ler, estudar, desenvolver novos estudos em cima de trabalhos já existentes e não formar meros profissionais. Se posso resumir o que foi dito em apenas uma frase é: o bacharel é um cientista, e não um profissional.

Técnico, Tecnólogo ou Bacharelado

Então você sai do Ensino Médio e o mundo cai sobre seus ombros, lhe forçando a escolher um caminho a seguir. Digamos que você seja alguém que curte tecnologia, informática, etc, nada mais natural que busque se aperfeiçoar nessa área para evitar ter de fazer serviços mundanos pro resto da vida, como trabalhar em linha de produção, trabalhos braçais, etc. Nada contra, apenas acredito que não se deve desperdiçar o potencial de grandes mentes com esses serviços.

Mas o que fazer a seguir? Um Técnico em Informática? Um Tecnólogo em Desenvolvimento de Sistemas? Um Bacharelado em Ciência da Computação? Você realmente tem certeza que quer virar um nerd?

Não vou entrar aqui no mérito da qualidade das instituições, o MEC já cuida disso e disponibiliza os rankings em seu site. Conheço muito Tecnólogo por aí que bate de frente com bacharelados, e muito Técnico caça-níquel, que só pensa na grana do aluno e não lhe entrega um conhecimento de valor. Estou falando dos cursos em si, com uma visão utópica de que o aluno sabe quais instituições são de confiança, sólidas, etc.

Daí entra a visão que o aluno tem quanto aos seus objetivos na vida: se ele não tem certeza do que quer ainda, a melhor opção é encarar o técnico. O custo é menor, o período também. Seu foco é mais profissionalizante, ou seja, com rápida ingressão no mercado de trabalho. Se não era exatamente o que quer da vida, os conhecimentos lhe ajudarão com outras profissões de escritório que possa vir a ter. Mas se você tem certeza de que computação não é apenas um hobby, e quer que se torne seu ganha pão, busque algo mais.

Os tecnólogos são uma alternativa meio-termo aqui. Um pouco mais longos que os técnicos mas menores que o bacharelado, eles possuem um custo mediano também. Estes cursos unem as qualidades de dois mundos, mas atraem cada vez mais um público um tanto quanto hipócrita: geralmente quem opta por um tecnólogo (geralmente) está querendo uma vida mansa, gastando pouca grana, colocando um curso superior no currículo e terminando mais rápido.

Muitos se iludem com o fato de que terão uma graduação e poderão fazer um Mestrado ou MBA depois, sendo que 99% desses preguiçosos nem mesmo sabem o que é um MBA. Eles citam que no tempo de uma graduação comum, terão curso de Mestrado, mas não sabem nem da metade dos sacrifícios necessários para conciliar serviço e Mestrado e como não estão acostumado com uma trilha de pesquisa mais teórica e menos prática, como as vistas no bacharelado, jamais conseguiriam se adaptar a um Mestrado em uma instituição de renome.

Mas não estou aqui para criticar esse pessoal, nem mesmo criticar o modelo dos cursos tecnológicos superiores. Veja se a instituição é credenciada no MEC. Converse com graduados nestes cursos (estão ficando cada vez mais comuns agora). Mas se for optar por um, não o faça por preguiça de cursar 5 anos de faculdade, faça para se atualizar, faça para complementar seu técnico. Se você tem preguiça para fazer algo tão simples quanto estudar, imagina quando tiver trabalhar de verdade…

E por fim, o bacharelado.

Você gosta de estudar? Mesmo?

Bacharéis são pesquisadores. Bacharéis de tecnologias como a informática estudam com afinco as tecnologias passadas para criarem as futuras. Ninguém aprende a como fazer um sistema xyz que está vendendo muito no mercado. O bacharelado não é um curso profissionalizante para que domine a linguagem X ou a plataforma Y.

Os bacharéis trabalham com abstrações, com raciocínio, com lógica, com algoritmos mais puros possíveis.

“Ah mas eu via Delphi no técnico que era legal e agora vejo só C na faculdade”.

Isso mesmo. E se acha que é dureza ficar 5 anos na faculdade, escrevendo artigos, fazendo pesquisas, estudando tecnologias antiquadas, nem tente imaginar como é um Mestrado. O pessoal gosta muito de dizer: “Eu não sou bacharel, mas sei programar melhor do que um”.

E…? Bacharel é programador agora?

Ninguém estuda 5 anos de faculdade pra aprender como programar em Java ou .NET. Eu sequer vi .NET na faculdade. ASP.NET tu aprende em um mês nos cursos que eu ministro pelo RS afora. Na verdade tu não precisa nem de professores pra isso, como explico nesse post.

Mas pra que servem os bacharéis então? Eles sabem programar pior do que o rapaz que só fez técnico…

Na verdade nem sempre.

Muitos bacharéis gostam o suficiente de algoritmos para buscarem o domínio de linguagens de programação fora do curso comum. Não é esse o intuito das instituições universitárias, mas pode ser o intuito do estudante, sem problemas.

Mas voltamos ao questionamento: para que servem os bacharéis?

Você já ouviu falar no MIT?

Foi no Massachussets Institute of Technology de onde saiu os estudos do genoma humano, da pesquisa espacial da década de 60, os primeiros computadores digitais e até o cinema colorido. Tudo feito por bacharéis e graduações superiores.

É isso que bacharéis fazem: inovação.

Obviamente você não precisa fazer inovação apenas dentro de laboratórios de informática, mas também em empresas, apenas esqueça esse papo de “não preciso de faculdade pra saber programar”. É claro que não precisa.

“Ah mas eu não vejo ASP.NET na faculdade, mi-mi-mi…”, Scott Guthrie também não viu. Ele graduou-se como bacharel em 1997 na Duke University sem nunca ter visto ASP.NET em sua vida. Isto porque no mesmo ano ele começou a criá-lo. Isso é o que um bacharel faz. Quantos auto-didatas da área de tecnologia da informação você conhece que criaram algo realmente grandioso como o ASP.NET, o Java ou o Google? Este último foi criado por dois DOUTORES em informática.

Pense a respeito do que quer para seu futuro.

Você quer ser um ótimo profissional? Sem problemas, talvez o bacharelado te ajude, mas não é o que irá te dar os conhecimentos essenciais para isso. Tente ao menos uma especialização depois dele.

Você quer criar inovação? Saiba que é pré-requisito para trabalhar no Google uma graduação em algum curso superior de tecnologia da informação.

Quer uma empresa mais inovadora que o Google (embora existam controvérsias)? O Facebook de Mark Zuckerberg só contrata alunos e ex-alunos da Ivy League, as faculdades mais prestigiadas dos EUA, mesmo tendo Mark largado a faculdade para cuidar da empresa.

É o típico “faça o que eu digo, mas não faça o que eu faço”.

Ciências, Sistemas ou Engenharia

Não me deterei falando de técnicos ou tecnólogos, visto que sou suspeito para falar. Dentre os bacharelados tradicionais, quais são as diferenças? Quais os objetivos? O que muda?

O curso de Ciências da Computação visa construir conhecimento em torno das tecnologias computacionais criadas até hoje. Os algoritmos, as redes, os compiladores, as linguagens, os sistemas operacionais.

Ela se focará em estudos técnicos e teóricos sobre estruturas de dados, inteligência artificial, computação gráfica e segurança de sistemas. Note que são diversas áreas abordadas e todas com um perfil extremamente técnico, então não entre nesse curso se tem aversão à pesquisas extenuantes ou escovação de bits…

Sistemas de Informação, o antigo Análise de Sistemas, teoricamente deveria formar analistas de sistemas como o próprio nome sugere, mas sinceramente nunca conheci um analista que não tivesse sido programador antes…

Dependendo da grade curricular da instituição, o curso de Sistemas tem apenas 11 cadeiras diferentes do curso de Ciências. Todas de Administração. Ou seja, esse curso tem características mais administrativas como gestão de tecnologias, gestão da informação, gestão empresarial, gestão de recursos humanos e por aí vai. Se você vê a informática como uma poderosa ferramenta de Business Intelligence, este é seu curso. Apaixonados por informática, optem pelo anterior ou pelo próximo.

O curso de Engenharia da Computação é o mais obscuro para mim. Embora eu saiba do que se trata, nunca conheci um formado neste curso ou sequer tive contato com a grade de um. Trata-se de um estudo teórico aprofundado do hardware, enquanto que os demais cursos se focam em software.

Estudo de arquiteturas computacionais, processadores, memórias, muita física e matemática. Estou para te dizer que esse curso demanda mais paixão por tecnologia do que os anteriores, visto que é o que tem o menor mercado dentre os três. Não que seja um mercado pequeno, principalmente fora do país…

E depois?

Se você tem dúvidas sobre o que fazer agora, não lhe recomendo pensar muito no que fazer depois da graduação.

Basicamente há dois caminhos a seguir. Ou talvez três considerando o mais fácil que é parar de estudar…O primeiro deles é obter um diploma Stricto Sensu, o famoso Mestrado Acadêmico. Voltado à pesquisa e docência, o Mestrado é pré-requisito para trabalhar nos maiores projetos de pesquisa do mundo, e para trabalhar nas universidades mais prestigiadas do Brasil. São 2 anos de pura teoria, experimentações, estudos, etc e é extremamente difícil de conciliar com o trabalho, vai por mim.

A outra alternativa são os cursos Lato Sensu, as chamadas Especializações ou Mestrados profissionais (os MBAs). Notem que ambos, Stricto e Lato Sensu, são Pós-Graduações, pois ocorrem depois da graduação. O que diferencia os mesmos são os seus objetivos. Enquanto que o primeiro é uma espécie de meia-graduação especializada em uma área de pesquisa (computação móvel, por exemplo), o segundo é voltado ao mercado de trabalho.

Os cursos Lato Sensu são as especializações e os cursos de MBA. Possuem grande renome no mercado de trabalho, e dependendo da instituição lhe permitem atuar como docente. Nada contra, desde que feito em uma instituição de verdade. Até que eu tenha terminado minha pós-graduação não quero falar muito a respeito mas com certeza é recomendado. Encare os fatos: a graduação tradicional é o “Ensino Médio” do Ensino Superior. Você não sabe um pouco de tudo, mas nada concreto de uma área, a menos que avance nos estudos.

Conclusões

Note que não estou criticando quem opta por não fazer uma graduação.

Conheço ótimos profissionais sem graduação, com uma sólida carreira e vastos conhecimentos em sua área de atuação. Mas não existe nenhum cientista da computação sem uma, ou ao menos sem ter começado uma graduação (como Steve Wozniak).

O Eniac foi criado por cientistas da computação do exército americano em 1945. O Google foi criado por doutores da computação na década de 90. O Facebook dos anos 2000 foi criado por um estudante de Harvard. O Windows de Bill Gates e Paul Allen também. Linus Torvalds cursou a Universidade de Helsinki antes de criar o Linux. Atrás de cada grande invenção realmente importante no mundo da informática, está um graduando ou graduado em um bacharelado. Pense nisso na hora de tomar sua decisão: você quer fazer a diferença? O bacharelado pode ser um caminho.

Fraude na contratação de estagiários

Nestes tempos conturbados de contratações abaixo de salários compatíveis, subvalorização da mão de obra em diversas empresas e aproveitamento da mão de obra barata estagiária, segue um excelente e-mail que recebi do sr. Vinicius Gass, advogado gaúcho que faz parte do escritório Campoli e Gass Advogados (www.gassadvogado.adv.br). Para você que é estagiário, leia com atenção para conhecer seus direitos e deveres. Para você empregador, faça valer a lei.

Fraude na contratação de estagiários

Estágio é o ato educativo escolar supervisionado, desenvolvido no ambiente de trabalho, que visa à preparação para o trabalho produtivo de estudantes. O estágio integra o itinerário formativo do estudante e faz parte do projeto pedagógico do curso (art. 1º e seu § 1º da Lei 11.788/2008).

Na maioria das vezes, muitas empresas vêm se aproveitando dos estágios para burlar a legislação trabalhista. A justiça do trabalho vem descaracterizando este tipo de estágio que tem como objetivo apenas utilizar o estagiário como uma mão-de-obra barata.

Vejam quais são os requisito primordiais que as empresas devem cumprir para que o contrato de estágio seja válido.

  • As atividades devem ser compatíveis com o curso, proporcionando APRENDIZADO ao estudante.
  • Atividades repetitivas e estagiários exercendo as mesmas funções de um empregado podem acarretar vinculo empregatício à empresa.
  • O cumprimento da carga horária estipulada na Lei de Estágios (30 horas semanais, exceção casos previstos em lei).
  • O acompanhamento do estágio deve ser efetivo pelo professor orientador da instituição de ensino e pelo supervisor da empresa, comprovado por vistos nos relatórios.

Quando a empresa não cumpre um destes requisitos, a justiça do trabalho vem descaracterizando a relação de estágio, obrigando as empresas a reconhecerem o vínculo empregatício da função, com direito a anotação na Carteira de Trabalho e pagamento de todas as verbas trabalhistas segundo a CLT.

Em outros termos, inexistindo comprovação de que o trabalho prestado, formalmente, sob a condição de estágio corresponda à complementação da aprendizagem do estudante e de que a instituição de ensino tenha participado dessa contratação, não como mera facilitadora, mas sim orientando e, inclusive, fiscalizando sua execução, tem-se que não houve contrato de estágio entre as partes, mas sim, relação de emprego.

Segue abaixo uma recente decisão do Tribunal Superior do Trabalho em relação a esta matéria:

EMENTA: CONTRATO DE ESTÁGIO. DESVIRTUAMENTO. Não há como reconhecer a validade do contrato de estágio, quando as atividades exercidas pelo estagiário não guardam relação com o aprimoramento acadêmico. Desvirtuada a finalidade do contrato de estágio, configura-se a relação de emprego entre as partes, devendo ser garantidos ao trabalhador os direitos trabalhistas daí decorrentes, com força no artigo 9º da CLT.

Para maiores informações, entrem em contato com o sr. Vinicius pelo e-mail [email protected].