Posts na categoria ‘Opinião’
26jan2012
Nos últimos meses, tenho usado bastante o efeito de carousel.
Como todo programador, me incomodo de ter que ‘me repetir’. Ou ter que repensar uma lógica que já resolvi uma vez.
Nem sempre ‘temos tempo’ de parar, analisar e otimizar oque estamos fazendo.
Porém, devemos fazer isso.
Fiz vários tipos de carouseis, porém por serem diferentes um dos outros, e alguns possuirem algumas peculiaridades, configurações extras, estilizações fora dos padrões, acabei fazendo os meus próprios códigos, e não usando nenhum plugin pronto.
Nesse post, vou deixar o start de um plugin de jQuery, que rapidamente fiz aqui.
Muitas melhorias precisam ser feitas, como:
-> possibilitar scroll vertical
-> não limitar a marcação a ser usada
-> permitir uso do easing..
e por ai vai.. nisso, eu acabaria recriando o cycle(ou chegando perto do efeito Hz dele). Não é essa a intenção.
Até agora é para ser simples mesmo, e muito mais simples de usar também.
Como todos os meus efeitos, esse não foge do meu padrão: resolvi as partes mais complicadas no css.
O js é simples. O instanciamento ainda mais.
É isso, sem mais, segue o código, e logo abaixo a demonstração.
A grande ‘sacada’, é deixar o plugin se virar com a animação, (setas prev e next), e termos uma chamada simples e limpa assim:
/* fim plugin carousel */
jQuery(document).ready(function(){
jQuery('#slide').carousel();
jQuery('#slide2').carousel();
});
=) Vejam como fiz:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
/* carousel */
jQuery.fn.carousel = function( settings ){
var $this = jQuery( this );
var defaults = {
prev: '.nav-left',
next: '.nav-right',
pos: 0,
speed: 1000
}
settings = jQuery.extend(defaults, settings);
var lis = $this.find('li');
var width_li = lis.eq(0).width()+ parseInt( lis.eq(0).css('marginLeft') )+parseInt( lis.eq(0).css('marginRight') );
var ul = $this.find('ul');
var prev = $this.find( settings.prev );
var next = $this.find( settings.next );
ul.css({width: (width_li*lis.length)+'px'});
/* .nav-left */
prev.click(function(){
if( settings.pos>0 ){
settings.pos--;
_move( ul, settings.pos, width_li, settings.speed );
}
});
/* .nav-right */
next.click(function(){
if( lis.length-1>settings.pos ){
settings.pos++;
_move( ul, settings.pos, width_li, settings.speed );
}
});
/* funcoes privadas */
_move = function( ul, pos, width_li, speed ){
var new_left = -1*pos*width_li;
ul.animate({left:new_left+'px'},settings.speed);
}
return $this;
};
/* fim plugin carousel */
jQuery(document).ready(function(){
jQuery('#slide').carousel();
jQuery('#slide2').carousel();
});
</script>
<style type="text/css">
* { margin: 0; padding: 0; }
#slide { width: 460px; height: 300px; }
#slide li { width: 460px; height: 300px; }
#slide2 { width: 140px; height: 105px; padding: 10px 25px; background: #000; }
#slide2 li { width: 140px; height: 105px; }
hr { margin: 50px; }
/* css do plugin */
.carousel { position: relative; }
.overflow { overflow: hidden; height: 100%; position: relative; }
.carousel ul { position: absolute; top: 0; left: 0; }
.carousel li { float: left; }
.nav { position: absolute; top: 50%; z-index: 3;
background: url('images/nav.png') no-repeat;
width: 36px; height: 36px; margin-top: -18px;
cursor: pointer;
}
.nav-left { left: 10px; }
.nav-right { right: 10px; background-position: right top; }
.nav-left:hover { background-position: left -36px; }
.nav-right:hover { background-position: right -36px; }
/* css do plugin */
</style>
</head>
<body>
<div id="slide" class="carousel">
<div class="nav nav-left"></div>
<div class="overflow">
<ul>
<li><img src="images/1.jpg" alt="" /></li>
<li><img src="images/2.jpg" alt="" /></li>
<li><img src="images/3.jpg" alt="" /></li>
<li><img src="images/4.jpg" alt="" /></li>
<li><img src="images/5.jpg" alt="" /></li>
</ul>
</div>
<div class="nav nav-right"></div>
</div><!-- /slide -->
<hr />
<div id="slide2" class="carousel">
<div class="nav nav-left"></div>
<div class="overflow">
<ul>
<li><img src="images/mini1.jpg" alt="" /></li>
<li><img src="images/mini2.jpg" alt="" /></li>
<li><img src="images/mini3.jpg" alt="" /></li>
<li><img src="images/mini4.jpg" alt="" /></li>
</ul>
</div>
<div class="nav nav-right"></div>
</div><!-- /slide -->
</body>
</html>
Link deste post
14dez2011
Um post motivacional.
Sim, hoje é meu aniversário. Exatamente as 11 horas da manhã de hoje, completo 23 anos de vida. Fazem vinte e três “desde o instante em que nasci”.
Se for contar “apartir de quando eu me lembro”, teria que adiar a contagem, para depois dos 12 anos.. pois realmente antes disso, é tudo muito vago nas minhas memórias.
Comecei a trabalhar com 16 anos. Estagiário Técnico na Porto Seguro – Proteção Patrimonial.
Então, se fosse contar apartir daí, a minha “vida profissional”, seria de apenas 7 anos. Não trabalhei direto, desde então.. logo podemos contar algumas “férias”(entre um lugar e outro). Somando, seriam oficialmente:
1 ano como estagiário +
6 meses como assistente de manutenção de micros em campo +
2 anos e meio para uma agência web(sem férias durante esse período) +
quase 1 ano agora, no trabalho atual.
São 5 anos ao todo. Então posso dizer que “a minha carreira”, soma 5 anos. Isso não me parece “tão pouco assim”. É mais que 20% do meu tempo de vida total, e quase 50% da “vida, desde que eu me lembro”.
Cresci profissionalmente neste período. E não me refiro a dizer que “estou ganhando mais”.
Sim, estou, mas não é somente isso que importa. Como estagiário, meu salário era de 2.48 por hora. Com algumas horas extras, eu tirava R$200.00 líquidos no fim de cada mês.

