Complete a frase: "Todo programador java BOM que eu conheço..."

72 respostas
R

Esse tópico ainda não existe aqui né. Se sim me perdoem, não encontrei…

Vamos lá:

Todo programador java BOM que eu conheço…

…sabe que pra continuar sendo BOM não vai poder parar de estudar nunca.

72 Respostas

V

… conhece as próprias limitações.

… sabe que herança deve ser evitada.

… é capaz de aprender mais e melhorar o que já sabe sem precisar de ajuda.

… conhece as limitações e problemas da linguagem java.

D

…tem cabelos brancos.

M

Sabe que java vem de Javali.

L
  • não diz “ah isso aqui é rapidinho pra fazer”
  • é um “programador poliglota”
  • não se apega “de coração” com frameworks/ides/linguagens
J

… toma muito café.

M

Se atualiza constantemente, estuda bastante e se dá bem. :wink:

A
  • não fica com medo da Oracle rs rs rs !!!
M
  • sabe que Java não resolve todos os problemas do mundo.
  • conhece outra(s) linguagens além do java
  • sabe que não existe bala de prata
  • estimula o restante da equipe a sempre estudar e evoluir na carreira
J

é quase um autista…

V

… gosta do que faz.

M

Já tomou um ChuckNorrisException!

P

…não programam mais na linguagem java.

M

partindo desse principio não existem bons programadores (vivos)…rs

é amigo do google, sabe que é muito bom mais também sabe que não sabe de tudo.

C

[list]Quer evoluir sempre[/list]
[list]Não se acha tão bom a ponto de desprezar a ajuda de outras pessoas.[/list]
[list]Post do ViniGodoy++[/list]

C

+1. So nao tive a coragem de dizer isto aqui. rsrs

D


está na assinatura

D

gosta do que faz, não programa só em java e escreve código pra pessoas entenderem.

M

Responde posts no GUJ ! :smiley:

Fecha os recursos com close(), dentro do finally e não no meio do try

Usa flush(), antes de fechar um OutputStream

Trata as exceções

Escreve mensagens de erro para o usuário de modo que ele consiga entender o que ele fez de errada (coisas como “CPF inválido” ao invés de “Foi encontrado um erro no preenchimento dos dados, por favor verifique.”)

Sabe programar orientado a objetos (acho que esse é o mais dificil hoje)

Já usou a frase “…Não existe bala de prata…” ou suas variações.

M

Vende Oracle…

C

+1. So nao tive a coragem de dizer isto aqui. rsrs

“Papo estranho com gente esquisita…”

Que não devemos nos bitolar em uma linguagem, tudo bem. Concordo até a última letra.

Mas excluir o Java do hall de linguagens interessantes e úteis, acho injusto.

Se o objetivo foi criar flame, ignorem a minha mensagem.

Se não, seria mais útil se postassem os motivos.

Parece que tem um pessoal saindo do bitolamento do Java e entrando no bitolamento do Ruby. Tenho estudado essa ferramenta, mas será que é a tal bala de prata? Acho difícil…

Segunda-feira, depois de um fim-de-semana de cachaça, não é o melhor dia para ler uma coisa dessas. Quase entrei em depressão. =)

Abraços.

E

Manja de UML…

M

Todo programador BOM que eu conheço sabe o que significa cada letra das siglas: SCJD, SCWCD, SCBCD, SCDJWS, SCMAD.

Agora eu acho que peguei alguem nessa…
Eu nao sei todas as siglas ^^

V

Mark_Ameba:
Todo programador BOM que eu conheço sabe o que significa cada letra das siglas: SCJD, SCWCD, SCBCD, SCDJWS, SCMAD.

Agora eu acho que peguei alguem nessa…
Eu nao sei todas as siglas ^^

E se o cara, além de saber o significado dessas siglas, tiver certificados correspondentes (e legítimos obviamente) dizendo que ele tem os títulos indicados por estas siglas?

O

Todo programador java bom que eu conheço, sabe das suas qualidades e limitações, e não fica falando mal do java só porque aprendeu uma linguagem nova que ta na moda :wink:

M

victorwss:
Mark_Ameba:
Todo programador BOM que eu conheço sabe o que significa cada letra das siglas: SCJD, SCWCD, SCBCD, SCDJWS, SCMAD.

Agora eu acho que peguei alguem nessa…
Eu nao sei todas as siglas ^^

