Olá novamente, continuando com a série de Estrutura de Dados,
hoje vou falar sobre ordenação.
Problema: Precisa-se que ordene um array de 20 nomes em ordem alfabética.
Resolução:
Primeiro temos que criar um array de 20 posições para
resolução do problema:
String nomes[] = new String [20];
Após isso, vamos solicitar ao usuário que informe os 20 nomes.
Como já expliquei essa parte de solicitar ao usuário utilizando a classe Scanner,
não vou entrar em mais detalhes nela. (Caso você queira entender um pouco melhor,
tem no meu post sobre Conversão de minutos para horas e minutos
(https://goo.gl/nQ0QEX)
Scanner sc = new Scanner(System.in);
for(int i=0;i<nomes.length;i++){
System.out.println("Digite o nome");
nomes[i] = sc.next();
}
//Somente para mostrar, que foi salvo os nomes
for(String valores:nomes){
System.out.println(valores);
}
//Agora, independente da ordem que o usuário informou precisamos ordenar,
//e utilizaremos o algoritmo BubbleSort (ou conhecido também como:
Algoritmo Bolha)
* for (int i = 0; i < nomes.length - 1; i++)
for (int j = i + 1; j < nomes.length; j++)
if (nomes[i].compareTo(nomes[j]) > 0) {
String temporario = nomes[i];
nomes[i] = nomes[j];
nomes[j] = temporario;
}
for(String nomesOrdenados:nome){
System.out.println(nomesOrdenados);
}
* O algoritmo bolha, irá verificar de dois em dois se os elementos são maiores
ou menores entre eles, caso o primeiro elemento seja maior que o segundo
(o método compareTo irá retornar um número positivo (maior que 0(zero))).
Para a comparação entre os dois elementos, eu utilizo dois for's encadeados,
sendo que o segundo, irá iteirar + 1 com o índice do primeiro for, para que
consiga ler o próximo elemento.
nomes.lenght-1 - É para que o índice da variável j não passe do maior número
do array, e não lance uma exceção ArrayIndexOutOfBoundsException.
Assim independente da ordem que o usuário for passar os nomes, o algoritmo irá
verificar caractere por caractere e ordenando de forma alfabética.
Este código e outros estão disponíveis no meu github, caso queira analisar, basta clicar no link abaixo:
Projeto Ordenação - Bolha
Até + ;)
devhiranneri.eti.br
segunda-feira, 22 de maio de 2017
quarta-feira, 3 de maio de 2017
#1: Lógica - Conversão de minutos para hora e minutos
Olá novamente, durante esse tempo estava planejando alguns assuntos para postar aqui no meu blog que estarei estudando e transmitindo conhecimento:
A partir desse post vou falar sobre lógica de programação, resolvendo alguns problemas comuns do dia a dia do desenvolvimento. Para esta postagem vou falar sobre Conversão de minutos para horas e minutos.
O problema: (Conversão de minutos para horas e minutos)
O usuário irá digitar seja no console ou em alguma interface, o valor em minutos e o sistema deverá retornar o valor em horas e minutos.
Resolução:
Vamos pensar...
A principio teremos que criar três variáveis (horas,minutos,valorEmMinutosInformado):
Vou precisar fazer uma "cópia" do valor em valorEmMinutosInformado para a variável minutos, para que no final eu consiga informar o tempo que o usuário passou via console.
A cada 60 minutos que equivale a 1 hora, a variável horas é incrementada e a variável minutos é reduzida de 60 em 60, até o valor dela ser menor que 60, ou seja, menor que 1 hora.
Obs: Não se esqueçam dos imports para não apresentar erro de compilação.
Até mais...
A partir desse post vou falar sobre lógica de programação, resolvendo alguns problemas comuns do dia a dia do desenvolvimento. Para esta postagem vou falar sobre Conversão de minutos para horas e minutos.
O problema: (Conversão de minutos para horas e minutos)
O usuário irá digitar seja no console ou em alguma interface, o valor em minutos e o sistema deverá retornar o valor em horas e minutos.
Resolução:
Vamos pensar...
A principio teremos que criar três variáveis (horas,minutos,valorEmMinutosInformado):
int horas = 0,minutos=0,valorEmMinutosInformado=0;
//Em JAVA, existe a possibilidade da declaração
de variáveis em uma linha, caso as mesmas sejam
do mesmo tipo, int.
E uma variável do tipo boolean para controlar a futura iterações,
caso o usuário informe um valor incorreto.
boolean statusDoValor=true;
Após a criação das variáveis iremos instanciar um objeto da classe Scanner para
obtermos o valor passado pelo usuário.
Essa linha serve para avisar ao usuário que já é possível informar o valor.Scanner sc = new Scanner(System.in); //No construtor da classe Scanner, existe um parâmetro que "obriga" para quem for instanciar o objeto deverá passar uma instância de InputStream,ou outras como: Readable, File e etc. Você pode conferir na própriadocumentação em:https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html#constructor.detail
System.out.println("Digite o valor em minutos");
A estrutura de repetição do while servirá para no caso do usuário informar qualquer valor diferente de um número válido (e.x: número por extenso), irá ser lançado uma exceção, e a execução será abortada, e para que o usuário não necessite executar o código novamente, colocamos o código dentro do try..catch (Tratador de exceções).while(statusDoValor){
try{
Essa linha abaixo irá ler o valor passado e atribuir a váriável
valorEmMinutosInformado.
valorEmMinutosInformado = sc.nextInt();
Vou precisar fazer uma "cópia" do valor em valorEmMinutosInformado para a variável minutos, para que no final eu consiga informar o tempo que o usuário passou via console.
minutos=valorEmMinutosInformado;
A cada 60 minutos que equivale a 1 hora, a variável horas é incrementada e a variável minutos é reduzida de 60 em 60, até o valor dela ser menor que 60, ou seja, menor que 1 hora.
while(minutos>=60){
horas++;
minutos-=60;
}
statusDoValor=false;
}catch(InputMismatchException e){
System.out.println("Valor informado está incorreto. Digite novamente");
valorErrado=true;
sc.next();
}
}
System.out.println(valorEmMinutosInformado+" minutos equivale a "
+horas+" horas e "+minutos+"minutos");
}
Obs: Não se esqueçam dos imports para não apresentar erro de compilação.
" import java.util.Scanner;
import java.util.InputMismatchException; "
Esse foi um de uma série de 5 posts sobre lógica de programação. Em breve vou postar o segundo. Caso você queira contribuir com esse código ou outros, tenho ele no meu github. É só clicar no link abaixo:
Projeto de Lógica de programaçãoimport java.util.InputMismatchException; "
Até mais...
terça-feira, 4 de abril de 2017
#2: Paradigma: Orientação a Objetos
Olá novamente, hoje eu irei falar de um assunto muito interessante que é sobre Programação Orientada a Objetos, um paradigma que é largamente utilizado nos dias atuais para o desenvolvimento de sistemas, aplicativos e etc.
Bom, lá na década de 60, o paradigma bastante utilizado para desenvolvimento ainda era o estruturado, que a programação segue uma estrutura lógica e sequencial, utilizando as principais linguagens: Pascal e Cobol. Porém o tempo foi passando e os desenvolvedores da época, sentiram de resolver as principais desvantagens do Estruturado como: O tempo de entendimento do fluxo do código para novos desenvolvedores que forem dar manutenção, mudanças bruscas que acarretavam a alteração em todos os arquivos e funções relacionados.
Para Oliveira (2011, p. 68):
[...] a orientação a objetos surgiu com a necessidade de se criar um
paradigma de programação simples, baseado na percepção humana dos objetos ao seu redor. Este novo paradigma não é apenas um modo de programar, mas uma maneira de pensar e conceber as ideias.
[...] a utilização do paradigma orientado a objetos está presente em todas as etapas do processo de desenvolvimento [de sistemas], indo
da análise, passando pelo projeto, até as fases de teste e implementação. É um fator decisivo para a construção de sistemas, visando alcançar os objetivos esperados no determinado espaço de tempo com determinado custo (OLIVEIRA, 2011, p. 70).
E então a orientação a objeto foi criada para tentar compreender, interpretar as características do mundo real para o mundo virtual (classes, objetos, atributos e métodos). (Mais abaixo, explico sobre esses nomes).
"O termo Programação Orientada a Objetos (POO) foi criado por Alan Kay, autor da linguagem de programação Smalltalk. Mas mesmo antes da criação do Smalltalk, algumas das idéias da POO já eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas idéias foi a linguagem Simula 67, criada por Ole-Johan Dahl e Kristen Nygaard em 1967. Entretanto só veio a ser aceito realmente nas grandes empresas de desenvolvimento de Software por volta dos anos 90."
"Alguns exemplos de linguagens orientadas a objetos modernas utilizadas por grandes empresas em todo o mundo são: Java, C#, C++, Object Pascal (Delphi), Ruby, Python, Lisp, etc".
(Wikipédia).
Definições:
Classes:
As Classes são representações de "coisas" do mundo real, para o mundo virtual, composto por atributos e métodos.
Atributos são as características, dados do que foi representado do mundo real. (Nome, idade, sexo e etc).
Método é como uma atividade, função será executado.
Objetos: É uma ocorrência de uma classe(representação, modelo), que possuem dados (atributos).
Para que a linguagem seja considerada, e entendida como Orientada a objetos é necessário que ela siga os 4 pilares que são: Abstração, Encapsulamento, Herança e Polimorfismo.
Abstração:
A definição apresentada por Rumbaugh et al. (1994, p. 9) no livro Modelagem e projetos baseados em objetos diz que:
"A abstração consiste na concentração dos aspectos essenciais, próprios, de uma entidade e em ignorar suas propriedades acidentais. No desenvolvimento de sistemas, isso significa concentrar-se no que um objeto é e faz, antes de decidir como ele deve ser implementado. O uso da abstração preserva a liberdade de se tomar decisões evitando, tanto quanto possível,
comprometimentos prematuros com detalhes."
Abstração é a técnica de se concentrar no que o objeto irá realizar no sistema, qual será a sua função, ignorando a princípio, os detalhes desse objeto.
Encapsulamento:
O encapsulamento é uma técnica que dão mais segurança ao sistema, pelo o fato de não permitir, que os detalhes da implementação sejam abertos, visíveis para qualquer desenvolvedor que for utilizar a classe. Um exemplo muito citado é o funcionamento do carro. O motorista não é obrigado a saber, o que de fato acontece quando ele gira o volante a esquerda ou a direita, a única certeza é que ao girar o volante, o carro também virará.
Herança: Conforme definição de Rumbaugh et al. (1994, p. 4),
"Herança é [...] o compartilhamento de atributos e operações entre classes, com base em um relacionamento hierárquico. "
"Uma classe pode ser definida de forma abrangente e depois refinada em sucessivas subclasses mais definidas. [...] "
Herança é um tipo de relacionamento entre classes. Após a análise do que será desenvolvido, e da abstração do conhecimento sobre a regra de negócio, esse relacionamento propõe hierarquias entre as classes, gerando um reuso de código (ou seja, o mesmo código não precisa ser digitado várias vezes em classes diferentes).
Polimorfismo: É o principio pelo o qual o objeto/classe se comporta ao invocar um método. Dependendo do tipo do objeto, um método mais original, mais "correto" é invocado.
O polimorfismo é a capacidade de que uma superclasse, possua classes filhas com a mesma assinatura de método, mas com implementação diferentes. Um exemplo é da Concessionária de carros, que pretende aumentar o valor dos carros de acordo com cada tipo.
Diagrama de Classes - Concessionária
Neste exemplo, ao invocar o método: carroFerrari.aumentarValor() será diferente de carroFusca.aumentarValor(), pois a linguagem irá analisar de qual tipo é cada objeto e invocar o seu respectivo método.
Esse foi mais um artigo explicando um pouco sobre a história da Orientação a Objetos e alguns conceitos sobre ela. Espero que tenham gostado. Caso tenham alguma dúvida pode comentar abaixo que eu respondo, quando puder.
Até mais ;)
Bibliografias:
RUMBAUGH, James et al. Modelagem e projetos baseados em objetos. Rio de
Janeiro: Campus, 1994
https://pt.wikibooks.org/wiki/Programa%C3%A7%C3%A3o_Orientada_a_Objetos/Introdu%C3%A7%C3%A3o
OLIVEIRA, Artur Elias Hayne. Introdução à orientação a objetos. Revista SQL
Magazine, Rio de Janeiro, n. 89, p. 68-74, 2011.
Bom, lá na década de 60, o paradigma bastante utilizado para desenvolvimento ainda era o estruturado, que a programação segue uma estrutura lógica e sequencial, utilizando as principais linguagens: Pascal e Cobol. Porém o tempo foi passando e os desenvolvedores da época, sentiram de resolver as principais desvantagens do Estruturado como: O tempo de entendimento do fluxo do código para novos desenvolvedores que forem dar manutenção, mudanças bruscas que acarretavam a alteração em todos os arquivos e funções relacionados.
Para Oliveira (2011, p. 68):
[...] a orientação a objetos surgiu com a necessidade de se criar um
paradigma de programação simples, baseado na percepção humana dos objetos ao seu redor. Este novo paradigma não é apenas um modo de programar, mas uma maneira de pensar e conceber as ideias.
[...] a utilização do paradigma orientado a objetos está presente em todas as etapas do processo de desenvolvimento [de sistemas], indo
da análise, passando pelo projeto, até as fases de teste e implementação. É um fator decisivo para a construção de sistemas, visando alcançar os objetivos esperados no determinado espaço de tempo com determinado custo (OLIVEIRA, 2011, p. 70).
E então a orientação a objeto foi criada para tentar compreender, interpretar as características do mundo real para o mundo virtual (classes, objetos, atributos e métodos). (Mais abaixo, explico sobre esses nomes).
"O termo Programação Orientada a Objetos (POO) foi criado por Alan Kay, autor da linguagem de programação Smalltalk. Mas mesmo antes da criação do Smalltalk, algumas das idéias da POO já eram aplicadas, sendo que a primeira linguagem a realmente utilizar estas idéias foi a linguagem Simula 67, criada por Ole-Johan Dahl e Kristen Nygaard em 1967. Entretanto só veio a ser aceito realmente nas grandes empresas de desenvolvimento de Software por volta dos anos 90."
"Alguns exemplos de linguagens orientadas a objetos modernas utilizadas por grandes empresas em todo o mundo são: Java, C#, C++, Object Pascal (Delphi), Ruby, Python, Lisp, etc".
(Wikipédia).
Definições:
Classes:
As Classes são representações de "coisas" do mundo real, para o mundo virtual, composto por atributos e métodos.
Atributos são as características, dados do que foi representado do mundo real. (Nome, idade, sexo e etc).
Método é como uma atividade, função será executado.
Objetos: É uma ocorrência de uma classe(representação, modelo), que possuem dados (atributos).
Para que a linguagem seja considerada, e entendida como Orientada a objetos é necessário que ela siga os 4 pilares que são: Abstração, Encapsulamento, Herança e Polimorfismo.
Abstração:
A definição apresentada por Rumbaugh et al. (1994, p. 9) no livro Modelagem e projetos baseados em objetos diz que:
"A abstração consiste na concentração dos aspectos essenciais, próprios, de uma entidade e em ignorar suas propriedades acidentais. No desenvolvimento de sistemas, isso significa concentrar-se no que um objeto é e faz, antes de decidir como ele deve ser implementado. O uso da abstração preserva a liberdade de se tomar decisões evitando, tanto quanto possível,
comprometimentos prematuros com detalhes."
Abstração é a técnica de se concentrar no que o objeto irá realizar no sistema, qual será a sua função, ignorando a princípio, os detalhes desse objeto.
Encapsulamento:
O encapsulamento é uma técnica que dão mais segurança ao sistema, pelo o fato de não permitir, que os detalhes da implementação sejam abertos, visíveis para qualquer desenvolvedor que for utilizar a classe. Um exemplo muito citado é o funcionamento do carro. O motorista não é obrigado a saber, o que de fato acontece quando ele gira o volante a esquerda ou a direita, a única certeza é que ao girar o volante, o carro também virará.
Herança: Conforme definição de Rumbaugh et al. (1994, p. 4),
"Herança é [...] o compartilhamento de atributos e operações entre classes, com base em um relacionamento hierárquico. "
"Uma classe pode ser definida de forma abrangente e depois refinada em sucessivas subclasses mais definidas. [...] "
Herança é um tipo de relacionamento entre classes. Após a análise do que será desenvolvido, e da abstração do conhecimento sobre a regra de negócio, esse relacionamento propõe hierarquias entre as classes, gerando um reuso de código (ou seja, o mesmo código não precisa ser digitado várias vezes em classes diferentes).
Polimorfismo: É o principio pelo o qual o objeto/classe se comporta ao invocar um método. Dependendo do tipo do objeto, um método mais original, mais "correto" é invocado.
O polimorfismo é a capacidade de que uma superclasse, possua classes filhas com a mesma assinatura de método, mas com implementação diferentes. Um exemplo é da Concessionária de carros, que pretende aumentar o valor dos carros de acordo com cada tipo.
Diagrama de Classes - Concessionária
Neste exemplo, ao invocar o método: carroFerrari.aumentarValor() será diferente de carroFusca.aumentarValor(), pois a linguagem irá analisar de qual tipo é cada objeto e invocar o seu respectivo método.
Esse foi mais um artigo explicando um pouco sobre a história da Orientação a Objetos e alguns conceitos sobre ela. Espero que tenham gostado. Caso tenham alguma dúvida pode comentar abaixo que eu respondo, quando puder.
Até mais ;)
Bibliografias:
RUMBAUGH, James et al. Modelagem e projetos baseados em objetos. Rio de
Janeiro: Campus, 1994
https://pt.wikibooks.org/wiki/Programa%C3%A7%C3%A3o_Orientada_a_Objetos/Introdu%C3%A7%C3%A3o
OLIVEIRA, Artur Elias Hayne. Introdução à orientação a objetos. Revista SQL
Magazine, Rio de Janeiro, n. 89, p. 68-74, 2011.
sábado, 11 de março de 2017
Lição #1: O jogo da Imitação
Olá novamente :)
Nesta época estive estudando sobre alguns assuntos e vi alguns filmes interessantes e vou estar publicando sobre eles.
Hoje falarei sobre um grande filme chamado "O jogo da Imitação" que fala sobre a vida do grande Alan Turing, um matemático e criptoanalista que fez história nos anos de 1912 à 1954.
Contando sobre a sinopse do filme, no tempo da 2ª guerra mundial, uma agência britânica do governo (MI6) recrutou um grupo de matemáticos (Turing passou por uma difícil entrevista para entrar no exército) para quebrar a criptografia utilizada nas mensagens que os nazistas utilizavam para se comunicar e assim descobrir onde seria o próximo ataque que fariam no dia seguinte, porém como a criptografia para a época já era muito avançada e dificil de se quebrar, então Turing decide criar uma máquina junto com a personagem Joan Clarke para decifrar o código mais rápido, trabalhando com tentativas e erros (para a máquina, cada tentativa seria a cada loop feito em poucos segundos). Porém nas primeiras tentativas, a máquina não conseguia desvendar o código mais rápido para o próximo ataque dos nazistas.
Durante a construção, Alan se sentia muito seguro de si que conseguiria atingir o objetivo com pouca ajuda, deixando-o prepotente ao convívio com os outros colegas. Por conta do tempo que a máquina levava para resolver a criptografia, vidas eram mortas em campo de batalha. Até que um dos chefes da MI6 decide quebrar a máquina e demitir Turing, porém no último instante os colegas de Turing decidem apoiá-lo e conseguem mais um mês para que a máquina comece a produzir resultados. E assim Turing começa a aprender uma das valiosas lições da vida: O trabalho em conjunto, juntos o grupo tem mais produtividade e o projeto tem mais chance de dar certo.
Mas voltando ao filme, por conta da ajuda de uma amiga da Joan Clarke (companheira do Turing), eles conseguiram a informação que a criptografia segue um padrão, de sempre começar com 5 letras, com isso faz com que a máquina reduza o número de tentativas e aumenta o tempo de resposta. E assim eles conseguiram desvendar todas as mensagens criptografadas enviadas pelos os nazistas. Após esse episódio acontece algumas situações que não irei falar aqui e deixo para que você assista o filme e descubra o resto ;)
O que eu pude aprender deste filme é uma grande lição que está muito acima do que ter habilidades com matemática e criptografia, o ensinamento é aprender a trabalhar em grupo. Nós desenvolvedores, analistas e etc, diariamente, mensalmente recebemos projetos e temos que nos reunir e conviver com outras pessoas que possuem conhecimentos diferenciados, da mesma forma como foi retratado no filme, onde a organização (MI6) "contratou" alguns criptoanalistas (aí você pode comparar com desenvolvedores ou analista de sistemas) para resolver um problema, no mercado de trabalho, eu creio que não seja tão diferente do que foi retratado, e por conta da soberba de Turing, o número de mortalidade do grupo dos Aliados (Aliados vs. Eixo) nesses confrontos seria reduzido e o tempo da guerra poderia ser menor, ou talvez o projeto (máquina) alcançaria os primeiros resultados com o prazo bem menor do que foi.
Eu, Hiran, sei o quanto é dificil trabalhar com pessoas, mas levo cada experiência como aprendizado, trabalhar com pessoas temos vantagens como: "Um ajuda o outro e assim (independente do nível de conhecimento de cada um), o projeto saí com sucesso". Esta foi a grande lição que aprendo com esse filme.
Pretendo fazer mais publicações desse tipo e outras mais técnicas também. Caso queira adicionar alguma informação caso eu não tenha citado aqui, pode comentar abaixo que eu estarei respondendo o mais breve possível. Espero que vocês tenham gostado.
Obrigado e até a próxima ;)
Nesta época estive estudando sobre alguns assuntos e vi alguns filmes interessantes e vou estar publicando sobre eles.
Hoje falarei sobre um grande filme chamado "O jogo da Imitação" que fala sobre a vida do grande Alan Turing, um matemático e criptoanalista que fez história nos anos de 1912 à 1954.
Contando sobre a sinopse do filme, no tempo da 2ª guerra mundial, uma agência britânica do governo (MI6) recrutou um grupo de matemáticos (Turing passou por uma difícil entrevista para entrar no exército) para quebrar a criptografia utilizada nas mensagens que os nazistas utilizavam para se comunicar e assim descobrir onde seria o próximo ataque que fariam no dia seguinte, porém como a criptografia para a época já era muito avançada e dificil de se quebrar, então Turing decide criar uma máquina junto com a personagem Joan Clarke para decifrar o código mais rápido, trabalhando com tentativas e erros (para a máquina, cada tentativa seria a cada loop feito em poucos segundos). Porém nas primeiras tentativas, a máquina não conseguia desvendar o código mais rápido para o próximo ataque dos nazistas.
Durante a construção, Alan se sentia muito seguro de si que conseguiria atingir o objetivo com pouca ajuda, deixando-o prepotente ao convívio com os outros colegas. Por conta do tempo que a máquina levava para resolver a criptografia, vidas eram mortas em campo de batalha. Até que um dos chefes da MI6 decide quebrar a máquina e demitir Turing, porém no último instante os colegas de Turing decidem apoiá-lo e conseguem mais um mês para que a máquina comece a produzir resultados. E assim Turing começa a aprender uma das valiosas lições da vida: O trabalho em conjunto, juntos o grupo tem mais produtividade e o projeto tem mais chance de dar certo.
Mas voltando ao filme, por conta da ajuda de uma amiga da Joan Clarke (companheira do Turing), eles conseguiram a informação que a criptografia segue um padrão, de sempre começar com 5 letras, com isso faz com que a máquina reduza o número de tentativas e aumenta o tempo de resposta. E assim eles conseguiram desvendar todas as mensagens criptografadas enviadas pelos os nazistas. Após esse episódio acontece algumas situações que não irei falar aqui e deixo para que você assista o filme e descubra o resto ;)
O que eu pude aprender deste filme é uma grande lição que está muito acima do que ter habilidades com matemática e criptografia, o ensinamento é aprender a trabalhar em grupo. Nós desenvolvedores, analistas e etc, diariamente, mensalmente recebemos projetos e temos que nos reunir e conviver com outras pessoas que possuem conhecimentos diferenciados, da mesma forma como foi retratado no filme, onde a organização (MI6) "contratou" alguns criptoanalistas (aí você pode comparar com desenvolvedores ou analista de sistemas) para resolver um problema, no mercado de trabalho, eu creio que não seja tão diferente do que foi retratado, e por conta da soberba de Turing, o número de mortalidade do grupo dos Aliados (Aliados vs. Eixo) nesses confrontos seria reduzido e o tempo da guerra poderia ser menor, ou talvez o projeto (máquina) alcançaria os primeiros resultados com o prazo bem menor do que foi.
Eu, Hiran, sei o quanto é dificil trabalhar com pessoas, mas levo cada experiência como aprendizado, trabalhar com pessoas temos vantagens como: "Um ajuda o outro e assim (independente do nível de conhecimento de cada um), o projeto saí com sucesso". Esta foi a grande lição que aprendo com esse filme.
Pretendo fazer mais publicações desse tipo e outras mais técnicas também. Caso queira adicionar alguma informação caso eu não tenha citado aqui, pode comentar abaixo que eu estarei respondendo o mais breve possível. Espero que vocês tenham gostado.
Obrigado e até a próxima ;)
sexta-feira, 17 de fevereiro de 2017
System.out.println("Hello World");
Olá, Sou Hiran Neri, sou estudante de desenvolvimento de sistemas e este é o meu blog, onde estarei postando conteúdo sobre tecnologias, linguagens de programação, banco de dados, infraestrutura e alguns assuntos que estudo no meu dia a dia. Terá postagens-tutoriais, onde explicarei passo a passo como fazer instalações e configurações. Espero com esse blog poder contribuir ainda mais para a comunidade e aprender ainda mais.
Caso queiram entrar em contato comigo tem o meu:
Twitter: @devhiranneri
Linkedin: https://br.linkedin.com/in/hiranneri
Até + ;)
Caso queiram entrar em contato comigo tem o meu:
Twitter: @devhiranneri
Linkedin: https://br.linkedin.com/in/hiranneri
Até + ;)
Assinar:
Postagens (Atom)




