Giter Site home page Giter Site logo

roteiro-de-estudos's People

Contributors

valdineijunior avatar

Stargazers

 avatar  avatar

Watchers

 avatar

roteiro-de-estudos's Issues

Anagramas

Anagramas

Um anagrama é uma palavra ou frase formada com o re-arranjo de todas as letras de uma outra palavra ou frase (sem sobra ou falta). Exemplos:

A palavra barco é um anagrama da palavra cobra (todas as letras de “cobra” usadas em “barco).
A palavra mar não é um anagrama da palavra roma (a letra “o” em “roma” não foi usada).
A palavra sal não é um anagrama da palavra mal (a letra “s” de “sal” não existe em “mal”).

O problema

Escreva um programa na sua linguagem e bibliotecas preferidas que:

Leia a expressão (que pode ser uma frase ou apenas uma palavra) a ser usada para a criação dos anagramas da linha de comando. Apenas as letras de “A” a “Z” deverão ser consideradas (ignore espaços e converta todas as letras minúsculas para maíusculas). Retorne erro e aborte a execução se caracteres inválidos forem encontrados na expressão (qualquer caracter não alfabético que não seja espaço, incluindo números, pontuação, ou caracteres acentuados).

Leia uma lista de palavras válidas do arquivo words.txt (Download). O arquivo é formatado com uma palavra por linha, com palavras da língua inglesa (Nota: apesar de várias tentativas, o autor não conseguiu achar uma lista “limpa” de palavras da língua portuguesa).

Imprima todas as combinações possíveis de anagramas (sem repetição de linhas ou palavras). Os anagramas devem conter apenas palavras válidas (lidas do arquivo acima).

O formato de saída deve conter múltiplas linhas (uma por anagrama), com as palavras ordenadas dentro de cada linha (veja Exemplos abaixo).

O programa deve ser capaz de calcular e imprimir a lista de anagramas possíveis para uma expressão de até 16 caracteres em menos de 60 segundos.

Exemplos:

Expressão é uma palavra:

$ ./anagramarama "vermelho"
ELM HO REV
ELM OH REV
OHM REVEL
LEVER OHM
ELM HOVER
HOLM VEER
HELM OVER
HELM ROVE
Expressão é uma frase (lembre-se de ignorar espaços e converter todas as letras para maiúsculas):

$ ./anagramarama "oi gente"
GO I TEEN
GENE I TO
GET I ONE
EON GET I
ENG I TOE
GEE I TON
GEE I NOT
EGO I NET
EGO I TEN
GEE IT NO
GEE IT ON
GO IN TEE
GEE IN TO
GENIE TO
GONE TIE
GEE OINT
GEE INTO
GEE TONI
GINO TEE
GENE ITO
EGO TINE

Dicas

Novamente: Por razões de simplicidade, apenas caracteres alfabéticos devem ser considerados (A-Z apenas, excluindo números, pontuação, e caracteres acentuados).
Esse problema é um caso clássico para um algoritmo recursivo.
Tentativas usando força bruta não vão funcionar.
Esse desafio pode ser considerado como um desafio médio/difícil. Discuta dúvidas com os administradores e outros participantes no grupo OsProgramadores do Telegram.

Veja aqui minha solução

Introdução à Ciência da Computação com Python II

Introdução à Ciência da Computação com Python II

Semana 1: Matrizes

  • Vídeo: Matrizes
  • 1 vídeo, 2 leituras, 1 teste para praticar
  • Reading: Folha de Consulta
  • Teste para praticar: Matrizes
  • Tarefa de programação que não vale nota: Exercícios adicionais (opcionais)
  • Reading: Matrizes e funções com matrizes

Semana 2: Strings, 4 Pequenos Conceitos e Modularização

  • Vídeo: Strings
  • Teste para praticar: Strings
  • Vídeo: Comparação entre Strings
  • Teste para praticar: Comparação entre strings
  • Vídeo: 4 Pequenos Conceitos Úteis
  • Teste para praticar: 4 Pequenos Conceitos Úteis
  • Vídeo: Módulos em Python
  • Tarefa de programação que não vale nota: Exercícios adicionais (opcionais)
  • Reading: Strings, funções com números reais e exercícios

Semana 3: POO - Programação Orientada a Objetos

  • Vídeo: Exercício resolvido - Soma de Matrizes
  • Vídeo: Exercício Resolvido - Multiplicação de Matrizes
  • Vídeo: POO - Programação Orientada a Objetos - Parte 1
  • Teste para praticar: POO - Programação Orientada a Objetos - Parte 1
  • Vídeo: POO - Programação Orientada a Objetos - Parte 2
  • Teste para praticar: POO - Programação Orientada a Objetos - Parte 2
  • Vídeo: Códigos Testáveis
  • Tarefa de programação que não vale nota: Exercícios adicionais (opcionais)
  • Reading: POO - Programação Orientada a Objetos. Modularização, testes e reuso.

Semana 4: Algoritmos de Busca e Ordenação. Complexidade Computacional

  • Vídeo: Busca Sequencial
  • Vídeo: Complexidade Computacional
  • Vídeo: Algoritmo de Ordenação Seleção Direta
  • Teste para praticar: Busca Sequencial e Ordenação Seleção Direta
  • Tarefa de programação que não vale nota: Exercícios adicionais (opcionais)
  • Reading: Algoritmos de Busca e Ordenação

Semana 5: Algoritmos de Busca e Ordenação. Análise de Desempenho

  • Vídeo: Algoritmo de Ordenação da Bolha - Bubblesort
  • Vídeo: Comparação de Desempenho
  • Vídeo: Melhoria no Algoritmo de Ordenação da Bolha
  • Vídeo: Testes automatizados dos algoritmos de ordenação
  • Teste para praticar: Algoritmo de Ordenação da Bolha e Testes Automatizados
  • Tarefa de programação que não vale nota: Exerc

Semana 6: Recursão

  • Parabéns! Você chegou na última semana do curso. Nessa semana, iremos aprender sobre recursão e como implementá-la. Bom trabalho
  • 2 videos, 1 teste para praticar
  • Vídeo: Recursão
  • Vídeo: Mais sobre Recursão
  • Teste para praticar: Recursão
  • Tarefa de programação que não vale nota: Exercícios adicionais (opcionais)

Semana 7: Módulo Extra - Usos Avançados

  • 4 videos, 2 leituras
  • Vídeo: Scrapy (1) - Com Felipe Besson: Introdução ao Scrapy: criação de projetos, spiders e extração de conteúdo. Apresentação da aplicação exemplo que será desenvolvida na aula 2 de Scrapy.
  • Vídeo: Scrapy (2) - Com Felipe Besson: Apresentação do Google Inspect: ferramenta para inspecionar e conhecer elementos HTML de páginas web.
  • Vídeo: Scrapy (3) - Com Felipe Besson: Desenvolvimento e execução da aplicação exemplo. Dicas para aprendizado de tópicos avançados do Scrapy.
  • Reading: Links: como material de apoio para seus estudos sobre Scrapy.
  • Vídeo: Jogos com PyGame - Com prof. Alfredo Goldman
  • Reading: Sites citados nos vídeos

Frações simples

Frações simples

Descrição

Escreva um programa que leia um arquivo texto contendo uma lista de frações em ASCII (uma por linha) e produza na saída a versão simplificada de cada fração. Números simples assumem denominador 1 (apenas imprima o número).

Divisões inteiras como 81/9 devem imprimir o número inteiro 9. Em caso de erros na entrada (como divisão por zero), imprima “ERR” em maíusculas.

Exemplo

Dada a entrada abaixo:

14/3
3/8
4/8
4/3
5
10/0
48/12

A seguinte saída seria produzida:

4 2/3
3/8
1/2
1 1/3
5
ERR
4

Clique aqui para ver a solução

A solução leva em consideração o arquivo teste fornecido, contendo as seguintes frações:

14/3
1/2
3/8
237/122
10492/6637
5/25
152/776
917/1008
2/1
120
942/227
197/199
283791739/113312387
13/13
15/0

Noções de Inglês

Noções de Inglês

Inglês básico, Técnicas de Leitura, Escrita.

  • Inglês - Apresentação
  • Inglês - Inglês sem mistério (Parte 1)
  • Inglês - Inglês sem mistério (Parte 2)
  • Inglês - Inglês sem mistério (Parte 3)
  • Inglês - Learning to read: Estratégias para Leitura de Textos em Inglês (Parte 1)
  • Inglês - Learning to read: Estratégias para Leitura de Textos em Inglês (Parte 2)
  • Inglês - Learning to read: Estratégias para Leitura de Textos em Inglês (Parte 3)
  • Inglês - English around the world: o uso da língua em interações e comunicações interculturais
  • Inglês - English around the world: o uso da língua em interações e comunicações interculturais
  • Inglês - Learning to listen and speak: estratégias para desenvolver habilidades auditiva e de fala
  • Inglês - Talking about the past
  • Inglês - An international conference: interação, socialização e networking
  • Inglês - Working at a conference
  • Inglês - Talking about the future
  • Inglês - Learning to write
  • Inglês - What have you done
  • Inglês - Let's review!
  • Inglês - Let's review! (Parte 2)

Anotações sobre curso que lhe ajudarão a dominar aos poucos o idioma inglês:

  • Use dicionários online, começando com inglês/português, para conferir pronúncia e entender a categoria gramatical.

  • Examine palavras em diferentes contextos para melhorar a compreensão.

  • Antes de ler um texto, obtenha uma visão geral examinando imagens e tópicos principais.

  • Identifique padrões, palavras-chave e extraia o assunto principal do texto.

  • Leia todos os dias e evite fixar-se em uma única ideia ou palavra.

  • Compartilhe o conteúdo com outras pessoas, peça opiniões ou escreva um resumo.

  • Pratique diariamente, mesmo que por curtos períodos, e expanda seu vocabulário.

  • Preste atenção à pronúncia e pratique a fala em voz alta.

  • Ouça algo em inglês todos os dias.

  • Ao escrever, considere quem é o público, o que está escrevendo, onde, quando, por que e para quê. Use ferramentas de edição de texto.

07 - almostIncreasingSequence

07 - almostIncreasingSequence

Given a sequence of integers as an array, determine whether it is possible to obtain a strictly increasing sequence by removing no more than one element from the array.

Note: sequence a0, a1, ..., an is considered to be a strictly increasing if a0 < a1 < ... < an. Sequence containing only one element is also considered to be strictly increasing.

Example

For sequence = [1, 3, 2, 1], the output should be
solution(sequence) = false.

There is no one element in this array that can be removed in order to get a strictly increasing sequence.

For sequence = [1, 3, 2], the output should be
solution(sequence) = true.

You can remove 3 from the array to get the strictly increasing sequence [1, 2]. Alternately, you can remove 2 to get the strictly increasing sequence [1, 3].

Click here - and see my solution in replit

Exercício 3: Dinheiro (versão fácil)

Dinheiro (versão fácil)

Algoritmos Gulosos ou Algoritmos Ambiciosos

Centavos de dólares

Ao dar o troco, é provável que você queira minimizar o número de moedas que está distribuindo para cada cliente, para não acabar com o estoque (ou irritar o cliente!). Felizmente, a ciência da computação deu aos caixas em todos os lugares maneiras de minimizar o número de moedas devidas: algoritmos ambiciosos, também conhecidos como gulosos ou gananciosos.

De acordo com o Instituto Nacional de Padrões e Tecnologia (NIST), um algoritmo ambicioso é aquele “que sempre pega a melhor solução imediata, ou local, enquanto encontra uma resposta. Algoritmos ambiciosos encontram a solução geral ou globalmente ideal para alguns problemas de otimização, mas podem encontrar soluções menos do que ideais para algumas instâncias de outros problemas.”

O que tudo isso significa? Bem, suponha que um caixa deva a um cliente algum troco e na gaveta desse caixa estejam moedas de 25, 10, 5 e 1 centavo(s). O problema a ser resolvido é decidir quais moedas e quantas de cada uma entregar ao cliente. Pense em um caixa “ganancioso” como alguém que quer tirar o maior proveito possível desse problema com cada moeda que tira da gaveta. Por exemplo, se algum cliente deve pagar 41 centavos, a maior “mordida”(ou seja, melhor “mordida” imediata ou local) que pode ser feita é 25 centavos. (Essa mordida é "melhor" na medida em que nos deixa mais perto de 0 ¢ mais rápido do que qualquer outra moeda faria.) Observe que uma mordida desse tamanho reduziria o que era um problema de 41 ¢ a um problema de 16 ¢, já que 41 - 25 = 16. Ou seja, o restante é um problema semelhante, mas menor. Desnecessário dizer que outra mordida de 25 centavos seria muito grande (supondo que o caixa prefere não perder dinheiro), e assim nosso caixa ganancioso mudaria para uma mordida de 10 centavos, deixando-o com um problema de 6 centavos. Nesse ponto, a ganância pede uma mordida de 5 centavos seguida de uma mordida de 1 centavo, ponto em que o problema é resolvido. O cliente recebe quatro moedas no total. Acontece que essa abordagem gananciosa (do algoritmo) não é apenas ótima localmente, mas também globalmente para a moeda dos Estados Unidos (e também da União Europeia). Ou seja, desde que o caixa tenha o suficiente de cada moeda, essa abordagem do maior para o menor renderá o menor número possível de moedas.