Mas não é isso que significou “crescer” para mim.
Quando digo que quero evoluir, significa que antes eu “imprimia folhas de monitoramento das rotas dos caminhões, fazia cadastros no access, elaborava planilhas e bds para otimizar o trabalho, …”, e agora eu trabalho programando sites. Analisando rotinas lógicas, desenvolvendo scripts, testando, controlando versão com GIT, garantindo semântica da marcação, garantindo uma degração graciosa, e o máximo de compatibilidade crossbrowser possível..
Sim, eu cresci. O meu trabalho atual exige muito mais de mim, do que o meu primeiro. Em cada um deles, cada vez que mudei foi assim.
O dinheiro é apenas consequência.
Melhor salário vem junto com o seu merecimento por ele.
Ninguém merece ganhar mais, se continuar fazendo o mesmo de sempre. Se nesses 5 anos, eu ainda estivesse “imprimindo folhas”, eu não teria evoluído como profissional. Teria muito menos experiência e conhecimento sobre “outros assuntos”..
Esta é a minha definição de “crescer”. Sucesso profissional para mim, é não parar de evoluir. Não estacionar.
Estar contente com o que faz. Fazer o melhor. Errar. Corrigir. Diminuir os erros. Continuar melhorando progressivamente, e então quebrar todos os paradigmas e recomeçar. Sou movido a desafios.
Puxe a responsabilidade para ti. E acredite que a situação profissional em que você se encontra, se deve exclusivamente por sua própria culpa. Culpe a si mesmo. E se vanglorie nas suas vitórias.
Não queira ser melhor que seu colega. Seja melhor que você mesmo. Supere seus limites, as suas barreiras são impostas por você mesmo. Não se limite.
Fazer “mais do mesmo” todos os dias é muito fácil e muito cômodo. Porém é o “preguiçoso”, e nada mais que apenas a tua obrigação mínima. Aquele que “faz oque mandam”, é o funcionário que justifica o salário. Nem mais e nem menos.
É para isso que ele recebe.
Aquele que não faz direito nem oque lhe pedem, não justifica e nem mereceria estar ganhando oque está. O problema, é que os que estão nessa situação, parecem não perceber, pois deveriam voltar um passo.
Aquele que cumpre o seu papel com excelência, e sempre procura “o algo a mais”, merece reconhecimento.
Reconhecimento não é apenas “números positivos maiores no extrato depois do dia 5″. Reconhecimento é um “Parabéns !”, é um “foi ele quem fez isso”, é um “essa solução ficou ótima”, é atribuir mais a este funcionário. Exigir mais dele.
O dinheiro virá, tem que vir. Se a empresa fizer o reconhecimento “motivacional” e com “mais trabalho”, porém não aumentar os ganhos, então este funcionário deve trocar de trabalho. Tão simples quanto isso.
Não fique em um lugar onde seus esforços não são reconhecidos. Entretanto, tenha certeza de que vc está se esforçando, e merece realmente o que acha que merece.
Estou feliz onde estou. Porém aprendi que nunca devo ficar satisfeito com o que eu faço, e com o que eu ganho. Quero fazer melhor, e quero ganhar mais. Sempre.
E para você ? o que é crescer profissionalmente ?
Link deste post
Tags: crescer, profissão
28out2011
Caras!!
Afinal é um blog pessoal ne?!
Eu não sabia, mas a minha ex professora de Português acabou de postar uma foto que a Fátima(melhor professora de matemática do mundo), plantou em homenagem a minha sala da oitava série!

