Na busca por um mentor

Boa noite pessoal,

Pensei muito para abrir esse tópico e principalmente como escrevê-lo, espero que tenham paciência tanto comigo como para ler um pouco da história por trás dele.

A cerca de 4 anos venho na batalha para me tornar um desenvolvedor, principalmente motivado por necessidades pessoais. No começo do ano com a ajuda de muitos aqui do fórum consegui montar uma espécie de roteiro do que seria necessário aprender para ser um bom desenvolvedor, ou pelo menos com uma base mais sólida.

Tomei coragem, me inscrevi no Alura no começo do ano e completei os cursos de HTML5/CSS3 e Lógica de Programação 1 e 2. Pela minha sequência eu deveria ter ido para jQuery, mas optei por aprender Banco de Dados e é ai que meus problemas começam.

Novamente com a ajuda do pessoal entendi que antes de Banco de Dados eu deveria aprender a modelar os dados antes. Por indicação, comecei lendo o Projeto Banco de Dados de Carlos Heuser e não me adaptei muito bem, dai tentei o Modelagem Lógica de Dados do Eduardo Bernardes, indicado por ele mesmo, o qual mantenho contato por e-mail inclusive.

O livro do Eduardo eu gostei muito, a questão é que, não sei se sou eu, mas me sinto um pouco inseguro lendo o livro e fazendo os exercícios sem alguém pra discutir.

Cheguei a conversar com o Paulo Silveira por e-mail, se ele conhecia algum curso de modelagem de dados e ele me disse que é uma coisa que se aprende mais no meio acadêmico, o que comprovei vendo as grades de vários cursos de Sistemas de Informação, Ciência da Computação etc.

Basicamente o que eu procuro é um curso disso, um professor particular ou alguém que possa me ver como aprendiz, como eu disse no começo, tenho projetos pessoais que eu gostaria de ter alguém para trocar ideia, quem sabe desenvolver em parceria. Sou de Piracicaba e estou com dificuldade de encontrar alguém daqui, mas se tiver algo em Campinas consigo dar um jeito. Meu desespero é tanto que cogito me mudar pra São Paulo se me disserem que só lá vou encontrar a pessoa/curso que procuro.

Vi que na formação Oracle do Senac tem a parte de modelagem de dados, seria esse um caminho? Não sei o que a vida me reserva, mas não queria aprender nada especifico agora, quero algo mais genérico, que pode ser aplicado para qualquer SGBD.

Outra opção seria cursar o semestre de Banco de Dados de uma faculdade, é praticamente o que estou decidido a fazer, só fico na dúvida pelo tempo que toma, prefiro algo mais direcionado e rápido!

Sei que muitas pessoas podem gostar de algo, mas não foram feitas para aquilo. Não vai ser a falta de determinação que vai me tirar desse caminho, só se realmente eu não for feito pra isso hahaha

As vezes acho que me preocupo demais com a formação dessa base, mas tem horas que vejo como algo bom, enfim, deixo para vocês julgarem.

Conto com a ajuda de vocês, quem sabe pela última vez!

Um abraço,
Flávio

Porque não a faculdade logo de uma vez ? Se você já sentiu dificuldade com bancos de dados, provavelmente você terá dificuldades com outros assuntos que geralmente são abordados em um curso universitário, incluindo aí estruturas de dados, complexidade de algoritmos, sistemas operacionais e redes.

Obrigado pela resposta!

Como sempre muito participativo nos meus tópicos.

O problema da faculdade é o tempo, já fazem 4 anos que estou pra começar meus projetos e a faculdade levaria pelo menos mais 3 anos para que eu pudesse começar eles.

Sistemas operacionais e redes eu domino bem ao meu ver.

Penso que se eu tivesse alguém como referência para tocar isso pra frente eu ia deslanchar, e ainda a oportunidade de ser o “peão de obra” de alguém, um estágio não remunerado.

Por exemplo, se a pessoa tivesse códigos fáceis e precisasse de alguém pra fazer enquanto ela faz coisas mais elaboradas, penso que poderia ser esse alguém. É uma forma de ganhar experiência e ainda ajudar.

Em resumo, é mais a parte do “sozinho” que vem me incomodando, se alguém dissesse: Venha até aqui para eu dar uma olhada no que você tem dúvida, eu iria e talvez fosse visto como “Ah, ele não tem tanta dificuldade assim, só estava sem rumo”

Não sei se faz sentido o que eu to falando mas já fico agradecido pela sua iniciativa de responder, muito obrigado mesmo!

[quote=fggs]Obrigado pela resposta!

Como sempre muito participativo nos meus tópicos.