Solução - Dinheiro (versão fácil)

Aprendendo a aprender

Aprendendo a Aprender

Técnicas de estudo, organização e aprendizagem

1° Semana

  • Terrence Sejnowski and Barbara Oakley —Introdução à Estrutura do Curso
  • Introdução aos Modos Difuso e Focado
  • Usando os Modos Difuso e Focado — Ou um pouco de Dali vai servir
  • O Que é Aprendizado?
  • Uma Prévia sobre o Adiamento
  • A Prática Leva à Perfeição
  • Introdução à Memória
  • A Importância do Sono no Aprendizado
  • Entrevista com o Dr. Terrence Sejnowski
  • Entusiasmo Sobre o Que Está Próximo! MaryAnne Nestor Dá Dicas Especiais
  • Bônus Opcional: Entrevista com Dr. Robert Bilder sobre Criatividade e Resolução de Problemas
  • Bônus Opcional: Entrevista com a Treinadora de Escrita Daphne Gray-Grant
  • Bônus Opcional: Entrevista com “Benny o Poliglota Irlandês” sobre Aprender Idiomas

2° Semana

  • Introdução à Associação em Blocos (Chunking)
  • O que é um Associação em Blocos ("Chunk")?
  • Como Formar um Chunk - Parte 1
  • Como Formar um Chunk - Parte 2
  • Ilusões de Competência
  • O que o Motiva?
  • O Valor de uma Biblioteca de Blocos de Memória
  • Superaprendizagem, Engasgo, Efeito Einstellung e Intercalação
  • Chunking ou Associação em Blocos: Sumário
  • Bônus Opcional: Entrevista com Dr. Norman Fortenberry - Aprendendo no MIT
  • Bônus Opcional: Entrevista com Scott Young, um “Marco Polo” do Aprendizado

3° Semana

  • Introdução ao Adiamento e à Memória
  • Desarmando o Adiamento - É mais Fácil e Valioso do que Pensa
  • Zombies por Toda Parte
  • Surf é a Onda: Processo Versus Produto
  • Aproveitando os Zumbis para Ajudá-lo
  • Fazendo Malabarismo com a Vida e Aprendendo
  • Resumindo Adiamento (Procrastinação)
  • Mergulhando Fundo na Memória
  • O que é a Memória de Longa Duração?
  • Criando Grupos Significativos e a Técnica do Palácio de Memória
  • Resumindo a Memória
  • Bônus Opcional: Entrevista com Dr. Robert Gamache, um Ciêntista Bilíngue Ganhador de Prêmios
  • Bônus Opcional: Entrevista com Keith Devlin de Stanford, o “Math Guy” do NPR

4° Semana

  • Como se Tornar um Aprendiz Melhor
  • Introducão ao Aprendizado no Renascimento e Destravando seu Potencial
  • Crie uma Metáfora Visual Viva ou uma Analogia
  • Não é Necessária a Inveja de Gênios
  • Mude seus Pensamentos, Mude sua Vida
  • O Valor do Trabalho em Equipe
  • Uma Lista de Tarefas para a Prova
  • Técnica do "Começo Difícil - Pule para o Fácil"
  • Dicas Finais para Teste
  • Sumário do Módulo 4
  • Encerramento do Curso por Terrence Sejnowski e Barbara Oakley
  • Bônus Opcional: Parte 1: Como NÃO Fazer uma Prova, Entrevista com Dr. Richard Felder e Dr. Rebecca Brent
  • Bônus Opcional: Parte 2: Aprendendo Algo Novo, Entrevista com Dr. Richard Felder e Dr. Rebecca Brent
  • Bônus Opcional: Parte 3: A Síndrome do Impostor e Lidando com Procrastinação, Entrevista com Dr. Richard Felder e Dra. Rebecca Brent
  • Bônus Opcional: Entrevista com Kalid Azad - Visualizando Números Imaginários na Matemática
  • Bônus Opcional: Escritor John Maguire (readablewriting.com) Sobre a Importância de Colocar Objetos em sua Escrita
  • Bônus Opcional: Entrevista com o Dr. Kevin Majeres - A Hora Dourada e o Trabalho Otimizado

Principais Dicas do Curso

  • Pensa no problema de forma menos intensa, se deixando dispersar.

  • Depois volte a focar.

  • Crie analogias, tentando explicar o que acabou de estudar.

  • Utilize a técnica da repetição espaçada. Tente relembrar o que viu.

  • Dormir é de extrema importância.

  • Faça um overview do conteúdo antes de se aprofundar nele tente pegar a idéia básica é entender onde ele se encaixa.

  • Use pequenos mini testes para ver se você está realmente aprendendo o assunto.

  • Erros são coisas boas quando se está aprendendo.

  • Pratique deliberadamente o que você acha mais difícil para ganhar completo domínio sobre o assunto.

  • Mantenha um planejamento para que você facilmente siga observando o que funciona e o que não funciona.

  • Não pense muito, “Sit down right now”, sente a bunda na cadeira, abra seus estudos e comece.

  • Monte seu trabalho como uma série de pequenos desafios.

  • Aproveite por alguns minutos a sensação de felicidade e triunfo.

  • Tente se colocar em um ambiente com poucas oportunidades para procrastinação.

  • Anote tudo que precisar para tirar uma preocupação da sua cabeça, e colocá-la no papel.

  • Coma primeiro seus sapos a cada dia, fazendo o que é mais importante.

  • Tente criar uma imagem visual memorável, representando um item chave que deseja recordar.

  • Além de meramente ver, tente sentir, ouvir e até mesmo cheirar aquilo que está tentando lembrar. Quanto mais engraçada e mais evocativa a imagem é, melhor.

  • Crie metáforas ou analogias.

  • Fazer parte dos seus estudos com amigos, você pode perceber mais facilmente onde o seu raciocínio se perdeu.

  • Rever sua própria lista de afazeres ao se preparar para um teste pode aumentar de maneira significativa as suas chances de sucesso.

  • A forma como você interpreta a reação do seu corpo a estes químicos faz toda a diferença. Se você muda o seu pensamento de "este teste me deixa receoso" para "este teste me deixa entusiasmado para fazer o meu melhor", isso ajuda a melhorar a sua performance.

  • Quando for possível, você deve piscar, mudar sua atenção, e então checar novamente suas respostas, usando uma perspectiva mais abrangente, perguntando a si mesmo, isso realmente faz sentido?

Modos de pensar Focado e Difuso.

O modo focado é baseado em conhecimento prévio. Ele usa disso para tentar resolver e juntar peças do que se está tentando aprender ou resolver. E restringe seus pensamentos a assuntos específicos, para não te dispersar.

Mas muitas vezes seu conhecimento prévio não é capaz de resolver o problema em questão, então você precisa de novas formas de pensar, novas perspectivas.

Aí que se faz útil o modo difuso, onde você relaxa e pensa no problema de forma menos intensa, se deixando dispersar nas idéias, criando abordagens e conexões com diversos outros assuntos. Após esse processo, você consegue abordar o problema de um outro ponto de vista com a cabeça fresca.

A troca entre esses dois modos é muito proveitosa no aprendizado de conteúdos novos, no processo de criação entre outros. E para transitar por esses dois modos, você pode manter um período de estudos intensivo, sem interrupções e distrações. E após este período fazer uma pausa, tentando pensar somente superficialmente sobre seu problema, podendo dispersar entre seus pensamentos. Em seguida volta a focar em seu problema.

Então quando estiver preso em algum problema ou antes de um processo de criação utilize esses dois modos de pensar. É comum durante essa troca encontrar uma solução para o seu problema que era relativamente óbvia.

Analogias

As analogias são uma poderosa ferramenta de aprendizado, então tente utilizá-la para se auto explicar ou explicar a outras pessoas o que acabou de aprender. Isso facilita no entendimento e na fixação de conteúdos.

Prática leva a permanência.

Ao nos relacionarmos com algo novo é comum, que em algumas horas ou dias acabemos esquecendo desta informação, pois o cérebro tende a armazenar o que é importante e descartar o restante, então a técnica da repetição espaçada ajuda a mover informações para sua memória de longo prazo.

Ela consiste em rever um conteúdo, reviver uma situação ou treinar algo de tempos em tempos, desta forma seu cérebro considerará essa vivência importante, pois sempre está precisando dessas informações. Então ele formará estruturas neurais mais sólidas para que tenha acesso mais fácil a esse conhecimento.

Importância do Sono

Dormir é de extrema importância para sua capacidade de resolver problemas e sua memória, nesse processo o corpo limpa as toxinas do seu cérebro o mantendo limpo e saudável, é nesse processo que ele também descarta informações desnecessárias e fortalece o que é importante. Sonhar com o que se está a estudar pode aumentar substancialmente o seu compreendimento.

Chunks

São blocos de memória, pedaços de informação, uma rede de neurônios que sintetizam ideias principais ou ações.

Blocos de memória podem ser maiores e mais complexos. Mas ao mesmo tempo, eles são um item único que você pode encaixar como uma fita no espaço de sua memória de trabalho.

Blocos de memória são melhor construídos com foco, atenção não dividida e compreensão da ideia básica. Faça um overview do conteúdo antes de se aprofundar nele tente pegar a idéia básica é entender onde ele se encaixa.

E prática, repetição espaçada para ajudar a aprofundar seus padrões e ajudá-lo a entender o contexto geral.

Só recordar, tentar lembrar os principais pontos sem olhar na página é uma das melhores formas de construir a associação em blocos. Caso não se recorde, aí sim pode estudar novamente o conteúdo.

Transferência é a ideia de que um bloco de memória que você já dominou em uma área geralmente pode ajudar você a aprender mais facilmente blocos de memória de informação em diferentes áreas que podem compartilhar surpreendentes similaridades.

Ilusões de competência no aprendizado.

Aprenda a reconhecer quando você está se enganando sobre quando você está realmente aprendendo o assunto.

Teste-se com frequência. Use pequenos mini testes para ver se você está realmente aprendendo o assunto ou se você está se enganando, pensando que está aprendendo quando não está.

Recordar é na verdade uma forma de mini teste Tente evitar depender demais de marcações, que podem enganar você fazendo-o pensar que o material está entrando em seu cérebro quando não está.

Erros são coisas boas quando se está aprendendo. Eles permitem você identificar ilusões de competência.

Evite praticar só a parte fácil, que podem fazer você ter a ilusão de que dominou o assunto.

Pratique deliberadamente o que você acha mais difícil para ganhar completo domínio sobre o assunto.

Einstellung, que pode ser traduzido como mecanização, é quando seu pensamento inicial, uma ideia que você tinha em mente, ou um padrão neural que você já desenvolveu bem e fortaleceu, impede uma ideia ou solução melhor de ser encontrada. Ou impede você de ser flexível o suficiente para aceitar novas soluções, melhores ou mais apropriadas.

Como evitar a procrastinação.

Mantenha um planejamento para que você facilmente siga quando atingir suas metas e possa observar o que funciona e o que não funciona.

Comprometa-se a certas rotinas e atividades todo dia. Escreva as atividades planejadas na noite anterior para que seu cérebro tenha tempo de lidar com seus objetivos e ajudar a assegurar o sucesso.

Não pense muito, “Sit down right now”, sente a bunda na cadeira, abra seus estudos e comece.

Monte seu trabalho como uma série de pequenos desafios. Certifique-se sempre de que você e seus zumbis ganhem muitas recompensas.

Aproveite por alguns minutos a sensação de felicidade e triunfo, o que também dá ao seu cérebro uma oportunidade de temporariamente trocar de modo.

Propositalmente atrase as recompensas até você ter completado a tarefa.

Cuidado com as pistas para a procrastinação. Tente se colocar em um ambiente com poucas oportunidades para procrastinação tal como uma seção silenciosa de uma biblioteca.

Confie em seu novo sistema. Você quer trabalhar duro nos momentos de concentração focada e também confiar no sistema o suficiente para que quando chegue a hora de relaxar, você verdadeiramente relaxe sem sentimento de culpa ou preocupação.

Anote tudo que precisar para tirar uma preocupação da sua cabeça, e colocá-la no papel. Pois assim você pode relaxar sabendo que o que precisa fazer está anotado.

Tenha planos reserva para quando você ainda procrastinar. Ninguém é perfeito, apesar de tudo.

Coma primeiro seus sapos a cada dia, fazendo o que é mais importante.