E se o cara, além de saber o significado dessas siglas, tiver certificados correspondentes (e legítimos obviamente) dizendo que ele tem os títulos indicados por estas siglas?

Ai o cara é bom mesmo ^^

Eu já vi na sua assinatura todas essas.

Mais pra frente eu pretendo tirar também… mas deixa eu fazer 18 anos primeiro :smiley:

Aliás… se voce ir no SouJava quarta quero te conhecer ^^

F

Reconhece que java é um “canhão para matar formigas” para a maioria dos sistemas desenvolvidos no mercado.

V

Mark_Ameba:
victorwss:
Mark_Ameba:
Todo programador BOM que eu conheço sabe o que significa cada letra das siglas: SCJD, SCWCD, SCBCD, SCDJWS, SCMAD.

Agora eu acho que peguei alguem nessa…
Eu nao sei todas as siglas ^^

E se o cara, além de saber o significado dessas siglas, tiver certificados correspondentes (e legítimos obviamente) dizendo que ele tem os títulos indicados por estas siglas?

Ai o cara é bom mesmo ^^

Eu já vi na sua assinatura todas essas.

Mais pra frente eu pretendo tirar também… mas deixa eu fazer 18 anos primeiro :smiley:

Aliás… se voce ir no SouJava quarta quero te conhecer ^^

Hehe, leia direito minha assinatura então. Eu NÃO TENHO todas essas, não ainda.
Eu só tenho a SCJP, a SCWCD e a SCJA.
Estou estudando para a SCBCD e para as outras estou vendo alguns materias. Mas por enquanto, eu ainda não cheguei lá.

Pretendo ir no SouJava sim. :slight_smile:

M

Eu disse que vi na sua assinatura todas essas… não que voce tirou todas ^^

R

… tem que ter humildade no coração. rs

V

Todo programador java bom que eu conheço entende reflection e não tem medo disto.

M

Agora voce falou comigo :smiley:

L

Eu postaria isso no outro tópico, do programador java RUIM rsrs

M

… compartilha seus conhecimentos e nao critica o trabalho alheio e sim opina para melhora-los

L
  1. Sabe as limitações da linguagem Java.

  2. Sabe que as APIs e os frameworks comumente utilizados possuem falhas.

I

tira suas duvidas no guj…¬¬

F

Consegue entender explicações sobre algo relacionado a java sem ter que abrir o eclipse.

L

Testa código.

F

…é doido!

:lol:

B
  • é humilde

  • estuda sempre

A

E é humilde.

G

Eu postaria isso no outro tópico, do programador java RUIM rsrs

Na verdade faltou complementar: ele SABE fazer as coisas na mão porque é curioso e gosta de estudar. Mas também sabe que em projetos reais é muito mais lucrativo melhorar a produtividade com ferramentas maduras e testadas pela comunidade.

R

sonha com execption

e realmente toma cafe…rrsrs
execption ChuckNorrisException! …rsrrsr
essa mata a aplicaçao.rsrs

M

Quando sente dor de cabeça diz que seu cérebro lançou um StackOverFlowError.

C

Não tem medo de ficar bebendo até 1:30 da manhã de uma quarta-feira, e vai trabalhar as 8:00 em ponto
=P

R

…que Java não é a unica solução para o determinado problema…

D

É humilde, nunca para de estudar e tomar café rs

L

programa java direto com bytecode sem usar nenhuma IDE e nem compilador… o compilador e a VM estão instaladas em seu cranio… e ele mastiga grão de cafe e gospe codigo… :stuck_out_tongue:

J

é pogueiroooo … sempre tem uma POG na manga … =)

M

Tem nojo de POGs.

Passa mal quando ve um código estruturado.

“else if” é uma sentença impronunciavel, pior ainda uma corrente delas.

F

Mark_Ameba:
Tem nojo de POGs.

Passa mal quando ve um código estruturado.

“else if” é uma sentença impronunciavel, pior ainda uma corrente delas.

Mark, então resolva isso pra mim sem usar “else if”

  • Você tem uma string;
  • Você quer imprimir essa string nas cores: azul, verde ou vermelho, dependendo das condições abaixo:
    • Se a string for FabioAZUL - Imprime azul;
    • Se a string for FabioVERMELHO - Imprime vermelho;
    • Se a string for FabioVERDE - Imprime verde;

Codifique da forma como um BOM programador java faria, na sua opinião. :wink:

F

fabiozoroastro:
Mark_Ameba:
Tem nojo de POGs.

