Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Felipe souza

O que estudar para ser um dev em android?

Recommended Posts

Estou muito interessado em aprender a programar em Android como minha primeira linguagem (por motivos pessoais), mas não sei o que estudar (e não posso fazer curso presencial)

 Eu devo começar aprendendo a lógica de programação e depois a linguagem ou tem mais alguma coisa?

 

 Por favor, seria grato se pudessem me ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro aprender conceito de Algoritmo e depois comecar a estudar a linguagem C, ou se preferir direto em Java que é a linguagem de programação no android.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Felipe tudo bem?

 

Concordando com o colega 'heisen' acredito que seja necessário você começar do começo (lol), ou seja aprender os fundamentos que te darão (a longo prazo) repertório o suficiente para produzir aplicações.

 

Compreendo que você não possa fazer algo presencial no momento, no entanto é interessante fazer algum curso livre introdutório ou aulas online para você ter uma noção da Lógica de Programação, eu pessoalmente aconselho o canal 'Curso em Vídeo' do Gustavo Guanabara e também as aulas da Fundação Univesp ( Universidade Virtual do Estado de São Paulo). 

 

Também é possível encontrar livros que te iniciarão nesse universo! Vou listar alguns que estão na bibliografia básica do meu curso:

 

FUNDAMENTOS DA PROGRAMAÇÃO DE COMPUTADORES:

https://indicalivros.com/pdf/fundamentos-da-programacao-de-computadores-ana-fernanda-gomes-ascencio-edilene-aparecida-veneruchi-de-campos

 

LÓGICA E DESIGN DE PROGRAMAÇÃO: FUNDAMENTOS:

https://indicalivros.com/pdf/logica-e-design-de-programacao-introducao-joyce-farrell

 

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES:

https://indicalivros.com/pdf/arquitetura-e-organizacao-de-computadores-william-stallings

 

Vou resumir o que vi no curso que estou fazendo, até agora:

 

*LÓGICA DE PROGRAMAÇÃO e LINGUAGEM DE PROGRAMAÇÃO

 

Algoritmos (não computacionais, computacionais):

 

Algoritmo nada mais é que uma sequencia finita de passos que visa atingir um objetivo, em programação você escreve o passo-a-passo do seu programa em uma linguagem dita de alto nível ( que está mais próxima da linguagem humana e menos da linguagem de máquina ou código binário).

 

Na computação algoritmo descreve os passos necessários para resolução de um problema por intermédio dos sistemas de computação.

 

Um programa de computador (muito resumidamente) são sequencias de instruções que recebem dados de entrada (ou não) processam (o computador é um processador de dados) esses dados e depois mostram a saída, ou resultado.

 

ENTRADA----->PROCESSAMENTO----->SAÍDA

 

Ou seja, tanto um sistema computacional desktop  ou mobile é um processador de dados altamente eficaz e obediente, o programador experiente tem controle total sobre a máquina, e seu recurso mais importante a memória.

 

Estrutura de dados(laços de repetição, estrutura de decisão,funções):

 

Ensinado em portugol, pseudocódigo e também em linguagem de programação  C que é o que nos ensinam no começo do curso em Linguagem de Programação 1, estruturas que possibilitam organizar de forma lógica e coerente a resolução dos problemas em forma de pequenos programas de computador.

 

 

*ARQUITETURA DE COMPUTADORES

Conceitos de memória, processador, sistemas de numeração, breve história da computação.

 

*MATEMÁTICA PARA COMPUTAÇÃO (ou matemática discreta, discrete mathematics)

Funções, Matrizes,Lógica, grafos etc.

 

*HISTÓRIA DA CIÊNCIA E DA TECNOLOGIA

Matéria de humanas que foca na filosofia da tecnologia, considerando a tecnologia como algo neutro, se é bom ou ruim dependerá de sua aplicação.

 

*INGLÊS TÉCNICO 1 E 2

Muito importante para nossa área pois praticamente tudo está em inglês, desde os ambientes de desenvolvimento às linguagens de programação, até mesmo a linguagem LUA que é brasileira está em inglês.

 

*ADMINISTRAÇÃO

Está mais para uma matéria de história sobre a Administração ao longo do século 20 até o 21,  desde a administração científica da primeira metade do século 20 até as corporações virtuais do século 21.

 

*MATEMÁTICA FINANCEIRA

Conceitos de juros simples, compostos e uso da calculadora HP12C.

Análise de investimentos, desconto financeiro, sistema price etc.

 

*BANCO DE DADOS

Conceito de banco de dados, modelo conceitual, relacional e uso da ferramenta MySQL Workbench, scripts e diagramas.

 

Bom espero ter ajuda um pouco, mas veja que é algo que você terá que se dedicar, seja por hobby ou com uma nova fonte de renda.

Boa sorte!

 

 

