From bcd76916805c01660f392f7ee73ce0b7b6c392c3 Mon Sep 17 00:00:00 2001 From: Marco Paganini Date: Sat, 23 Nov 2024 23:48:33 -0800 Subject: [PATCH] =?UTF-8?q?Convers=C3=A3o=20do=20site=20para=20hugo=20v0.1?= =?UTF-8?q?39.2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy.yaml | 2 +- .github/workflows/presubmit.yaml | 2 +- .gitignore | 1 + config.toml | 5 +- content/blog/c_pointers.md | 4 +- content/blog/campsber.md | 2 + content/blog/como-perguntar.md | 6 +-- .../blog/conceitos-essenciais.md | 44 ++++++++-------- content/blog/conectando-replit-ao-github.md | 8 +-- content/blog/contrib-odin.md | 4 +- content/blog/doacao-computador.md | 2 + content/blog/estrutura-bubblesort.md | 6 +-- content/blog/estruturas-dados-pilha.md | 18 ++++--- content/blog/estruturas-python.md | 1 - content/blog/git-reset.md | 8 +-- content/blog/hacking.md | 4 +- content/blog/inteligencia-artificial.md | 4 +- content/blog/introducao-profiler-java.md | 4 +- ...troducao_a_linguagem_de_programacao_cpp.md | 4 +- content/blog/ola-mundo.md | 18 ++++--- content/blog/pensando-como-um-programador.md | 50 ++++++++++-------- content/blog/podcasts-no-youtube.md | 10 ++-- content/blog/portal-estagio.md | 2 + content/blog/primeiros-passos-go.md | 52 ++++++++++--------- content/blog/qual_linguagem_usar.md | 2 + content/blog/quer-aprender.md | 2 + content/blog/terminallinux.md | 7 ++- content/blog/tiktok-canal.md | 5 +- content/blog/youtube-canal.md | 2 + layouts/_default/desafio.html | 2 +- layouts/_default/links.html | 2 +- layouts/_default/single.html | 2 +- layouts/partials/links.html | 2 +- themes/hugo-universal-theme | 2 +- 34 files changed, 164 insertions(+), 125 deletions(-) rename "content/blog/conceitos-essenciais-para-come\303\247ar.md" => content/blog/conceitos-essenciais.md (96%) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 83f5d6cd..a5ff6413 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -83,7 +83,7 @@ jobs: - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: - hugo-version: '0.59.1' + hugo-version: '0.139.2' - name: Build scoreboard binary run: pushd op-scoreboard && go build -v && popd diff --git a/.github/workflows/presubmit.yaml b/.github/workflows/presubmit.yaml index 5d14fd13..afb212b5 100644 --- a/.github/workflows/presubmit.yaml +++ b/.github/workflows/presubmit.yaml @@ -22,7 +22,7 @@ jobs: - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: - hugo-version: '0.59.1' + hugo-version: '0.139.2' - name: Build Site run: hugo -v diff --git a/.gitignore b/.gitignore index ac3fc5ea..f4893650 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ Untitled.ipynb *.orig .vs .idea +.hugo_build.lock diff --git a/config.toml b/config.toml index 9fe0385c..7b33213e 100644 --- a/config.toml +++ b/config.toml @@ -6,7 +6,10 @@ languageCode = "pt_BR" defaultContentLanguage = "pt" # Define the number of posts per page -paginate = 12 +pagination.PagerSize = 12 + +# Render HTML in articles. +ignoreLogs = ['warning-goldmark-raw-html'] [menu] diff --git a/content/blog/c_pointers.md b/content/blog/c_pointers.md index 0b17ce01..410d4caa 100644 --- a/content/blog/c_pointers.md +++ b/content/blog/c_pointers.md @@ -6,13 +6,13 @@ categories = ["linguagens"] banner = "img/banners/languages.webp" +++ -## Introdução - O uso de ponteiros em C é um dos aspectos mais poderosos e importantes da linguagem, e ainda assim, um dos mais confusos para os iniciantes. O objetivo deste documento é fornecer uma introdução básica ao funcionamento e uso de ponteiros em C. + + Importante: Vários conceitos foram simplificados para ajudar a compreensão do tópico principal, tais como a representação exata de números em memória, gerenciamento de memória e outros. diff --git a/content/blog/campsber.md b/content/blog/campsber.md index d2f8ae2d..cd5b4abf 100644 --- a/content/blog/campsber.md +++ b/content/blog/campsber.md @@ -8,6 +8,8 @@ banner = "img/banners/campsber.webp" Olá pessoal, tudo bem? Meu nome é Bernardo e vou contar um pouco da minha jornada. Espero que sirva de inspiração para alguém, assim como as histórias que ouvi aqui no grupo me inspiraram. + + #### O início Nasci no finalzinho da década de 80 em uma cidade chamada Patos de Minas. Com seus pouco mais de 100.000 habitantes e longe da capital, a internet era a única conexão com o “mundo lá fora”. Meu primeiro contato com computador, um modelo 486, foi por volta dos meus 7-8 anos de idade. Ele veio com alguns jogos instalados e a única forma de instalar outros jogos era através de um disquete de 1.44 MB. diff --git a/content/blog/como-perguntar.md b/content/blog/como-perguntar.md index bb979b84..2be593cd 100644 --- a/content/blog/como-perguntar.md +++ b/content/blog/como-perguntar.md @@ -6,8 +6,6 @@ categories = ["artigos"] banner = "img/banners/como-perguntar-banner.webp" +++ -## Não pergunte se pode perguntar, apenas pergunte - De vez em quando, em chats do Telegram, ou outros programas de chat, vemos alguém fazer uma pergunta assim: >José: Alguém aqui entende de C#? @@ -16,6 +14,8 @@ Esta não é uma uma boa pergunta, por diversos motivos. O que esta pessoa está >José: Alguém aqui entende de C# e está disposto a se comprometer a responder uma dúvida minha que talvez nem esteja relacionada a C#? + + Há vários motivos pelos quais uma pessoa que **TENHA** o conhecimento para responder a sua dúvida **NÃO** iria se dispor a ajuda-lo. Ao fazer uma pergunta assim você está pedindo mais do que acha que está pedindo. Você está pedindo pela atenção e compromentimento de alguém. Você está questionando a confiança que outras pessoas têm em suas próprias habilidades, alienando pessoas que talvez pudessem te ajudar. É algo bastante comum que um programador responda perguntas de linguagens e bibliotecas as quais ele nunca usou porque muitas dúvidas de iniciantes são (do ponto de programação) coisas de senso comum, mas ao perguntar se "alguém entende" sobre um tópico você acaba abrindo um leque de possibilidades muito grande, embora sua dúvida possa ser simples. @@ -34,4 +34,4 @@ Se sua dúvida é sobre algum programa que você escreveu ou que está tentando Uma outra boa leitura é este artigo no StackOverflow: [Como fazer uma boa pergunta?](https://pt.stackoverflow.com/help/how-to-ask) -Este texto foi adaptado a partir do texto [neste site](https://dontasktoask.com/). \ No newline at end of file +Este texto foi adaptado a partir do texto [neste site](https://dontasktoask.com/). diff --git "a/content/blog/conceitos-essenciais-para-come\303\247ar.md" b/content/blog/conceitos-essenciais.md similarity index 96% rename from "content/blog/conceitos-essenciais-para-come\303\247ar.md" rename to content/blog/conceitos-essenciais.md index 55edf4a8..f4b64dcd 100644 --- "a/content/blog/conceitos-essenciais-para-come\303\247ar.md" +++ b/content/blog/conceitos-essenciais.md @@ -7,21 +7,23 @@ banner = "img/banners/Le_Penseur_in_the_Jardin_du_Musée_Rodin,_Paris_14_June_20 +++ Por vezes, algumas pessoas acabam encontrando dificuldades para iniciar na programação e encontram-se um pouco perdidas em meio à quantidade de recursos e opções disponíveis. -Aqui nos programadores, buscamos ajudar a todos da melhor forma possível. +Aqui nos programadores, buscamos ajudar a todos da melhor forma possível. -Sem sombra de dúvida, uma das perguntas mais comuns [no nosso grupo no telegram](https://t.me/osprogramadores) de quem está querendo iniciar é: + + +Sem sombra de dúvida, uma das perguntas mais comuns [no nosso grupo no telegram](https://t.me/osprogramadores) de quem está querendo iniciar é: > "**Por onde eu começo?**" Comumente, direcionamos as pessoas aos artigos introdutórios como o [Olá Mundo]({{< ref "/blog/ola-mundo.md" >}} ) e na sequência, também encaminhamo-nas para o [desafio 01]({{< ref "/desafios/d01.md" >}}). -Estes artigos são ótimos para **quem já tem uma boa base**! Porém, **e se esse não for o seu caso**? +Estes artigos são ótimos para **quem já tem uma boa base**! Porém, **e se esse não for o seu caso**? E se você tiver dificuldades em compreender o que é um **_sistema operacional_**? O que é um **_computador_**? Como **_navegar entre diretórios_**? Não souber o que é um **_terminal_**? > Será que eu realmente estou pronto para começar sem entender sobre essas coisas? -> +> > **São muitos termos que não conheço! E agora, o que fazer?** Pode parecer muito complexo a princípio, **mas você está pronto para poder começar mesmo que não saiba nada do que foi mencionado até agora!** @@ -30,10 +32,10 @@ Todos nascemos sem saber nada e aos poucos aprendemos sobre o mundo à nossa vol A vontade e persistência de entender as coisas, ter a iniciativa de ir atrás do conhecimento, é muito mais importante neste momento inicial! Serão estas características que lhe ajudarão a prosseguir nessa jornada, **a curto e longo prazo**; porque a vida do programador é fundamentada por aprendizado constante, autoaprimoramento contínuo e compartilhar suas experiências! -O seu caminho inicial pode parecer ser um pouco mais longo, pois terá que aprender algumas coisas a mais. +O seu caminho inicial pode parecer ser um pouco mais longo, pois terá que aprender algumas coisas a mais. Isto significa que, uma vez que tenha compreendido estes conceitos fundamentais, -**poderá prosseguir com confiança e tranquilidade**! +**poderá prosseguir com confiança e tranquilidade**! **Estas coisas podem parecer bobas e simples a princípio, mas são diferenciais para você conseguir entender o que está fazendo e consolidar o seu progresso!** @@ -41,7 +43,7 @@ ___ # O Programador e o Computador -Ao programar você está, a grosso modo, instruindo o computador a realizar uma sequência de instruções da forma que você deseja. +Ao programar você está, a grosso modo, instruindo o computador a realizar uma sequência de instruções da forma que você deseja. Ou seja, o código que você gerar é responsável por orientar o computador em todos os três escopos: @@ -51,11 +53,11 @@ em todos os três escopos: * **Como fazer?** * É o seu código que vai "mostrar" para o computador como algo deve ser feito. * **O modo de fazer?** - * O computador não entende que algo pode ser feito de diversas maneiras, ele não tem essa capacidade. A capacidade dele é de seguir as instruções fornecidas! + * O computador não entende que algo pode ser feito de diversas maneiras, ele não tem essa capacidade. A capacidade dele é de seguir as instruções fornecidas! * Assim, o porquê de algo ser feito de tal forma é algo dependente do programador e não do computador. -Notavelmente, quanto maior o seu entendimento sobre o funcionamento de um computador, a tendência é que o seu código seja mais preciso e faça um melhor uso dos recursos dele! +Notavelmente, quanto maior o seu entendimento sobre o funcionamento de um computador, a tendência é que o seu código seja mais preciso e faça um melhor uso dos recursos dele! ## O que é um computador? Para entender o que é um computador, recomendamos a [leitura deste artigo do IFBA](http://www.ifba.edu.br/professores/antoniocarlos/index_arquivos/resumodearquiteturadecomputadores.pdf). O artigo é de nível @@ -86,7 +88,7 @@ ___ # O Terminal ->Agora seria bom você consolidar o entendimento sobre o que é um [terminal](https://pt.wikipedia.org/wiki/Terminal_(inform%C3%A1tica)). +>Agora seria bom você consolidar o entendimento sobre o que é um [terminal](https://pt.wikipedia.org/wiki/Terminal_(inform%C3%A1tica)). Em nosso [artigo introdutório]({{< ref "/blog/ola-mundo.md" >}} ) e, principalmente, no [desafio 01]({{< ref "/desafios/d01.md" >}}), você precisará usar um terminal para inserir os comandos necessários. @@ -95,10 +97,10 @@ Os artigos são bem completos e possuem os comandos necessários para quase toda Uma habilidade fundamental para um programador é **saber como navegar entre diretórios no terminal**. Isto é necessário para que você consiga navegar entre as diferentes pastas dos projetos sem dificuldades, otimizando o tempo que você gasta para alterar os ambientes e trocar de projeto. Usuários mais avançados, podem combinar diversos comandos de terminal para localizar informações dentro do código de forma tão rápida que pode -parecer assustador a princípio! +parecer assustador a princípio! > Os comandos para terminal são um mundo a parte, e apesar de parecerem desafiadores, eles estão ali para lhe auxiliar! Não tenha medo deles, eles são ferramentas feitas para otimizar o seu fluxo de trabalho. -> +> > [Temos um vídeo introdutório ao terminal do linux disponível no YouTube.](https://www.youtube.com/watch?v=CFWttwWZSAQ) ## Navegação Básica no terminal @@ -107,7 +109,7 @@ Para uma navegação básica no terminal você vai precisar utilizar os comandos ### Comando "ls" O commando `ls` listará os arquivos e os diretórios disponíveis dentro do seu diretório atual. -Ele é útil para você saber o que está disponível para você acessar. +Ele é útil para você saber o que está disponível para você acessar. Um exemplo de uso do comando seria na seguinte situação: @@ -118,13 +120,13 @@ Você pode simplesmente digitar o comando e então ele deverá exibir todos os a Ao digitar `ls` dentro do diretório `documentos` ele deverá exibir o diretório `codigo`, além dos arquivos que por ventura você tenha ali. ### Comando "cd" -O comando `cd` é utilizado para você alterar o diretório atual. O exemplo abaixo alteraria o diretório atual de `documentos` para `codigo`. +O comando `cd` é utilizado para você alterar o diretório atual. O exemplo abaixo alteraria o diretório atual de `documentos` para `codigo`. ```shell cd codigo ``` Você pode utilizar o comando `cd` de duas formas: -1. Passando como parâmetro um diretório disponível dentro do diretório atual, como no exemplo anterior; +1. Passando como parâmetro um diretório disponível dentro do diretório atual, como no exemplo anterior; 2. Passando um caminho completo, desde o diretório raiz até o caminho desejado. Exemplo da outra forma de usar o comando `cd`: @@ -138,11 +140,11 @@ Neste exemplo, o seu diretório de trabalho após utilizar o comando deverá ser ## Criando Novos Diretórios -Para criar novos diretórios dentro do terminal você pode usar o comando `MKDIR`. Este comando funciona de maneira análoga ao comando `cd`, +Para criar novos diretórios dentro do terminal você pode usar o comando `MKDIR`. Este comando funciona de maneira análoga ao comando `cd`, no sentido que você pode passar tanto um caminho completo, como não. Vamos seguir com o nosso exemplo e criar um diretório chamado `codigo` dentro do diretório `Documentos`. Para fazer isso você deve realizar as seguintes verificações: -1. Conferir se o seu diretório atual é o diretório `Documentos`. +1. Conferir se o seu diretório atual é o diretório `Documentos`. 1. Você aprendeu a navegar entre os diretórios na sessão anterior. 2. Caso não seja, navegar até o diretório `Documentos`. 3. Uma vez que esteja no diretório adequado, executar o comando a seguir para criar um diretório chamado `codigo` dentro do diretório atual. @@ -162,9 +164,9 @@ Eventualmente você pode precisar remover arquivos e/ou diretórios. Nessas ocas O comando `RM` é mais focado para arquivos, mas também pode ser utilizado para diretórios se você adicionar o parâmetro apropriado para isso. Já o comando `RMDIR` é **exclusivo** para diretórios. Dando continuidade ao nosso exemplo, vamos assumir que você possui um arquivo chamado `apagar.txt` em seu diretório atual. Para confirmar a existência deste arquivo, utilize o comando `ls` e confira se ele -aparecerá na saída do comando. +aparecerá na saída do comando. -> Caso ele não seja exibido, crie um arquivo com o nome `apagar.txt` e o salve em seu diretório atual. Após criar o arquivo, execute novamente o comando `ls` para confirmar a existência do arquivo. +> Caso ele não seja exibido, crie um arquivo com o nome `apagar.txt` e o salve em seu diretório atual. Após criar o arquivo, execute novamente o comando `ls` para confirmar a existência do arquivo. Uma vez que você confirmou a existência do arquivo, você pode executar o seguinte comando para removê-lo: @@ -188,7 +190,7 @@ Uma vez que você tenha confirmado a existência do diretório, **como nós acab ```shell rmdir me-apague ``` -> Pode ser que apareça uma tela de confirmação, perguntando se você realmente deseja remover o diretório, similar ao que aconteceu com o comando `rm`. +> Pode ser que apareça uma tela de confirmação, perguntando se você realmente deseja remover o diretório, similar ao que aconteceu com o comando `rm`. Novamente, valide o resultado da sua operação executando o comando `ls` para confirmar que o diretório `me-apague` não existe mais. @@ -205,7 +207,7 @@ Nesta ocasião, você poderá combinar estes comandos que aprendeu neste artigo # Conclusão -Esperamos que agora você esteja melhor preparado para iniciar a sua jornada no mundo da programação! +Esperamos que agora você esteja melhor preparado para iniciar a sua jornada no mundo da programação! Relembrando, neste artigo, abordamos os seguintes tópicos: diff --git a/content/blog/conectando-replit-ao-github.md b/content/blog/conectando-replit-ao-github.md index a26ffb5c..bbab28a2 100644 --- a/content/blog/conectando-replit-ao-github.md +++ b/content/blog/conectando-replit-ao-github.md @@ -1,15 +1,15 @@ +++ -title = "Como Conectar Replit ao GitHub" +title = "Como Conectar o Replit ao GitHub" date = "2023-09-19T07:20:00-00:00" tags = ["replit", "github"] categories = ["artigos"] banner = "img/banners/replitGit.jpg" +++ -# Como Conectar seu Projeto do Replit à sua Conta no GitHub - Conectar seu projeto no Replit à sua conta no GitHub por meio de uma chave SSH é uma maneira eficiente de gerenciar seus repositórios remotamente. Com esta configuração, você poderá realizar commits e push de código para seus repositórios GitHub diretamente do Replit. Neste tutorial, vamos orientá-lo passo a passo sobre como realizar essa configuração. + + 1. Primeiro, acesse o [site do Replit](https://replit.com/~). 2. No Replit, clique no botão "+ Create Repl" para criar um novo projeto. @@ -60,4 +60,4 @@ Copie a chave SSH pública gerada, pois você a usará no próximo passo. - Dê um nome descritivo à chave no campo "Title". - Clique em "Add SSH key". -Pronto! Sua chave SSH agora está configurada e vinculada à sua conta no GitHub. Você pode usar essa configuração para fazer push e pull de código de forma segura entre o Replit e o GitHub. \ No newline at end of file +Pronto! Sua chave SSH agora está configurada e vinculada à sua conta no GitHub. Você pode usar essa configuração para fazer push e pull de código de forma segura entre o Replit e o GitHub. diff --git a/content/blog/contrib-odin.md b/content/blog/contrib-odin.md index 9ac6a06e..2abca2d0 100644 --- a/content/blog/contrib-odin.md +++ b/content/blog/contrib-odin.md @@ -9,6 +9,8 @@ banner = "img/banners/lucas.webp" Meu nome é [Lucas Cegielkowski Guimarães](https://github.com/cegielkowski) e vou contar para vocês um pouco da minha história nestes mais de 3 anos que participo do grupo [OsProgramadores](https://t.me/osprogramadores). + + Eu comecei no mundo do desenvolvimento em 2017. Eu estava no segundo ano da faculdade, aprendendo [C](https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)), e querendo um estágio na área. Naquela época eu estagiava como técnico de informática, focado na parte de infraestrutura, e vi que não era o que eu gostaria de fazer para sempre. Comecei então a estudar sobre desenvolvimento para conseguir um estagio na area e, como todo bom estudante, estava totalmente perdido. Foi nessa época que comecei a utilizar o [Telegram](https://telegram.org/) e a procurar por grupos de programação e acabei encontrando o [grupo OsProgramadores](https://t.me/osprogramadores). @@ -41,4 +43,4 @@ O que você está esperando para começar a fazer os [desafios do grupo do OsPro Quer saber mais sobre mim? Confira o [meu GitHub](https://github.com/cegielkowski). -Lucas Cegielkowski Guimarães \ No newline at end of file +Lucas Cegielkowski Guimarães diff --git a/content/blog/doacao-computador.md b/content/blog/doacao-computador.md index 2b9aced9..da834a2d 100644 --- a/content/blog/doacao-computador.md +++ b/content/blog/doacao-computador.md @@ -8,6 +8,8 @@ banner = "img/banners/girl-using-computer.webp" Nos últimos três anos, o Grupo OsProgramadores tem desempenhado um papel significativo ao fornecer acesso à tecnologia para aqueles que de outra forma não teriam condições de adquirir um computador. Por meio de doações generosas, o grupo já distribuiu mais de 70 computadores usados para pessoas em todo o Brasil. Essa iniciativa tem como objetivo principal ajudar indivíduos a ingressarem no mundo da programação, abrindo portas para oportunidades educacionais e profissionais. + + As doações de computadores do Grupo OsProgramadores têm alcançado pessoas em todo o país, desde o Acre até o Rio Grande do Sul. Esses computadores têm sido uma ferramenta essencial para muitos que aspiram aprender a programar, mas enfrentam barreiras financeiras para adquirir equipamentos adequados. Um dos aspectos mais gratificantes dessa iniciativa é o impacto tangível que ela tem na vida das pessoas. Muitos beneficiários das doações relataram como esses computadores os ajudaram a dar os primeiros passos no aprendizado da programação. Além disso, há relatos emocionantes de pessoas que conseguiram empregos graças às habilidades de programação que adquiriram utilizando esses computadores. diff --git a/content/blog/estrutura-bubblesort.md b/content/blog/estrutura-bubblesort.md index 56eb4173..473b511f 100644 --- a/content/blog/estrutura-bubblesort.md +++ b/content/blog/estrutura-bubblesort.md @@ -1,18 +1,18 @@ +++ date = "2017-08-24T23:34:06-03:00" -title = "Ordenação bubble sort" +title = "Algoritmo de ordenação: bubble sort" categories = ["ordenação","algoritmo"] tags = ["bubblesort"] banner = "img/banners/bubbles.webp" +++ -## Algoritmo de ordenação: _bubble sort_[^fa] - Os dados de um programa podem ser armazenados na memória, porém para que passem a ser considerados informação e ter sentido, muitas vezes é necessário ordená-los. Existem várias formas de ordenar os dados, algumas são mais eficientes do que outras, porém as mais eficientes também podem ser as mais complexas de implementar. Neste artigo vamos aprender um dos mecanismos de ordenação mais simples para quem está estudando estruturas de dados. O _bubble sort_ é um dos algoritmos menos eficientes, contudo mais fáceis de implementar. O termo _bubble_ advém da forma como o vetor é ordenado, como bolhas[^f1] que vão buscando seu lugar emergindo na ordenação desejada do vetor. + + ## Demonstração Considere um algoritmo de vetor em _c++_ com "_n_" elementos: diff --git a/content/blog/estruturas-dados-pilha.md b/content/blog/estruturas-dados-pilha.md index 4f865a9a..8c3a5781 100644 --- a/content/blog/estruturas-dados-pilha.md +++ b/content/blog/estruturas-dados-pilha.md @@ -1,14 +1,20 @@ +++ - categories = ["algoritmo"] - date = "2017-09-10T19:42:00-03:00" - tags = ["osprogramadores", "estruturas de dados", "Stack", "Pilhas"] - title = "Estrutura de dados: pilha" - banner = "img/banners/pilha-pratos.jpg" +categories = ["algoritmo"] +date = "2017-09-10T19:42:00-03:00" +tags = ["osprogramadores", "estruturas de dados", "Stack", "Pilhas"] +title = "Estrutura de dados: pilha" +banner = "img/banners/pilha-pratos.jpg" +++ ## Estruturas de dados: Pilha -Pilha é uma estrutura de dados muito comum em sistemas computacionais. Dentre as várias soluções possíveis que a pilha permite podemos citar: +Pilha é uma estrutura de dados muito comum em sistemas computacionais. Nesse +artigo introduziremos o conceito de pilha e as várias soluções possíveis que +esta estrutura permite. + + + +Como exemplos, podemos citar: - Inversão de listas - Armazenar dados diff --git a/content/blog/estruturas-python.md b/content/blog/estruturas-python.md index 9921792c..3d4ca76f 100644 --- a/content/blog/estruturas-python.md +++ b/content/blog/estruturas-python.md @@ -4,7 +4,6 @@ categories = ["linguagens"] tags = ["python", "estruturas de dados", "matrizes"] date = "2017-04-14T10:22:25-03:00" banner = "img/banners/math-matrix-800px.png" - +++ ## Matrizes em _Python_[^fa] diff --git a/content/blog/git-reset.md b/content/blog/git-reset.md index 32e550c2..7bee027c 100644 --- a/content/blog/git-reset.md +++ b/content/blog/git-reset.md @@ -6,8 +6,6 @@ categories = ["git"] banner = "img/banners/git.webp" +++ -## Help! Múltiplos desafios no meu PR! - Este artigo contem uma explicação para uma pergunta frequente: "Por que o meu PR tem múltiplos desafios se eu já enviei os anteriores?" @@ -15,6 +13,8 @@ TL;DR: Este problema acontece quando o usuário começa um novo desafio sem sincronizar o repositório local com o conteúdo do repositório _upstream_ (nesse caso, osprogramadores). + + ## Conceitos importantes 1. **upstream** se refere ao repositório principal do os-programadores. @@ -122,14 +122,14 @@ Complicado? Vamos por partes: Antes de começar um novo desafio (ou qualquer outra modificação), tenha certeza de que o seu repositório está idêntico ao upstream/master: -```bash +``` git remote update git reset upstream/master --hard ``` Trabalhe normalmente. Antes de enviar o push, execute: -```bash +``` git pull -r upstream master ``` diff --git a/content/blog/hacking.md b/content/blog/hacking.md index 7d65b54c..5f9b0084 100644 --- a/content/blog/hacking.md +++ b/content/blog/hacking.md @@ -1,13 +1,11 @@ +++ -title = "Hacking" +title = "Quer hackear algum site?" date = "2017-04-08T11:00:00-07:00" tags = ["hacking"] categories = ["segurança"] banner = "img/banners/hacking.webp" +++ -## Quer hackear algum site? - Diariamente, pessoas juntam-se ao grupo e perguntam como "hackear" algum site, normalmente com a idéia de obter algum benefício de forma ilítica. **O nosso grupo não tolera qualquer forma de comportamento ilegal**. Nosso objetivo diff --git a/content/blog/inteligencia-artificial.md b/content/blog/inteligencia-artificial.md index 1d7f9673..0193d883 100644 --- a/content/blog/inteligencia-artificial.md +++ b/content/blog/inteligencia-artificial.md @@ -1,5 +1,5 @@ +++ -title = "Inteligência Artificial ajudando você" +title = "A Inteligência Artificial ajudando você" date = "2024-04-13T14:26:00-07:00" tags = ["programação","IA"] categories = ["linguagens", "ferramentas"] @@ -8,6 +8,8 @@ banner = "img/banners/letters.webp" Aprender a programar pode parecer uma tarefa assustadora para muitas pessoas, especialmente para aqueles que não têm experiência prévia na área da computação. No entanto, com os avanços da tecnologia, a inteligência artificial (IA) está se tornando uma aliada poderosa para facilitar esse processo de aprendizado. Neste artigo, vamos explorar como a IA pode ajudar pessoas com pouco ou nenhum conhecimento em programação a começar sua jornada rumo ao domínio dessa habilidade tão valiosa. + + ## 1. Introdução ao mundo da programação Para quem está dando os primeiros passos no mundo da programação, é fundamental começar com uma introdução clara e acessível aos conceitos básicos. Uma excelente opção gratuita é o [freeCodeCamp](https://www.freecodecamp.org/), que oferece cursos online abrangentes em diversas áreas da programação, incluindo HTML, CSS, JavaScript e muito mais. diff --git a/content/blog/introducao-profiler-java.md b/content/blog/introducao-profiler-java.md index eb314650..24bcf1c1 100644 --- a/content/blog/introducao-profiler-java.md +++ b/content/blog/introducao-profiler-java.md @@ -8,6 +8,8 @@ banner = "img/banners/visualvm_logo_big.webp" Neste artigo, vamos fazer uma introdução acerca da técnica de `profiling`. Esta técnica é uma forma de análise dinâmica do código, isto é, que verifica e recolhe informações do programa em tempo de execução. + + Ela é muito importante, pois nos permite ter informações sobre algum programa que às vezes são impossíveis de se perceber apenas lendo o código, como a quantidade de vezes que uma função é executada, quais funções que demoram mais para serem executadas, como a memória é utilizada internamente no código e etc. Apesar de ser uma técnica importante e bastante útil, ela não é bastante difundida nos cursos para iniciantes e muitos desenvolvedores não sabem tirar proveito dessa ferramenta. @@ -401,4 +403,4 @@ Obviamente a ferramenta possui bem mais recursos disponíveis, que auxiliam bast Além disso, existem outras ferramentas de profiling pagas com mais recursos à disposição, mas o uso do VisualVM ajuda bastante na compreensão do mecanismo de um profiler e é possível aproveitar isso quando for utilizar outras ferramentas distintas. -Dessa forma, vale a pena entender como essas ferramentas funcionam, pois elas ajudam bastante a melhorar a performance e qualidade do software criado. \ No newline at end of file +Dessa forma, vale a pena entender como essas ferramentas funcionam, pois elas ajudam bastante a melhorar a performance e qualidade do software criado. diff --git a/content/blog/introducao_a_linguagem_de_programacao_cpp.md b/content/blog/introducao_a_linguagem_de_programacao_cpp.md index 67d3c5a4..29b026d2 100644 --- a/content/blog/introducao_a_linguagem_de_programacao_cpp.md +++ b/content/blog/introducao_a_linguagem_de_programacao_cpp.md @@ -1,5 +1,5 @@ +++ -title = "Introdução à Linguagem de Programação C++: Primeiro Hello World, Ferramentas e Conceitos da Matemática na Programação" +title = "Introdução à Linguagem de Programação C++" date = "2024-08-24T22:00:00-03:00" tags = ["linguagens", "artigos", "programação", "aula", "C++"] categories = ["artigos", "linguagens"] @@ -8,6 +8,8 @@ banner = "img/banners/hello_world_cpp.png" Olá, meu nome é [Lucas Turos](https://github.com/lucasfturos) e estou aqui para te ajudar a dar os primeiros passos no C++, uma das linguagens mais poderosas e versáteis da programação! Neste artigo, você aprenderá a criar seu primeiro programa "Hello World", configurar seu ambiente de desenvolvimento, e explorar ferramentas e conceitos essenciais. Desde a história do C++ até a aplicação de conceitos matemáticos, esse guia cobre tudo o que você precisa para começar. + + ## Índice - [1. Introdução](#1-introdução) diff --git a/content/blog/ola-mundo.md b/content/blog/ola-mundo.md index 3d769f26..d3a5afa2 100644 --- a/content/blog/ola-mundo.md +++ b/content/blog/ola-mundo.md @@ -1,14 +1,16 @@ +++ -title = "Olá mundo!" +title = "Por onde começar?" date = "2019-03-12T08:26:00-07:00" tags = ["programação"] categories = ["linguagens"] banner = "img/banners/background-code.webp" +++ -Uma pergunta frequente de vários participantes do [OsProgramadores no Telegram](https://t.me/osprogramadores) é: "Por onde eu começo?" e "como posso me preparar para conseguir o primeiro estágio ou o primeiro emprego na área de programação?" +Uma pergunta frequente de vários participantes do [OsProgramadores no Telegram](https://t.me/osprogramadores) é: "Por onde eu começo?" e "como posso me preparar para conseguir o primeiro estágio ou o primeiro emprego na área de programação?" -Para começar com programação é recomendável usar um computador para criar e testar programas. A prática é essencial para reforçar o que foi aprendido através de vídeos e livros. + + +Para começar com programação é recomendável usar um computador para criar e testar programas. A prática é essencial para reforçar o que foi aprendido através de vídeos e livros. Caso você não tenha um computador, existem vários programas que você pode usar mas recomendamos a instalação e uso da [App do Replit](https://replit.com/mobile). > **[Recomendamos fortemente a leitura deste artigo para lhe ensinar alguns conceitos essenciais que serão muito úteis nesta sua jornada para se tornar um programador.](https://osprogramadores.com/blog/2024/02/29/conceitos-essenciais-para-come%C3%A7ar/)** @@ -17,7 +19,7 @@ Não deixe de ler o arigo acima antes de prosseguir com a leitura a seguir. Qualquer sistema operacional pode ser usado no aprendizado, [Windows](https://www.microsoft.com/en-ca/windows), [Linux](https://en.wikipedia.org/wiki/Linux) ou [macOS](https://en.wikipedia.org/wiki/MacOS). Use o que você tem acesso para aprender. Também não se preocupe com qual editor de programas ou [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) usar. Escolha algo simples e se concentre em aprender a programar. Se você não souber qual editor de programas usar, recomendamos o [Visual Studio Code](https://code.visualstudio.com/) -Escolha uma linguagem de programação como [Python](https://wiki.python.org.br/DocumentacaoPython), [JavaScript](https://www.w3schools.com/js/default.asp) ou outra de seu interesse e prossiga com o aprendizado. Se concentre em aprender apenas uma linguagem pois tentar aprender vários tópicos ao mesmo tempo só irá gerar frustrações. +Escolha uma linguagem de programação como [Python](https://wiki.python.org.br/DocumentacaoPython), [JavaScript](https://www.w3schools.com/js/default.asp) ou outra de seu interesse e prossiga com o aprendizado. Se concentre em aprender apenas uma linguagem pois tentar aprender vários tópicos ao mesmo tempo só irá gerar frustrações. Se o seu interesse é desenvolvimento front-end, recomendamos seguir a trilha de [HTML + CSS e depois JavaScript do Freecodecamp](https://www.freecodecamp.org/portuguese/learn/). @@ -37,7 +39,7 @@ Vamos começar a programar? Abra o terminal no Linux ou o [prompt no Windows](https://tecnoblog.net/responde/7-maneiras-de-abrir-o-prompt-de-comando-no-windows-10-e-11/) -Digite ```python``` no terminal ou prompt e pressione a tecla enter para carregar o interpretador interativo da linguagem Python. +Digite ```python``` no terminal ou prompt e pressione a tecla enter para carregar o interpretador interativo da linguagem Python. **Note que**: 1. Em alguns sistemas o comando a ser usado pode ser o python3 ao invés de python. @@ -67,7 +69,7 @@ a = 1 print(a) ``` -Após a execução do programa anterior, pesquise como você pode adicionar 1 ao valor da variável `a` e exiba o novo valor de `a` na tela do seu computador. +Após a execução do programa anterior, pesquise como você pode adicionar 1 ao valor da variável `a` e exiba o novo valor de `a` na tela do seu computador. ```python a = 0 @@ -76,7 +78,7 @@ a = a + 1 print(a) ``` -A seguir, insira uma segunda variável, chamada `b`, no seu programa e imprima o valor de `a + b`. +A seguir, insira uma segunda variável, chamada `b`, no seu programa e imprima o valor de `a + b`. ```python a = 0 @@ -97,7 +99,7 @@ for x in range(10): print("Escreva o seu nome aqui") ``` -A seguir vamos usar o comando `IF` para tomar uma decisão. Pesquise o que é decisão e como funcionam comandos do tipo `IF THEN ELSE`. Faça um programa simples usando `IF THEN ELSE` e procure entender como funciona. +A seguir vamos usar o comando `IF` para tomar uma decisão. Pesquise o que é decisão e como funcionam comandos do tipo `IF THEN ELSE`. Faça um programa simples usando `IF THEN ELSE` e procure entender como funciona. Exemplo: diff --git a/content/blog/pensando-como-um-programador.md b/content/blog/pensando-como-um-programador.md index 358962dc..243b98ba 100644 --- a/content/blog/pensando-como-um-programador.md +++ b/content/blog/pensando-como-um-programador.md @@ -6,29 +6,33 @@ categories = ["dicas"] banner = "img/banners/building-things.png" +++ -# Introdução +O ser humano é uma espécie muito peculiar nas mais diversas formas. A +capacidade humana de se adaptar é, em partes, o que nos fez chegar onde +estamos. -O ser humano é uma espécie muito peculiar nas mais diversas formas. A capacidade humana de se adaptar é, em partes, o que nos fez chegar onde estamos. + -Naturalmente, muitas coisas que para nós hoje, são normais, eram inimagináveis em outro período da humanidade. -Imagine se transportamos Pedro Álvares Cabral para nossos dias de hoje e o mostrássemos um avião? Certamente algo inimaginável à época! +Naturalmente, muitas coisas que para nós hoje, são normais, eram inimagináveis +em outro período da humanidade. Imagine se transportamos Pedro Álvares Cabral +para nossos dias de hoje e o mostrássemos um avião? Certamente algo +inimaginável à época! -E por que isto nos é importante? O que isso tem a ver com programação? +E por que isto nos é importante? O que isso tem a ver com programação? Muito mais do que você possa imaginar! > **Nós, como programadores, somos responsáveis por transformar algo que está apenas no pensamento, em realidade!** -Uma das partes do nosso trabalho que traz maior satisfação é você conseguir concluir a tarefa proposta, o famoso "Funciona!". +Uma das partes do nosso trabalho que traz maior satisfação é você conseguir concluir a tarefa proposta, o famoso "Funciona!". -A tradição na área é de se começar fazendo os programas exibirem a frase "Olá Mundo!", oriunda do inglês "_Hello World!_". +A tradição na área é de se começar fazendo os programas exibirem a frase "Olá Mundo!", oriunda do inglês "_Hello World!_". A sensação quando você finalmente consegue exibir a mensagem na tela é algo muito positivo! No entanto, uma coisa que costuma passar desapercebida é o processo que nós fazemos para chegar neste ponto! As etapas necessárias para conseguirmos, finalmente, -concluir algo. +concluir algo. Conseguir visualizar o resultado é algo simples para nós, seres humanos. Agora, conseguir imaginar quais são todas as etapas necessárias, -qual o caminho que devemos percorrer para chegar a este resultado, **nem sempre é trivial**. +qual o caminho que devemos percorrer para chegar a este resultado, **nem sempre é trivial**. Imagina agora se, para nós, já é algo um pouco difícil, como fica então para uma máquina?! Para um computador?! Certamente não é uma tarefa fácil... @@ -38,21 +42,21 @@ Imagina agora se, para nós, já é algo um pouco difícil, como fica então par a conseguir identificar as etapas, identificar os processos, as coisas começam a fazer mais sentido para você; e, como num estalar dos dedos, fica mais fácil se chegar no resultado desejado! -> **Diariamente, programadores lidam com situações inesperadas.** +> **Diariamente, programadores lidam com situações inesperadas.** Estas situações podem ir desde bugs ainda não encontrados, especificações incompletas (quando não se -sabe ao certo o que querem), ou até mesmo mudanças de tecnologia que acabam tornando como algo era feito obsoleto. +sabe ao certo o que querem), ou até mesmo mudanças de tecnologia que acabam tornando como algo era feito obsoleto. -A capacidade de identificar o processo necessário para se chegar ao resultado vai lhe ajudar. +A capacidade de identificar o processo necessário para se chegar ao resultado vai lhe ajudar. -A capacidade de conseguir segmentar este processo vai lhe ajudar ainda mais! +A capacidade de conseguir segmentar este processo vai lhe ajudar ainda mais! Quanto mais detalhado você conseguir compreender isto, melhor fica o resultado produzido e, às vezes, fica até mais fácil de implementá-lo também! # Identificando Processos Apesar de parecer um conceito abstrato, nós fazemos isso constantemente em nosso dia a dia. O nosso cérebro tem uma capacidade extraordinária em identificar padrões -e automatizar tarefas. +e automatizar tarefas. Um exemplo disso pode ser andar de bicicleta. Enquanto está aprendendo, você precisa pensar em como fazer as coisas: @@ -63,24 +67,24 @@ Um exemplo disso pode ser andar de bicicleta. Enquanto está aprendendo, você p * Se apoiar quando parar, para não cair... Todas são funções necessárias para se conseguir andar de bicicleta, mas que não nos ocorrem naturalmente. É algo que precisamos entender como funciona, algo que -precisamos aprender. +precisamos aprender. Depois que aprendemos também, conseguimos fazer tudo de maneira automatizada! Você pedala, se equilibra, freia, muda a direção... tudo de maneira fluida e natural, quase um processo automático! Há outros exemplos disso, como: dirigir um carro, subir/descer uma escada, nadar... o importante aqui é perceber como a nossa capacidade de adaptação e abstração -é algo extraordinário! +é algo extraordinário! **Uma ferramenta poderosíssima que você pode, e deve, usar a seu favor!** # Mas e a programação? Conseguir identificar os processos vai permitir ao programador entender o que precisa ser feito para alcançar o resultado desejado. O programador é o responsável -por definir como este processo vai ser feito pelo computador. +por definir como este processo vai ser feito pelo computador. > **É responsabilidade do programador "traduzir" as etapas do processo de modo que a máquina as faça conforme seja necessário.** -Ou seja, é você, programador, o responsável por direcionar a máquina a fazer as coisas da forma que elas precisam ser feitas. +Ou seja, é você, programador, o responsável por direcionar a máquina a fazer as coisas da forma que elas precisam ser feitas. A máquina não consegue entender o que ela faz. A máquina não tem consciência, ela tem um conjunto de instruções a serem seguidos. Cabe ao programador fazer o uso deste conjunto para alcançar o resultado desejado. @@ -90,17 +94,17 @@ Vamos a um exemplo? ## Exemplo - Calculadora: Operação de soma Para nós, seres humanos, somar dois números é uma tarefa relativamente simples. Qual o resultado de 3 + 7? Alguns de vocês devem já saber o resultado antes mesmo de -terminar de ler a expressão. +terminar de ler a expressão. Contudo, para a máquina isto já não é verdade. Para ela fazer a mesma conta ela precisa realizar algumas etapas específicas, onde a ordem destas etapas pode influenciar o resultado. Estas etapas são: -1. Obter o primeiro número da operação; +1. Obter o primeiro número da operação; 1. Nesse exemplo, o número 3. -2. Obter o segundo número da operação; +2. Obter o segundo número da operação; 1. Nesse exemplo, o número 7. -3. Identificar qual é a operação a ser realizada; +3. Identificar qual é a operação a ser realizada; 1. Neste exemplo, operação de adição (soma). 4. Realizar a operação; 5. Armazenar o resultado da operação; @@ -112,7 +116,7 @@ Veja só quantas etapas o nosso cérebro faz para nós sem nem percebemos! Esta habilidade pode ser utilizada a seu favor na programação também! Mas para isto, é necessário praticar... -Cada pessoa tem a sua forma e ritmo diferente. Para uns pode vir com mais facilidade, para outros pode ser mais custoso. +Cada pessoa tem a sua forma e ritmo diferente. Para uns pode vir com mais facilidade, para outros pode ser mais custoso. > **O importante é não desistir e seguir trilhando o seu caminho para se tornar um programador!** diff --git a/content/blog/podcasts-no-youtube.md b/content/blog/podcasts-no-youtube.md index 9a3a0447..525a99d6 100644 --- a/content/blog/podcasts-no-youtube.md +++ b/content/blog/podcasts-no-youtube.md @@ -6,14 +6,14 @@ categories = ["video"] banner = "img/banners/podcast-mic-with-ai-brain.png" +++ -# Episódios disponíveis no youtube - -Agora os episódios do nosso podcast também estão disponíveis na plataforma YouTube. +Agora os episódios do nosso podcast também estão disponíveis no YouTube. Você pode conferir todos os nossos episódios através da [aba de Podcasts](https://www.youtube.com/@OsProgramadores/podcasts) no [nosso canal do YouTube](https://www.youtube.com/@OsProgramadores?sub_confirmation=1). + + # Episódios com Vídeo -Também estamos experimentando produzir episódios com vídeo. +Também estamos experimentando produzir episódios com vídeo. No nosso canal você encontrará tanto as opções de vídeo como apenas com o áudio. -> O primeiro experimento nesta forma é o [episódio 80](https://osprogramadores.com/podcast/podcast-80/). \ No newline at end of file +> O primeiro experimento nesta forma é o [episódio 80](https://osprogramadores.com/podcast/podcast-80/). diff --git a/content/blog/portal-estagio.md b/content/blog/portal-estagio.md index 6d2fe389..eb9a3bba 100644 --- a/content/blog/portal-estagio.md +++ b/content/blog/portal-estagio.md @@ -8,6 +8,8 @@ banner = "img/banners/background-code.webp" O [Portal Estágio](https://portalestagio.com/) é uma oportunidade para quem quiser aprender a trabalhar em grupo e contribuir com um projeto open source. O projeto está em desenvolvimento e precisamos de pessoas interessadas em colaborar e levar o projeto a frente. + + Objetivos do projeto: 1. Ajudar quem está aprendendo a programar e querendo a experiência de participar de um projeto em equipe, como em um ambiente de trabalho real. diff --git a/content/blog/primeiros-passos-go.md b/content/blog/primeiros-passos-go.md index 5014951b..c3607d6f 100644 --- a/content/blog/primeiros-passos-go.md +++ b/content/blog/primeiros-passos-go.md @@ -10,12 +10,14 @@ Olá sou o Jefferson Otoni Lima conhecido como [jeffotoni](https://github.com/je Vou fazer um pequeno overview de uma das linguagens que mais cresce no mundo. Objetivo deste post é simplesmente apresentar o porque a **linguagem Go** -surgiu e apresentar a sua sintaxe e demonstrar algumas áreas onde Go -é mais aplicado. Para todos que gostariam de aumentar ainda mais seu arsenal para -desenvolvimento web este post irá ajuda-los a esclarecer alguns pontos importantes +surgiu e apresentar a sua sintaxe e demonstrar algumas áreas onde Go +é mais aplicado. Para todos que gostariam de aumentar ainda mais seu arsenal para +desenvolvimento web este post irá ajuda-los a esclarecer alguns pontos importantes quando estamos iniciando e aprendendo uma nova linguagem de programação. Vamos conhecer mais deste universo fantástico que é Go. + + Para você que está iniciando em programação ou que já conhecça de programação este post irá ser útil para você entender um pouco mais quando o assunto é Go. @@ -25,7 +27,7 @@ post irá ser útil para você entender um pouco mais quando o assunto é Go. Antes de iniciarmos, é importante salientar que linguagens de programação são ferramentas e como toda boa ferramenta temos que saber em quais momentos usá-las. Existem cenários e problemas que só são resolvidos com linguagens específicas e existem outros universos de problemas que temos centenas ou milhares de linguagens que resolvem de alguma forma o mesmo problema. Então como um bom profissional quanto é importante entender qual(quais) ferramenta(s) de adequar a quais problemas. -A linguagem Go, em seu universo de possibilidades, é uma linguagem de uso geral mas não gosto muito deste termo pois fica parecendo que a linguagem é tipo uma bala de prata e resolve todos os problemas e isso não é verdade. +A linguagem Go, em seu universo de possibilidades, é uma linguagem de uso geral mas não gosto muito deste termo pois fica parecendo que a linguagem é tipo uma bala de prata e resolve todos os problemas e isso não é verdade. Go nasceu por um propósito que é resolver problemas do universo web e aproveitar a nova tecnologia de multicores em servidores para este propósito. @@ -33,7 +35,7 @@ O primeiro passo é conhecer um pouco melhor o site oficial da linguagem [site o ## História do projeto Go -Robert Griesemer, Rob Pike e Ken Thompson começaram a esboçar as metas para uma nova linguagem no quadro branco em 21 de setembro de 2007. Em poucos dias, as metas se estabeleceram e foi criado um plano de execução. Em janeiro de 2008, Ken começou a trabalhar em um compilador para explorar ideias; ele gerou código C como sua saída. Em meados do ano, a linguagem se tornou um projeto em tempo integral e se estabeleceu o suficiente para ser um compilador de produção. +Robert Griesemer, Rob Pike e Ken Thompson começaram a esboçar as metas para uma nova linguagem no quadro branco em 21 de setembro de 2007. Em poucos dias, as metas se estabeleceram e foi criado um plano de execução. Em janeiro de 2008, Ken começou a trabalhar em um compilador para explorar ideias; ele gerou código C como sua saída. Em meados do ano, a linguagem se tornou um projeto em tempo integral e se estabeleceu o suficiente para ser um compilador de produção. Em maio de 2008, Ian Taylor começou de forma independente em um front-end GCC para Go usando as especificações preliminares. Russ Cox entrou no projeto no final de 2008 e ajudou a mover a linguagem e as bibliotecas do protótipo adiante. @@ -50,7 +52,7 @@ Go tornou-se um projeto de código aberto público em 10 de novembro de 2009. In "_Go tratou dessas questões tentando combinar a facilidade de programação de uma linguagem interpretada e dinâmica com a eficiência e segurança de uma linguagem compilada estaticamente. Também pretendia ser moderno, com suporte para computação em rede e multicore. Finalmente, trabalhar com Go pretende ser rápido : deve demorar no máximo alguns segundos para construir um grande executável em um único computador._" -Nasce uma nova linguagem Go, para atender às novas necessidades e resolver problemas aproveitando o máximo possível do poder computacional. +Nasce uma nova linguagem Go, para atender às novas necessidades e resolver problemas aproveitando o máximo possível do poder computacional. E por que do grande sucesso de Go ? @@ -61,7 +63,7 @@ A comunidade Go não tem dúvidas que é devido ao seu mascote e que hoje tem mi ## Site Oficial -Para iniciarmos em Go vamos dar alguns passos para trás, vamos começar toda nossa trajetória conhecendo o [site oficial da linguagem](https://golang.org). Nesta página encontramos informações sobre Go e muito mais. +Para iniciarmos em Go vamos dar alguns passos para trás, vamos começar toda nossa trajetória conhecendo o [site oficial da linguagem](https://golang.org). Nesta página encontramos informações sobre Go e muito mais. Nesta página temos os: @@ -71,10 +73,10 @@ Nesta página temos os: - [play go](play.golang.org) - [efetive go](https://golang.org/doc/effective_go.html) - [especificações Go](https://golang.org/ref/spec) - - [download](https://golang.org/doc/install) - - [tour em Go](https://tour.golang.org/welcome/1) + - [download](https://golang.org/doc/install) + - [tour em Go](https://tour.golang.org/welcome/1) -E não para por ai, tem muitas possibilidades no site, se aprendermos o site todo restor torna-se fácil. +E não para por ai, tem muitas possibilidades no site, se aprendermos o site todo restor torna-se fácil. O site oficial aparentemente parece pequeno mas ele é muito completo e grande. Então temos praticamente tudo que precisamos saber de Go para iniciarmos nosso aprendizado nesta linguagem que é um fenômeno. @@ -90,9 +92,9 @@ Para acessar o site oficial basta clicar em: [site oficial go](https://golang.or ## Effective Go Este link é todo material que se precisa ler antes de tudo. -[Effective Go](https://golang.org/doc/effective_go.html#introduction) ❤️ neste site está todo material que precisa para ter uma boa noção da linguagem Go: +[Effective Go](https://golang.org/doc/effective_go.html#introduction) ❤️ neste site está todo material que precisa para ter uma boa noção da linguagem Go: - - [Estrutura de controle](https://golang.org/doc/effective_go.html#control-structures) + - [Estrutura de controle](https://golang.org/doc/effective_go.html#control-structures) - [Funções](https://golang.org/doc/effective_go.html#functions) - [Programação concorrente usando Goroutines](https://golang.org/doc/effective_go.html#concurrency) - [Interfaces e métodos](https://golang.org/doc/effective_go.html#interface-names) @@ -101,7 +103,7 @@ Este link é todo material que se precisa ler antes de tudo. - [Profiling nativo da plataforma](https://blog.golang.org/pprof) Existe muito mais além destes pontos colocados no site oficial, vale muito a pena dedicar e investir um tempo na leitura pois tudo irá ficar bem mais fácil quando for trabalhar na prática com a linguagem Go. - + ## Um tour de Go Este link seria o segundo mais importante na minha hierarquia para aprendermos Go. @@ -123,7 +125,7 @@ Este link seria o nosso terceiro passo e acredito que agora você tnha diversas [Faq](https://golang.org/doc/faq) ❤️ é aqui que você irá tirar algumas dúvidas. Esta página é essencial para organizar suas ideias e entender realmente um pouco mais sobre Go🥰. O tempo gasto lendo esta página irá com certeza lhe ajudar a economizar horas de trabalho. Selecionei alguma delas: - + - [O Google está usando Go internamente?](https://golang.org/doc/faq#internal_usage) - [Que outras empresas usam Go?](https://golang.org/doc/faq#external_usage) - [Os programas Go se vinculam a programas C / C ++?](https://golang.org/doc/faq#Do_Go_programs_link_with_Cpp_programs) @@ -155,9 +157,9 @@ Antes de fazermos nosso famigerado **"Hello World"** vamos mostrar alguns pontos Temos alguns pilares bem definidos em Go, isto ajuda a clarear ainda mais seu horizonte quanto o assunto é Go. - Existem idiomas que são um pouco mais rápidos que o Go, mas certamente não são tão simples quanto o Go. - + - Existem linguagens que tornam a concorrência seu objetivo mais elevado, mas não são tão legíveis nem produtivas. - + - Desempenho e simultaneidade são atributos importantes, mas não tão importantes quanto: Podemos dizer que Go possui três pilares para atender estas necessidades: @@ -182,7 +184,7 @@ Em Go temos algumas características marcantes da linguagem que a tornam ainda m - GC (Garbage collector) ### Alguns tipos de aplicações implementadas em Go - + - [Web backend](https://github.com/nouney/awesome-go#web-frameworks) (com diversos frameworks disponíveis) - [Web Assembly](https://github.com/vugu/vugu) (um dos frameworks vugu) - Microservices Frameworks @@ -193,7 +195,7 @@ Em Go temos algumas características marcantes da linguagem que a tornam ainda m - Fragments services (Termo citado pelo @jeffotoni em um grupo de discussão de microservices) - Lambdas [FaaS example](https://www.alexedwards.net/blog/serverless-api-with-go-and-aws-lambda) - Client Server - - Aplicações em terminal [utilizando a lib tview](https://github.com/rivo/tview) + - Aplicações em terminal [utilizando a lib tview](https://github.com/rivo/tview) - IoT [alguns frameworks](https://github.com/nouney/awesome-go#iot-internet-of-things) - Boots [alguns aqui](https://github.com/nouney/awesome-go#bot-building) - Aplicações Client que usam tecnologia Web @@ -223,14 +225,14 @@ Install Go neste link terá o passo a passo de como instalar em diversos Sistema Se você tiver uma versão anterior do Go instalada, certifique-se de removê-la antes de instalar, vamos baixar a versão go1.15.6 mas pode entrar no site e pegar a última versão se preferir. -#### Confira o passo a passo +#### Confira o passo a passo 1. Remova o Go caso esteja instalado ```bash $ sudo rm -rf /usr/local/go ``` -1. Baixe o arquivo [clicando aqui](https://golang.org/dl/go1.15.6.linux-386.tar.gz) +1. Baixe o arquivo [clicando aqui](https://golang.org/dl/go1.15.6.linux-386.tar.gz) 2. Extraia-o em **/usr/local** com o seguinte comando @@ -250,7 +252,7 @@ $ export PATH=$PATH:/usr/local/go/bin $ source ~/.profile ``` -5. Agora vamos testar se tudo deu certo +5. Agora vamos testar se tudo deu certo ```bash $ go version @@ -274,7 +276,7 @@ Abaixo está nosso primeiro hello world, e basta salvar o arquivo com a extensã package main func main() { - + println("Meu primeiro Hello World") } @@ -291,7 +293,7 @@ package main import "fmt" func main() { - + fmt.Println("Meu primeiro Hello World") } @@ -317,7 +319,7 @@ Agora vamos transformar em **binário** vamos compilar e para isto vamos utiliza $ GOARCH=386 GOOS=linux go build -o myfirstprogram main.go ``` -Este comando irá fazer o **build** e será gerado um "executável", também conhecido como binário, para ser executado em seu sistema operacional. Muito fácil não é? 😍 Eu diria muito **lindo**. Com este binário você irá conseguir executar o programa em sua máquina ou em qualquer servidor que tenha a mesma **arquitetura e sistema operacional**. +Este comando irá fazer o **build** e será gerado um "executável", também conhecido como binário, para ser executado em seu sistema operacional. Muito fácil não é? 😍 Eu diria muito **lindo**. Com este binário você irá conseguir executar o programa em sua máquina ou em qualquer servidor que tenha a mesma **arquitetura e sistema operacional**. O mais legal é que é gerado um binário estático que não contém dependências para instalar em seu servidor. Legal não é? Para sabermos se o arquivo binário é dinâmico ou estático basta rodarmos o seguinte commando: @@ -347,7 +349,7 @@ _Assumindo que o sistema está configurado para uso do idioma Português._ ## Conclusão -Este post é um simples resumo para você que gostaria de aumentar seu arsenal para programação web. +Este post é um simples resumo para você que gostaria de aumentar seu arsenal para programação web. Espero que tenham gostado, e fique a vontade em encontrar em contato para sugestões ou melhorias no post. diff --git a/content/blog/qual_linguagem_usar.md b/content/blog/qual_linguagem_usar.md index 9dc278f6..4174ca5c 100644 --- a/content/blog/qual_linguagem_usar.md +++ b/content/blog/qual_linguagem_usar.md @@ -14,6 +14,8 @@ outro fato relevante é que quanto mais linguagens alguém sabe, mais fácil é aprendizado de novas linguagens, já que todas apresentam vários conceitos comuns. + + Se você está começando, as informações abaixo podem ser de alguma ajuda para saber por onde começar. diff --git a/content/blog/quer-aprender.md b/content/blog/quer-aprender.md index 78768390..7a9999d1 100644 --- a/content/blog/quer-aprender.md +++ b/content/blog/quer-aprender.md @@ -13,6 +13,8 @@ A segunda é que não existe uma forma, linguagem ou área para entrar rápido n Tudo vai depender exclusivamente de você, e dito isso, vamos começar nossa aventura. + + Uma dúvida comum dos iniciantes é: "Qual é a melhor linguagem pra aprender?". Te digo que não existe melhor linguagem, mas sim linguagens diferentes para resolver problemas diferentes. diff --git a/content/blog/terminallinux.md b/content/blog/terminallinux.md index 317369f7..52641058 100644 --- a/content/blog/terminallinux.md +++ b/content/blog/terminallinux.md @@ -1,14 +1,13 @@ +++ -date = "2020-09-12T16:24:06-03:00" title = "Introdução ao Terminal do Linux" +date = "2020-09-12T16:24:06-03:00" categories = ["video"] tags = ["video","tutorial","youtube","Linux"] banner = "img/banners/terminal-linux.png" +++ -Você ainda não sabe usar o terminal do [Linux](https://www.linux.org/)? +Você ainda não sabe usar o terminal do [Linux](https://www.linux.org/)? Assista o vídeo para uma introdução ao uso do terminal e uma comparação com o gerenciador de arquivos. + {{< youtube CFWttwWZSAQ >}} - - diff --git a/content/blog/tiktok-canal.md b/content/blog/tiktok-canal.md index 373ebc6f..ea7a06d0 100644 --- a/content/blog/tiktok-canal.md +++ b/content/blog/tiktok-canal.md @@ -1,6 +1,6 @@ +++ -date = "2024-06-29T00:30:00-03:00" title = "Canal do Tiktok do OsProgramadores" +date = "2024-06-29T00:30:00-03:00" categories = ["video"] tags = ["video","tiktok"] banner = "img/banners/osprogramadores-400px.jpg" @@ -8,7 +8,10 @@ banner = "img/banners/osprogramadores-400px.jpg" Criamos o [canal do Tiktok do OsProgramadores](https://www.tiktok.com/@osprogramadores) com o objetivo de difundir nosso conteúdo via vídeo. + + Deixem o seu follow no canal e participem das discussões em nosso [grupo do OsProgramadores no Telegram](https://t.me/osprogramadores). + [![Canal do Tiktok](/img/banners/osprogramadores-400px.jpg)](https://www.tiktok.com/@osprogramadores "Site do Grupo") diff --git a/content/blog/youtube-canal.md b/content/blog/youtube-canal.md index 6b48d461..4bb96fdf 100644 --- a/content/blog/youtube-canal.md +++ b/content/blog/youtube-canal.md @@ -8,6 +8,8 @@ banner = "img/banners/osprogramadores-400px.jpg" Criamos o [canal do YouTube do OsProgramadores](https://www.youtube.com/channel/UCt_YNYGl6K5yNXlXEQDdwWg?view_as=subscriber) com o objetivo de distribuir conteúdo via vídeo. + + Assinem o canal e participem das discussões no [grupo do OsProgramadores no Telegram](https://t.me/osprogramadores). [![Canal do YouTube](/img/banners/osprogramadores-400px.jpg)](https://www.youtube.com/watch?v=eKU9gsFPMkw "Site do Grupo") diff --git a/layouts/_default/desafio.html b/layouts/_default/desafio.html index c5f8ee2c..cad44802 100644 --- a/layouts/_default/desafio.html +++ b/layouts/_default/desafio.html @@ -49,7 +49,7 @@ - {{ if .Site.DisqusShortname }} + {{ if .Site.Config.Services.Disqus.Shortname }}
{{ template "_internal/disqus.html" . }}
diff --git a/layouts/_default/links.html b/layouts/_default/links.html index 7842e220..ba1c6739 100644 --- a/layouts/_default/links.html +++ b/layouts/_default/links.html @@ -37,7 +37,7 @@