Sei que não tem nada a ver com os assuntos desse blog, mas é algo que eu não pude deixar de registrar por aqui.
Afinal, Sheila (Portugues), e Fátima (Matematica) fazem parte da base que tenho de conhecimento até hoje. Se não fosse pelo ótimo ensino que recebi dessas 2, eu não conseguiria muito do que já conquistei.
Obrigado professoras !!!
Link deste post
Tags: kyrillos
22out2011
Foi show de bola a participação da equipe LomaBooks na intercon!!!
Vlw João Batista Neto, e Fabyo Guimarães!!!!
Nos divertimos e ganhamos o prêmio Lomadee.
http://twitter.com/#!/Lomadee/status/127861026061430785

Vlw !!

Link deste post
Tags: hackathon, imasters, intercon
6set2011
Eu não acreditava, até começar a ver o que esse canal de comunicação ‘faz’ na prática, e o que ele muda, ‘na minha vida’.
A idéia desse post, é contar o meu case. O case do meu blog: wbruno. Pode não ser grande coisa, e nem nada tão importante, qnto o case das grandes marcas, mas é algo muito mais palpável, e agora ‘mais aberto’ do que o delas.
Sou Desenvolvedor. Já trabalhei em agência web, já fiz muitos freelas, tanto de backend, quanto de frontend, e hoje estou mais focado em interfaces.
Não sou formado em marketing, nem sou analista de redes socias, e nem sou heavy user de social midia. Sou Dev, resolvi ter esse blog pessoal, para usar como repositório de códigos, tentar divulgar meu trabalho, e me incentivar nos estudos.
Bom, neste cenário permaneci durante muito tempo, desde 14 de agosto de 2009, poxa! acabei de fazer 2 anos, e nem sabia!
Até que dia 10 de março desse ano, tive vontade de monitorar melhor as atividades do blog, e meus até então quase inexistentes esforços de gerar conteúdo.

Okay, analytics instalado. Dica: para você que usa WordPress, instale o analytics com um plugin. Estou usando o Google Analyticator. Dessa forma, uma eventual troca de tema, não vai causar quebra de dados, pois colocando o <script> direto nos arquivos .php do tema, uma troca, te faria perder momentaneamente a monitoração(passei por isso).
Primeira semana de acompanhamento:

Nenhum pouco expressivo. Sai do 0(sem monitoramento), para 15 visitas dia 11, 29 visitas dia 12..
Nesses dias, tudo oque fiz, foi postar códigos que eu já havia feito para responder dúvidas no fórum.imasters. Tive meu primeiro pico de acessos, dia 14 e 15. Quando postei uma opinião minha sobre os tutorias que circulam por ai, e também um dos maiores geradores de visitas que tenho, um post sobre slideshow com o jQuery.Cycle.
Okay, nesse momento, as buscas e as palavras chaves de entrada do Analytics começavam a me guiar sobre ‘o que escrever’. Comecei a perceber que conteúdo ‘honesto’(escrito por mim, com cuidado e atenção), gerava um buzz melhor do que apenas códigos largados.
Enfim, redes sociais
Desculpe se ainda não falei de redes sociais, como sugere o título, mas esse contexto, é uma introdução importante, para entendermos o real significado da diferença de tráfego. Afinal, eu não vendo nada. Então o meu ‘sucesso’, por enqnto meço em visitas, comentários, likes, retweets..
Comecei com o básico. Instalei um plugin para tweetar automático os posts que eu fizer, coloquei um plugin de like. E bora gerar conteúdo. Acabei ‘dando sorte’, pelo Pedro Rogério, o dono do perfil: @PinceladasDaWeb gostar de alguns conteúdos meus, e começar a tweetar eles.
Pinceladas da Web
Note que atualmente, ele possui 5k6 seguidores. Na época em que ‘comecei’, ele estava prestes a alcançar os 5k.

Notem a importância disso: um post desse perfil, atinge diretamente 5k6 pessoas. Muito mais do que os meus atuais 85 seguidores, e todos os meus amigos do Facebook e twitter somados. Além disso, não podemos deixar de levar em conta, que estamos falando de um público direcionado, e interessado por esse assunto. Os meus amigos não são necessariamente desenvolvedores. Na verdade, a minoria deles são.
Impressões
Okay, mas e oque isso representa? Eu pelo menos seguia poucos perfis na época(ainda não sigo muitos), mas nunca clicava nos links que esses perfis postavam. Apesar dessa ser a minha atitude, isto não se aplica a massa. Quem segue um perfil replicador de conteúdo como o do Pedro Rogério, realmente está interessada no conteúdo que ele indica, e lê.
Não sei nem se o próprio tem idéia do buzz que ele produz, mas no próximo gráfico, deixa evidente o que estou falando, o ‘tal poder’.