O problema da faculdade é o tempo, já fazem 4 anos que estou pra começar meus projetos e a faculdade levaria pelo menos mais 3 anos para que eu pudesse começar eles.

Sistemas operacionais e redes eu domino bem ao meu ver.

Penso que se eu tivesse alguém como referência para tocar isso pra frente eu ia deslanchar, e ainda a oportunidade de ser o “peão de obra” de alguém, um estágio não remunerado.

Por exemplo, se a pessoa tivesse códigos fáceis e precisasse de alguém pra fazer enquanto ela faz coisas mais elaboradas, penso que poderia ser esse alguém. É uma forma de ganhar experiência e ainda ajudar.

Em resumo, é mais a parte do “sozinho” que vem me incomodando, se alguém dissesse: Venha até aqui para eu dar uma olhada no que você tem dúvida, eu iria e talvez fosse visto como “Ah, ele não tem tanta dificuldade assim, só estava sem rumo”

Não sei se faz sentido o que eu to falando mas já fico agradecido pela sua iniciativa de responder, muito obrigado mesmo![/quote]

Na verdade, o que precisa não é de uma pessoa, você precisa de várias. Então, o melhor lugar para encontrar essas pessoas é mesmo numa faculdade. E você não vai precisar terminar a faculdade para iniciar os seus projetos, vai poder fazer em paralelo.

E, como já tem algum conhecimento, vai poder fazer a faculdade com mais facilidade.

Obrigado pela resposta A H Gusukuma!

É, pela resposta sua e do rmendes08, acho que não há uma forma mais intensiva de encontrar o que eu procuro fora da faculdade.

Minha ideia era aprender bem a modelagem de dados e depois voltar para o Alura e cursos presenciais, se existisse um curso de modelagem de dados eu certamente faria. Por tudo que procurei e conversei, somente na faculdade mesmo.

Tem um curso muito bacana no Senac SP chamado Tecnologia em Banco de Dados, são 2 anos e meio, vou ver se consigo me inscrever.

Agradeço mesmo a participação de vocês!

Além de tudo que falaram em relação a aprendizado acadêmico e de relacionamento, a graduação vai abrir as portas para melhores oportunidades no mercado e concursos públicos. Não é só questão de saber tecnicamente.

Obrigado pela resposta javaflex!

Faz sentido! E depois das respostas do rmendes08 e do A H Gusukuma fui atrás de um curso de Sistemas de Informação EAD, mas ai vai contra a oportunidade de conhecer pessoas, certo?

Trabalho numa empresa de equipamentos para laboratório com meu pai, quase que 100% do que eu aprender eu quero aplicar lá. Não é que eu não me importe com o mercado de trabalho ou concursos (ou até mesmo o currículo propriamente dito), mas no momento meu foco é todo lá, com exceção de alguns projetos pessoais minúsculos como site pessoal (até mesmo para praticar).

Minha ideia era simples:

1- Terminar o livro Modelagem Lógica de Dados do Eduardo Bernardes com a ajuda de alguém (presencial)

2- Tentar aplicar um pouco dos conhecimentos num único projeto que é minha total prioridade, com a ajuda dessa mesma pessoa

3- Com o DER da primeira fase do projeto pronto eu dava um jeito de ficar em São Paulo para cursar a Formação Java da Caelum.

O livro tem 13 capítulos, sendo o 12 de estudo de casos e o 13 de soluções dos casos do 12 e considerações. Eu terminei o 7, ou seja, falta pouco!

Dada todas as respostas que eu tive até agora, se a solução para os meus problemas é a faculdade, tudo bem, afinal eu disse que era determinado. Só estou um pouco cansado de não ver a coisa evoluir depois de mais de 4 anos com esse projeto empacado e por isso pensei numa solução mais intensiva.

Já pensou em consultoria? Afinal o objetivo é o sistema ou você desenvolver o sistema?
Quanto à faculdade, verifica um curso de Tecnologia em Análise e Desenvolvimento de Sistemas, o de Tecnologia em Banco de Dados cobre apenas uma parte de suas necessidades.

Consultoria você diz, passar o sistema para alguém desenvolver? Sim, fiz entrevista com 4 desenvolvedores, mas os que eu gostei acabaram desistindo por falta de disponibilidade, no caso 2. Dos que restaram um ia me cobrar “taxa de manutenção” mensal e não entramos num acordo, e o outro realmente não gostei da proposta.

Com relação ao objetivo, o meu pessoal é aprender, o da empresa é o sistema, para isso eu pensei uma coisa mais “bom pra todo mundo”, eu desenvolvo junto com alguém, facilitando a tirada de dúvidas, colocando todos os pontos como eu idealizei, e ao mesmo tempo ganho aprendizado, afinal eu que vou manter tudo depois.