{{ .title }}

- {{ if .Site.DisqusShortname }} + {{ if .Site.Config.Services.Disqus.Shortname }}
{{ template "_internal/disqus.html" . }}
diff --git a/layouts/_default/single.html b/layouts/_default/single.html index ea80f16a..82747450 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -30,7 +30,7 @@ {{ .Content }} - {{ if .Site.DisqusShortname }} + {{ if .Site.Config.Services.Disqus.Shortname }}
{{ template "_internal/disqus.html" . }}
diff --git a/layouts/partials/links.html b/layouts/partials/links.html index 18622427..45d27658 100644 --- a/layouts/partials/links.html +++ b/layouts/partials/links.html @@ -22,7 +22,7 @@ {{ .Content }} - {{ if .Site.DisqusShortname }} + {{ if .Site.Config.Services.Disqus.Shortname }}
{{ template "_internal/disqus.html" . }}
diff --git a/themes/hugo-universal-theme b/themes/hugo-universal-theme index 09f4fdfe..11d5d7de 160000 --- a/themes/hugo-universal-theme +++ b/themes/hugo-universal-theme @@ -1 +1 @@ -Subproject commit 09f4fdfeb6bacd4c59359a6b6adfbc240ea9039b +Subproject commit 11d5d7de6a1e5de802d1729775daf37dc58e5cc5