Essa imagem é interessante de analisar. Notem que já consegui uma melhora orgânica(estava melhor indexado, com um layout melhor, com mais conteúdos realmente escritos..), porém as minhas visitas mantinham uma regularidade de 120~170 por dia.
Nesse instante, vemos alguns picos, que me enviaram como referer, o encurtador do twitter, e alguns tráfegos direto(programas como o TweetDeck, não enviam referer).
Porém ali, no dia 30 de março, nesse cume, que está completamente fora da curva, e gerou um desvio padrão gigantesco em relação a média. Foi quando o @ProgramadorReal, leu o meu post sobre: A diferença entre um Cara Que Programa, e um Programador.
ProgramadorReal
Interessante notar os números:

Ele fala diretamente com 13k programadores/profissionais da área! Muita relevância!
E foi isso que aconteceu. Meu blog que estava vindo com 120~210 visitas(em dias de pico), teve um salto para 807 visitas!
Tudo por causa de um RT do @PinceladasDaWeb, que chegou no @ProgramadorReal, e dai se espalhou.
Sim, isso mesmo, se espalhou. Esse é o ponto mais importante das redes sociais: a forma como o conteúdo se propaga.
‘Apenas’ o @PinceladasDaWeb ou o ProgramadorReal, seriam perfis com muitos seguidores. Mas os seguidores deles, possuem mais seguidores(que não necessariamente seguem um dos 2), que por sua vez, possuem seus próprios seguidores..(e dai em diante) e então, temos uma rede gigantesca(tecnicamente infinita), de pessoas que podem ser impactadas!
Essa foi a primeira vez, que realmente parei para pensar/entendi, o que isso quer dizer. Lógico que seria impossível eu segurar o tráfego instantâneo que os 80 RTs desse tópico geraram na época. Porém, um leve residual perdurou por mais 2~3 dias.
Novamente tive quedas, e picos por causa de RTs do @Pinceladas e do @Tableless também.
O Panda
Tive uma leve queda no dia 12 desse mês, assim que o google liberou o update chamado Panda. Isso foi geral, diversos sites que acompanho e alguns profissionais que converso, também observaram isso.
Esse é conteúdo para um novo assunto(ou não).
Origem de tráfego
Isto porque, os meus visitantes me encontram pelas buscas. Poucos me seguem no twitter, então basicamente continuo postando sinceramente, sobre o que quero escrever, enqnto passo o meu dia a dia de desenvolvedor.
Algumas outras coisas aconteceram, alguns posts bem sucedidos(com um número considerável de RTs), porém acho que já me extendi por demais, e já consegui contar como foi esse meu case. Atualmente, estou com algo perto das 250~300 visitas por dia.
Um número interessante, e que me motiva a continuar escrevendo.
Minha intenção
Longe de mim, querer ensinar algo a especialistas, mas achei interessante contar ‘o meu case’. Trocar essa experiência que tive. Humildemente aqui, nessa espécie de meu diário virtual. Enfim, obrigado por ter lido!
Espero ter agregado algo, e seja sempre bem vindo ao meu blog.
Link deste post
Tags: gplus, midias sociais
5set2011
Este post, será um breve relato do que aprendi e observei durante a minha experiência com desenvolvimento web.
Não (saber|utilizar) OO
Escrever um aplicação com o paradgma de orientação a objetos, não é simplesmente sair criando classes.
E colocar em métodos todo aquele teu código estruturado, colocando um public ou private, na frente das tuas antigas funções.
OO não é isso. Para fazer corretamente, vc deve enchergar os objetos, e as relações deles. Como eles devem se comunicar, delegando responsabilidades.
Misturar camadas
É muito fácil querer resolver tudo de uma vez, mas ai nos encontramos misturando as coisas. Colocando partes do controller nos models..
OO e MVC são duas coisas distintas, mas que caminham juntas. Escrever em camadas, é uma abstração maior, para fazermos além, de converter nosso sistema em objetos.
Na minha opinião server-side, não deve, ou deveria gerar o mínimo de HTML possível. Quando vejo classes que encapsulam toneladas de código HTML, ou outras destinadas a formar tags, ouço uma voz: “isso está misturado”. Estão praticando um acoplamento das classes com aquele HTML.
Se eu tiver um sistema administrativo, e precisar trocar o layout dele, não quero ter que mecher nas classes responsáveis pelas regras de negócio, quero ver o mínimo de server-side, e ter um arquivo com html simples e puro.
Trabalhando em equipe, onde temos um FrontEnd, que nem sabe BackEnd, não dá para pedir pra esse cara mudar o HTML lá dentro da classe. Ou então esperar que ele aprenda a instanciar classes para gerar o HTML dos formulários..
Sério, acho muito estranho essa idéia de classes geradoras de TAGs, ou que encapsulam quantidades absurdas de HTML.
A princípio, acho que BackEnd, deve retornar dados. E então, só no template, é que esses dados serão divididos e organizados na marcação.
Superestimar a aplicação
Faça o simples. Menos funcionalidades, mais objetividade. Meus sistemas nunca mudarão de banco de dados. Isso é um requisito.
Aplicações com poucos acessos, não precisam prever uma mudança de MySQL para Oracle. Não vou usar a lib PDO do php, para abstrair acesso aos dados, sendo que a extensão mysqli é muito boa, rápida, e resolve o que preciso.
Não subestime
Devo deixar um mínimo pronto para expansão. O importante não é apenas resolver, mas garantir que o sistema cresça. Uma modelagem correta dos dados, uma estratégia que prevê mais recursos, deixando a estrutura robusta, pode poupar muito tempo no futuro. Note, não estou implementando tudo, estou apenas deixando preparado.
O que eu consigo lembrar por enqnto é isso. Você tem mais alguma dica ? compartilhe.
Link deste post
25ago2011
Esqueça os tutoriais. Esqueça os exemplos.
Não busque, não pergunte. Faça!
Este é mais um dos meus “posts revoltados”. Dedico um bom tempo do meu dia ao fórum.
Vejo diversos códigos, estruturas, dúvidas, usuários, problemas, programadores, não programadores… por dia.
Zona de conforto
Um erro comum, é a zona de conforto. É muito simples abrir a URL do fórum, procurar um subfórum específico, e perguntar aquilo que você não sabe como fazer. Muito fácil.
Eu já disse que fórum não é helpdesk. E já disse o porque saber o básico é tão importante.
Mas ainda não deixei claro, que o ideal é não procurar exemplos. Não procurar tutoriais. Não se limitar a isso.
Ainda não perceberam, mas o ato de procurar, procurar, e procurar… sem ter tentado fazer, apenas te limita, e te faz ser um mero Copy & Paste.
Tentou fazer ?
Não é raro o caso de usuários, que abrem tópicos antes, de ao menos tentar executar a tarefa. Talvez eles saibam fazer, são até capazes de descobrir por eles mesmos como fazer. Mas antes disso, antes de dar a chance a eles mesmos, de serem autosuficientes, foram lá e se tornaram espectadores e preguiçosos.
Exemplos atrapalham
Atrapalham o teu desenvolvimento pessoal. Os teus estudos.
Se vc não tiver nível de conhecimento para chegar lá, e não for capaz de entender oque o exemplo está fazendo, então vc não fez nada, apenas se tornou dependente, e o exemplo te atrapalhou.
E outra, quem disse que o exemplo de código, ou aquele tutorial supimpa, está correto ?
Ninguém garante. Não existem verdades únicas. O código que você está copiando, pode não ser o melhor, e nem resolver o problema da melhor forma possível.
Não se limite
Só busque exemplos, se você souber oque fazer com eles. Não dependa deles.
Se você não consegue fazer sem, então o problema não é a falta de exemplos, mas somente o teu conhecimento.
Aumente ele. Estude. Invista tempo nisso, ou passe o resto da vida procurando, e dependendo dos outros.
Procure guias e não soluções
Não sabe oque fazer? Pense.
Não procure scripts prontos para aquilo que você deve fazer. Vá fazendo. Tome a iniciativa.
Com o desenrolar das coisas, algumas dificuldades virão, então nesse momento, procure guias, caminhos, mas nunca procure a solução completa.
Acredite em mim. Um dia você será capaz de chegar até o final sozinho. Mas só se desde o começo, você não se limitar a procurar. Tentando fazer você aprenderá a fazer.
Mesmo que não consiga fazer na primeira, segunda, enésima vez. Cada tentativa te ensinou uma coisa diferente, ou como diziam por ai: “Varias formas de não fazer”.
Link deste post
11ago2011
Esse post é uma espécie de linha cronológica. Destinado a quem possa interessar.
O Miguel, pediu para que eu contasse como ‘comecei’.
Ensino Médio
Começou enquanto eu ainda estava no Ensino Médio. Já não me lembro bem o motivo, mas eu estudei html por conta própria. Li diversas apostilas. Algumas até mais de uma vez.
Foi um processo lento. Estudei, li sobre cada tag, mas nunca consegui fazer nada. A tag <table> não entrava na minha cabeça, me parecia ser absurdo fazer um site com elas. Abandonei por um tempo, pois não estava chegando a lugar nenhum, e como citei ‘foi um processo demorado’.
Passei então no vestibulinho do Guaracy, para cursar Técnico em Eletrônica.
Nesse mesmo período, fiz curso de informática na SOS Computadores. Cursos básicos, Pacote Office, Corel Draw, Photoshop, Page Maker.. curiosamente, retirei da grade os cursos de web (flash, dreamweaver..) e não fiz nenhum da área.[Acredito que foi a decisão mais acertada que tomei].
Técnico em Eletrônica
Tive aulas de lógica, de lógica de programação. Fiz Mapas de Karnaugh, fiz algorítmos no papel..
Uma das disciplinas, me levou para o laboratório, e então vi Assembly!
Programei nessa linguagem por conta dos microcontroladores. Os dispositivos, precisavam de CIs inteligentes, capazes de receber entradas(push buttons), e executar instruções . Um dos projetos compilados em assembler, era um contador de truco. Este somava +1, +3, -1, mostrava mensagens na tela do display, e possuia um display para cada dupla(ou jogador) de truco.
Tive aula de Linguagem C. Puro. Compilado no TurboC. Eu não era o melhor, mas de longe essas eram as minhas melhores matérias.
Me formei, terminei o ensino médio, e então veio o vestibular.
Faculdade
Sou chato, ranzinza, e sempre gostei de poucas coisas. Prestei vestibular na USP para Licenciatura em Matemática, tendo escolhido Lic Física como segunda opção. Afinal, era a minha única escolha óbvia, já que no período escolar, a única disciplina que eu gostava era Matemática.
Já tinha desencanado do sonho, afinal, mesmo tendo feito a segunda fase, a USP já havia divulgado a lista da segunda chamada, e nada do meu nome estar entre os convocados. Enfim, na terceira lista, e eu fui chamado!
Saí direto do Ensino Médio/Técnico, para a terceira chamada! Só que a vaga era para Lic em Física.
Tudo bem, era USP! E eu passei porra!
Licenciatura em Física
Não era bem o que eu queria. Porém foi bem importante, pois tive aulas de Java. Numa disciplina que estranhamente se chamava: Introdução a ciência da programação e orientação a objetos para Licenciatura em Java.(ou algo assim, lembro que o nome era gigantesco). MAC 110.
Adorei cursar. Foi a minha melhor média no curso. As provas eram escritas. Criar um programa que resolva tal situação, e ‘compilar ele’. Essa era uma idéia muito bacana. O professor nos ensinou a fingir ser o compilador.
Em aula, líamos linha por linha do programa, anotando o resultado das variáveis. Se tivesse um loop, 3~5 voltas, iterávamos por cada volta com os olhos, lendo o programa, e anotando numa tabela, o resultado atual de cada variável.
Esse sistema, me deu uma boa noção do que é debugar. Depois disso, aprendi a fazer testes. Testes unitários e automatizados.
Tudo bem básico. Uma classe que instanciava o meu programa, dava um valor de entrada, e verificava se o valor de saída da classe a ser testada, batia com o que eu esperava.