Passa mal quando ve um código estruturado.

“else if” é uma sentença impronunciavel, pior ainda uma corrente delas.

Mark, então resolva isso pra mim sem usar “else if”

  • Você tem uma string;
  • Você quer imprimir essa string nas cores: azul, verde ou vermelho, dependendo das condições abaixo:
    • Se a string for FabioAZUL - Imprime azul;
    • Se a string for FabioVERMELHO - Imprime vermelho;
    • Se a string for FabioVERDE - Imprime verde;

Codifique da forma como um BOM programador java faria, na sua opinião. :wink:

Pense Orietação a objetos

public enum Imprimir{
    AZUL{
   @Override
   public void imprime(){
      //Imprime Azul
   }
  },
  VERMELHO{
   @Override
   public void imprime(){
      //Imprime Vermelho
   }
  },  VERDE{
   @Override
   public void imprime(){
      //Imprime VERDE
   }
  };

public abstract void imprime();
}
//EM alguma outra classe
public void imprimeColorido(String p){
 String cor = p.replace("Fabio", "");
 Imprimir imp = Imprimir.valueOf(cor.toUpperCase());
 imp.imprime();
}

Não sou o mark mas gosto de usar ENUMs para evitar if else,
Caso precise de mais uma cor, basta adicioar mais um item no enum, não precisa percorrer o objeto catando os else if com as cores.

M

Nesse caso eu teria um HashMap da String para uma interface que tem um método que imprimi a cor certa.
Depois seria algo assim.

map.get(string).imprimi();

Basicamente isso.

F

Felagund:
fabiozoroastro:
Mark_Ameba:
Tem nojo de POGs.

Passa mal quando ve um código estruturado.

“else if” é uma sentença impronunciavel, pior ainda uma corrente delas.

Mark, então resolva isso pra mim sem usar “else if”

  • Você tem uma string;
  • Você quer imprimir essa string nas cores: azul, verde ou vermelho, dependendo das condições abaixo:
    • Se a string for FabioAZUL - Imprime azul;
    • Se a string for FabioVERMELHO - Imprime vermelho;
    • Se a string for FabioVERDE - Imprime verde;

Codifique da forma como um BOM programador java faria, na sua opinião. :wink:

Pense Orietação a objetos

public enum Imprimir{
    AZUL{
   @Override
   public void imprime(){
      //Imprime Azul
   }
  },
  VERMELHO{
   @Override
   public void imprime(){
      //Imprime Vermelho
   }
  },  VERDE{
   @Override
   public void imprime(){
      //Imprime VERDE
   }
  };

public abstract void imprime();
}
//EM alguma outra classe
public void imprimeColorido(String p){
 String cor = p.replace("Fabio", "");
 Imprimir imp = Imprimir.valueOf(cor.toUpperCase());
 imp.imprime();
}

Não sou o mark mas gosto de usar ENUMs para evitar if else,
Caso precise de mais uma cor, basta adicioar mais um item no enum, não precisa percorrer o objeto catando os else if com as cores.

Concordo que o uso de enums faz um código ser mais elegante e confiável. Mas EU não utilizaria Enum no exemplo que eu dei. Pra que vou querer gastar três minutos para fazer isso ao invés de gastar vinte segundos fazendo “else if”?
Lembrando que estou falando do exemplo que eu dei - Que são somente três condições - e não para uma dúzia de condições.

Resumindo:

Todo programador java BOM que eu conheço, sabe quando utilizar um código simples - Como o “else if” - ao invés de um código mais complexo - Robusto - como Enum.
Ráááááá, agora eu cacei briga hein. :twisted:
Abraço “procês”.

F

fabiozoroastro:

Concordo que o uso de enums faz um código ser mais elegante e confiável. Mas EU não utilizaria Enum no exemplo que eu dei. Pra que vou querer gastar três minutos para fazer isso ao invés de gastar vinte segundos fazendo “else if”?
Lembrando que estou falando do exemplo que eu dei - Que são somente três condições - e não para uma dúzia de condições.

Resumindo:

Todo programador java BOM que eu conheço, sabe quando utilizar um código simples - Como o “else if” - ao invés de um código mais complexo - Robusto - como Enum.
Ráááááá, agora eu cacei briga hein. :twisted:
Abraço “procês”.

