<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Desenvolvimento | Pablo Ramon</title>
	<atom:link href="https://pabloramon.com.br/category/desenvolvimento/feed/" rel="self" type="application/rss+xml" />
	<link>https://pabloramon.com.br</link>
	<description>Always a learner</description>
	<lastBuildDate>Mon, 28 Apr 2025 00:25:34 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8</generator>

<image>
	<url>https://pabloramon.com.br/wp-content/uploads/2025/04/cropped-circle_image-32x32.png</url>
	<title>Desenvolvimento | Pablo Ramon</title>
	<link>https://pabloramon.com.br</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Programação por pares &#8211; Construindo comunicação eficiente em times de desenvolvimento.</title>
		<link>https://pabloramon.com.br/2025/04/25/programacao-por-pares-construindo-comunicacao-eficiente/</link>
		
		<dc:creator><![CDATA[pabloramon]]></dc:creator>
		<pubDate>Fri, 25 Apr 2025 09:06:02 +0000</pubDate>
				<category><![CDATA[Aula]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Metodologias Ativas]]></category>
		<category><![CDATA[Prática docente]]></category>
		<guid isPermaLink="false">https://pabloramon.com.br/?p=873</guid>

					<description><![CDATA[Por questões culturais e de senso comum, somos levados a entender a programação de software como uma atividade solitária. A figura do programador recluso e com pouco traquejo social tem sido muito propagada por filmes, séries e mídias pop em geral. Porém, o dia a dia de quem programa está longe de ser assim.O cotidiano [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Por questões culturais e de senso comum, somos levados a entender a programação de software como uma atividade solitária. A figura do programador recluso e com pouco traquejo social tem sido muito propagada por filmes, séries e mídias pop em geral. Porém, o dia a dia de quem programa está longe de ser assim.<br>O cotidiano dos tech leaders e gestores de equipes de TI tem sido, em boa parte, manejar a comunicação eficaz dentro dos times. Quem consegue uma equipe com boa comunicação faz entregas mais consistentes, se protege mais rapidamente de problemas e consegue encaixar competências, tornando a equipe uma massa coesa. Este cenário é um objetivo que nem sempre é alcançado. Não são poucos os relatos de comunicação deficitária, preconceito entre os participantes do time por desnível evidente de habilidades técnicas, ou até mesmo a falta de costume em cooperar efetivamente em grupo. Julgo que isso poderia ser resolvido na base de formação do profissional.<br>Nesses últimos anos em sala de aula, ensinando disciplinas de computação, tem ficado claro para mim que minhas aulas atingem mais rapidamente seus objetivos quando aposto na construção das habilidades de comunicação e senso de comunidade dos alunos, muito mais do que na apresentação do conteúdo da disciplina em si. E estou convencido de que a Programação por Pares é uma ótima prática para alcançar esses objetivos.<br>Vou apresentar um relato de experiência que vivenciei ao aplicar a técnica de Programação por Pares em uma disciplina de Qualidade de Software. Relatarei, nas próximas linhas, o cenário que encontrei em uma das minhas últimas aulas utilizando a técnica, bem como a estratégia adotada e os resultados obtidos.</p>



<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" width="1024" height="877" src="https://pabloramon.com.br/wp-content/uploads/2025/04/PairProgramming-1024x877.png" alt="" class="wp-image-878" style="width:511px;height:auto" srcset="https://pabloramon.com.br/wp-content/uploads/2025/04/PairProgramming-980x839.png 980w, https://pabloramon.com.br/wp-content/uploads/2025/04/PairProgramming-480x411.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw" /></figure>



<p></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>Cenário</strong></p>



<p>As aulas são conduzidas em um laboratório com computadores desktop, com uma turma de aproximadamente 18 pessoas do curso de Ciência da Computação. Os alunos tinham conhecimentos desnivelados de programação: alguns já atuavam profissionalmente, enquanto outros estavam dando os primeiros passos na área.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>Preparação</strong></p>



<p>Uma aula antes da aplicação da Programação por Pares foi dedicada a uma atividade de nivelamento. É importante perceber que, para cada experiência, você pode encontrar um cenário diferente; aí entra a sensibilidade do professor para preparar bem os alunos para a atividade.<br>Nessa atividade niveladora em particular, revisitamos os conceitos de listas em Python, fizemos operações com listas, laços, condicionais, list comprehension e funções lambda. Dessa forma, no encontro seguinte haveria menos lacunas a preencher.<br>O material para esta aula está documentado neste link do GitHub:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/ramonparaiba/Aulas-Logica-de-Programcao-e-Algoritmos/blob/main/Colecoes_Python.ipynb">Repositório da aula</a></div>
</div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>Aplicação da técnica</strong></p>



<p>A Programação por Pares consiste em dois programadores trabalhando juntos em uma única máquina, compartilhando o teclado e o mouse, e escrevendo código de forma colaborativa. Um programador atua como &#8220;motorista&#8221; (ou <em>driver</em>), escrevendo o código, enquanto o outro atua como &#8220;navegador&#8221; (ou <em>observer</em>), revisando o código em tempo real, dando sugestões e identificando potenciais erros. Os papéis são alternados regularmente.<br>Costumo dar um tempo de 7 a 10 minutos por rodada até que ocorra a troca de papéis. No dia a dia profissional, essa técnica em geral é aplicada por dois colegas que alternam entre si. Entretanto, na minha aula promovo um rodízio de duplas, para incentivar a integração entre todos os participantes. Assim, ao final de cada rodada, os navegadores mudam para a estação à direita, e os <em>drivers</em> para a estação à esquerda. Na nova estação, eles alternam os papéis: quem era <em>driver</em> passa a ser <em>navegador</em> e vice-versa.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>Resultado</strong></p>



<p>Nessa experiência em particular, foram realizadas oito rodadas com tempo variando de 7 a 10 minutos. Ao final, os participantes compartilharam suas impressões, destacando os pontos positivos e os desafios da atividade de programar em duplas.<br>As respostas foram diversas, entre aspectos positivos e pontos de estranhamento:</p>



<ul class="wp-block-list">
<li>Dificuldade em continuar a atividade ao mudar de estação e se deparar com código feito por outra pessoa;</li>



<li>Duplas bem afinadas eram desfeitas, e uma nova relação precisava ser construída rapidamente;</li>



<li>Com as novas interações, habilidades foram adquiridas, assim como novas formas de abordar problemas;</li>



<li>A comunicação nem sempre era eficaz em algumas duplas;</li>



<li>O receio inicial de “não saber programar direito” foi superado com o apoio do navegador.</li>
</ul>



<p>Ao final, desafiei os alunos a aplicar a técnica em projetos pessoais, utilizando ferramentas de teletrabalho com chamada de vídeo e compartilhamento de telas. Julgo que isso os prepara para compor equipes de desenvolvimento de software com mais confiança para enfrentar os desafios do dia a dia.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Por que ensino Clean Code já nos primeiros contatos com programação</title>
		<link>https://pabloramon.com.br/2025/04/14/por-que-ensino-clean-code-ja-nos-primeiros-contatos-com-programacao/</link>
		
		<dc:creator><![CDATA[pabloramon]]></dc:creator>
		<pubDate>Tue, 15 Apr 2025 01:09:43 +0000</pubDate>
				<category><![CDATA[Aula]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Prática docente]]></category>
		<guid isPermaLink="false">https://pabloramon.com.br/?p=858</guid>

					<description><![CDATA[Quando começamos nos primeiros passos na programação, é comum focar apenas em fazer o código funcionar. Pois o objetivo do que vem antes é entender a lógica, a sintaxe e os conceitos básicos da programação. Ao longo de todos esses anos ministrando disciplinas de introdução à lógica e aos rudimentos da programação, eu já adotei [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Quando começamos nos primeiros passos na programação, é comum focar apenas em fazer o código funcionar. Pois o objetivo do que vem antes é entender a lógica, a sintaxe e os conceitos básicos da programação. Ao longo de todos esses anos ministrando disciplinas de introdução à lógica e aos rudimentos da programação, eu já adotei diversas estratégias de ensino. Desde o uso de fluxogramas para o entendimento dos algoritmos, passando pelos pseudocódigos (linguagens como portugol, etc), até que me convenci que é melhor estabelecer certos padrões de qualidade para ficarem encrustados à cultura do futuro programador. Assim, há tempos tomei duas decisões, a primeira é usar uma linguagem de programação desde o primeiro dia. Segundo, passei a ensinar o Clean code aos iniciantes desde o dia um. Neste post, vou explicar por que essa abordagem é fundamental e como ela impacta positivamente a jornada de aprendizado e a carreira dos programadores.</p>



<h2 class="wp-block-heading"><strong>O que é Clean Code?</strong></h2>



<p>Clean Code, ou código limpo, é um conceito popularizado por Robert C. Martin (Uncle Bob) em seu livro de mesmo nome, que enfatiza a escrita de código que seja fácil de entender, modificar e manter. Isso inclui:</p>



<ul class="wp-block-list">
<li>Nomes claros e significativos para variáveis, funções e classes.</li>



<li>Estrutura lógica e simples.</li>



<li>Comentários apenas quando necessários.</li>



<li>Evitar duplicação e complexidade desnecessária.</li>



<li>Organização consistente e legível.</li>
</ul>



<h2 class="wp-block-heading">Por que ensinar Clean Code desde o início?</h2>



<ol class="wp-block-list">
<li>Cria bons hábitos desde o começo<br>Aprender a programar é como aprender um novo idioma. Se você começar falando errado, vai ser difícil corrigir depois. Ensinar Clean Code desde o primeiro contato ajuda o aluno a desenvolver bons hábitos que serão naturais e automáticos no futuro.</li>



<li>Facilita o entendimento e a colaboração<br>Mesmo que o aluno esteja escrevendo código só para si, a clareza é essencial. Quando o código é limpo, fica mais fácil revisar, corrigir erros e expandir funcionalidades. Além disso, em projetos reais, a colaboração é inevitável, e um código limpo é a base para um trabalho em equipe eficiente.</li>



<li>Reduz a frustração e o retrabalho<br>Código confuso gera bugs difíceis de encontrar e corrige. Ensinar Clean Code ajuda a evitar esses problemas, tornando o aprendizado mais fluido e menos frustrante.</li>



<li>Prepara para o mercado de trabalho<br>Empresas valorizam profissionais que escrevem código limpo porque isso economiza tempo e dinheiro. Ao aprender Clean Code desde cedo, o aluno já se destaca e está mais preparado para desafios reais.</li>
</ol>



<p></p>



<h2 class="wp-block-heading">Minha filosofia de ensino: aprender fazendo, com qualidade</h2>



<p>Eu acredito que o aprendizado de programação deve ser prático, mas nunca às custas da qualidade. Por isso, desde o primeiro exercício, incentivo os alunos a:</p>



<ul class="wp-block-list">
<li>Escolher nomes que façam sentido.</li>



<li>Dividir o código em funções pequenas e com responsabilidades claras.</li>



<li>Refatorar o código sempre que possível.</li>



<li>Escrever código que eles mesmos gostariam de ler no futuro.</li>
</ul>



<p>Além disso, uso exemplos reais e situações do dia a dia para mostrar que Clean Code não é meramente um amontoado de regras vazias, mas uma ferramenta poderosa para programar melhor e com mais prazer.</p>



<p>Vamos tomar como exemplo a função &#8216;faz_algo()&#8217; a seguir:</p>



<pre class="wp-block-code"><code>def faz_algo(x, y):
    a = x * 2
    b = y + 10
    c = a + b
    print(c)
    d = &#91;]
    for i in range(x):
        if i % 2 == 0:
            d.append(i)
    return d

resultado = faz_algo(5, 3)
print(resultado)</code></pre>



<p><strong>Problemas desta função:</strong></p>



<ol start="1" class="wp-block-list">
<li>Nomes não descritivos (<code>faz_algo</code>,&nbsp;<code>x</code>,&nbsp;<code>y</code>,&nbsp;<code>a</code>,&nbsp;<code>b</code>,&nbsp;<code>c</code>,&nbsp;<code>d</code>)</li>



<li>Faz duas operações não relacionadas (cálculo e filtragem de números pares)</li>



<li>Tem um efeito colateral (print) além de retornar um valor</li>



<li>Não tem tipagem de parâmetros ou retorno</li>
</ol>



<h2 class="wp-block-heading">Versão Refatorada com Clean Code</h2>



<pre class="wp-block-code"><code>from typing import List

def calculate_combined_value(multiplier: int, additive: int) -&gt; int:
    """Calcula um valor combinado com base nos parâmetros de entrada.
    
    Argumentos:
        multiplier: O número a ser duplicado.
        additive: O número a ser aumentado em 10.
        
    Retorna:
        O resultado de (multiplier * 2) + (additive + 10)
    """
    doubled_value = multiplier * 2
    increased_value = additive + 10
    return doubled_value + increased_value

def get_even_numbers_up_to(limit: int) -&gt; List&#91;int]:
    """Gera uma lista de números pares até o limite especificado.
    
    Argumentos:
       limite: O limite superior (exclusivo) para os números pares.

   Retorna:
        Uma lista de números pares de 0 até (mas não incluindo) o limite.
    """
    return &#91;num for num in range(limit) if num % 2 == 0]

# Exemplo de uso
if __name__ == "__main__":
    # Cálculo do valor combinado
    result = calculate_combined_value(multiplier=5, additive=3)
    print(f"Calculated value: {result}")
    
    # Obtenção de números pares
    even_numbers = get_even_numbers_up_to(limit=5)
    print(f"Even numbers up to 5: {even_numbers}")</code></pre>



<p></p>



<h2 class="wp-block-heading">Princípios do Clean Code aplicados:</h2>



<ol start="1" class="wp-block-list">
<li><strong>Single Responsibility Principle</strong>: Cada função faz apenas uma coisa
<ul class="wp-block-list">
<li><code>calculate_combined_value</code>: apenas cálculos matemáticos</li>



<li><code>get_even_numbers_up_to</code>: apenas geração de números pares</li>
</ul>
</li>



<li><strong>Nomes significativos</strong>:
<ul class="wp-block-list">
<li>Os nomes das funções e parâmetros deixam claro seu propósito</li>
</ul>
</li>



<li><strong>Tipagem explícita</strong>:
<ul class="wp-block-list">
<li>Uso de type hints para documentar os tipos esperados</li>
</ul>
</li>



<li><strong>Docstrings completas</strong>:
<ul class="wp-block-list">
<li>Documentação clara do propósito, parâmetros e retorno</li>
</ul>
</li>



<li><strong>Simplicidade</strong>:
<ul class="wp-block-list">
<li>Cada função é simples e fácil de entender</li>



<li>Uso de<em> list comprehension </em>para clareza</li>
</ul>
</li>



<li><strong>Sem efeitos colaterais</strong>:
<ul class="wp-block-list">
<li>As funções apenas retornam valores (exceto pelo print no bloco principal)</li>
</ul>
</li>



<li><strong>Organização lógica</strong>:
<ul class="wp-block-list">
<li>Separação clara entre as operações matemáticas e a geração da lista</li>
</ul>
</li>
</ol>



<p>Esta versão é muito mais fácil de:</p>



<ul class="wp-block-list">
<li>Manter</li>



<li>Testar (podem ser testadas isoladamente)</li>



<li>Reutilizar (cada função tem um propósito específico)</li>



<li>Compreender (os nomes e estrutura são auto-explicativos)</li>
</ul>



<h2 class="wp-block-heading">Boas práticas que ensino desde o início</h2>



<ul class="wp-block-list">
<li>Nomes descritivos: Variáveis e funções devem ter nomes que expliquem seu propósito.</li>



<li>Funções pequenas: Cada função deve fazer uma coisa só, e fazê-la bem.</li>



<li>Evitar duplicação: Reutilizar código para evitar erros e facilitar manutenção.</li>



<li>Comentários úteis: Usar comentários para explicar “porquê”, não “o quê”.</li>



<li>Indentação e espaçamento: Código bem formatado é mais fácil de ler.</li>



<li>Testes simples: Introduzir a ideia de testar o código para garantir que funciona.</li>
</ul>



<h2 class="wp-block-heading">Conclusão</h2>



<p>Ensinar Clean Code desde os primeiros contatos com programação é um investimento que traz retorno imediato e a longo prazo. Ajuda o aluno a construir uma base sólida, evita maus hábitos e prepara para o mercado de trabalho. Mais do que ensinar a programar, ensino a programar bem — com clareza, organização e responsabilidade.</p>



<p>Se você está começando a aprender programação, ou é professor, experimente incorporar o Clean Code desde o início. Você vai se surpreender com a diferença que isso faz!</p>



<p>Se quiser, posso lhe ajudar a criar um roteiro para uma aula ou um workshop sobre Clean Code para iniciantes. Quer?</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3 formas de extrair valor mínimo e máximo em um array usando Javascript  !!spoiler!! a terceira forma é um filé.</title>
		<link>https://pabloramon.com.br/2023/05/13/3-formas-de-extrair-valor-minimo-e-maximo-em-um-array-usando-javascript-spoiler-a-terceira-forma-e-um-file/</link>
		
		<dc:creator><![CDATA[pabloramon]]></dc:creator>
		<pubDate>Sun, 14 May 2023 01:12:18 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ES6]]></category>
		<category><![CDATA[Javascript]]></category>
		<guid isPermaLink="false">https://pabloramon.com.br/?p=219</guid>

					<description><![CDATA[2:00 PM &#8211; Professor, estou querendo descobrir o valor máximo e o menor valor de um array de números. Já tentei usar essas funções max e min que tem na biblioteca Math e nada.vou mandar meu código pro senhor ver, ah desculpa enviar isso a uma hora dessa. let&#160;notas&#160;=&#160;[6.5,&#160;4.3,&#160;8.75,&#160;9,&#160;3];Math.max(notas);Math.min(notas); 2:01 PM A resposta que sai [&#8230;]]]></description>
										<content:encoded><![CDATA[
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>2:00 PM &#8211; Professor, estou querendo descobrir o valor máximo e o menor valor de um array de números. Já tentei usar essas funções max e min que tem na biblioteca Math e nada.<br>vou mandar meu código pro senhor ver, ah desculpa enviar isso a uma hora dessa.</p>
</blockquote>



<p> let&nbsp;notas&nbsp;=&nbsp;[6.5,&nbsp;4.3,&nbsp;8.75,&nbsp;9,&nbsp;3];<br><em>Math</em>.max(notas);<br><em>Math</em>.min(notas);</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p> 2:01 PM A resposta que sai é NaN. Help me!</p>
</blockquote>



<p>Já vi daqui o seu problema, jovem chimpanzé, e vou te ajudar a encontrar a melhor solução! Mas antes temos que considerar algumas coisas sobre as funções max e min da biblioteca Math:</p>



<ol class="wp-block-list">
<li>Ambas precisam que números sejam passados como argumentos, caso não seja passado nenhum, o resultado será -Infinity (max) ou Infinity(min).</li>



<li>Caso algum dos argumentos passados não possa ser convertido para número o retorno é <strong>NaN.</strong> <br></li>
</ol>



<p>No seu caso, você está tentando passar um array, vamos considerar três alternativas, e a última eu acho que é mais bacana.</p>



<h2 class="wp-block-heading">1 &#8211; Utilizando o método reduce()</h2>



<p>esqueleto do método: <br><strong>array.reduce((s, a)=&gt; &#8216;operação com s e a&#8217;);</strong></p>



<p>Em geral o método reduce() é utilizado para somar todos os elementos de um array. Mas, no seu caso, podemos utilizá-lo para comparar par por par de elementos do array e ficar só com o menor ao final. da seguinte forma:</p>



<div class="wp-block-group has-very-light-gray-background-color has-background is-layout-flow wp-block-group-is-layout-flow">
<p> notas.reduce((<em>a</em>,<em>b</em>)=&gt;<em>Math</em>.max(<em>a</em>,<em>b</em>))<br> notas.reduce((<em>a</em>,<em>b</em>)=&gt;<em>Math</em>.min(<em>a</em>,<em>b</em>)) </p>
</div>



<h2 class="wp-block-heading">2 &#8211; usando o apply : O  ES6/ES2015 ajudando de montão.</h2>



<div class="wp-block-group has-very-light-gray-background-color has-background is-layout-flow wp-block-group-is-layout-flow">
<p><em>Math</em>.max.apply(<em>Math</em>,&nbsp;<em>notas</em>);<br><em>Math</em>.min.apply(<em>Math</em>,&nbsp;<em>notas</em>); </p>
</div>



<p>Essa é a hora de você dizer &#8220;E era só isso?&#8221;. <br>Indica-se que deva ser usado em arrays com poucos elementos, mas o melhor está ainda por vir, o terceiro modo é um filezinho.</p>



<h2 class="wp-block-heading">3 &#8211; Três pontinhos do poder 😀</h2>



<p>Nobre, entenda que todo o problema residia no fato de você estar tentando desde o início empurrar um array pela goela do Math.max() e do seu irmão Math.min(). A partir de agora você vai espalhar os elementos do array dentro desse método utilizando o <strong>spread operator</strong>.</p>



<div class="wp-block-group has-very-light-gray-background-color has-background is-layout-flow wp-block-group-is-layout-flow">
<p><em>Math</em>.max(&#8230;notas) ;<br><em>Math</em>.min(&#8230;notas) </p>
</div>



<p>e voilá, meu amigo. Em outra postagem falarei mais sobre o poder do spread operator, usos, aplicações e sobre seu gêmeo o rest operator.<br></p>



<p><em>Todo o diálogo foi fictício porém baseado em fatos reais</em>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Instalar NodeJS no Ubuntu pelo terminal</title>
		<link>https://pabloramon.com.br/2020/12/22/instalar-nodejs-no-ubuntu-pelo-terminal/</link>
		
		<dc:creator><![CDATA[pabloramon]]></dc:creator>
		<pubDate>Tue, 22 Dec 2020 03:49:03 +0000</pubDate>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Rapidinhas]]></category>
		<guid isPermaLink="false">https://pabloramon.com.br/?p=301</guid>

					<description><![CDATA[O Node. js é um ambiente de execução Javascript, de código aberto usado para desenvolver aplicações server-side. Ou seja, com o Node.js é possível criar aplicações que podem ser executadas em uma ampla variedade de sistemas operacionais. Sem mais delongas, para instalar o Node no Ubuntu e já sair criando uns backends marotos use o [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>O Node. js é um ambiente de execução Javascript, de código aberto usado para desenvolver aplicações server-side. Ou seja, com o Node.js é possível criar aplicações que podem ser executadas em uma ampla variedade de sistemas operacionais.</p>



<p>Sem mais delongas, para instalar o Node no Ubuntu e já sair criando uns backends marotos use o <strong>apt </strong>para essa tarefa.</p>



<p>Para dar certo o que o tio vai mostrar nesse tuto voce deve se certificar que está usando o Ubuntu 20.XX. Abra o terminal e siga os passos que se seguem.</p>



<p><strong>Passo 1 &#8211; Atualizar a lista de versões dos pacotes disponíveis</strong></p>



<pre class="wp-block-code"><code>$ sudo apt update</code></pre>



<p><strong>Passo 2 &#8211; Instalar o Node.JS</strong></p>



<pre class="wp-block-code"><code>$ sudo apt install nodejs</code></pre>



<p>Passo 3 &#8211; checar se o Node está resalmente instadado, e qual a versão.</p>



<pre class="wp-block-code"><code>$ node -v</code></pre>



<p> Voilá, já está pronto para o uso do rebento!</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