Meu amigo que estava me orientando até ele não ter mais tempo pra nada me recomendou um coach Scrum 2 anos atrás, e foi o que eu fiz, ou seja, o sistema em si está “modelado” por assim dizer, backlog pronto. É dai que estou partindo.

[quote=fggs]Consultoria você diz, passar o sistema para alguém desenvolver? Sim, fiz entrevista com 4 desenvolvedores, mas os que eu gostei acabaram desistindo por falta de disponibilidade, no caso 2. Dos que restaram um ia me cobrar “taxa de manutenção” mensal e não entramos num acordo, e o outro realmente não gostei da proposta.

Com relação ao objetivo, o meu pessoal é aprender, o da empresa é o sistema, para isso eu pensei uma coisa mais “bom pra todo mundo”, eu desenvolvo junto com alguém, facilitando a tirada de dúvidas, colocando todos os pontos como eu idealizei, e ao mesmo tempo ganho aprendizado, afinal eu que vou manter tudo depois.

Meu amigo que estava me orientando até ele não ter mais tempo pra nada me recomendou um coach Scrum 2 anos atrás, e foi o que eu fiz, ou seja, o sistema em si está “modelado” por assim dizer, backlog pronto. É dai que estou partindo.

[/quote]
Você já deve ter levantado o que vou perguntar, esteja à vontade para responder ou não.
1-Existe algum sistema no mercado que te atenderia? Se existir qual o impedimento para usá-lo?
2-Se não tiver, tem algum que atende parcialmente?
3-Qual o detalhamento do backlog? Tem estimativa de recursos humanos e tempo para o desenvolvimento?
4-Qual o porte do sistema?

A H Gusukuma, abaixo minhas respostas, mas tenha em mente que sou novato e boa parte do que vou responder tem influência de pessoas que para mim são competentes, mas podem não ser.

1- Confesso a você que não pesquisei muito. Recebi várias propostas de sistemas do mercado, mas abaixo vou colocar os meus argumentos para querer desenvolver o meu próprio:

a) Eu quero um sistema robusto e modular, mas que ao mesmo tempo não engesse a empresa como um SAP, onde o custo de treinamento é altíssimo, pois você tem de adequar o funcionário ao processo, no meu caso eu vou fazer o inverso.

b) A parte modular veio também do que aprendi com o Scrum, a possibilidade de pagar aos poucos.

c) A grande maioria dos sistemas que fizeram proposta, que se encaixam nas razões acima, possuem algum tipo de mensalidade, limitação de número de usuários ou licenças do Banco (como Oracle por exemplo).

d) Possibilidade de expansão ou integração com loja virtual própria (que é um outro projeto).

e) Alguns dos sistemas que fizeram proposta não eram web, não quero ficar amarrado a um sistema operacional.

f) Essa nem chega a ser uma boa razão, mas a interface vai ser validada pelo próprio funcionário que fará uso do recurso, pelo menos em termos dando um pouco mais de produtividade.

2- Sim, pelo menos a parte “arroz com feijão” da empresa é atendida, não somos assim tão diferentes de outras empresas, somente em alguns processos. O que pega um pouco é o conjunto de razões dito acima, muitas delas relacionadas a custo. Tenho o pensamento que, com um custo fracionado, talvez até pagando mais caro, mas para ter algo feito especificamente para a empresa vale a pena.

3- Eu não sei precisar o detalhamento do backlog, só sei que foi definido que as sprints seriam de duas semanas, não foi feito o cálculo de story points por falta de um desenvolvedor no momento da criação do backlog.

4- Para o meu coach Scrum, é um sistema grande e complexo. Curiosamente, um dos desenvolvedores que entrevistei e gostei também achou, os outros que não gostei “subestimaram a complexidade e o tamanho” de acordo com o meu coach Scrum, pois comentei com ele quanto estavam cobrando pelo sistema.

Só para explicar um pouco a minha ideia de “robusto e modular”, influenciado pelo meu amigo que inicialmente ia me ajudar no desenvolvimento e que é maníaco por Java, uma interface com PrimeFaces e um banco de dados PostgreSQL é o que tenho em mente. Alguns defendem uma interface HTML5/CSS3 que não sou contra, mas achei o PrimeFaces cheio de recursos! Só o banco que teimo em não abrir mão, pode ser inocência da minha parte mas pelo que li e pelo que me disseram ele pode ser comparado a um Oracle opensource, mais enterprise digamos assim.