Depende eu prefiro perder 3 minutos escrevendo um ENUM para o código ficar mais legivel e mais facil de dar manutenção do que fazer um simples else if, e depois quase morrer para adicionar algo a mais, usuários nunca se dão por satisfeito, daqui a uns dias eles vão querer o amarelo também.

Então vou fazer o meu aqui.

Todo programador Java BOM que eu conheço, evita o uso de POGs, e foca em escrever codigo que será de facil manutenção para ele e para os outros que venham a mecher nesse código.

L

isto depende… imagine se em todo if else q precisar o cara bota uma estrutura de enuns ou de maps… o tempo q vai levar sera grande so pro cara achar que e bonitinho usar isto… dai isto ja se enquadra em um mal programador java… porem o que acho valido usar estruturas deste tipo é quando vc tem uma arvore grande que va precisar de varios if elses… ou quando vc tiver sempre que adicionar mais um if a determinada condição… dai compensa usar a estrutura com mapas… senão é o mesmo que usar um canhao para matar uma formiga…

F

“Era exatamente o que eu ia dizer”. By Chapolin.

V

Em javascript nao fica complexo

var string = 'FabioAZUL';
var hash = {
    'FabioAZUL': 'Azul',
    'FabioVERMELHO': 'Vermelho',
    'FabioVERDE': 'Verde'
};

if (hash[string]) {
    alert(hash[string]);
}

Como vantagem, alem de ser mais bonito (na minha opiniao), voce pode declarar esse hash aonde quiser, pode altera-lo dinamicamente, pode reusa-lo em outro codigo, pode armazenar em banco, pode imprimir (debug ou gui), etc
Faz tanta falta essa sintaxe pra Maps e Arrays em Java, bem que podiam botar no Java7

V

So pra completar, vejam um codigo meu pra formatacao de texto de forum (tipo o do guj), usando hashs

var fonts = ['Arial', 'Arial Black', 'Tahoma', 'Times New Roman', 'Verdana'];
	var sizes = [1, 2, 3, 4, 5, 6];
	var colors = ['Black', 'Gray', 'White', 'Red', 'Green', 'Blue', 'Yellow', 'Pink', 'Purple']

	// tag settings
	var tags = [
		{ button: 'b', shortcut: 'b', title: 'Bold (Ctrl + B)', execute: function(t) { $(t).wrapSelection('[b]', '[/b]'); } },
		{ button: 'i', shortcut: 'i', title: 'Italic (Ctrl + I)', execute: function(t) { $(t).wrapSelection('[i]', '[/i]'); } },
		{ button: 'u', shortcut: 'u', title: 'Underline (Ctrl + U)', execute: function(t) { $(t).wrapSelection('[u]', '[/u]'); } },
		{ button: 's', shortcut: 's', title: 'Strike (Ctrl + S)', execute: function(t) { $(t).wrapSelection('[s]', '[/s]'); } },
		{ separator: '----------' },
		{ select: 'Font', options: fonts, execute: function(t, selected) { $(t).wrapSelection('[font="' + selected + '"]', '[/font]'); } },
		{ select: 'Size', options: sizes, execute: function(t, selected) { $(t).wrapSelection('[size="' + selected + '"]', '[/size]') } },
		{ select: 'Color', options: colors, execute: function(t, selected) { $(t).wrapSelection('[color="' + selected + '"]', '[/color]') } },
		{ separator: '----------' },
		{ prompt: 'image', title: 'Insert an image', question: 'Please type in the image URL.', execute: function(t, input) { $(t).replaceSelection('[img]' + input + '[/img]'); } },
		{ prompt: 'link', title: 'Insert a link', question: 'Please type in the link URL.', question2: 'Please type in the Title of the link.', execute: function(t, link, title) {
				if (title == null || title == '') title = link;
				$(t).replaceSelection('[url="' + link + '"]' + title + '[/url]');
		} },
		{ prompt: 'youtube', title: 'Insert a Youtube video', question: 'Please type in the Youtube video URL.', execute: function(t, input) { $(t).replaceSelection('[youtube]' + input + '[/youtube]'); } },
		{ separator: '----------' },
		{ button: 'left', title: 'Align text on left', execute: function(t) { $(t).wrapSelection('[left]', '[/left]'); } },
		{ button: 'center', title: 'Align text on center', execute: function(t) { $(t).wrapSelection('[center]', '[/center]'); } },
		{ button: 'right', title: 'Align text on right', execute: function(t) { $(t).wrapSelection('[right]', '[/right]'); } },
		{ separator: '----------' },
		{ button: 'clean markup', shortcut: 'r', title: 'Remove all BBCode markup from selected text (Ctrl + R)',  execute: function(t) { $(t).replaceWithRegexp(/\[(.*?)(=.*?)?\]((.|\n)*?)\[\/\]/g, '$3') } },
	];