Iniciante em programação estou no 2o período do tecnólogo em Análise e Desenvolvimento de Sistemas no Instituto Federal de Educação Ciências e Tecnologia de SP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
    • Por joeythai
      Boa tarde pessoal,
       
      Eu criei um formulário em que tenho 3 interações: evento click, change e uma chamada ajax. No evento on change ("select#removal_table_from" )eu faço uma chamada ajax onde eu passo como parametro o id do item selecionado e construo uma tabela dinamica com o próprio javascript, após isto, tenho um input em que o usuario coloca um valor de percentual para que eu possa preencher em 3 colunas da tabela que foi criada dinamicamente: moto_atualizado, carro_atualizado e caminhao_atualizado, até aí tudo bem, o codigo está fazendo isso, porém, como a tabela é criada dinamicamente eu preciso de alguma forma enviar o arrayData para meu backend mas quando faço o calculo dentro do loop apos resposta do meu ajax, os valores desses 3 campos chegam como null, não sei se é possível fazer o que pretendo ou se é ainda não sei como faz
       
      <code>
           $(document).ready(function (event) {   let arrayData = []; let percentage; let removal_vehicle; let removal_motorcycle; let removal_tuck; let apply_removal = $('#apply_removal');   // apply_removal.on('click', function () { // percentage = $('#percentage').val();   // $('.table-body tr').each(function () {   // let veiculo = $(this).find('.veiculo').text(); // let moto = $(this).find('.moto').text(); // let caminhao = $(this).find('.caminhao').text();   // let removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; // let removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; // let removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   // arrayData.push({ // removal_vehicle, // removal_motorcycle, // removal_tuck // })   // $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); // $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); // $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); // }); // });   apply_removal.on('click', function () { percentage = $('#percentage').val();   $('.table-body tr').each(function () {   let veiculo = $(this).find('.veiculo').text(); let moto = $(this).find('.moto').text(); let caminhao = $(this).find('.caminhao').text();   removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   arrayData.push({ removal_vehicle, removal_motorcycle, removal_tuck })   $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2));     console.log('Removal Vehicle:', removal_vehicle); console.log('Removal Motorcycle:', removal_motorcycle); console.log('Removal Truck:', removal_tuck); }); });   $('select#removal_table_from').on('change', function (e) { let table_id = $(this).val(); let action = route('removal.removal-values.show', table_id);   $.ajax({ type: "GET", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },   success: function (data) { $('.table-body').empty();   for (let i = 0; i < data.length; i++) { let carro = parseFloat(data[i].CARRO); let moto = parseFloat(data[i].MOTO); let caminhao = parseFloat(data[i].CAMINHAO); let distancia = data[i].DISTANCIA; let origem = data[i].ORIGEM; let destino = data[i].DESTINO; let localidadeOrigem = data[i].LocalidadeOrigem_ID; let localidadeDestino = data[i].LocalidadeDestino_ID;   let newRow = '<tr class="removal-row">' + '<td class="align-middle">' + '<div class="row">' + '<div class="col-1">' + '<span class="font-weight-bold">Origem</span><br>' + '<span class="origem">' + origem + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Destino</span><br>' + '<span class="destino">' + destino + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">KM</span><br>' + '<span class="km">' + distancia + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Veículo</span><br>' + '<span class="veiculo">' + carro + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Veículo Atualizado</span><br>' + '<input type="text" class="veiculo_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Moto</span><br>' + '<span class="moto">' + moto + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Moto Atualizado</span><br>' + '<input type="text" class="moto_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Caminhão</span><br>' + '<span class="caminhao">' + caminhao + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Caminhão Atualizado</span><br>' + '<input type="text" class="caminhao_atualizado">' + '</div>' + '</div>' + '</div>' + '</td>' + '</tr>';   $('.table-body').append(newRow); //let row = $('.removal-row:last');   // Calcula o valor atualizado e define nos campos diretamente // let veiculo_atualizado = carro + (carro * percentage) / 100; // let moto_atualizado = moto + (moto * percentage) / 100; // let caminhao_atualizado = caminhao + (caminhao * percentage) / 100; // console.log('PORCENTS: ', percentage); //console.log('Veiculo Atualizado:', veiculo_atualizado, 'Moto Atualizado:', moto_atualizado, 'Caminhao Atualizado:', caminhao_atualizado);   // Define os valores diretamente nos campos da nova linha // row.find('.veiculo_atualizado').val(veiculo_atualizado.toFixed(2)); // row.find('.moto_atualizado').val(moto_atualizado.toFixed(2)); // row.find('.caminhao_atualizado').val(caminhao_atualizado.toFixed(2));   arrayData.push({ carro, moto, caminhao, distancia, origem, destino, localidadeOrigem, localidadeDestino, removal_vehicle, removal_motorcycle, removal_tuck }); }   $('#copy_data_table').val(JSON.stringify(arrayData)); }   }); });   //javascript para o formulario de cadastro // $(document).ready(function (event) { $('#uf').change(function () { let code_city = $(this).val(); let deposit = localStorage.getItem('selected_deposit_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city').empty(); $('#deposit').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '<option>'); }   if (data.deposits.length > 0) { for (let i = 0; i < data.deposits.length; i++) { $('#deposit').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '<option>'); } } else { // $('#deposit').prop('disabled', true); // $('#city').prop('disabled', false); }   $('#city').trigger('change'); } });   });   $('#deposit').on('change', function () { depositId = $(this).val(); localStorage.setItem('selected_deposit_id', depositId); });   $('#uf_destiny').change(function () { let code_city = $(this).val(); let depositDestiny = localStorage.getItem('selected_deposit_destiny_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city_destiny').empty(); $('#deposit_destiny').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city_destiny').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '</option>'); }   if (data.deposits.length > 0) { // $('#deposit_destiny').prop('disabled', false); //$('#city_destiny').empty(); // $('#city_destiny').prop('disabled', true); for (let i = 0; i < data.deposits.length; i++) { $('#deposit_destiny').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '</option>'); } } else { // $('#deposit_destiny').prop('disabled', true); // $('#city_destiny').prop('disabled', false); }   $('#city_destiny').trigger('change'); } }); });   $('#deposit_destiny').on('change', function () { let depositDestinyId = $(this).val(); localStorage.setItem('selected_deposit_destiny_id', depositDestinyId); });   }); </code>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.