Espero ter conseguido responder algumas de suas dúvidas, peço desculpas se falei alguma asneira ou alguma coisa sem sentido pois como disse, sou novato e não sei todos os termos corretos.

Queria deixar claro também que não sou contra o SAP, SAP funciona muito bem em empresas com dinheiro para implementar corretamente, não é o meu caso!

Não querendo te desanimar, mas esse sistema não é do tipo que se desenvolve com um programador, você precisa de uma equipe razoável para tocar esse projeto.
Sinceramente, não aconselharia isso. A menos que você montasse uma empresa de TI, cujo foco fosse desenvolver um pacote para oferecer ao mercado, cujo cliente inicial (a empresa do seu pai) bancasse parte dos custos de desenvolvimento. Com as alterações que ocorrem com frequência na nossa legislação, uma pessoa dificilmente conseguiria manter um sistema desse porte.

você esta no caminho certo, vou colocar os itens que você esta pecando.

  1. você esta seguindo esse caminho: estudar, aprender, dominar, desenvolver seu sistema.

  2. tente seguir esse caminho: modelar “no papel” uma funcionalidade, tentar desenvolver essa funcionalidade, ter problemas e pesquisar na internet as possíveis soluções, perguntar sobre dúvidas e problemas técnicos aqui no guj.

Naturalmente em certos pontos do caminho 2, você estará seguindo o caminho 1.

Essa primeira modelagem que você vai fazer não vai ficar perfeita, pode ser que no final do desenvolvimento você tenha errado na modelagem, nesse momento você terá duas opções, ou recomeça ou corrige, se você corrigir aprenderá muito mais coisas. e a próxima modelagem será melhor que a primeira.

Então pare o que você esta fazendo, pegue um A4, um lápis e uma borracha e comece a montar suas entidades, não precisa colocar atributos, faça um quadrado coloque um nome e conecte em outra entidade (caso haja algum relacionamento entre elas).

Não se esqueça de especificar a cardinalidade. (depois que você definir os relacionamentos, ai sim você pode encher de atributos)

Tendo a modelagem em mãos abra o SGBD e comece a criar as tabelas. não fique tentando lembrar todas as colunas, coloque as que você colocou na modelagem, se você se lembrar de mais alguma corrija na modelagem.

agora pegue outro A4 e um lápis, e desenhe 1 tela. pense como um usuário, qual seria a maneira mais tranquila de inserir um novo pedido ? desenhe essa tela.

você ja tem a tela no papel, monte um ambiente java, siga algum tutorial e prepare para abrir a documentação do primefaces.

crie as classes, de acordo com o relacionamento no banco, (vale perguntar aqui no fórum como converter entidades em classes).

vá monte o layout da tela, sempre olhando como utilizar os componentes do primefaces, por enquanto não acesse o banco, utilize Collections, ArrayLists e faça a tela funcionar.

Estudei Muito Java, e hoje trabalho com .Net então dúvidas mais complexas referentes a frameworks do java eu não conseguirei te ajudar.

Não precisa seguir a risca tudo que eu disse acima, é só um exemplo de como mudar nossa perspectiva.

A H Gusukuma, entendo bem o que diz, realmente é algo que eu gostaria que não estivesse na minha mão, mas dada a situação estou fazendo o que entendo ser meu papel, assumir a responsabilidade e dar um jeito. O sistema em si não tem muita coisa ligada a legislação, é mais coisa operacional que precisa ser automatizada, só isso já daria uma senhora ajuda! Mas essa é a ponta do iceberg, eu quero ser desenvolvedor além desse caso prioritário, dai acho que a faculdade se encaixaria perfeitamente.

douglaskd, pelo seu avatar acho que já te vi me ajudando em outros tópicos, agradeço sua participação aqui também.

Seu método é interessante, entendi ele como sendo um “manual de como ser um desenvolvedor”, só tenho uma pergunta e me perdoe se estou sendo repetitivo: Não acha que é interessante eu terminar o livro, que me dará uma noção básica de “Relacionamento Ternário”, “Agregação”, “Modelagem de eventos históricos” (eventos associados ao fator tempo) e principalmente “Normalização”, para dai sim executar o algoritmo que me passou?

Citei entre aspas os capítulos que faltam, e coloquei principalmente “Normalização” pois pelo que entendi, é isso que vai testar se meu modelo está correto, o que em termos me faria perguntar menos aqui, ou perguntaria uma coisa mais… definida digamos assim. Eu acho legal ter esse livro finalizado pois posso pegar os exercícios e aplicar os conceitos em diferentes cenários, ter pelo menos um exemplo da técnica aplicada para consulta. Posso estar falando besteira, mas é assim que tenho estudado, pego um exemplo pronto, entendo o que está sendo feito e vou adequando ao que quero fazer.