Fica um pouco feio aqui no forum por causa da quebra de linhas
E logo depois desse codigo tem um belo exemplo de programacao estruturada com varios if e else. Percebam como eh bem pior de se ler e dar manutencao (soh vi isso agora, vou refatorar depois :P)

$.fn.richTextarea = function() {
		$(this).each(function() {
			var textarea = this;

			// fixing width size
			var offset = $(textarea).outerWidth() - $(textarea).width();
			$(textarea).width($(textarea).width() - offset);

			var shortcuts = {};
			
			// building toolbar
			var toolbar = $('<div class="rich_textarea_toolbar"></div>');
			$.each(tags, function(i) {
				var tag = tags[i];
				var element = null;
				var title = (tag.title != null) ? 'title="' + tag.title + '"' : '';

				if (tag.shortcut) {
					shortcuts[tag.shortcut.toLowerCase()] = tag.execute;
				}

				// lineBreak
				if (tag.lineBreak != null) {
					element = $('<br/>');
				}
				// separator
				else if (tag.separator != null) {
					element = $('<span class="rich_textarea_separator"></span>');
				}
				// select
				else if (tag.select) {
					options = '<option>' + tag.select + '</option>';
					$.each(tag.options, function(i) {
						options += '<option>' + tag.options[i] + '</option>';
					});

					element = $('<select tabindex="-1">' + options + '</select>');
					element.change(function() {
						if ($(this).val() != tag.select) { tag.execute(textarea, $(this).val()); }
					});
				}
				// prompt
				else if (tag.prompt) {
					element = $('<input type="button" value="' + tag.prompt + '" ' + title + ' tabindex="-1" />');
					element.click(function() {
						var input = prompt(tag.question);
						if (input != null && input != '') {
							var input2 = '';
							if (tag.question2) {
								input2 = prompt(tag.question2);
							}
							tag.execute(textarea, input, input2);
						}
					});
				}
				// execute tag
				else if (tag.button) {
					element = $('<input type="button" value="' + tag.button + '" ' + title + ' tabindex="-1" />');
					element.click(function() { tag.execute(textarea); });
				}

				if (element != null) {
					toolbar.append($('<span></span>').append(element));
				}
			});

			// shortcut processing
			$(textarea).keydown(function(e) {
				if (e.keyCode == 17) { // ctrl
					ctrlPressed = true;
				} else {
					var key = String.fromCharCode(e.keyCode).toLowerCase();
					if (ctrlPressed && shortcuts[key] != null) {
						shortcuts[key](textarea);
						return false;
					}
				}
				return true;
			});
			$(textarea).keyup(function(e) {
				if (e.keyCode == 17) { // ctrl
					ctrlPressed = false;
				}
				return true;
			});

			toolbar.insertBefore($(textarea));
		});
	};
M

E não seria dificil adicionar outro item a uma estrutura com Maps.

Map<String, Cor> map = new HashMap<String,Cor>();
map.put("amarelo", new Cor(){
//Implementado aqui para a cor ou em uma Inner Class
});

Depois de um tempo voce vai perceber que a mesma cor pode ser usado em outra parte do sistema e não vai ter que retirar a lógica dos "else if"s.

“Ráááááá, agora eu acabei com briga hein.”

F

Mark_Ameba:
E não seria dificil adicionar outro item a uma estrutura com Maps.

Map<String, Cor> map = new HashMap<String,Cor>();
map.put("amarelo", new Cor(){
//Implementado aqui para a cor ou em uma Inner Class
});

Depois de um tempo voce vai perceber que a mesma cor pode ser usado em outra parte do sistema e não vai ter que retirar a lógica dos "else if"s.

“Ráááááá, agora eu acabei com briga hein.”


Ehehe!
Concordo com vocês que há muito mais chance de haver reusabilidade, eu só não concordo com uma preocupação tão grande com uma coisa tão mínuscula como é o meu exemplo, entende? Jah trabalhou com Swing? Tem muita implementação que você acaba fazendo classe anônima mas que seria ideal você criar uma implementação mais elegante, mas as vezes acaba por não trazer ganho nenhum, sacou? :wink:

