Como um dos quatro estagiários que estão na Lambda3 atualmente, resolvi descrever meu trajeto até o momento.

O Início, as Apresentações e as Atividades

Comecei a estagiar na Lambda3 em março. Quem viria a conduzir (ou ajudar com) o treinamento seria o Jonas Abreu. No primeiro dia ele já me apresentou ao pessoal e ao ambiente da empresa. O que pude observadar, já de início: as divisões das mesas são baixas, o que facilita a comunicação; a sala de descompressão (uma sala em que podemos ficar pra descansar/jogar video game/ler alguma coisa/etc).

Além disso, me mostrou também o plano do estágio (os conteúdos previstos e a sequência em que seriam passados), que tinha algumas coisas que eu já havia estudado o básico (e que já pretendia var mais a fundo) além de coisas que eu não sabia nem o básico. Então acabei me animando mais ainda pra fazer as atividades.

Depois de apresentar o conteúdo, foram passadas algumas atividades também. Uma dessas atividades era, justamente, escrever posts sobre coisas que eu havia aprendido na semana anterior (a ideia é que fosse feito ao menos uma publicação por semana, apesar de eu estar devendo alguns posts atualmente). Com essa atividade (e enquanto desenvolvia as outras em que, invariavelmente, acabava pesquisando por meios para resolver algum problema e/ou utilizar alguma técnica) percebi a importância que essas publicações têm. Eu já acompanhava alguns blogs antes, mas ainda não tinha parado pra pensar sobre o quanto a pessoa que está escrevendo contribui com a inserção/evolução de outras pessoas nos temas abordados nas postagens.

Inclusive, na Lambda3, quase todos (senão todos) mantêm alguma atividade nesse sentido (blog, casts etc).

Outras atividades que tomei, por questão de sobrevivência, foram melhorar no Mortal Kombat (apesar de meu progresso ser vergonhoso) e no FIFA (onde já me desenvolvi razoavelmente, dado minhas habilidades iniciais [isso significa que melhorei mas que ainda sou ruim]).

A Descrição dos conteúdos,

Depois de me passar o plano de estágio, o Jonas explicou que as atividades seriam passadas seguindo o conceito de prática deliberada (conceito que me fez, depois aprender a repeito, parar de reclamar por ter que fazer atividades que eu tomava como chatas, para aprender algo que eu queria [em âmbitos gerais, não apenas em relação ao estágio]).

Os Conteúdos abordados, as Práticas e o Projeto

A primeira coisa passada foi a respeito das sintaxes do C#. Ainda não tinha usado essa linguagem, mas acabei gostando bastante. Junto disso, foram passadas as idéias e boas práticas para o desenvolvimento com OO (enquanto fazia os exercícios pra aprender nessa etapa, percebi que meus códigos, mesmo quando usava uma linguagem OO, acabavam saindo num estilo misturado de OO e procedural).

Depois disso vieram alguns conceitos a serem observados nos códigos (para facilitar a manutenção e o entendimento posterior, tanto por quem escreve quanto por outras pessoas), que seriam: sintaxe, semântica, contexto e densidade de informação (aqui tem um post bem completo a respeito desses temas). Um dos pontos levantados por ele, que achei interessante, foi em relação à nomenclatura de classes, métodos, atributos etc., porque ele introduziu a ideia de que, ao nomear algo, devemos escolher expressões que façam sentido à quem está desenvolvendo (incluindo a equipe). Apesar de ser algo simples (e lógico de se fazer), não é o que, por vezes, aprendemos a dar atenção.

Em seguida, aprendi a escrever testes automatizados para os códigos e o conceito de TDD. Vi a grande diferença que faz ter testes na aplicação, tanto em relação à segurança, pois sabe-se quais casos o código cobre, quanto em economia de tempo, uma vez que, quando algo quebra, a identificação do problema ocorre de forma bem mais rápida, quando comparado a não ter teste algum.

Após tudo isso, veio a vez da parte relacionada ao front-end de desenvolvimento para web.

Os exercícios começaram abordando a estrutura do html. Um dos pontos que, desde o início, aprendi que fazia de forma equivocada, foi escolher tags baseado na exibição e não no significado que determinado elemento teria.

Acabados os exercícios de html, foi a vez de css. Percebi que, apesar de, por vezes, negligenciado, é preciso treinar bastante.

A parte final desse bloco foi javascript (seguido por jQuery). Pra quem só tinha aprendido a desenvolver em linguagens OO e procedural, entender um pouco do funcionamente de javascript foi bem interessante. Também aprendi a realizar testes, utilizando Jasmine.

Então veio a vez de aprender MVC (sendo aplicado com ASP.NET). Eu gostei da estrutura desse modelo, a forma como ocorre a separação das responsabilidades acaba facilitando o desenvolvimento/manutenção da aplicação. E também, realização de mais testes.

A parte final do treinamento (que é a em que me encontro) se refere à aplicação, efetivamente, do que foi aprendido. A proposta é fazer isso participando de um projeto. Acabei entrando em um projeto interno (de um sistema web).

Nessa parte, realmente, estou aplicando o que vi até o momento (inclusive de forma interligada), além de acabar aprendendo coisas novas (em relação à utilização das tecnologias, ao trabalho em equipe e conceitos como desenvolvimento com foco no cliente).

O TDD & BDD, a Análise de negócios e as Considerações finais

Nesse período, acabei participando de um treinamento de TDD e BDD com o Giovanni Bassi e o Victor Hugo. Esse treinamento acabou agregando muito conhecimento ao que eu já havia visto do tema com o Jonas. Aprendi novas técnicas e tecnologias, além de ir mais a fundo na ideia do desenvolvimento orientado à testes.

Também vi uma palestra com o Cláudio Kerber (em que ele aprensentou à todos os estagiários aqui da Lambda3) sobre análise de negócios. Essa aprendi melhor o conceito e vi sua importância sempre que tratamos com os clientes. Porém, pra mim, o que ele apresentou aqui acaba se aplicando à diversos tipos de interações, e não apenas quando tratamos com clientes (como o entedimento do problema que a pessoa tenta explicar, sabendo ouvir e interpretar o que é passado etc.).

Por último, quero ressaltar que o aprendizado que obtive durante o tempo de estágio não se deu apenas pelo treinamento que tive. Eu acabei (e continuo) absorvendo conhecimento por parte de todos por aqui (por meio de dúvidas que tiro com o pessoal e de conversas que tenho). Como o pessoal por aqui entende bastante do que utiliza e está sempre atrás de coisas novas, as conversas sempre rendem novas informações (que, em muitos casos, serve de ponto de partida/auxílio para quem quer aprender determinado tema).