Mostrando postagens com marcador qualidades. Mostrar todas as postagens
Mostrando postagens com marcador qualidades. Mostrar todas as postagens

terça-feira, 5 de junho de 2012

Programação Android, aprendendo direito.


  Bom, você já deu uma verificada como funciona a programação Android, talvez tenha seguido um ou outro tutorial, e decidiu investir seriamente em aprender como desenvolver aplicativos para o Android.
  Nesse ponto, estou considerando que o seu conhecimento, de programação em geral e da linguagem Java em particular, seja pelo menos intermediário.
  Também estou considerando que você não tem acesso a um curso de programação Android numa dessas escolas conceituadas de pelo menos umas 40 horas. Ou, se tiver, já tenha terminado.
  A pergunta a ser respondida é: qual o caminho a seguir?
  Eu, recomendo que você use um bom livro como guia nos próximos passos.
  Um livro que seja recomendado pela comunidade. Tem que ter o aval de programadores experientes.
  Neste ponto eu desaconselho (existe essa palavra?), não recomendo de jeito nenhum, tentar seguir o caminho mais tentador, por parecer mais barato, de seguir apostilas gratuítas, video-aulas, ou coisas do gênero. Inclusive tutoriais, a menos que seja oficial do Google, ou, seja recomendado pela comunidade experiente.
  E por que um livro é mais indicado? Porque um livro bem escrito foi pensado como uma sequencia de lições, graduadas para se aprender passo-a-passo, preparando uma base sólida de conhecimentos mínimos para se desenvolver alguns aplicativos que representem vários aspectos das diversas possibilidades do ambiente Android.
  Mas, os outros materiais não podem ter essa mesma função? Poder, pode. Mas, nem sempre. E, além disso, me responda você: qual seria o custo para você se aprender errado?
  Neste ponto você não tem como avaliar se o material é bom ou não. Vamos evitar muita decepção e tempo se evitarmos isso.
  Esses materiais devem ser usados como um complemento, como material de consulta, como exemplos de uso. E, também, para avaliar seu conhecimento, se descobrir falhas nos códigos. Também, para aprender outras tecnicas de programação.
  Você já deve estar se perguntando, ou pelo menos pensado, espera aí cara, você escreve tutoriais para quê? Eu respondo mais tarde, aguarde...
  Eu disse seguir um livro, mas se tiver mais algum(ns) para consultas seria interessante. Aí você vai achar que eu esteja de gozação. Não, não estou. O problema é que perfeição está longe do ser humano, então o tal livro base pode ser bom, mas perfeito, nunca! Pode ser superficial num ponto, ou, não abordar algum tópico importante.
  Aprenda a ler códigos. Estude códigos. Aprenda com códigos. Os samples devem ser consultados sempre!
  Se conhecer algum programador Android experiente que possa ser consultado seria excelente. Se não tiver, consulte foruns e o Google. Para a maioria das suas dúvidas você vai encontrar as respostas que foram respondidas para alguém que teve a mesma pergunta. Se não encontrar, pergunte você mesmo em algum forum.
  Agora, vamos tentar responder a questão dos tutoriais. Quando alguém se dá ao trabalho de escrever um tutorial, ele está tentando passar uma informação sobre algum aspecto do Android (vamos considerar apenas o Android). Significa que o autor do tutorial está focado num tópico. Muitas vezes está passando por cima de uma série de considerações, como boas práticas, consistência, inclusive segurança, etc. Está também direcionando o tutorial para um determinado público, considerando nível de conhecimento, experiência, etc. Então, o novato vai achar que tem um exemplo completo e acabado, quando o tutorial está tentando passar uma (boa) idéia a ser desenvolvida.
  Quando você estiver mais ou menos na metade do  livro, você pode e deve iniciar algum projeto para aplicar o aprendizado.
  Bons estudos!

Como ser um bom programador Android


