"Não há nada de nobre em ser superior a seu companheiro; Verdadeira nobreza é quando superas o seu antigo eu." - Ernest Hemmingway

Quando criança gostava de assistir anime e fazia tudo para chegar em casa antes das 16:00 horas para ver o Goku em acção na series Dragon Ball Z (Dragon Ball Z é uma série de anime produzida pelo estúdio Toei Animation. Baseada na série de mangá Dragon Ball escrita por Akira Toriyama). Ele foi uma personagem chamativa e interessante, era forte mais não era muito inteligente. Mas existia um grande poder dentro dele que até hoje admiro. Como que ele consegui derrubar pessoas que eram muito mais forte que ele?

Inimigos que Goku derrubou (Freiza e Dodoria)

Primeiramente Goku foi capaz de superar a si mesmo, Ele treinava e aprendia novas técnias no Hyber Bolic time Chamber ou o quarto de espirito e tempo. O quarto de espirito e tempo foi um quarto de treino aonde 1 dia é equivalente a uma ano no mundo real. Uma hora é equivalente a 15 dias, 5 horas e 14 minutos. Alem disto a gravidade era muito mais forto no quarto do que o mundo real, Por isso Goku escolheu este lugar como seu campo de treino.

Ele ficava dias no quarto de espirito e tempo treinando sozinho. Isso tudo para conseguir superar a si mesmo. Assim quando terminava voltava no mundo real e os amigos dele admiravam as suas novas capacidades. Quando chegava hora de lutar encarava dificuldades e problemas mas sempre provou a vitória e ganhava o respeito do mundo.

O que isso me ensinou?

Isso me ensinou que nos precisamos pensar em ser melhor que ontem e não desejar ser melhor que o outro, o foco deve ser você. Tambem ajudou-me em criar um plano estratégico para melhorar as minhas habilidades.

Cria seu Quarto de Espirito e Tempo

Eu como Goku, criei o meu proprio "quarto de espirito e tempo" aonde aprendo novas técnicas, linguagens de programação, e ferramentas para ser um melhor programador e solucionador de problemas. Fazendo exercícios duros que nem o atleta quando esta treinar para conseguir o primeiro lugar na corrida de 100m.

Sempre que possível, você deve se dar tempo para estudar uma nova linguagem de programação antes de tentar escrever o código de produção com um. Se você tentar resolver um problema não trivial numa linguagem que você nunca usou antes, tú vais contra uma regra de resolução de problemas: Evita frustração. Define a tarefa de aprender uma línguagem, e concluir a tarefa antes de criar um programa "real". É claro que, no mundo real, por vezes não somos completamente sob controle de quando são atribuídos projetos. A qualquer momento, alguém pode solicitar para escrever um programa em uma linguagem particular, e o pedido poderia ser acompanhada de um prazo que nos impediria de estudar com lazer a língua antes de abordar o problema real. A melhor defesa contra deparar com esta situação é começar a estudar outras linguagem de programação antes de lhe ser absolutamente necessário para conhecê-los. Investigue línguagens de progamação que lhe interessam ou que são usados para áreas em que você espera programar durante a sua carreira. Esta é uma outra situação em que uma actividade que parece como um mau uso do tempo a curto prazo vai pagar grandes dividendos a longo prazo. Mesmo se tu achares que não vais necessitar-lo no futuro próximo, estudar outra LP pode melhorar suas habilidades com as outras línguas que você já sabe. Porque isso força a tua mente a pensar em novas ou diferentes maneiras, quebrando os velhos hábitos e dando-lhe perspectivas frescas sobre suas habilidades e técnicas. Pense nele como o equivalente de cross-training para programadores.

Começa com as coisas que já sabes

Quando começas aprender uma nova linguagen de programação não sabes nada dela. Se não é a tua primeira linguagen de programação, podemos dizer que já sabes muito sobre programação. Neste caso a melhor coisa fazer é aprender como códigos escritos na linguagen que ja sabes podem ser escritas ou códificadas na linguagem nova. Importante é aprender fazendo. Lendo téorias sobre programação não vai ajudar muito. Investiga sistematicamente os elementos de linguagem individuais, tais como instruções de controle, classes, outras estruturas de dados, e assim por diante. O objectivo é transferir o máximo de seu conhecimento prévio quanto possível para o novo idioma.

Investiga as diferenças

O próximo passo é estudar as diferenças entre linguagem X e Y. Existem linguagens de alto-nivel semelhantes mas tambem existem diferenças entre elas e você precisa saber isso. Importante aqui é escrever o código para saber as diferenças, se você só ler vais terminar com meio conhecimento. Isso é importante para LP que possuím um sintaxe semelhante como C++, C# e Java que são desecendentes de C. Algumas diferenças no sintaxe podem enganar. Considere este exemplo:

Código escrito em C++



integerListClass listadeNumeros;
listadeNumeros.addInteger(15);


						 

Código escrito em Java



integerListClass listadeNumeros = new integerListClass();
listadeNumeros.addInteger(15);


						 

Nas primeiras linhas foram apresentadas código em C++, podes dizer que a primeira linha esta criar um objeto, numerodeLista, de uma classe, IntegerListClass, e a segunda linha esta invocar o mêtodo addInteger no objeto. Se a classe já existe e contêm o metôdo com aquele nome e que recebe um numéro inteiro como paramêtro, o código tem sentido. Agora, imagina que eu te disse que este código foi escrito em Java, e não C++. Sintaticamente, não existe um erro neste código mas em Java a declaração de um objecto de uma classe não vai criar uma nova instancia do objecto porque em java objetos são referencias, elas se comportam de uma maneira análoga aos ponteiros em C.

Você provavelmente iria pegar a essa diferença particular entre Java e C++ rapidamente, mas outras diferenças podem ser muito sutil. Se não criar um tempo para descobri-los, eles podem fazer a depuração muito difícil na nova línguagem.

Estuda código bem escrito

Podes melhorar as suas habilidades criando novos programas originais mas para ser mestre precisas programar como o mestre. Neste caso precisas estudar código de um mestre. Melhor passo a tomar é procurar um projecto open source e estuda o codigo fonte dela. Procura saber exactmante o que o programador estava pensar quando escreveu o código. Estuda o estilo de código e o desempenho do mesmo código. Ao fazer isso, você vai evitar Um problema comum. Não usar uma espada como se fosse uma faca.

Conclusão

O Goku superou muitas dificuldades durante a sua "vida". Foi vítorioso em várias batalhas mas ele sempre consegui alcançar níveis mas altos que outros pensavam impossível. Uma prova disso é quando transformou em super saiyan (Super Saiyan é um modo em que Saiyan supera os limites do poder anterior e ficar 50x mais forte do que antes) Assim como Goku nós tambem precisamos superar o nosso "eu anterior" e ficar 50x melhor. Na realidade isto é um processo que leva bastante tempo e esforço. É necessario usar cada dia para melhorar as suas habilidades. Faz tempo sem assistir o Dragon Ball Z mas as lições que eu fui buscar nela ajudou-me muito e espero que tambem te ajuda. Boa Sorte com seu quarto de espirito e tempo! :) Adeus.

"Não há nada de nobre em ser superior a seu companheiro; Verdadeira nobreza é quando superas o seu antigo eu." - Ernest Hemmingway