Nesse momento, eu estava ‘desesperado’, pois precisava trabalhar. Eu havia estagiado na época do Técnico, porém, não me deu nenhuma experiência, já que eu apenas ‘imprimia folhas’, no departamento de Proteção Patrimonial da Porto Seguro (rastreamento de cargas). Vi que HTML não estava me levando a lugar nenhum, e entre a lista de cursos do Senac, o que mais chamou a minha atenção foi: Desenvolvimento Web com PHP e MySQL. Fiz o curso. Bem básico, e senti dificuldades por não saber html direito.
Resolvi parar de me enganar. E após ficar 1 ano cursando física, prestei Fuvest novamente, pois eu gostava mais da Matemática que tinha na Física, do que da Física em si. Passei, novamente sem cursinho. E dessa vez, na primeira chamada.
Licenciatura em Matemática
‘Jubilei’, por conta da nova matrícula.
Na virada do ano, comprei o livro do Maujor. Estudei css. Eu já havia tentado antes, porém sem muito sucesso. Só depois de ter devorado em 2 dias o livrocss, foi que cheguei a algum lugar, e me senti apto a trabalhar com web.
Comecei a participar do Fórum iMasters. Primeiro com perguntas super toscas, e depois fui melhorando, respondendo os outros, aprendendo com as dúvidas. Até que..
Primeiro Freela
Poxa, fiquei super empolgado. Finalmente eu começaria a ganhar dinheiro. Fechei o trabalho por R$15,00.
Eu não tinha noção nenhuma, e afinal de contas, era o meu primeiro trabalho web!
Eu já estava bem melhor, e quando resolvi cobrar um pouquinho mais, levei 2 calotes. No total, eram 7 páginas, cobrei se não me engano, R$150,00.
Okay, dei azar, vacilei. Porém me rendeu uma boa experiência. Continei no fórum, fiz um freela bem sucedido, e ‘bem pago’, para a Carol Kadix.
Daí em diante continuei com os freelas. Dei manutenção em um sistema de controle financeiro de um buffet do Rio de Janeiro.
Até que uma amiga, me indicou para trabalhar em uma agência web na Zona Norte.
Agência Web
Fiz entrevista, conversei com o dono, e comecei a trabalhar. Parecia tudo muito legal, a agência era pequena, e me deu uma boa experiência. Cheguei a fazer 3~4 sites por semana. Muitos recortes css. Muitos sistemas. Módulo de notícias, album de foto, pequeno sistema de fórum, um gerenciador cms próprio..
Ritmo de agência. Paulera. Correria. Entrega, entrega, entrega. Um projeto atrás do outro. Muitos formulários.
Comecei a melhorar com os freelas. Afinal, eu ainda estava na faculdade, e trabalhava Home Office, por conta da distância entre a minha casa, faculdade e agência.
Tive que aprender javascript. Não tinha para onde fugir. Tudo precisava. Eu tinha alguma noção básica, e muito da programação que tive no técnico e na faculdade me ajudaram nisso.
Implementei Tableless nessa agência, elevei o nível dos sistemas de lá. Finalmente entreguei as primeiras lojas virtuais, utilizando OpenCart(antes disso, a agência só tinha tido frustações). Não era o suficiente, eu queria mais.
Um freela grande – Santa Efigenia
Peguei finalmente, um freela de respeito. Um site sobre a Santa Efigenia. Eu estava melhorando, estudando MVC, e Orientação a Objetos.
Coincidentemente, nessa época, eu estava estudando jQuery. Dando os meus primeiros passos com ajax.
Pedi 45 dias de prazo. Estudei durante 30 dias, comprei um livro de sql, e um de php OO. Desenvolvi todo o sistema que está no ar até hoje, nos últimos 15 dias do prazo. Ficou bom.
Outros freelas
Eu ainda estava na agência. Fiz um sistema de notícias para uma cidade do Mato Grosso do Sul. Revendi o mesmo sistema para um portal de empresas da área do aço. Consegui comprar um notebook com isso.
Nunca parar
Meu salário na agência já estava ficando pequeno. Sempre tive facilidade com entrevistas, de 10, apenas uma eu não era chamado. Porém, o horário da faculdade não me deixava trocar de trabalho.