F

ai depende o que vc considera um ganho.

Acredito que em alguns lugar sim é necessário alguns if else, quando vc so tem um resultado booleano, não tem por que criar if else, mas o seu exemplo é o legitimo exemplo onde eu vejo a necessidade, de criar algo mais elegante, hoje seu cliente so quer azul, vermelho e verde, amanha, ele vai querer amarelo e roxo também, e quem sabe onde mais no sistema ele vai querer que apareçam mensagens nesse estilo?

Eu sempre busco pensar em dar manutenção no código futuramente, você nunca sabe o que mais os usuários vão querer. Ao meu ver, programação estruturada, é para linguagens estruturadas :).

Até agora não entendo por que tem gente que não ve programação como arte.
Quanto mais bonito for seu codigo, melhor (Lembrando sempre de preservar a usuabilidade, não adianta o codigo ser bonito e ninguem conseguir usar o sistema)

[]'s

F

Felagund:
fabiozoroastro:

Ehehe!
Concordo com vocês que há muito mais chance de haver reusabilidade, eu só não concordo com uma preocupação tão grande com uma coisa tão mínuscula como é o meu exemplo, entende? Jah trabalhou com Swing? Tem muita implementação que você acaba fazendo classe anônima mas que seria ideal você criar uma implementação mais elegante, mas as vezes acaba por não trazer ganho nenhum, sacou? :wink:

ai depende o que vc considera um ganho.

Acredito que em alguns lugar sim é necessário alguns if else, quando vc so tem um resultado booleano, não tem por que criar if else, mas o seu exemplo é o legitimo exemplo onde eu vejo a necessidade, de criar algo mais elegante, hoje seu cliente so quer azul, vermelho e verde, amanha, ele vai querer amarelo e roxo também, e quem sabe onde mais no sistema ele vai querer que apareçam mensagens nesse estilo?

Eu sempre busco pensar em dar manutenção no código futuramente, você nunca sabe o que mais os usuários vão querer. Ao meu ver, programação estruturada, é para linguagens estruturadas :).

[]'s


Então, o problema é exatamente “achar” ou “não saber” se aquele if vai ser para todas as cores no mundo ou se simplesmente foi um if que será uma parte insignificante do código. Vejo que as pessoas hoje tentam se abstrair demais e pensar demais nos fluxos alternativos - Que nunca devem existir - e acabam nem saindo do lugar. :wink:

Nisso eu também NÃO concordo. Se você trabalhar com mecânica, medicina, culinária ou qualquer outra coisa você vai ver que existem gambiarras e que existem trabalhos bem feitos. Uma coisa bem feita não é uma arte, é só algo bem feito.
“Caçando briga novamente” :twisted:

M

Realmente… a casos em que não é necessario. Mas na maioria das vezes é. Mas por falta de informação ou por preguiça o programador deixa de fazer.

E pode ter certeza que toda gambiarra vai precisar de uma gambiarra pior pra ser concertada se não for alterada corretamente um dia.

E o monte de inner classes não seriam um problema se tivessemos Closures =/

D

To vendo isso na prática… e o pior, não fui nem eu que fiz a guambiarra original :frowning:

F

Concordo, “tentar” simplificar algo por PREGUIÇA não tem comentário.

Concordo.

Aí são outros quinhentos. :slight_smile:

M

São os outros quinhentos… Mas os quinhentos que fariam muita difença.

A

Bem, como um dos vamos dizer “terceira idade” em programação, hoje eu a vejo da seguinte maneira, um baú onde entra coisas boas a ruins ao mesmo tempo, e de tempos em tempos o mercado, “rei do pedaço” se encarrega de fazer a limpeza, e ai salve-se quem puder.

C

post do ViniGodoy +=1;

L

loko de café !

F

descarta lixo em qualquer lugar pois acredita que o Garbage Collector está sempre trabalhando…

N

Saber programar em java na sua mais pura essencia e nao utilizar frameworks !

J
  • Como ja disseram, gosta do que faz.
  • Tem uma base sólida em várias áreas de IT.
  • Estuda e lê bastante, mantem-se atualizado.
  • Programa bastante, inclusive tem sempre algum “pet project” em andamento (ou pelo menos tenta manter em andamento (sic)).
  • tem outros interesses além de Java.

[]'s

Criado 26 de abril de 2009
Ultima resposta 27 de jul. de 2009
Respostas 72
Participantes 48