Memória Criativa

Aprendendo a usar sua memória em uma forma mais disciplinada, e ainda criativa, ajuda você a focar sua atenção, mesmo que você crie conexões desorganizadas que construam fortes memórias.

Aqui estão ideias chave sobre memória já vistas.

Praticando e repetindo, tudo num dia, é uma má idéia. Você deve estender sua prática por vários dias.

Quando você domina uma técnica ou conceito, de certa forma se compactam as idéias, Assim elas podem ocupar menos espaço na sua memória de trabalho Isso libera seu espaço mental de pensamento, para que ele possa mais facilmente capturar outras ideias.

Nós temos sistemas de memória espacial e visual incríveis. Se você ativar esses sistemas, isso vai ajudar a melhorar a sua memória. Para começar a ativar seu sistema de memória visual, tente criar uma imagem visual memorável, representando um item chave que deseja recordar.

Além de meramente ver, tente sentir, ouvir e até mesmo cheirar aquilo que está tentando lembrar. Quanto mais engraçada e mais evocativa a imagem é, melhor.

Como sempre, repetição ao longo de vários dias ajuda muito.

Outra chave para a memorização é criar grupos significativos que simplifiquem o material. Tente associar números com anos ou com sistemas com os quais você está familiarizado como contagem de tempo.

Várias disciplinas usam frases decoráveis. A técnica do palácio da memória, colocar imagens memoráveis em uma cena familiar a você, lhe permite ir fundo na força da sua memória visual, fornecendo uma maneira particularmente poderosa para agrupar coisas que você deseja lembrar.

Criando grupos significativos e abreviações, você pode simplificar e particularizar o que está tentando lembrar e assim poder facilmente guardar na memória.

E ao memorizar o material que você entende, você pode internalizar o material de maneira profunda. Você está reforçando a livraria mental que precisa. para se tornar um verdadeiro mestre do assunto.

Testes testes testes

Metáforas e analogias não são apenas para a arte e a literatura. Uma das melhores coisas que você pode fazer não só para lembrar, mas para entender mais facilmente conceitos em muitas áreas variadas, é criar uma metáfora ou analogia para eles.

Geralmente, quanto mais visual, melhor Nós aprendemos com o vencedor do Prêmio Nobel Santiago Ramon y Cajal que, se você mudar seus pensamentos, você pode real e verdadeiramente mudar a sua vida. Parece que as pessoas podem aumentar o desenvolvimento de seus circuitos neuronais pela prática de pensamentos que usam esses neurônios.

Como Santiago Ramon y Cajal, você pode se orgulhar em buscar o sucesso por causa das mesmas coisas que fazem outras pessoas dizer que você não consegue fazer.

Lembre-se que quando você passa rápido por sua lição de casa ou por uma questão do teste e você não retorna para checar o seu trabalho você está agindo como uma pessoa que se recusa a usar partes do seu cérebro Você não está fazendo uma pausa para um descanso mental e revisitando o que você havia feito com uma visão mais ampla geral em mente, para checar se aquilo faz sentido.

Excesso de confiança nos seus resultados podem ser o resultado de usar apenas um modo de pensar. Por tornar isso um ponto a fazer parte dos seus estudos com amigos, você pode perceber mais facilmente onde o seu raciocínio se perdeu.

Fazer um teste é assunto sério. Assim como pilotos de caça e médicos repassam seus checklists antes do voo e da cirurgia, rever sua própria lista de afazeres ao se preparar para um teste pode aumentar de maneira significativa as suas chances de sucesso.

Estratégias contra intuitivas, como técnicas de começar do mais difícil para o mais fácil podem fornecer ao seu cérebro uma chance de refletir sobre desafios mais difíceis mesmo enquanto você estiver focando em outros problemas mais simples.

Aqui estão algumas dicas finais para fazer testes: O corpo produz substâncias químicas quando está sob estresse. A forma como você interpreta a reação do seu corpo a estes químicos faz toda a diferença. Se você muda o seu pensamento de "este teste me deixa receoso" para "este teste me deixa entusiasmado para fazer o meu melhor", isso ajuda a melhorar a sua performance.

Se entrar em pânico num teste, momentaneamente desvie sua atenção para a sua respiração. Relaxe sua barriga, coloque sua mão sobre ela e, lentamente, inspire profundamente. A sua mão deve mover-se para cima e todo o seu peito deve se expandir como um barril.

Sua mente pode te enganar, levando você a pensar que o que você fez está correto, Mesmo que não esteja. Isso significa que, quando for possível, você deve piscar, mudar sua atenção, e então checar novamente suas respostas, usando uma perspectiva mais abrangente, perguntando a si mesmo, isso realmente faz sentido?

E finalmente, lembre-se que não dormir o suficiente na noite anterior ao teste pode afetar negativamente qualquer outra preparação que você tenha feito.

Introdução à Ciência da Computação com Python I

Introdução à Ciência da Computação com Python I

Curso introdutório à Ciência da Computação com Python.

Para realizar este curso você não precisa ter nenhuma experiência anterior em programação.

Utiliza conceitos bem básicos fazendo com que você adquira conhecimentos novos a cada semana.

Além de conter vídeos e testes, você encontrará links de acesso ao livro interativo. Lá você encontrará conteúdo teórico e exercícios que poderão ser resolvidos dentro do próprio livro, com retorno imediato sobre a corretude da solução apresentada.

Vale a pena investir nas diversas fontes de aprendizado. Elas irão te ajudar a fixar o conteúdo estudado.

1° Semana - Apresentação e Introdução ao Curso

Visão Geral do Curso

  • Leitura - Visão Geral do Curso
  • A quem se destina este curso
  • Como aproveitar este curso ao máximo
  • Leitura - IMPORTANTE: O Código de Honra do Coursera

Introdução: O que é Ciência da Computação? (Conhecimentos envolvidos, habilidades básicas e avançadas, conceitos básicos e "Por onde começar?")

  • O que é Ciência da Computação?
  • Teste - O que é Ciência da Computação?

Instale o Python em seu computador (versão 3.x)

  • Leitura - É necessário instalar a versão 3.X do python!
  • Instalação do python3 e IDLE no Windows
  • Dica - Como reparar a instalação do Python no Windows
  • Leitura - Dicas para usuários Windows
  • Instalação do python3 e IDLE no Linux
  • Leitura - Dica para instalação no MacOS X

Introdução ao Python (Como instalar e abrir o interpretador do Python, alguns operadores aritméticos (**, *, /, ...) e operadores relacionais (==, !=, >, >=, ...) )

  • Leitura - IMPORTANTE: Introdução à Linha de Comando
  • Linha de comando no Windows
  • Introdução ao Python
  • Teste - Introdução ao Python

Variáveis e Primeiro Programa (Site e download do ambiente IDLE, variáveis (definição, nomeclatura, atribuição), comando "print", primeiro programa (criação e execução))

  • Variáveis e Primeiro Programa
  • Teste - Variáveis e Primeiro Programa
  • Quatro maneiras de rodar o python

O que é software livre?

  • Software Livre – com Nelson Posse Lago, gerente técnico do CCSL
  • Livro Texto - Introdução ao curso e a Python

2° Semana - Introdução ao Python