Dei um basta, eu precisava melhorar. Já estava estagnando na agência. Fiquei lá dois anos e meio. Até dezembro de 2010.
Pedi as contas. Foi complicado, perdi uma grana nisso(não tirei e não recebi pelas férias, nem as que atrazaram).
Um amigo, me passou um link do blog da Locaweb. Uma vaga para FrontEnd.
Fiz um freela de uma semana em uma das agências que eu havia recusado a vaga de programador.
Freela de uma semana
Foi muito bom trabalhar com pessoas. Afinal, na primeira agência, além de eu fazer home office(e ficar sozinho em casa), eu era o único desenvolvedor, já que além de mim, o outro funcionário era designer.
E então, que nessa semana, recebi o resultado da minha entrevista na Locaweb. Eu passei. Me chamaram.
Oras, eu programava php, javascript, porém a vaga era para apena FrontEnd. Nenhum problema para mim. Já que, comecei como Front, e me especializei nisso.
O salário, era melhor do que oque eu ganhava na agência. E perto da minha casa.
Estou lá até hoje. Acabei de completar 7 meses como Locaweber.
Futuro
É incerto. Não sei. Só sei que continuo estudando. Comprando livros, indo a cursos, palestras, respondendo dúvidas no iMasters.
Fazendo faculdade de Matemática, e escrevendo aqui no blog.
Link deste post
25jul2011
Para me motivar a ler, e fixar o que estou fazendo, vou postar aqui no blog, todo e cada livro que já li.
Algo como a minha impressão sobre ele.
“O Desing do dia-a-dia” de Donald A Norman no início me pareceu ser bem crítico, e antes da explicação, o autor parece não querer que as coisas evoluam. Equipamentos ficam complexos com a tecnologia, um rádio relógio é também despertador, am/fm, poderia ter TV, cafeteira.. e essa evolução da tecnologia dificulta o uso.
A justificativa é: “um design inteligente pode minimizar as dificuldades de uso”. As idéias são muito bacanas, e oferecem uma boa base teórica. Um bom design deve minimizar os erros. Erros acontecem (pessoas comentem quando estes são possíveis).
Conforme avanço na leitura, se torna cada vez mais evidente a formação em psicologia do autor. E então, fica claro que talvez o conceito mais importante do livro são “os erros”. As várias formas de cometê-los o ‘porque erramos’.
Um texto do tipo: “Leia, entenda e em vez de tirar suas conclusões, mude realmente sua forma de ver o mundo.” Muita coisa não é novidade, ou sabemos dela por estarem no nosso dia-a-dia.
Porém, não damos a devida atenção. Norman consegue com esse livro nos levar a rever o óbvio. Pois é necessário que alguém nos diga. Se não, pelo menos eu, continuaria dando pouca ou nenhuma importância para todos esses tão conhecidos detalhes.
Recomendo mesmo a leitura dele. Boa escolha.
Link deste post
22jul2011
Caramba! parece que a galera não percebe. Não adianta você partir para um Framework, ou querer aprender OO, se você não souber o básico de programação.
Sério. Estou dando uma super dica. Aprenda a base.
Você não foi estudar Integrais e Derivadas antes de aprender a somar. Você não escreveu a tua redação do Enem ou do Vestibular(de alguma federal), antes de aprender a conjugar verbos.
Pois é. Agora imagine, o que aconteceria se invertessem essa ordem. Vamos tentar ensinar um conceito que depende(pois usa diretamente), um outro mais simples, sem ensinar esse mais simples.
Indo direto para o avançado.
Aprender a programar
Vamos nos ater aos conceitos, okay ?
Quer programar? então aprenda a programar.
Não aprenda java, nem aprenda c, nem php, nem nenhuma linguagem em específico. Aprenda a programar.
Não estou falando de pseudos linguagens, ou de ‘portugol’, ou coisas assim. Estou falando dos conceitos básicos de programação.
IF é IF em C, em Java, em PHP, em SQL..
“O while” do Java, é igualzinho o while do php. O while do asp, possui o mesmo conceito. Apenas a sintaxe que muda.
Não aprenda a usar um for() em javascript, mas sim entenda o que é este for(), oque ele faz, porque ele faz.. ‘o conceito dele’.
E oque é o básico?
Afinal então, o que é o básico ?
O básico da programação é a lógica. Se não tiver uma boa lógica, ou não for capaz de resolver um problema que lhe for imposto, você terá dificuldades em programar.
Sim, a beleza do código é importante. Existem soluções elegantes.
Mas você só chegará nelas, se for capaz de organizar o pensamento, e traçar de forma ordenada os passos até o objetivo final.
Coisas comuns
Lembre-se das estruturas comuns das linguagens: if, else, else if, while, do while, continue, break, for, switch, main()..
Não importa a sintaxe, se eu souber ‘o conceito’ desses comandos, tenho que conseguir usá-los com qualquer linguagem.
Um sonho
Sonho com um mundo onde, serei tão bom no básico, e nos conceitos, que ‘mudar de linguagem’, me custará um aprendizado de 1 ou 2 dias(ou até apenas algumas horas), apenas para que eu entenda a diferença de sintaxe. Por que não ?
Algumas nos surpreendem com conceitos próprios e completamente diferentes de tudo oque conhecemos até então. Nesse dia, ‘do meu sonho’, saberei esses conceitos, mesmo que não os use para todas as linguagens. Ainda assim, o foco é saber o que existe de igual entre todas elas.
Afinal linguagens são apenas ferramentas. Use a ferramenta certa para o trabalho.
O simples
Faça bem feito o simples. Seja básico, mas seja bom no básico. Saiba tudo do básico.
Falta muito disso hoje em dia. Antes de procurar ‘o cara que desenvolve em Rails ou em ZendFramework’, eu preciso de um cara que desenvolva.
E bem.
Que saiba que HTML é a linguagem base da internet. Que Tableless é um conceito importante, que a validação da w3c, apenas te indica erros de sintaxe, erros de sintaxe são básicos. E por até por isso, é apenas a tua obrigação mínima validar.
É sério, existem pessoas que acham que a ter o selo de validação, vai garantir que o site seja crossbrowser!
Não! não vai! Lógico que não!
Seja bom
Antes de ser bom em coisas complicadas, seja bom na base. Faça bem feito o simples.
Em SEO por exemplo, vejo a galera se matando com AdWords, AdSense, afiliados.. mas a página do cara é um lixo!
Feia, desorganizada, sem layout, sem usabilidade, sem semântica.
Linguagens baixo nivel
Volto a bater nessa tecla. Linguagens baixo nível são incríveis!
E existem programadores que nem sabem que elas existem!
O conceito
Se você realmente souber o conceito das coisas, tudo se tornará natural para ti. Você saberá quando usar, e não precisará decorar.
A tua necessidade, te lembrará qual conceito conhecido, que resolve aquela situação.
O bacana do básico, é que todo mundo parece se esquecer dele. E lá na frente, quando estão no avançado, encontram dificuldades básicas.
Recorrente isso, ne?! Olhe a educação no Brasil. Jovens na oitava série ou colegial, que não sabem interpretar texto !
Traduzindo para a nossa profissão: caras que programam a anos, e não sabem lógica de programação!
Ou então, programadores que não sabem usar condicionais. Que não sabem o que é booleano. O que é tipagem.
Existem aos montes!
Não concorda ? me odeia ? comente.
Link deste post