Vi que você é de Campinas, será que não conhece ninguém dai que poderia me ajudar pelo menos com o livro, responder umas perguntas do cenário que eu tenho e por ai vai? Eu tô aceitando qualquer coisa, nem que seja 15 minutos na semana, no mês…

Eu vejo a coisa dessa forma, não precisa ser toda semana, mesmo porque a pessoa só vai validar os exercícios que eu fiz, com as respostas que já tem no livro, e se possível me dar dicas nas partes que eu to pecando, exemplo: “Tá errando cardinalidade minima demais, releia o capítulo, faça mais exercícios pra reforçar. Sua dicionarização não tá legal, detalhe mais, detalhe menos”

Ou seja, supondo que eu termine “Relacionamento Ternário” com a pessoa, valide os exercícios e tudo, a pessoa vai ficar livre de mim até eu ter lido “Agregação” e feito os exercícios do meu jeito, pra dai sim combinar uma nova “aula”.

Dito tudo isso, acha que ainda devo partir pra ação como no algoritmo que me passou?

Obrigado mais uma vez por toda a ajuda e o apoio de vocês!

[quote=fggs]A H Gusukuma, entendo bem o que diz, realmente é algo que eu gostaria que não estivesse na minha mão, mas dada a situação estou fazendo o que entendo ser meu papel, assumir a responsabilidade e dar um jeito. O sistema em si não tem muita coisa ligada a legislação, é mais coisa operacional que precisa ser automatizada, só isso já daria uma senhora ajuda! Mas essa é a ponta do iceberg, eu quero ser desenvolvedor além desse caso prioritário, dai acho que a faculdade se encaixaria perfeitamente.
[/quote]

Sendo assim, não vejo problema. Estava avaliando como um sistema “grande e complexo”.

Quanto a ser desenvolvedor, a faculdade pode ser o caminho mais interessante, pelas possibilidades que proporciona. Principalmente, por você já ter um forte fator motivador.

A H Gusukuma, não sei se você trabalha com Scrum ou conhece, mas se quiser posso te passar a apresentação da primeira fase do projeto e até o macroprocesso para você ver os módulos que tem. Você chegou a questionar quanto ao tempo de desenvolvimento e hoje olhei com mais atenção a apresentação e lá estima 6 meses para essa primeira fase.

Claro que esse projeto é necessariamente meu fator motivador e estou confiante em encontrar essa pessoa para me ajudar com meus primeiros passos em banco de dados para pelo menos ter ferramentas básicas e me aventurar da forma que o douglaskd disse. Sou muito grato a grande participação que tive no tópico!

De qualquer forma estou na caça daquele curso que você disse, vamos ver o que acontece, mais uma vez muito obrigado!

Depende se você quer se tornar um desenvolvedor ou especialista em modelagem de dados relacional.

Você quer dizer que eu não me tornaria um desenvolvedor se continuar focado em entender a modelagem de dados relacional?

Não quero me tornar um especialista, mas acho que esses conceitos básicos são importantes, foi-me dito várias vezes em outros tópicos meus que “de criador de tabelas o mundo tá cheio”, não com essas palavras mas entendi com isso que é muito mais importante tratar bem os dados antes de pensar em partir pro banco em si.

Meus conceitos podem estar errados, afinal, pode existir pessoa tão talentosa que modela corretamente criando tabelas, mesmo sem perceber, como você vê eu não tenho tamanha habilidade mas acredito que exista sim pessoas assim. Estou tentando seguir o caminho “tradicional” pois é o que parece funcionar para a maioria.

fggs, eu te entendo perfeitamente.

Hoje estou numa fase onde quero aprender e dominar knouckout.js/angular.js

poderia comprar um livro, ler, estudar, entender tudo e depois pensar em algo.

mas eu percebi que o contrario é extremamente mais produtivo, o próprio site do knouckout tem um tutorial prático que ilustra o que estou dizendo.

você não deveria aplicar a prática (sem teoria) em um projeto sério, mas você pode fazer experimentos, na verdade você só entenderá os problemas de modelagem quando passar por eles, só estudar um livro não é suficiente.

se você já começou…pode terminar o livro, mas tente ser breve, a pior coisa é estudar tanto a teoria de algo, entrar em tédio e não desenvolver nada.

sobre um mentor, creio que você não encontrará, no meu inicio de carreira eu ficava no guj respondendo e perguntando, foi o melhor caminho.

Depende se você quer se tornar um desenvolvedor ou especialista em modelagem de dados relacional.
[/quote]

Mas precisa ser especialista para colocar um banco na 3FN ?