Tipos de Dados (Tipos de dados, operador aritmético de divisão inteira e resto (//, %), conversão de tipos, comando "len")

  • Tipos de Dados
  • Teste Tipos de Dados

Entrada de Dados (Comando "input", utilizou conversão de tipo, resolução de dois exercícios)

  • Entrada de Dados
  • Teste Entrada de Dados

Exercícios de Programação

  • Teste - Variáveis e tipos de dados
  • Enviando exercícios para o corretor automático
  • Leitura - Dicas e Perguntas Frequentes Sobre o Corretor
  • Lista de exercícios - 1
  • Exercícios adicionais (opcionais)
  • Livro Texto - Introdução ao Python, variáveis, expressões e comandos.

3° Semana - Condicionais - if...else

Expressões Booleanas (Tipo de dado "bool", operadores lógicos (and, or, not) e precedência entre operadores relacionais, lógicos e aritméticos)

  • Expressões Booleanas
  • Teste - Expressões Booleanas

Execução Condicional (if, if..else, biblioteca math, exemplo)

  • Execução Condicional
  • Teste - Execução Condicional

Exercício Resolvido - Cálculo das raízes com a fórmula de Bhaskara (Utilização da biblioteca Math e de ifs aninhados)

  • Exercício Resolvido

Exercícios de Programação

  • Lista de exercícios - 2
  • Exercícios adicionais (opcionais)
  • Livro Texto - Execuções condicionais e expressões booleanas

4° Semana - Repetição - while

Repetição com while (Definição e explicação do comando "while", 3 exemplos e um desafio)

  • Repetição com while
  • Teste - Repetição com while

Variáveis Booleanas (Indicadores de Passagem, 2 exemplos e 1 desafio)

  • Variáveis Booleanas

Depurador (Como utilizar o "Debbuger")

  • Depurador
  • Teste - Depurador e Variáveis Booleanas

Exercícios de Programação

  • Teste - Repetições
  • Lista de exercícios - 3
  • Exercícios adicionais (opcionais)
  • Livro Texto - Comando de repetição while

5° Semana - Funções

Funções (Definição, criação e utilização de funções. Escopo de variável)

  • Funções
  • Leitura - Nomeando funções
  • Teste - Funções
  • Leitura - Diferença entre print e return

Resolução de Exercício e Testes (Tipos de erros (sintaxe e de lógica). Nomeação de funções. Definição de testes. Criação e funcionamento de uma função de teste)

  • Resolução de Exercício e Testes

Testes Automatizados

  • Testes Automatizados - Introdução ao pytest
  • Leitura - Informações adicionais sobre o pytest
  • Música "Melô do Teste Automatizado" e Entrevista com Daniel Cukier

Exercícios de Programação

  • Lista de exercícios - 4
  • Exercícios adicionais (opcionais)
  • Livro Texto - Funções

6° Semana - Depuração e refatoração

Exercício Resolvido - Fórmula de Bhaskara (Refatoração e decomposição de problemas)

  • Exercício Resolvido

Depurador (Funcionamento no contexto onde há várias funções)

  • Depurador
  • Teste - Depurador

Exercícios de Programação

  • Programa completo - Jogo do NIM
  • Dicas sobre o Jogo do NIM

7° Semana - Repetições Encaixadas

Repetições Encaixadas ou Laços Aninhados (Explicação mais detalhada do comando "print". Explicação passo a passo de repetições encaixadas)

  • Repetições Encaixadas
  • Teste - Repetições Encaixadas

Exercício Resolvido - com Repetições Encaixadas (Ler uma sequência de números digitados pelo usuário e, para cada número digitado, informar o seu fatorial)

  • Exercício Resolvido

Exercício Resolvido - com Repetições Encaixadas (Mostrar a decomposição em fatores primos e a multiplicidade de cada fator de determinado números inteiros maior que 1)

  • Exercício Resolvido

Exercício Resolvido - com Repetições Encaixadas (Informar, para cada valor digitado pelo usuário, se ele é um número primo ou não)

  • Exercício Resolvido

Exercícios de Programação

  • Lista de exercícios - 5
  • Exercícios adicionais (opcionais)
  • Livro Texto - Repetições Encaixadas

8° Semana - Listas

Listas (Definição, sintaxe e índices. Comandos: len, type e append. Criação e manipulação de listas)

  • Listas
  • Teste - Listas

Repetição com "for" (Explicação do funcionamento dos comandos "for" e "range". Exemplos.)

  • Repetição com "for"
  • Teste - Repetição com "for"

Manipulação de Listas (Fatias de listas, clonando listas, pertinência a uma lista, concatenação (+), repetição (*) e remoção (del) de listas)

  • Manipulação de Listas
  • Teste - Manipulação de Listas

Exercícios de Programação

  • Lista de exercícios - 6
  • Exercícios adicionais (opcionais)
  • Livro Texto - Introdução à listas e funções com listas

9 Semana - Mais sobre listas

Objetos na Memória (Definição de objeto e de memória. Objetos e suas referências. Explicação do comando “is”)

  • Objetos na Memória
  • Teste - Listas
  • Leitura - PEP8 - Uma Questão de Estilo

Exercício Resolvido (Dada uma lista de temperaturas de um mês, informar qual a maior e a menor temperatura)

  • Exercício Resolvido
  • Teste - Objetos na Memória

Exercício de Programação

  • Dicas para o exercício final!
  • Programa completo - Similaridades entre textos - Caso COH-PIAH

Poscast

Os Programadores é um podcast onde o host Marcelo Pinheiro convida grandes nomes da programação tanto do brasil como do exterior para contar sobre suas jornadas desde o primeiro contato com a tecnologia, passando pelas suas formações, primeiras experiências profissionais, até chegarem ao momento atual de suas carreiras.

Entre seus convidados há um leque muito grande de gerações, personalidades, e caminhos trilhados. Independente de como e quando começaram o que percebemos é que não há um único caminho ou uma fórmula mágica para se tornar um programador e alinhado com essa premissa que o podcast tenta explorar a história de cada um dos convidados buscando encontrar direcionamentos para quem ainda está na fase inicial dentro da área.

O propósito de todo esse conteúdo criado é incentivar não só o pessoal que quer aprender a programar, mas também ajudar quem já está na área a expandir seus horizontes. Então fica aqui o convite a todos que se interessarem pelo podcasts e querem ter uma visão mais abrangente sobre o mundo da programação.

  • E01 - Claudio Miranda - Do período cretáceo aos dias de hoje da programação
  • E02 - Dimitri Lameri - Trajetória até a Programação Funcional, Nubank e Gerenciamento de Produtos
  • E03 - Tomaz Canabrava - Software Livre, Código aberto, Linux, KDE
  • E04 - Itamar Silva - Desenvolvedor Mobile e líder Técnico - iOS, Android, Bikes
  • E05 - Armando Magalhães - Desenvolvedor no Netflix - residente em Amsterdam.
  • E06 - Flora Saramago - Desenvolvedora Ruby on Rails - Hackathon, Rails Girls, Shopify
  • E07 - Ellen Körbes - DevRel na Tilt - Kubernetes - Go lang
  • E08 - Og Maciel - Diretor de Engenharia de Qualidade na Red Hat
  • E09 - Anny Mayara - Líder Técnica na B2W DIgital
  • E10 - Felipe Cruz - Empreendedor e Cientista de Dados
  • E11 - Renato Pessanha - Especialista SAP e desenvolvedor iOS.
  • E12 - Ana Carolina Ferreira - Especialista Salesforce e Desenvolvedora.
  • E13 - Hisham Muhammad - Gerente de Produtos na Kong - Criador do htop e LuaRocks
  • E14 - Fernando Masanori - Professor e criador do Python para Zumbis
  • E15 - José Valim - Criador da Linguagem Elixir e Chief Adoption Officer at @dashbit
  • E16 - Roberto Ierusalimschy - Ph.D. em Ciência da Computação, Arquiteto líder e autor da linguagem Lua
  • E17 - Marco Paganini - Site Reliability Engineer no Google - Administrador do grupo OsProgramadores
  • E18 - João Paulo - Engenheiro em Eletrônica e desenvolvedor de sistemas embarcados na ASML
  • E19 - Paulo Eustáquio - Doutor em Ciência da Computação pela UFRJ - Pesquisador e professor associado da UERJ
  • E20 - Etiene Dalcol - Desenvolvedora e Mestre em Linguística Computacional
  • E21 - Gilliard Lopes - FIFA Senior Game Designer na EA em Vancouver
  • E22 - Albert Corazzato - NASA Developer - International Space Station Simulator Project
  • E23 - Eduardo Cuducos - Operação Serenata de Amor e Desenvoledor no Shopify
  • E24 - Jefferson Venerando - Software engineer na Intellispark
  • E25 - Rafael França - Principal Developer no Shopify
  • E26 - Thais Souza - Atlassian Support Engineer
  • E27 - Zeno Rocha - Chief Product Officer na Liferay Cloud
  • E28 - Elyézer Rezende - Principal Software Quality Engineer na Red Hat
  • E29 - Quincy Larson - Teacher at @freeCodeCamp where you can learn to code for free.
  • E30 - Caroline Moreschi - Test Engineer na Liferay
  • E31 - Joviane Jardim - Desenvolvedora JavaScript na ViaPlay na Suécia
  • E32 - Glaucia Lemos - Cloud Advocate em JavaScript/Node.js na Microsoft
  • E33 - Marco Bruno - fazedor de códigos ao vivo
  • E34 - Kim Kaznowski - CEO e um dos fundadores da Double Dash Studios
  • E35 - (EN) Megane Dreyfuss Lande - Co founder and COO @ the Developers.institute
  • E36 - Leticia Portella - Engenheira de Software na Stripe e co-host do Podcast Pizza de Dado
  • E37 - Adriano Lima - Sócio-Diretor da Inmetrics
  • E38 - Diana Arnos - Senior Software Engineer na SurveyMonkey
  • E39 - (EN) Ashish Sachdeva - CEO of HyperLight
  • E40 - Jucy Cabrera - Software Engineer em Dublin
  • E41 - Gary Carrier - CEO Plataformaimpact.org
  • E42 - Fernando Daciuk - Desenvolvedor, Live Coder e Professor
  • E43 - Ricardo Katz - Engenheiro da VMware - Embaixador CNCF
  • E44 - Matheus Marsiglio - Principal & Founding Team @runopsio
  • E45 - Carlisia Thompson - Engenheira na VMware - projetos Velero/Knative
  • E46 - Vitor Mendrone - Head de Engenharia na Portolab
  • E47 - André Cardoso - Product Designer at Unity
  • E48 - Keit Oliveira - Head de Desenvolvimento de Software na Arcotech
  • E49 - Daniela Petruzalek - Product Owner no J.P. Morgan Chase & Co
  • E50 - Paula Santos - CEO da Beevi e especialista em Inteligência Artificial
  • E51 - Pachi Codes - Developer Relations na New Relic
  • E52 - André Carvalho - Production Engineer no Facebook
  • E53 - (EN) Nilay Yenner - Program Manager in the Flutter DevRel team at Google
  • E54 - Carol Valencia - Solutions Architect na Aqua Security
  • E55 - (EN) Matthew Miller - Fedora Project Leader
  • E56 - Paulo Brito - Software Engineer na Sunlife Financial
  • E57 - Daniel Maida - Gameplay Engineer na Wildlife Studios
  • E58 - Daniel Rosa - Colaborador do freeCodeCamp
  • E59 - Felipe Borges - Senior Software Engineer na Red Hat
  • E60 - Marcia Lucia Teixeira - Senior Development Manager, General Motors
  • E61 - (EN) Kelsey Hightower - Principal Engineer at Google Cloud
  • E62 - Angela Bassa - Diretora Senior de Ciência de dados e Analystic na iRobot e conselheira na MIRAH
  • E63 - Georges Basile - Engenheiro de Software na Fundação Endless OS
  • E64 - Sidney Goldbach - Software Developer na BCLIQUO
  • E65 - (EN) Amanda Shafack - Flutter developer at Ejara
  • E66 - Rafael Fontenelle - Técnico Judiciário no TJES
  • E67 - Nick Ellis - Editor do Olhar Digital
  • E68 - Ramon Tramontini - Objective Head of US Operations
  • E69 - Daniel Franco - Infrastructure Manager, Cloud na Liferay Inc.
  • E70 - Lucas F. Costa - Senior Software Engineer
  • E71 - Roberta Arcoverde - Director of Engineering @ Stack Overflow
  • E72 - (EN) Bjarne Stroustrup - C++ inventor - Computer Science Professor at Columbia University
  • E73 - Giancarlo Razzolini - Backend Engineer na BairesDev - Desenvolvedor Arch Linux
  • E74 - Gabriela de Queiroz - Data Scientist Leader & Manager @ Microsoft

Day 2: I Was Told There Would Be No Math Part One

Day 2: I Was Told There Would Be No Math Part One

The elves are running low on wrapping paper, and so they need to submit an order for more. They have a list of the dimensions (length l, width w, and height h) of each present, and only want to order exactly as much as they need.

Fortunately, every present is a box (a perfect right rectangular prism), which makes calculating the required wrapping paper for each gift a little easier: find the surface area of the box, which is 2lw + 2wh + 2hl. The elves also need a little extra paper for each present: the area of the smallest side.

For example:

A present with dimensions 2x3x4 requires 26 + 212 + 28 = 52 square feet of wrapping paper plus 6 square feet of slack, for a total of 58 square feet.
A present with dimensions 1x1x10 requires 2
1 + 210 + 210 = 42 square feet of wrapping paper plus 1 square foot of slack, for a total of 43 square feet.
All numbers in the elves' list are in feet. How many total square feet of wrapping paper should they order?

Solution

Curso Web Design Responsivo

Free Code Camp - Curso Web Design Responsivo

O Free Code Camp é uma organização beneficente. E sua missão é ajudar as pessoas a aprender a programar de graça.

Os seus conteúdos estão disponíveis em diversas linguagens, escolhi acompanhar o curso escolhido em inglês para treinar e me acostumar com o idioma.

Entre os diversos cursos disponíveis escolhi começar pelo Responsive Web Design. Segue a relação de meu progresso nele.

Roteiro de Estudos - Responsive Web Design

  • Learn HTML by Building a Cat Photo App
  • Learn Basic CSS by Building a Cafe Menu
  • Learn CSS Colors by Building a Set of Colored Markers
  • Learn HTML Forms by Building a Registration Form
  • Survey Form - "Certification Project"

  • Learn the CSS Box Model by Building a Rothko Painting
  • Learn CSS Flexbox by Building a Photo Gallery
  • Learn Typography by Building a Nutrition Label
  • Learn Accessibility by Building a Quiz
  • Tribute Page - "Certification Project"

  • Learn More About CSS Pseudo Selectors By Building A Balance Sheet
  • Learn Intermediate CSS by Building a Picasso Painting
  • Learn Responsive Web Design by Building a Piano
  • Technical Documentation Page - "Certification Project"

  • Learn CSS Variables by Building a City Skyline
  • Learn CSS Grid by Building a Magazine
  • Product Landing Page - "Certification Project"

  • Learn CSS Animation by Building a Ferris Wheel
  • Learn CSS Transforms by Building a Penguin
  • Personal Portfolio Webpage - "Certification Project"

Exercício 4: Crédito (desafio))

Crédito (desafio)

cartão de credito em cima de um notebook

Um cartão de crédito (ou débito), é claro, é um cartão de plástico com o qual você pode pagar por bens e serviços. Impresso nesse cartão está um número que também é armazenado em um banco de dados em algum lugar, de modo que, quando o cartão for usado para comprar algo, o credor saiba a quem cobrar. Há muitas pessoas com cartões de crédito no mundo, então esses números são bem longos: American Express usa números de 15 dígitos, MasterCard usa números de 16 dígitos e Visa usa números de 13 e 16 dígitos. E esses são números decimais (0 a 9), não binários, o que significa, por exemplo, que a American Express poderia imprimir até 10 ^ 15 = 1.000.000.000.000.000 de cartões exclusivos! (Isso é, hum, um quatrilhão.)

Na verdade, isso é um pouco exagerado, porque os números de cartão de crédito têm alguma estrutura. Todos os números American Express começam com 34 ou 37; a maioria dos números do MasterCard começa com 51, 52, 53, 54 ou 55 (eles também têm alguns outros números iniciais potenciais com os quais não nos preocupamos neste problema); e todos os números Visa começam com 4. Mas os números de cartão de crédito também têm um “checksum” embutido, uma relação matemática entre pelo menos um número e outros. Essa soma de verificação permite que os computadores (ou humanos que gostam de matemática) detectem erros de digitação (por exemplo, transposições), se não números fraudulentos, sem ter que consultar um banco de dados, que pode ser lento. É claro que um matemático desonesto certamente poderia criar um número falso que, no entanto, respeite a restrição matemática, portanto, uma pesquisa no banco de dados ainda é necessária para verificações mais rigorosas.

Algoritmo de Luhn
Então, qual é a fórmula secreta? Bem, a maioria dos cartões usa um algoritmo inventado por Hans Peter Luhn, da IBM. De acordo com o algoritmo de Luhn, você pode determinar se um número de cartão de crédito é (sintaticamente) válido da seguinte maneira:

Multiplique cada segundo digito por 2, começando com o penúltimo dígito do número e, em seguida, some os dígitos desses produtos.
Adicione essa soma à soma dos dígitos que não foram multiplicados por 2.
Se o último dígito do total for 0 (ou, mais formalmente, se o módulo total 10 for congruente com 0), o número é válido!
Isso é meio confuso, então vamos tentar um exemplo com o cartão Visa do David: 4003600000000014.

1- Para fins de discussão, vamos primeiro sublinhar todos os outros dígitos, começando com o penúltimo dígito do número:

4003600000000014

Ok, vamos multiplicar cada um dos dígitos sublinhados por 2:

1 • 2 + 0 • 2 + 0 • 2 + 0 • 2 + 0 • 2 + 6 • 2 + 0 • 2 + 4 • 2

Isso nos dá:

2 + 0 + 0 + 0 + 0 + 12 + 0 + 8

Agora vamos adicionar os dígitos desses produtos (ou seja, não os próprios produtos):

2 + 0 + 0 + 0 + 0 + 1 + 2 + 0 + 8 = 13

2- Agora vamos adicionar essa soma (13) à soma dos dígitos que não foram multiplicados por 2 (começando do final):

13 + 4 + 0 + 0 + 0 + 0 + 0 + 3 + 0 = 20

3- Sim, o último dígito dessa soma (20) é 0, então o cartão de David é legítimo!

Portanto, validar números de cartão de crédito não é difícil, mas se torna um pouco tedioso manualmente. Vamos escrever um programa.

Solucção - Crédito (desafio)

Segue uma lista de cartões para teste:

Bandeira Número do cartão Validade CVV
Mastercard 5555 6666 7777 8884 12/2022 123
Mastercard 5226 8187 4817 8086 05/2024 305
Mastercard 5446 9804 5390 8711 01/2024 850
Mastercard 5435 3761 4337 8337 11/2022 643
Mastercard 5550 3210 6986 5882 07/2023 874
VISA 4024 0071 3701 5284 05/2024 290
VISA 4929 0733 6921 7663 05/2024 699
VISA 4978 6901 8142 3938 09/2023 509
VISA 4929 5979 9238 9366 11/2023 781
VISA 4556 7908 2671 7643 03/2024 234
AMEX 3755 277750 50619 02/2023 7411
AMEX 3711 798367 79945 03/2024 6487
AMEX 3451 457122 28193 01/2024 3997
AMEX 3439 572558 49363 03/2021 5963
AMEX 3719 542115 28459 01/2024 5099

CFBCursos - Curso de C++ - A linguagem de programação fundamental para quem quer ser um programador

CFBCursos - Curso de C++

C++ é uma das linguagens mais usadas no mundo, considero que todo programador deve saber usar C++. É uma linguagem poderosa, rápida e empregada em muitos sistemas, além de ser a linguagem de maior emprego em cursos superiores da área de informática.
Neste curso iremos aprender desde os conceitos básicos de programação, até conceitos de programação orientada a objetos, trabalhar com arquivos, bibliotecas e atualizações da linguagem como C++11.
Se você quer aprender programação, quer se tornar um programador de qualidade você precisa aprender C++ e este é curso certo.

Roteiro de Estudos - C++

  • Curso de C++ -01 - Introdução ao Curso
  • Curso de C++ -02 - Computador Simplificado
  • Curso de C++ -03 - Estrutura básica de um programa em C++
  • Curso de C++ -04 - Variáveis em C++
  • Curso de C++ -05 - Declarações múltiplas de variáveis, Constantes -Define
  • Curso de C++ -06 - Variáveis Globais e Locais, Operadores matemáticos
  • Curso de C++ -07 - Incremento e Decremento de Variáveis, Operadores pós e pré-fixados
  • Curso de C++ -08 - Invertendo valores de variáveis
  • Curso de C++ -09 - Comando de decisão IF ELSE- Parte 1
  • Curso de C++ -10 - Comando de decisão IF ELSE e comando Goto - Parte 2
  • Curso de C++ -11 - Operadores AND, OR, NOT
  • Curso de C++ -12 - Operador ternário
  • Curso de C++ -13 - Comando Switch Case
  • Curso de C++ -14 - Comando de laço While
  • Curso de C++ -15 - Comando Break
  • Curso de C++ -16 - Comando de loop Do While
  • Curso de C++ -17 - Comando de loop FOR
  • Curso de C++ -18 - Array / Vetor
  • Curso de C++ -19 - Array bidimensional / Matriz
  • Curso de C++ -20 - Jogo da Forca
  • Curso de C++ -21 - Argumentos para a função main, argc e argv
  • Curso de C++ -22 - Funções - Parte 1
  • Curso de C++ -23 - Sobrecarga de funções
  • Curso de C++ -24 - Omissão de argumentos e argumentos padrão
  • Curso de C++ -25 - Funções recursivas (recursividade)
  • Curso de C++ -26 - Resolução dos exercícios da aula 25
  • Curso de C++ -27 - Enum
  • Curso de C++ -28 - Pilha / Stack - Parte 1
  • Curso de C++ -29 - Pilha / Stack - Parte 2
  • Curso de C++ -30 - Fila / Queue
  • Curso de C++ 31 - Lista - Parte 1
  • Curso de C++ -32 - Lista - Parte 2
  • Curso de C++ -33 - Struct - Parte 1
  • Curso de C++ -34 - Struct - Parte 2
  • [x ] Curso de C++ --35 - Struct - Parte 3
  • Curso de C++ -36 - Ponteiros - Parte 1
  • Curso de C++ -37 - Ponteiros - Parte 2
  • Curso de C++ -38 - Ponteiros - Parte 3
  • Curso de C++ -39 - Alocação dinâmica de memória
  • Curso de C++ -40 - printf e scanf
  • Curso de C++ -41 - Mais sobre printf e cout
  • Curso de C++ -42 - Vector
  • Curso de C++ -43 - System
  • Curso de C++ -44 - POO, Classes, public, private, métodos - P1
  • Curso de C++ -45 - POO, Classe em arquivo externo, Construtor - P2
  • Curso de C++ -46 - POO, Classes , Get e Set - P3
  • Curso de C++ -47 - POO, Classes, Herança - P4
  • Curso de C++ -48 - POO, Classes, Herança Múltipla - P5
  • Curso de C++ -49 - Alterando tema do Code::Blocks
  • Curso de C++ -50 - Operações com arquivos (ofstream) - Parte 1
  • Curso de C++ -51 - Operações com arquivos (ifstream) - Parte 2
  • Curso de C++ -52 - Operações com arquivos (fstream) - Parte 3
  • Curso de C++ -53 - Iterator
  • Curso de C++ -54 - tratamento de Erros com try catch
  • Curso de C++ -55 - Inicialização uniforme - C++11 (C++ moderno)
  • Curso de C++ -56 - Classes de armazenamento (auto, register, static) - C++11 (C++ moderno)
  • Curso de C++ -57 - Classes de armazenamento (extern)
  • Curso de C++ -58 - FOR com base em intervalo / for-range-declaration - C++11 (C++ moderno)
  • Curso de C++ -59 - Funções Lambda - C++11 (C++ moderno)
  • Curso de C++ -60 - Pair - Dados em Pares
  • Curso de C++ -61 - Map - Container de Associação Chave x Valor
  • Curso de C++ -62 - Map - Smart Pointer / Ponteiro Inteligente - C++11 - (C++ Moderno)
  • Colabore com nosso canal
  • Curso de C++ -63 - Algorítmo FOR_EACH - C++11 (C++ Moderno)
  • Curso de C++ -64 - POO, Classes em C++ Moderno - P6
  • Curso de C++ -65 - POO, Encapsulamento - P7
  • Curso de C++ -66 - POO, Polimorfismo (sobrecarga de métodos) - P8
  • Curso de C++ -67 - POO, Herança, Virtual, Override - P9
  • Curso de C++ -68 - POO, Protected x Private x Public - P10
  • Curso de C++ -69 - Algoritmo FIND
  • Curso de C++ -70 - Acentuação / setlocale
  • Curso de C++ -71 - Download, Instalação e configuração do codeBlocks
  • Curso de C++ -72 - Biblioteca iostream
  • Curso de C++ -73 - Biblioteca cstdlib - P1
  • Curso de C++ -74 - Biblioteca cstdlib - P2
  • Curso de C++ -75 - Biblioteca cstdlib - P3
  • Curso de C++ -76 - Biblioteca typeinfo
  • Curso de C++ -77 - Biblioteca functional
  • Biblioteca UTILITY - Função SWAP, função MAKE_PAIR e o tipo PAIR - Curso de C++ -78
  • Manipulando DATA, HORA e controle de tempo em C++ - Bibliotecas ctime e time.h - Curso de C++ -79
  • DATA, HORA e controle de tempo em C++ moderno - Biblioteca chrono - Curso de C++ -80
  • Como verificar o tipo de um caractere em c++, biblioteca cctype - Curso de C++ -81
  • Manipulando strings, funções para strings, biblioteca cstring P1 - Curso de C++ -82
  • Funções para manipular strings, biblioteca cstring P2 - Curso de C++ -83
  • Biblioteca string P1 - Curso de C++ -84
  • Biblioteca string P2 - Curso de C++ -85
  • Biblioteca string P3 - Curso de C++ -86
  • Biblioteca Array - Curso de C++ -87
  • Biblioteca Vector- Curso de C++ -88
  • Biblioteca List - Curso de C++ -89
  • Biblioteca List - Curso de C++ -90
  • Biblioteca Map- Curso de C++ -91
  • Biblioteca Stack (Pilha) - Curso de C++ -92
  • Biblioteca Queue (Fila) - Curso de C++ -93
  • Biblioteca Deque (Fila Dupla) - Curso de C++ -94
  • Biblioteca Algorithm - P1 - Curso de C++ -95
  • Biblioteca iterator - Curso de C++ -96
  • Biblioteca Algorithm - P2 - Curso de C++ -97
  • Biblioteca Algorithm - P3 - Curso de C++ -98
  • Biblioteca cmath - Curso de C++ -99
  • Biblioteca fstream- Curso de C++ -100
  • Biblioteca iomanip - Curso de C++ -101
  • Biblioteca mágica bits/stdc++.h - Curso de C++ -102
  • Download, instalação e primeiro projeto no QT Creator - Curso de QT Creator / C++ -01
  • Primeiro Programa em QT - Curso de QT Creator / C++ -02
  • Sinais e Slots (Eventos e Ações) - Curso de QT Creator / C++ -03
  • Caixas de Mensagens - Curso de QT Creator / C++ -04
  • Caixa de Mensagem question / QMessagebox - Curso de QT Creator / C++ -05
  • Criando métodos para slots - Curso de QT Creator / C++ -06
  • Layout - Curso de QT Creator / C++ -07
  • Criando a abrindo novos formulários (janelas) - Curso de QT Creator / C++ -08
  • Armazendando dados digitados no formulário em variáveis - Curso de QT Creator / C++ -09
  • Inserindo imagens nos formulários - Curso de QT Creator / C++ -10
  • Inserindo conteúdo na Barra de Status - Curso de QT Creator / C++ -11
  • Arquivo de recursos - Curso de QT Creator / C++ -12
  • Campo de Senha - Curso de QT Creator / C++ -13
  • HTML e CSS no Qt Creator - Curso de QT Creator / C++ -14
  • Checkbox no Qt - Curso de QT Creator / C++ -15
  • RadioButton no Qt - Curso de QT Creator / C++ -16
  • Barra de Menus e Barra de Ferramentas - Curso de QT Creator / C++ -17
  • ComboBox - Caixa de Listagem - Curso de QT Creator / C++ -18
  • ListWidget - Curso de QT Creator / C++ -19
  • tagWidget - Curso de QT Creator / C++ -20
  • tagWidget - parte 2 - Curso de QT Creator / C++ -21
  • Trabalhando com diretórios / parte 1 - Curso de QT Creator / C++ -22
  • Criando e removendo diretórios - Curso de QT Creator / C++ -23
  • Criando e lendo arquivos / Parte 1 - Curso de QT Creator / C++ -24
  • Criando e lendo arquivos / Parte 2 - Curso de QT Creator / C++ -25
  • Criando um bloco de notas - Parte 1 - Curso de QT Creator / C++ -26
  • Criando um bloco de notas - Parte 2 - Curso de QT Creator / C++ -27
  • Criando um bloco de notas - Parte 3 - Curso de QT Creator / C++ -28
  • Criando um bloco de notas - Parte 4 - Curso de QT Creator / C++ -29
  • Criando um bloco de notas - Parte 5 - Curso de QT Creator / C++ -30
  • Classe QTimer - Gerenciamento de intervalos - Curso de QT Creator / C++ -31
  • Classe QTimer - Criando um relógio digital - Curso de QT Creator / C++ -32
  • QDesktopServices - Abrindo programas, arquivos ou sites - Curso de QT Creator / C++ -33
  • Splash Screen - Curso de QT Creator / C++ -34
  • Banco de dados no Qt com SQLite Studio - Curso de QT Creator / C++ -35
  • Usando banco de dados SQL no Qt Creator / C++ -36
  • Tela de login e base da janela principal / Curso de QT Creator C++ -37
  • Inserindo registros na tabela do banco de dados SQL / Curso de QT Creator C++ -38
  • Inserindo registros do banco de dados no QTableWidget / Curso de QT Creator C++ -39
  • QTableWidget formatação e comando Delete para excluir registro / Curso de QT Creator C++ -40
  • Passando valores para outro formulário através do construtor / Curso de QT Creator C++ -41
  • Programação da tela para edição de contatos / Curso de QT Creator C++ -42
  • Rodando nosso programa fora do Qt Creator - Windeploy / Curso de QT Creator C++ -43
  • Deploy do programa com banco de dados / Curso de QT Creator C++ -44
  • Criando um instalador - Qt Installer Framework / Curso de QT Creator C++ -45
  • Programa Completo - Controle de Estoque e Vendas - P1 / Curso de QT Creator C++ -46
  • Programa Completo - Controle de Estoque e Vendas - P2 / Curso de QT Creator C++ -47
  • Programa Completo - Controle de Estoque e Vendas - P3 / Curso de QT Creator C++ -48
  • Programa Completo - Controle de Estoque e Vendas - P4 / Curso de QT Creator C++ -49
  • Programa Completo - Controle de Estoque e Vendas - P5 / Curso de QT Creator C++ -50
  • Programa Completo - Controle de Estoque e Vendas - P6 / Curso de QT Creator C++ -51
  • Programa Completo - Controle de Estoque e Vendas - P7 / Curso de QT Creator C++ -52
  • Programa Completo - Controle de Estoque e Vendas - P8 / Curso de QT Creator C++ -53
  • Programa Completo - Controle de Estoque e Vendas - P9 / Curso de QT Creator C++ -54
  • Programa Completo - Controle de Estoque e Vendas - P10 / Curso de QT Creator C++ -55
  • Programa Completo - Controle de Estoque e Vendas - P11 / Curso de QT Creator C++ -56
  • Programa Completo - Controle de Estoque e Vendas - P12 / Curso de QT Creator C++ -57
  • Programa Completo - Controle de Estoque e Vendas - P13 / Curso de QT Creator C++ -58
  • Programa Completo - Controle de Estoque e Vendas - P14 / Curso de QT Creator C++ -59
  • Programa Completo - Controle de Estoque e Vendas - P15 / Curso de QT Creator C++ -60
  • Programa Completo - Controle de Estoque e Vendas - P16 / Curso de QT Creator C++ -61
  • Programa Completo - Controle de Estoque e Vendas - P17 / Curso de QT Creator C++ -62
  • Programa Completo - Controle de Estoque e Vendas - P18 / Curso de QT Creator C++ -63
  • Programa Completo - Controle de Estoque e Vendas - P19 / Curso de QT Creator C++ -64
  • Programa Completo - Controle de Estoque e Vendas - P20 / Curso de QT Creator C++ -65
  • Programa Completo - Controle de Estoque e Vendas - P21 / Curso de QT Creator C++ -66
  • Programa Completo - Controle de Estoque e Vendas - P22 / Curso de QT Creator C++ -67
  • Como criar programa de pc - Controle de Estoque e Vendas - Parte 23 / Curso de QT Creator C++ -68
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 24 / Curso de QT Creator C++ -69
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 25 / Curso de QT Creator C++ -70
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 26 / Curso de QT Creator C++ -71
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 27 / Curso de QT Creator C++ -72
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 28 / Curso de QT Creator C++ -73
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 29 / Curso de QT Creator C++ -74
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 30 / Curso de QT Creator C++ -75
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 31 / Curso de QT Creator C++ -76
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 32 / Curso de QT Creator C++ -77
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 33 / Curso de QT Creator C++ -78
  • Criando programa de pc - Controle de Estoque e Vendas - Parte 34 / Curso de QT Creator C++ -79
  • Criando arquivo PDF pelo Qt Creator / Curso de QT Creator C++ -80
  • Criando uma planilha do Excel a partir no seu programa em Qt / Curso de QT Creator C++ -81
  • Lendo dados de uma planilha do Excel / Curso de QT Creator C++ -82
  • Inserindo dados em massa no banco de dados / Curso de QT Creator C++ -83
  • Bloqueando tabelas do banco de dados / Curso de QT Creator C++ -84
  • Personalizando a UI com CSS / Curso de QT Creator C++ -85
  • Deploy mais completo / Curso de QT Creator C++ -86

06 - makeArrayConsecutive2

06 - makeArrayConsecutive2

Ratiorg got statues of different sizes as a present from CodeMaster for his birthday, each statue having an non-negative integer size. Since he likes to make things perfect, he wants to arrange them from smallest to largest so that each statue will be bigger than the previous one exactly by 1. He may need some additional statues to be able to accomplish that. Help him figure out the minimum number of additional statues needed.

Example

For statues = [6, 2, 3, 8], the output should be
solution(statues) = 3.

Ratiorg needs statues of sizes 4, 5 and 7.

Click here - and see my solution in replit

Os Programadores - Desafios

Os Programadores - Desafios

Os Programadores é um grupo sem fins lucrativos com o objetivo de disseminar conhecimento em várias áreas da ciência da computação. Também disponibilizam alguns desafios que lhe auxiliam a se desenvolver como um programador, abaixo segue uma relação com minhas soluções nos desafios.

Desafios:

Exercício 1: Mario (versão fácil)

Mario (versão fácil)

Mundo 1-1. Perto do final do Mundo 1-1 no Super Mario Brothers da Nintendo, Mario deve ascender a pirâmide de blocos alinhada à direita, como demonstrado abaixo.

Vamos recriar essa pirâmide em C, ainda que em texto, usando hashes ( # ) para tijolos, como visto a seguir. Cada hash é um pouco mais alto do que largo, então a pirâmide em si também é mais alta do que larga.

     #
    ##
   ###
  ####
 #####
######

O programa que escreveremos se chamará mario. E vamos permitir que o usuário decida qual deve ser a altura da pirâmide, primeiro solicitando um número inteiro positivo entre, digamos, 1 e 8, inclusive. Se o usuário não inserir, de fato, um número inteiro positivo entre 1 e 8, quando solicitado, o programa deve solicitar novamente ao usuário até que ele coopere:

Segue meu resultado na plataforma Replit, para executar a solução basta clicar em Run no topo da pagina.

Solução - Mario (versão fácil)

Day 3: Perfectly Spherical Houses in a Vacuum Part Two

Day 3: Perfectly Spherical Houses in a Vacuum Part Two

--- Part Two ---
The next year, to speed up the process, Santa creates a robot version of himself, Robo-Santa, to deliver presents with him.

Santa and Robo-Santa start at the same location (delivering two presents to the same starting house), then take turns moving based on instructions from the elf, who is eggnoggedly reading from the same script as the previous year.

This year, how many houses receive at least one present?

For example:

^v delivers presents to 3 houses, because Santa goes north, and then Robo-Santa goes south.
^>v< now delivers presents to 3 houses, and Santa and Robo-Santa end up back where they started.
^v^v^v^v^v now delivers presents to 11 houses, with Santa going one direction and Robo-Santa going the other.

Solução

Certificados

Aprendendo a aprender: ferramentas mentais poderosas para ajudá-lo a dominar assuntos difíceis

  • Curso que ensina estratégias eficazes de aprendizado.

  • Baseado em pesquisas recentes da neurociência e da psicologia cognitiva.

  • Ensina como o cérebro funciona durante o processo de aprendizagem.

  • Aborda técnicas de memorização e retenção de informações.

  • Aplica técnicas de aprendizado ativo e espaçado para melhorar a aprendizagem.

  • Combate a procrastinação e ensina gerenciamento de tempo de estudo.

  • Conteúdo apresentado em vídeos, leituras e exercícios práticos.

  • Adequado para estudantes de todas as idades e níveis de educação.

  • Capacita os alunos com habilidades de aprendizado eficientes e duradouras.

  • Ajuda a enfrentar com sucesso os desafios de aprender assuntos difíceis.

Clique aqui para ver o certificado

Codesignal - Desafios em JavaScript

Codesignal

Codesignal é um conjunto de desafios de programação onde você pode se preparar para entrevistas e treinar a resolução de problemas.

Os desafios de programação cobrem um grande conjunto de habilidades e niveis de complexidade e pode ser resolvido usando qualquer linguagem de programação.

Aqui irei compartilhar meu avanço e minhas soluções.

Arcade

Git e Github para Iniciantes

Git e Github para Iniciantes

  • Introdução - Git e Github para Iniciantes
  • O que é controle de versão - Git e Github para Iniciantes
  • História do Git - Git e Github para Iniciantes
  • O que é Github - Git e Github para Iniciantes
  • Instalando o Git - Git e Github para Iniciantes
  • Configurando o Git - Git e Github para Iniciantes
  • Inicializando um repositório - Git e Github para iniciantes
  • Utilizando editores no terminal - Git e Github para Iniciantes
  • Ciclo de vida dos arquivos - Git e Github para Iniciantes
  • Visualizando logs - Git e Github para Iniciantes
  • Visualizando diferença entre versões - Git e Github para Iniciantes
  • Desfazendo coisas com o reset - Git e Github para Iniciantes
  • Criando repositório remoto - Git e Github para Iniciantes
  • Ligando repositório local com remoto - Git e Github para Iniciantes
  • Criando chave SSH - Git e Github para Iniciantes
  • Enviando mudanças para o remoto - Git e Github para Iniciantes
  • Clonando um repositório - Git e Github para Iniciantes
  • O que é um branch e por que usar - Git e Github para Iniciantes
  • Criando um branch - Git e Github para Iniciantes
  • Movendo entre branches e deletando - Git e Github para Iniciantes
  • Entendendo o Merge - Git e Github para Iniciantes
  • Entendendo o Rebase - Git e Github para Iniciantes
  • Merge e Rebase na prática - Git e Github para Iniciantes
  • Criando um .gitignore - Git e Github para Iniciantes
  • Git stash é lindo - Git e Github para Iniciantes
  • Criando alias - Git e Github para Iniciantes
  • Criando tags - Git e Github para Iniciantes
  • Salvando sua sexta com git revert - Git e Github para Iniciantes
  • Apagando tags e branches remotos - Git e Github para Iniciantes

Day 4: The Ideal Stocking Stuffer Part One

Day 4: The Ideal Stocking Stuffer Part One

--- Day 4: The Ideal Stocking Stuffer ---
Santa needs help mining some AdventCoins (very similar to bitcoins) to use as gifts for all the economically forward-thinking little girls and boys.

To do this, he needs to find MD5 hashes which, in hexadecimal, start with at least five zeroes. The input to the MD5 hash is some secret key (your puzzle input, given below) followed by a number in decimal. To mine AdventCoins, you must find Santa the lowest positive number (no leading zeroes: 1, 2, 3, ...) that produces such a hash.

For example:

If your secret key is abcdef, the answer is 609043, because the MD5 hash of abcdef609043 starts with five zeroes (000001dbbfa...), and it is the lowest such number to do so.
If your secret key is pqrstuv, the lowest number it combines with to make an MD5 hash starting with five zeroes is 1048970; that is, the MD5 hash of pqrstuv1048970 looks like 000006136ef....
Your puzzle input is bgvyzdsv.

Solução

Potências de 2

Potências de 2

A base 2 é uma das bases mais usadas em computação. Números nessa base são representados pela equação 2^n. Exemplo:

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
E assim por diante.

Instruções

Este desafio consiste em:

Ler um arquivo de números (abaixo), contendo um número por linha.
Se o número for uma potência de 2, imprimir o número seguido de true e o expoente ao qual se deve elevar 2 para obter o número.
Se o número não for uma potência de 2, imprimir o número seguido de false.

Exemplo

Considere a lista de números:

1
140
128
137
65535
65536
17179869184

A saída deverá ser:

1 true 0
140 false
128 true 7
137 false
65535 false
65536 true 16
17179869184 true 34

Solução

A soulão leva em consideração o arquivo disponibilizado contendo o seguinte conteúdo.

0
1
12
14
16
127
128
4096
281454976710656
18446744073709551616
124500856567997039162129486884668395826812296992228481815365968142027128693051035028556205264925665657626403178505809645412871055386757088573364745122357043975109693592036962311310957686231579579642781020624154356286086897778238385399858317893098189532376278484559500702772623150362802638348099921178582788310878154859755967372286990903647058081576759032347615874174439483053568007465887053932454054557542271600400386609821070961296169053055271224915561091922407311082889683446299274961215323332902442010587545631362959076396586324429133634232055167395681288399516683383956617143869197417777155025314769088291480186439336051135732033936004087935401036990026744627678180016656996927023729705272326460079719945226356402013780463595287258622978986906959003423961532930270921061548338446592277866576070108835043557312878258394587753736138596887993298504695766978337288786524018635728722878890320915557899639681702363838688960875075203948108011233803260538752766069558125766188271033739566336965497637006595709051901086265523344299594053086414269586271143861797076055019661581144918539466895753979973903491128787296817908097735620084164364020702558529749642122149622728045843807062294064940349054684732167486361991196132267515707392
2314185985457235618750807518439255791483119493422352165787546559868302409470291988575173224557300164810106522966939501900008715682938541479296551906945268505494352328324962697410609146185837888624615394715751608361830174152668676685019554381084438256327940596950085415756850584051133638909936449121476155111848437638289434513051098058148766039925664598040553910799633187829038108494673696217223889194847860141141616167272532283281917137315913651635713035451870996621006105657734634768397695199754209427149410156216464802998980146041068468812087800447307275314433204031772094762825683433916947174313944195242784290715608624920851346534036216803377455400331531976914555740925572268183555577086251039249862581450558394624212793134260404983611153808582038013855988240023623859288161549661250430035972851088046256534797262027839281833388856556590408681122440101603282236776025617384765397482364985048946716514383069164198492238687724894380008654689066545045000046462078654842525755231974092149407623683192306000065828548331962708855323362755245047019609402663165433437326257876866296807248324323257704871990374670145427029442813542365005738236992444119908554245927169807751472052293057527879230557530783067631846347466225869034173948838659508877336299382631495863563272151952427776281308917845597700628071691023661487252765739046292860016677411879686640010212118278745955285294417841329620599337984110101243656456776913453090422463741362827898131829598115227203371863118321606346869377387503848146385587272243216384
60702011246939035062687380680906305837142319313464061388891140591593089538654121918830296653594623864246878483558330608438096796425782639375183382556074597215979408709784194672508413305216789409418100705664952663177612750510231572483130375153310339598506419035697574297728380258159928663455935627476012474222471027006872324831776009258180124697674047980941466699719946879732254830155916883808410253233743521813647055645507911355426225890745048148394319807823782001447859163577867785403819865804774267099818223711406345304313381560740976869916334378275052323146373096895131451880333513652825520707625534451879660923061724541177563964007723527941501080847411992425892654176631560130935566054287853139921832999739575043504907886228120383532500247233797674257525565499680389206269196240162155222100997689730319240285979944612467169767002825773294385516861479034914493741586905100660928039019764360954203652104488749412449891358785187346020029510226399683789949132645976073131594003194105035215945839472654844346337939567198901204475690701015901568512309041487764987297548864591049904456364235670421246498946015626760720374204265834234994709030823084740371789734652763905931230636080463771021481812101955450955920262905736116606247837842309906432

Day 1: Not Quite Lisp Part One

Day 1: Not Quite Lisp Part One

Santa was hoping for a white Christmas, but his weather machine's "snow" function is powered by stars, and he's fresh out! To save Christmas, he needs you to collect fifty stars by December 25th.

Collect stars by helping Santa solve puzzles. Two puzzles will be made available on each day in the Advent calendar; the second puzzle is unlocked when you complete the first. Each puzzle grants one star. Good luck!

Here's an easy puzzle to warm you up.

Santa is trying to deliver presents in a large apartment building, but he can't find the right floor - the directions he got are a little confusing. He starts on the ground floor (floor 0) and then follows the instructions one character at a time.

An opening parenthesis, (, means he should go up one floor, and a closing parenthesis, ), means he should go down one floor.

The apartment building is very tall, and the basement is very deep; he will never find the top or bottom floors.

For example:

(()) and ()() both result in floor 0.
((( and (()(()( both result in floor 3.
))((((( also results in floor 3.
()) and ))( both result in floor -1 (the first basement level).
))) and )())()) both result in floor -3.
To what floor do the instructions take Santa?

Solution

Day 2: I Was Told There Would Be No Math Part Two

Day 2: I Was Told There Would Be No Math Part One

The elves are also running low on ribbon. Ribbon is all the same width, so they only have to worry about the length they need to order, which they would again like to be exact.

The ribbon required to wrap a present is the shortest distance around its sides, or the smallest perimeter of any one face. Each present also requires a bow made out of ribbon as well; the feet of ribbon required for the perfect bow is equal to the cubic feet of volume of the present. Don't ask how they tie the bow, though; they'll never tell.

For example:

A present with dimensions 2x3x4 requires 2+2+3+3 = 10 feet of ribbon to wrap the present plus 234 = 24 feet of ribbon for the bow, for a total of 34 feet.
A present with dimensions 1x1x10 requires 1+1+1+1 = 4 feet of ribbon to wrap the present plus 1110 = 10 feet of ribbon for the bow, for a total of 14 feet.
How many total feet of ribbon should they order?

Solution

Palíndromos

Palíndromos

Um palíndromo é uma palavra ou expressão que pode ser lida da esquerda para a direita ou da direita para a esquerda mantendo o mesmo significado. Um exemplo de palíndromo é a palavra “reviver”.

Neste desafio, a idéia é imprimir todos os números palindrômicos entre dois outros números. Tal como as palavras, os números palindrômicos mantém o mesmo valor se lidos de trás para a frente.

Exemplo 1: Dado o número inicial 1 e número final 20, o resultado seria: 1, 2, 3, 4, 5, 6, 7, 8, 9, 11.

Exemplo 2: Dado o numero inicial 3000 e número final 3010, o resultado seria: 3003.

Para o desafio, assuma:

Apenas inteiros positivos podem ser usados como limites.

Números de um algarismo são palíndromos por definição.

Máximo número: (1 << 64) - 1 (máximo unsigned int de 64 bits).

Bônus: Se o desafio parece fácil demais, implemente um novo tipo de dados para calcular pra qualquer número com precisão arbitrária (limite: 100000 algarismos por número).

O uso de bibliotecas matemáticas de precisão arbitrária não será considerado como uma solução válida.

Veja aqui minha solução

29 - chessBoardCellColor

chessBoardCellColor

Given two cells on the standard chess board, determine whether they have the same color or not.

Example

For cell1 = "A1" and cell2 = "C3", the output should be
solution(cell1, cell2) = true.

For cell1 = "A1" and cell2 = "H3", the output should be
solution(cell1, cell2) = false.

Click here - and see my solution in replit

04 - adjacentElementsProduct

04 - adjacentElementsProduct

Given an array of integers, find the pair of adjacent elements that has the largest product and return that product.

Example

For inputArray = [3, 6, -2, -5, 7, 3], the output should be
solution(inputArray) = 21.

7 and 3 produce the largest product.

Click here - and see my solution in replit

Git e GitHub

Git e GitHub

Roteiro de estudo

  • O que é Git? O que é versionamento? – Curso de Git e GitHub
  • O que é GitHub? Pra que ele serve? – Curso de Git e GitHub
  • A Evolução do Git e GitHub – Curso de Git e GitHub
  • Instalações e configurações importantes – Curso de Git e GitHub
  • Criando o primeiro Repositório – Curso de Git e GitHub
  • Instalando GitHub Desktop no Linux – Curso de Git e GitHub
  • Clonando um Repositório – Curso de Git e GitHub
  • Versionando seus projetos antigos – Curso de Git e GitHub
  • Você sabe usar Issues? – Curso de Git e GitHub
  • Guia da Linguagem Markdown – Curso de Git e GitHub
  • Seu GitHub muito mais seguro – Curso de Git e GitHub
  • Git Branches de forma fácil e com exemplo – Curso de Git e GitHub
  • Hospedagem Grátis no GitHub Pages – Curso de Git e GitHub

Teste

  • Teste de Git e Github

Expressões Numéricas

Expressões Numéricas

Introdução

Expressões numéricas são sequências de duas ou mais operações que devem ser realizadas respeitando determinada ordem. Para encontrar sempre um mesmo valor quando calculamos uma expressão numérica, usamos regras que definem a ordem que as operações serão feitas.

12 + 3 * 5 = 27
2 * ( 5 - 1 ) = 8
2^2 + 8 / 2 = 8
2^( 3 - 1) = 4
E assim por diante.

Instruções

Este desafio consiste em:

Ler um arquivo de números (abaixo), contendo uma expressão por linha.
Imprimir o resultado numérico da expressão.
Se o programa encontrar um divisão por zero deverá imprimir ERR DIVBYZERO.
Se o programa encontrar um erro de sintaxe na expressão deverá imprimir ERR SYNTAX.
Não deverão ser usadas bibliotecas externas para trabalho com expressões numéricas.

Exemplo

Considere a lista de números:

1 + 3
2 - 3 * 2
2 ^ 3 / 4
0 * 5 * (4 + 1)
5 + 5 / 0
5 + + 1
5 + ( 465 + 1
A saída deverá ser:

4
-4
2
0
ERR DIVBYZERO
ERR SYNTAX
ERR SYNTAX

Solução

Essa solução leva em consideração o arquivo fornecido com o seguinte conteúdo:

1 + 0 + 25 - 3
1+1*5-1
1 + 4 / 2 ^2 - 1
1 + 3 * 6 / 2 + 0
0 / 1 + 1 / 0
1 * (5 + 10) / 3
((5-1) * 2)^2
(2 - 1) * 2^3
4 / (54 - (9 * 6))
54 * * 54 - 1
((79 - 12) * (5 + (2 - 1))
266 + 54 * 4 - ( 41 + 2 ) * 10 / 5 - 7 ^ 3 - 1 + 1 * 0 - (( 45 / 5 * 3 - 1) * 2)

EXcript - Curso C++

EXcript - Curso C++

A Linguagem C++ é a linguagem de programação mais influente do mundo. Seus conceitos são amplamente empregados na grande parte das linguagens quem surgiram após seu lançamento e a sua adoção, continua a ser grande, para a construção de software para as mais diversas áreas do conhecimento humano.

Dentre os objetivos principais desse curso, está o estudo de algumas bibliotecas e as técnicas envolvidas para a criação e desenvolvimento de extensões para outros aplicativos. Explorando o desenvolvimento de extensões para Python, PHP, e desenvolvimento nativo para Android e etc.

A produção de jogos em C++ também será amplamente estudada, bem como suas bibliotecas e ferramentas que utilizamos diariamente quando estamos desenvolvendo tanto um jogo para desktop, como também, um game para iOS, Android ou mesmo com a biblioteca Canvas do HTML5.

Roteiro de Estudos - C++

  • - Aula 01 - Abertura
  • - Aula 02 - Visão Geral - eXcript
  • - Aula 03 - Code Blocks - eXcript
  • - Aula 04 - Instalando o CLion
  • - Aula 05 - Primeiro Programa
  • - Aula 06 - Comentários - eXcrip
  • - Aula 07 - Indentação, Espaço em Branco e Ponto e Vírgul
  • - Aula 08 - Variável - eXcrip
  • - Aula 09 - Tipos Primitivos
  • - Aula 10 - Características das Variáveis
  • - Aula 11 - Manipulando Variáveis
  • - Aula 12 - Nomenclatura
  • - Aula 13 - Introdução às Stream
  • - Aula 14 - Stream - eXcript
  • - Aula 15 - Manipulação de Dados - eXcript
  • - Aula 16 - Modificadores de Tipo
  • - Aula 17 - Operadores Aritméticos - eXcript
  • - Aula 18 - Simples Calculadora
  • - Aula 19 - Módulo da Divisão
  • - Aula 20 - Operadores Relacionais
  • - Aula 21 - Tomada de Decisão I
  • - Aula 22 - Tomada de Decisão II ( estrutura ELSE )
  • - Aula 23 - Tomada de Decisão III - eXcript
  • - Aula 24 - Operadores Lógicos
  • - Aula 25 - Operadores de Atribuíção
  • - Aula 26 - Iteradores
  • - Aula 27 - Estrutura FOR
  • - Aula 28 - Incremento e Decremento - eXcript
  • - Aula 29 - Tabuada
  • - Aula 30 - Estrutura while - eXcript
  • - Aula 31 - Programa em Looping
  • - Aula 32 - Estrutura do-while - eXcript
  • - Aula 33 - Instrução Switch
  • - Aula 34 - Estrutura Switch na prática
  • - Aula 35 - Depuração I
  • - Aula 36 - Depuração II - eXcript
  • - Aula 37 - Depuração III - CLion - eXcript
  • - Aula 38 - Depurando com o CodeBlock - eXcript
  • - Aula 39 - Blocos de Instrução I
  • - Aula 40 - Blocos de Instrução II
  • - Aula 41 - Blocos de Instrução III
  • - Aula 42 - Operação Ternária
  • - Aula 43 - Condição Ternária II
  • - Aula 44 - Instrução Break I
  • - Aula 45 - Instrução Break II
  • - Aula 46 - Instrução Continue I
  • - Aula 47 - Precedência de Operadores
  • - Aula 48 - Associatividade de Operadore
  • - Aula 49 - Introdução aos Arrays
  • - Aula 50 - Declaração de Arrays
  • - Aula 51 - Arrays - definições - eXcript
  • - Aula 52 - Inicializando Arrays - eXcript
  • - Aula 53 - Percorrendo os elementos de um array - eXcript
  • - Aula 54 - Calculando a média com Arrays - eXcript
  • - Aula 55 - Arrays Multidimensionais - eXcript
  • - Aula 56 - Manipulando Arrays bidimensionais - eXcript
  • - Aula 57 - Laços Aninhados - eXcript
  • - Aula 58 - Função Matricial - eXcript
  • - Aula 59 - Manipulando Planilhas - eXcript
  • - Aula 60 - Introdução às Estruturas - eXcript
  • - Aula 61 - Utilizando struct - eXcript

Exercício 2: Mario (desafio)

Mario (desafio)

Mundo 1-1. No início de World 1-1 em Super Mario Brothers, da Nintendo, Mario deve pular pirâmides de blocos adjacentes, conforme mostrado abaixo.

Exemplo Jogo Mario World

Vamos recriar essas pirâmides em C, ainda que em texto, usando hashes ( # ) para tijolos, a la a seguir. Cada hash é um pouco mais alto do que largo, então as pirâmides em si também são mais altas do que largas.

   #  #
  ##  ##
 ###  ###
####  ####

O programa que escreveremos se chamará mario. E vamos permitir que o usuário decida a altura das pirâmides, primeiro solicitando um número inteiro positivo entre, digamos, 1 e 8, inclusive.

Solução - Mario (desafio)

Big base!

Big base!

Descrição

Escreva um programa que leia um arquivo texto contendo uma lista de três numeros por linha: base_entrada, base_saida e numero_entrada e imprima o número fornecido (já na base de entrada) convertido para a base de saída.

O formato exato da entrada é:

base_entrada base_saida numero_entrada

Exemplo:

10 16 1500
36 10 GOODBYE
36 16 HELLOWORLD
10 2 32452867
2 10 1234
Exemplo de saida para a entrada acima:

5DC
36320638406
647B8839EB1B1
1111011110011000100000011
???
Considerações importantes:

O programa deverá converter de qualquer base entre 2 e 62 para qualquer outra entre 2 e 62.
Imprima ??? caso um dos seguintes erros tenha sido detectado:
Base inválida (tanto a base de entrada quanto a de saída devem estar entre 2 e 62, inclusive).
Número negativo.
Número muito grande (ver considerações sobre limite abaixo).
Número inválido para a base especificada.
Para conversões acima de bases acima de 10, use o seguinte conjunto de caracteres: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz (z = 61). Observe que com isso, todas as conversões para hexadecimal usam letras maísculas.
O programa deve lidar com numeros grandes. O limite superior deverá ser o equivalente a ‘zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz’, em base 62.
Escreva o algoritmo. Não use as rotinas de conversão da sua linguagem preferida, se ela já possuir.

Ver Solução

solução leva em consideração o arquivo teste fornecido:

2 3 0
11 11 99
10 2 100
10 16 -99
17 10 2018ABDG
36 16 OHYEAHTHISISBIG
62 16 OHYEAHTHISISBIG
35 2 OHYEZZZZ
0 2 100
2 0 100
62 2 zooooooooooooooooooooooooooom
62 16 zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
35 3 TERNARIO
62 16 1zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
33 8 OCTAL
10 62 27805568394691458661136458099556259144705
16 62 128F36A9A4BD3E9D666B6340C7EA3
5 62 10212030103214130013104

Passeio do Cavalo

Passeio do Cavalo

Introdução

O problema do cavalo, ou passeio do cavalo, é um problema matemático envolvendo o movimento da peça do cavalo no tabuleiro de xadrez. O cavalo é colocado no tabuleiro vazio e, seguindo as regras do jogo, precisa passar por todas as casas exatamente uma vez em movimentos consecutivos.

Instruções

Este desafio consiste em:

Criar um programa que encontre uma solução para o passeio do cavalo.
O programa deve receber, via linha de comando, uma casa em notação algébrica de xadrez que será a posição inicial do cavalo.
O programa deverá retornar uma seguência de posições (uma por linha) em notação algébrica de xadrez indicando o caminho percorrido pelo cavalo a fim de preencher todo o tabuleiro sem faltar nenhuma casa e sem repetir nenhuma.
Exemplo
Considere a seguinte entrada:

./cavalo a1
A saída deverá ser:

./cavalo a1
a1
c2
e1
g2
.
.
.

Solução

05 - shapeArea

05 - shapeArea

Below we will define an n-interesting polygon. Your task is to find the area of a polygon for a given n.

A 1-interesting polygon is just a square with a side of length 1. An n-interesting polygon is obtained by taking the n - 1-interesting polygon and appending 1-interesting polygons to its rim, side by side. You can see the 1-, 2-, 3- and 4-interesting polygons in the picture below.

Example

For n = 2, the output should be
solution(n) = 5;
For n = 3, the output should be
solution(n) = 13.

Click here - and see my solution in replit

Day 1: Not Quite Lisp Part Two

Day 1: Not Quite Lisp Part Two

Now, given the same instructions, find the position of the first character that causes him to enter the basement (floor -1). The first character in the instructions has position 1, the second character has position 2, and so on.

For example:

) causes him to enter the basement at character position 1.
()()) causes him to enter the basement at character position 5.
What is the position of the character that causes Santa to first enter the basement?

Solution

Roteiro de estudos Universidade Brasileira Livre

Universidade Brasileira Livre - Curso de Ciência da Computação

O Curso de Ciência da Computação oferecido pela Universidade Brasileira Livre é uma educação completa em Ciência da Computação usando materiais on-line e em Português do Brasil.

Os cursos são gratuitos, possuem método pedagógico e estão de acordo com o que se espera do Currículo de Ciências da Computação.

Abaixo estarei relacionando todo o conteúdo proposto pela iniciativa e meu progresso em cada tópico.

Roteiro de Estudos:

Técnicas de estudo, organização e aprendizagem

Git e GitHub

Introdução à Computação

Aprofundamento de Conceitos Introdutórios

Desenvolvimento Técnico

Desenvolvimento Teórico

Aprofundamento Técnico

Tópicos Finais

Especializações

Programação Orientada a Objetos I

Programação Orientada a Objetos I

Semana 1:

  • Apresentação da ideia geral do curso
  • Introdução à linguagem UML de modelagem de sistemas OO
  • Discussão sobre a diferença entre linguagens compiladas, interpretadas e híbridas

Semana 2:

  • Aprendizado da sintaxe das linguagens Java e Python para OO
  • Possibilidade de pular vídeos de OO em Python e introdução à Java, caso já conheça as linguagens
  • Discussão sobre boas práticas em OO, bugs, depuração e testes automatizados

Semana 3:

  • Conceitos importantes de OO, como Polimorfismo, Classes Abstratas, Interfaces e Coleções de objetos
  • Discussão sobre as diferenças entre linguagens dinâmicas e estáticas
  • Pontuação das principais características de cada tipo de linguagem

Semana 4:

  • Aprendizado de dois mecanismos úteis em linguagens OO: Tratamento de Exceções e Streams (Fluxos de Dados)
  • Possibilidade de tirar dúvidas no fórum de discussão

Semana 5:

  • Introdução aos Padrões de Projeto de Software Orientado a Objetos (Design Patterns)
  • Exemplos de Padrões de Projeto, como Padrão Estratégia, Adaptador, Singleton, Método Fábrica e Fábrica Abstrata

Semana 6:

  • Aprendizado dos Padrões de Projeto Protótipo e Estado
  • Introdução aos Padrões Arquiteturais, com foco no Model-View-Controller (MVC)

Day 3: Perfectly Spherical Houses in a Vacuum Part One

Day 3: Perfectly Spherical Houses in a Vacuum Part One

Santa is delivering presents to an infinite two-dimensional grid of houses.

He begins by delivering a present to the house at his starting location, and then an elf at the North Pole calls him via radio and tells him where to move next. Moves are always exactly one house to the north (^), south (v), east (>), or west (<). After each move, he delivers another present to the house at his new location.

However, the elf back at the north pole has had a little too much eggnog, and so his directions are a little off, and Santa ends up visiting some houses more than once. How many houses receive at least one present?

For example:

delivers presents to 2 houses: one at the starting location, and one to the east.
^>v< delivers presents to 4 houses in a square, including twice to the house at his starting/ending location.
^v^v^v^v^v delivers a bunch of presents to some very lucky children at only 2 houses.

Solução

Como estudar do jeito certo

Como Estudar do Jeito Certo e Aprender Melhor!

Técnicas de estudo, organização e aprendizagem

  • Estude enquanto eles dormem - Quanto tempo estudar por dia ?
  • Precisa saber inglês para ser cientista de dados ?
  • Melor método para entender e conversas em inglês profissionalmente
  • Como vencer o bloqueio na hora de estudar ? A segunda coisa mais importante para aprender algo novo
  • Ansiedade, o que aprendi sobre pausas e saúde mental em 2020 | Livre de Contexto
  • Motivação para estudar engenharia de computação | BackTracking
  • Por que lógica de programação e como aprender ? | Computação para Curiosos
  • Como criar um plano de estudos para se tornar um cientista de dados ? (Roadmap Ciência de Dados)
  • A educação mudou a minha vida ! Por que educação é Importante ? | Backtracking
  • Verdadeiro motivo do meu sucesso profissional | Parabéns aos professores | BackTracking
  • Tem segredo pra passar no IME ? | Como passei no IME ? | Aprovada no Instituto Militar de Engenharia
  • Ele disse que eu não ia passar ! Como passei no IME ? | Aprovado no Instituto Militar de Engenharia
  • Tudo sobre meu TCC - Tema, orientador, como foi? | BackTracking
  • Como me destacar mesmo sendo iniciante ? | Primeiro emprego programação | Handshake
  • Dicas sobre organização + Como lidar com procrastinação ? | Respondendo Comentários
  • Como funciona iniciação científica + Como escolher orientador? | Diário de Pesquisa
  • Como organizo o meu tempo para fazer muitas atividades ? + Por que faço tantas coisas ?
  • Por que e como estudar algoritimos e estrutura de dados? | Handshake
  • Como aprendi ingês sem cursinho ? | BackTracking
  • EAD funciona ? Aula online é uma boa ? | Reflexões sobre aulas remotas | Livre de Contexto
  • Matemática elementar para computação! Tá na hora de você aprender
  • Ser autodidata não é uma opção | Handshake
  • O preconceito bloqueia sua mente ao aprendizado | A lição mais importante deste canal
  • Como estudar programação: Engenheiro de Computação do IME revela os segredos | Handshake
  • Como encontrar motivação para estudar ? O que fazer diante da desmotivação com os estudos | Handshake

Anoteções - Como Estudar do Jeito Certo e Aprender Melhor !

Tempo de Estudo:

Estude o máximo que puder, de acordo com sua capacidade.
A velocidade de aprendizado varia de pessoa para pessoa, dependendo de seu contexto passado.
A forma de estudo é mais importante do que a quantidade de tempo dedicada.
Descubra seu limite de estudo sem distrações.
Compreenda seu estilo de aprendizado.

Aprendizado Efetivo:

Evite atalhos ou "hacks" de aprendizado.
Construa uma base sólida de conhecimento.
Mantenha consistência no estudo ao longo dos anos.
Experimente ao aprender, teste ideias não abordadas.
Analise o que funciona e o que não funciona.
Resolva os problemas você mesmo, não consulte soluções de outros.
Se necessário, busque ajuda para compreender.

Programação:

Entenda os conceitos antes de começar a codificar.
Resolver o problema no papel antes de ir para o código.
Implemente o que já sabe em diferentes linguagens.
A melhor maneira de enternder sobre arquiteturas e padrões de projetos é fazendo um de ponta a ponta.
Explore e faça conexões.

Juros do Conhecimento:

Experimentação é essencial.
Conecte conhecimentos adquiridos.
Estabeleça objetivos claros.

Saúde Mental:

Faça pausas para desconectar.
Respire profundamente e medite.
Cuide da sua saúde física com exercícios.

Autodidata:

Assuma responsabilidade pelo seu aprendizado.
Busque competências fora da sala de aula.
Procure orientação de pessoas experientes, de por onde seguir após de finalizar um estudo.
Não ignore conceitos fundamentais. Que são a base para todo o resto.

Plano de Estudo:

Defina objetivos claros.
Mapeie os conhecimentos necessários.
Faça autoavaliação regular.
Gerencie seu tempo diário e prazos.
Conclua cursos e ensine para reforçar o aprendizado.

Destaque no Mercado:

Vá além das expectativas.
Demonstre determinação, iniciativa e criatividade.
Desenvolva ideias em projetos concretos.
Construa uma rede de contatos e ajude outros.

Produtividade:

Elimine distrações e mantenha o foco.
Organize e planeje suas tarefas.
Alinhe suas atividades com seu propósito de vida.
Mantenha um registro das metas e compromissos.

Comunidade e Aprendizado:

Aproveite o poder da comunidade para enriquecer seu aprendizado.

Advent of Code 2022

Advent of Code

Advent of Code é um conjunto anual de desafios de programação de computador com tema de Natal que seguem um calendário do Advento. Funciona desde 2015.

Os desafios de programação cobrem um grande conjunto de habilidades e niveis de complexidade e pode ser resolvido usando qualquer linguagem de programação.

O evento foi fundade e é mantido pelo Engenheiro de Software Eric Wastl

Aqui compartilharei meu avanço e minhas soluções somente de eventos passados.

Para evitar dar soluções enquanto acontece as competições.

Atualmente estou buscando aprender um pouco mais sobre a linguagem C++.

Por esse motivo minhas soluções seram todas em C++.

Evento 2015

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.