Você quer ser um bom programador Android? Então desenvolva as seguintes características ao máximo:
Paixão por programação
Gostar muito de ler
Gostar de aprender
Curiosidade
Autodidata
Inteligência
Memória
Concentração
Paciência
Humildade
Ensinar
Gostar de desafios
Organização
Planejar
Projetar
Algoritmos
Estrutura de dados
Design Patterns
Boas Práticas
Conhecer os recursos da linguagem Java e as bibliotecas do Android
Preguiça
Impaciencia
Ego
Precisão
Cumpridor de prazos
disponibilidade de tempo
Flexibilidade
Desconfiometro
Dedicação e perseverança
Solucionador de problemas

Você precisa ter aquilo que chamo "Paixão por programação", amar programar. Então, programe, programe e programe.
Você precisa "Gostar muito de ler"  pois é preciso "Gostar de aprender", porquê tem uma imensa "Curiosidade" para conhecer detalhes e um pouco de tudo.
Ter sempre um livro ou artigo ou tutorial sendo lido, estudado, esmiuçado!
Precisa ser "Autodidata", pois não teria como pagar cursos para tudo. Aliás, nem existe curso para isso tudo. Então, ter uma razoável "Inteligência" e "Memória" são fundamentais.
Capacidade de "Concentração" e "Paciência".
Ter "Humildade" para aprender com os melhores e uma dose maior para aprender com os novatos. E reservar um tempo para "Ensinar", saiba que ensinar é uma maneira de aprender!
Ler códigos e soluções de terceiros.
"Gostar de desafios", novidades, novos problemas, isso é o seu oxigenio!
Ajuda muito ter 'Organização", saber "Planejar" e "Projetar".
Ter um conhecimento geral de processamento de dados é importante, conhecer "Algoritmos", "Estrutura de dados", "Design Patterns" e é claro conhecer e usar  as "Boas Práticas" de programação.
"Conhecer os recursos da linguagem Java e as bibliotecas do Android", profundamente. Classes, objetos, frameworks, threads, activities, services, broadcasts receivers, sqlite, views, screens, smartphones, tablets, nullpointerexceptions: esse é o seu mundo.
Você precisa de uma dose de "Preguiça", para fazer código que funcione o mais rápido possível, para fazer código fácil de ler para não ter que gastar tempo no futuro, que seja fácil de fazer manutenção, e principalmente fazer código reutilizável, afinal fazer código repetitivo é demais para um preguiçoso!
"Impaciência", não dá para ficar esperando as coisas acontecerem, antecipe-se. Prepare-se para o futuro.
"Ego", tem que ter orgulho do seu trabalho. tem que ser um modelo a ser seguido, não ter um código amaldiçoado! Imagine um reles estagiário criticando um trabalho seu? Nunca, jamais!
Você precisa desenvolver com "Precisão", o programa tem que funcionar 100%.
Você deve ser um "Cumpridor de prazos", para isso saber avaliar a quantidade de trabalho e a sua dificuldade é fundamental.
E o que falar da "disponibilidade de tempo"? Precisa aprender a administrar o tempo desde cedo. Senão, não vai dar para fazer tudo isso. E, acima de tudo, existe muita vida lá fora!
Tenha "Flexibilidade", pois, muitas coisas irão mudar durante o desenvolvimento.
"Desconfiometro", este é um aparelhinho que deve ter sempre bem calibrado. A sua solução é a melhor? É abrangente? É facilmente alteravel? Tem pontos fracos? É como um sexto sentido, que vai ajudar em situações onde é dificil antever ou prever, mas, com ele você vai antecipar um possível problema.
No fim, tudo se resumirá em "Dedicação e perseverança", 99% de transpiração e 1% de inspiração e talento! Não se engane, nada substitui o trabalho duro.
Aí, você vai ser considerado um "Solucionador de problemas", aquele cara que sempre encontra uma solução para os problemas mais dificeis!
Felicitações, você agora é um bom programador Android!