Nos dias de hoje, o mercado de trabalho exige que sejamos profissionais, muitas vezes somos massacrados por prazos e por novas tecnologias, esteja preparado para saber lidar com isso.
smartphone
microfone
laptop
bateria do laptop
datashow
quantas vezes por dia você coloca sua vida na declaração de um IF escrita por um jovem de 18 anos feita às 3 da manhã?nós precisamos ser profissionais!
faço o que meu chefe manda
executo minhas tarefas
chego sempre cedo
faço hora extra sempre que me pedem, mesmo nos finais de semana
corro para cumprir os prazos que me dão
trabalho de madrugada
tenho carteira assinada ou emito minha nota PJ
======================================
Existe a história de um banco, onde as pessoas acordaram em uma manhã e os caixas eletrônicos mostravam os saldos de suas contas zerados!
por que? um sobrinho programador
cliente: minha conta está zerada, vou sair desse banco! Como confiar num banco assim?
Um programador falha!
o profissional é aquele que leve seu trabalho muito a sério!
entende o risco
o sangue da empresa corre pelos seus dedos
sua empresa depende da sua vida e do software que você escreve
como programador somos a razão da empresa ganhar ou perder dinheiro
somos como médicos fazendo cirurgia no software da empresa
precisamos levar isso a sério, com profissionalismo
ele sabe o que tem que ser feito
são contratados pelo seu conhecimento e executam seu conhecimento
========================
A maioria aqui quer ser um desenvolvedor de software profissional, certo?
- existem muitas oportunidades
- já trabalham na área
- outros por usar redes sociais (na minha época era só orkut)
Primeiro, se declare um, erga a cabeça e diga para si mesmo: "Eu sou um profissional!"
Você quer que as pessoas te tratem de maneira diferente, quer virar referência e ter respeito.
Vocês querem isso, certo?
Profissionalismo é um termo pesado, eu sei!
É como uma medalha de honra e orgulho, e ela vem junto com a responsabilidade e prestação de contas.
Pense neste problema, o que aconteceria se permitisse um BUG entrasse em produção e isso custasse R$ 10 mil?
- o amador vai falar: "acontece!" e seguir em frente
- o profissional vai escrever um cheque para empresa no valor de R$ 10 mil
Não faça uma entrega de um projeto ou funcionalidade sem testá-la só para entregar no prazo.
Eu mesmo já negligenciei algumas rotinas ou formalidades só para entregar no prazo e o efeito colateral disso não é bom!
- não se trata só da sua reputação
- Inconsistência ou até perda de dados
- Código difícil de ler
do ponto de vista de desenvolvimento de software, o dano pode prejudicar o funcionamento e a estrutura do software.
Quem não gosta de fazer as coisas funcionarem de primeira, é um sentimento gostoso!
Porém, bugs afetam o funcionamento do software e como profissionais não temos que criar bugs.
Software é complexo, como vou fazer sem BUG?
Pense em nosso corpo, é tão complexo, e os médicos fazem juramento para não danificá-lo.
Mas, escrever um software perfeito é virtualmente impossível e não significa que não é responsável pela sua imperfeição
existem muitos software com sua estrutura pobre e que torna o trabalho de manutenção e com estruturas inflexíveis
um software deve ser simples de ser alterado!
existem diversos princípios e padrões de software que suportam uma estrutura flexível e com alta manutenabilidade
- SOLID
- Lei de Demeter
- Gang of Four (Gof) Design Patterns
seja um bom escoteiro, achou alguma sujeira, limpe-a!
Sua carreira é sua responsabilidade, então suas responsabilidades são:
- praticar
- aprender
- ir a conferências
- comprar livros
Alguns empregadores farão isso por você, mas é um favor que estão fazendo!
Você deve planejar 60 horas na semana, 40h para seu empregador e as outras 20h para enriquecer sua carreira.
E meu tempo livre? família?
estou falando de 3h por dia:
- podcast na hora do almoço
- durante o trajeto até o trabalho
Já ouviu falar de:
- NoSQL
- GIT ou controle de versão
- Machine Learning
- State Machine
- Data Science
- Framework
- Design Patterns
- Domain Driven Design
-Test Driven Development
Existem infinitas ferramentas, técnicas, disciplinas e terminologias neste longos anos.
Você deve conhecer cada uma, saber onde aplicar, mas não necessariamente ser especialista no assunto
Com as frenéticas mudanças na indústria, isso significa que o desenvolvedor de software deve continuar a aprender para se manter atualizado
e quem pára de codar, rapidamente se tornará irrelevante
você iria em um médico que não se atualiza?
ou em um advogado que não conhece as novas leis?
leia livros, blogs, artigos, vá a conferências, groupos.
- Crie grupos de estudos
- github: leia código dos outros
saia da sua zona de conforto! se você sabe .NET, estude Java, se sabe Java estude PHP
bons profissionais trabalham duro para manter suas habilidades afiadas e aprimorar outras
como posso treinar? repita exercícios simples como um jogo de Boliche ou Caixa Eletrônico
procure por problemas simples de programação para resolver, a idéia aqui é treinar seus dedos e cérebro
resolva em Java, Ruby ou em Clojure, a idéia é manter as habilidades afiadas.
Desenvolvedores profissionais programam juntos, praticam juntos, desenham e planejam juntos
ele terminam mais rápido e com menos erros
mas não precisa ser 100% do tempo, ter um tempo sozinho também é importante
outra forma de aprender é ensinando!
falar sobre determinado assunto e com diferentes pessoas, geram novas percepções sobre o assunto
como profissional tem a responsabilidade por mentorar os aspiras.
é responsabilidade de todo desenvolvedor entender o domínio das soluções que eles programam.
entendam domínio, como regras de negócio
se vai escrever um sistema de contabilidade, você deve conhecer o campo da contabilidade
mas você não precisa ser um expert, mas você precisa se envolver
programação é um ato de criação, codando estamos criando algo do nada
estamos no comando, em detalhes precisos, da máquina que de uma outra forma pode causar danos incalculáveis.
Profissional confia em suas habilidades e assume riscos calculados baseado em sua confiança
Ele pode ser alvo de uma piada, e será o primeiro a rir dela.
Ele não humilha o outro por erro, porque sabe que ele também pode errar.
Ei… você pode fazer isso rápido? Não!
engraçada é a magia da palavra "tentar", porque dizer isso vai mudar alguma coisa?
você fala isso só para as pessoas irem embora e te deixar trabalhar tranquilo!
Profissionais falam não, inclusive para seu chefe!
Espera, como você diz não ao seu chefe? Afinal, é seu chefe! Você não deveria fazer o que o seu chefe diz?
Não, se você é profissional.
Os escravos não podem dizer não.
Trabalhadores podem hesitar em dizer não
Mas os profissionais devem dizer não
Na verdade, bons gerentes desejam alguém que tenha coragem de dizer não.
É a única maneira que você pode realmente fazer qualquer coisa.
sobre estimativas…
Diga, "eu não sei"!
se você tem alguma ideia sobre, tenha muito cuidado em dizer!
Sempre estime em período… 15 dias e 6 anos… hahahaha
mantenha as pessoas atualizados sobre o andamento e se tiver boas notícias sobre o prazo
se você der a data, estará mentindo!
A negociação às vezes pode ser agradável.
Ambos não estão sendo profissionais
Mike: "Paula, eu preciso da página de login feita até amanhã".Paula: "Oh, uau! Está muito em cima? Bem, ok, vou tentar.Mike: "OK, isso é ótimo. Obrigado!"
Paula sabe que levará mais que um dia para entregar, então ela está mentindo.
Ela pode pensar que conseguirá entregar, mas no fim é mentira!
Mike aceitou o vou tentar como um SIM.
isso é uma coisa burra a se fazer, o que ele não percebeu que ela só evitou o confronto
ele deveria ter pressionado e ter falado:
Você não está tão confortável, tem certeza que pode fazer até amanhã?
----------------
Mike: "Paula, eu preciso da página de login feita até amanhã".Paula: "Oh, desculpe, mas vai me levar mais tempo do que isso".Mike: "Quando você acha que pode fazer isso?"Paula: "Que tal cerca de duas semanas a partir de agora?"Mike: (rabiscando seu cronograma) "OK, obrigado".
Melhorou, certo?
mas ambos falharam na busca pelo melhor resultado possível.
Mas em vez de perguntar, Paula poderia ter sido ainda mais assertiva!
"Vou levar duas semanas a partir de agora, Mike!"
Mike, em contra partida, aceitou a data como se seus próprios objetivos não importassem.
Ele simplesmente volta e diz para o chefe que a demonstração será adiada por causa de Paula.
-----------------------
quando você ver algo estranho no código, é esperado que você:
- limpe imediatamente
- sem hesitar
- sem medo
- sem pedir permissão
o médico, para fazer uma cirurgia, esteriliza seus equipamentos…
para isso você pode usar o TDD ou outro mecanismo para fazer sem medo
é esperado que você não tenha medo de tocar no código, que você o manobre, manipule e limpe
Você sabe como seu código funciona, então teste-o! De forma unitária!
A cada passo que der, garanta que está funcionando como o esperado.
Teste uma vez, duas, três, de um lado para outro
Você pode achar que gasta-se muito tempo testando, mas ao escrever seu código você já o testa, então automatize esse processo
Com ferramentas para isso, use e abuse dos testes e faça sem medo de errar!
não precisa ter uma cobertura de 100% das linhas, mas toda linha de código deve ser testada!
mas meu código é difícil de testar, então você teve uma péssima decisão de design