<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Ruby como primeira linguagem de programação!</title>
	<atom:link href="http://valeriofarias.com/primeira-linguagem-de-programacao/feed/" rel="self" type="application/rss+xml" />
	<link>http://valeriofarias.com/primeira-linguagem-de-programacao/</link>
	<description>(Tecnologia + Negócios) = :)</description>
	<lastBuildDate>Fri, 11 May 2012 10:38:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Valério Farias</title>
		<link>http://valeriofarias.com/primeira-linguagem-de-programacao/comment-page-1/#comment-14</link>
		<dc:creator>Valério Farias</dc:creator>
		<pubDate>Wed, 18 Feb 2009 14:37:29 +0000</pubDate>
		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/23/primeira-linguagem-de-programacao/#comment-14</guid>
		<description>Tudo bem Sebastião.

Sua opinião é muito pertinente. Quando um motorista se acostuma com uma direção hidráulica, dificilmente quer voltar para o modelo anterior e como você falou pode acontecer o mesmo com o programador iniciante.

Nesse contexto do aprendizado eu particularmente prefiro começar com a visão top-down do que a bottom-up. Coisas gerais e mais simples primeiro, depois ir detalhando mais o problema. Mas isso é também muito relativo.

Mas eu acho que encontrei um parâmetro interessante para diminuir um pouco a relatividade:

Dividir o aprendizado em 2 momentos:

   1 - lazer e experimentação
   2 - desenvolvimento de produtos reais (softwares para pessoas usarem)

Nesse momento 1 de lazer e experimentação, o princípio é que se aprenda brincando. Atualmente com o Scratch já é possível aprender um pouco de lógica estruturada, programação orientada a objetos, passagem de mensagem a objetos sem precisar detalhar esses conceitos formalmente. Além de poder compartilhar o programa e olhar o código feitos por centenas de pessoas ao redor do mundo. Um objeto no Scratch é simplesmente uma figura, que vai executar ações(métodos) como &quot;mova 2 passos&quot;. Cada figura também tem suas características (propriedades). Nesse momento não é necessário conceituar, só é necessário arrastar o mouse e modificar os valores, variáveis, mudar posições dos comandos, enfim experimentar e aprender a lógica literalmente brincando. Nada de falar sobre a programação, simplesmente programar. &quot;Deixe eu puxar esse comando aqui pra ver o que acontece! Legal!&quot; A lógica vai sendo assimilada indiretamente.

No momento 2 é preciso partir de problemas reais: criar softwares que serão utilizados por pessoas. Criar software que funcione é a prioridade, é o mais importante. Não confudir com criar relatórios, artigos, ou outro documento descritivo que tem sua importância para a área científica, mas para o aprendizado de resolução de problemas reais de software isso pode prejudicar bastante. São realidades diferentes, velocidades diferentes ao ponto de ser quase impossível uma só pessoa ser incrivelmente bom desenvolvedor, gerente de produtos reais e ao mesmo tempo um renome na pesquisa científica. Nesse momento é preciso esclarecer isso para o aluno decidir que carreira seguir ou pelo menos compreender a complexidade de cada uma.

Voltando a focar somente no desenvolvedor. Os problemas reais tem diversos níveis de complexidade e portanto é importante que os problemas cheguem do mais simples e a complexidade vá aumentando aos poucos. Ao invés de se preocupar com um sistema inteiro o aluno pode se preocupar somente com uma tela, ou ainda começar com um sistema menor.

Na sequência dos problemas as serem resolvidos, o aluno vai lidando com ambientes e realidades diferentes. Quando tiver que lidar com situações de rede, aí sim poderá receber informações mais detalhadas sobre protocolos de comunicação e outras variáveis envolvidas, segurança, etc. Ele vai sentir necessidade de automatizar algumas tarefas, é aí onde entra os arquivos batch do windows e o shell script do linux. Vai lidar também com algumas telas para desktop e outras para Web. Com essa vivência o desenvolvedor iniciante vai captando o ponto chave da sua área: Existem vários contextos e o essencial é utilizar a linguagem adequada ao contexto que se está trabalhando. Se isso for bem assimilado ele vai compreender a importância de aprender várias linguagens e  de ler códigos de qualidade. Eu já passei por Pascal, C e Java(não domino para projetos reais) na graduação.  PHP, ASP, Javascript, Visual Fox Pro, além da linguagem de formatação CSS e agora estou experimentando Scratch, Ruby, o framework para web Ruby on Rails e a biblioteca javascript Jquery nas horas vagas.

Mas vocês podem perguntar e onde fica os problemas de IA, otimização, mineração. É como eu falei a medida que o problema for colocado, cria-se um universo propício para detalhar mais sobre ele, seja por livros, artigos, aulas com expecialistas, etc. Permitindo dessa forma que ele seja solucionado. Mas isso requer que o aluno já tenha a base anterior de resolver os problemas menos complexos. O princípio é partir sempre de um problema e a medida que for aparecendo as dificuldades, é sinal que é preciso fazer uma pausa para pesquisar fontes externas.

Isso são só princípios, gostaria de saber a opinião de vocês. E continuar essa discussão interessante.</description>
		<content:encoded><![CDATA[<p>Tudo bem Sebastião.</p>
<p>Sua opinião é muito pertinente. Quando um motorista se acostuma com uma direção hidráulica, dificilmente quer voltar para o modelo anterior e como você falou pode acontecer o mesmo com o programador iniciante.</p>
<p>Nesse contexto do aprendizado eu particularmente prefiro começar com a visão top-down do que a bottom-up. Coisas gerais e mais simples primeiro, depois ir detalhando mais o problema. Mas isso é também muito relativo.</p>
<p>Mas eu acho que encontrei um parâmetro interessante para diminuir um pouco a relatividade:</p>
<p>Dividir o aprendizado em 2 momentos:</p>
<p>   1 &#8211; lazer e experimentação<br />
   2 &#8211; desenvolvimento de produtos reais (softwares para pessoas usarem)</p>
<p>Nesse momento 1 de lazer e experimentação, o princípio é que se aprenda brincando. Atualmente com o Scratch já é possível aprender um pouco de lógica estruturada, programação orientada a objetos, passagem de mensagem a objetos sem precisar detalhar esses conceitos formalmente. Além de poder compartilhar o programa e olhar o código feitos por centenas de pessoas ao redor do mundo. Um objeto no Scratch é simplesmente uma figura, que vai executar ações(métodos) como &#8220;mova 2 passos&#8221;. Cada figura também tem suas características (propriedades). Nesse momento não é necessário conceituar, só é necessário arrastar o mouse e modificar os valores, variáveis, mudar posições dos comandos, enfim experimentar e aprender a lógica literalmente brincando. Nada de falar sobre a programação, simplesmente programar. &#8220;Deixe eu puxar esse comando aqui pra ver o que acontece! Legal!&#8221; A lógica vai sendo assimilada indiretamente.</p>
<p>No momento 2 é preciso partir de problemas reais: criar softwares que serão utilizados por pessoas. Criar software que funcione é a prioridade, é o mais importante. Não confudir com criar relatórios, artigos, ou outro documento descritivo que tem sua importância para a área científica, mas para o aprendizado de resolução de problemas reais de software isso pode prejudicar bastante. São realidades diferentes, velocidades diferentes ao ponto de ser quase impossível uma só pessoa ser incrivelmente bom desenvolvedor, gerente de produtos reais e ao mesmo tempo um renome na pesquisa científica. Nesse momento é preciso esclarecer isso para o aluno decidir que carreira seguir ou pelo menos compreender a complexidade de cada uma.</p>
<p>Voltando a focar somente no desenvolvedor. Os problemas reais tem diversos níveis de complexidade e portanto é importante que os problemas cheguem do mais simples e a complexidade vá aumentando aos poucos. Ao invés de se preocupar com um sistema inteiro o aluno pode se preocupar somente com uma tela, ou ainda começar com um sistema menor.</p>
<p>Na sequência dos problemas as serem resolvidos, o aluno vai lidando com ambientes e realidades diferentes. Quando tiver que lidar com situações de rede, aí sim poderá receber informações mais detalhadas sobre protocolos de comunicação e outras variáveis envolvidas, segurança, etc. Ele vai sentir necessidade de automatizar algumas tarefas, é aí onde entra os arquivos batch do windows e o shell script do linux. Vai lidar também com algumas telas para desktop e outras para Web. Com essa vivência o desenvolvedor iniciante vai captando o ponto chave da sua área: Existem vários contextos e o essencial é utilizar a linguagem adequada ao contexto que se está trabalhando. Se isso for bem assimilado ele vai compreender a importância de aprender várias linguagens e  de ler códigos de qualidade. Eu já passei por Pascal, C e Java(não domino para projetos reais) na graduação.  PHP, ASP, Javascript, Visual Fox Pro, além da linguagem de formatação CSS e agora estou experimentando Scratch, Ruby, o framework para web Ruby on Rails e a biblioteca javascript Jquery nas horas vagas.</p>
<p>Mas vocês podem perguntar e onde fica os problemas de IA, otimização, mineração. É como eu falei a medida que o problema for colocado, cria-se um universo propício para detalhar mais sobre ele, seja por livros, artigos, aulas com expecialistas, etc. Permitindo dessa forma que ele seja solucionado. Mas isso requer que o aluno já tenha a base anterior de resolver os problemas menos complexos. O princípio é partir sempre de um problema e a medida que for aparecendo as dificuldades, é sinal que é preciso fazer uma pausa para pesquisar fontes externas.</p>
<p>Isso são só princípios, gostaria de saber a opinião de vocês. E continuar essa discussão interessante.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sebastião Alves</title>
		<link>http://valeriofarias.com/primeira-linguagem-de-programacao/comment-page-1/#comment-13</link>
		<dc:creator>Sebastião Alves</dc:creator>
		<pubDate>Mon, 16 Feb 2009 20:16:35 +0000</pubDate>
		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/23/primeira-linguagem-de-programacao/#comment-13</guid>
		<description>Também já vi o mesmo comentário para python e acho realmente interessante, infelizmente ainda não consegui enxergar onde ela pode ser encaixada. Em algum momento o aluno terá que se deparar com linguagens mais cheia de regras e talvez seja mais complicado ensinar uma coisa mais complexa quando você se acostuma com uma coisa simples do que o contrário. Também existem opiniões mais extremistas como: não ensinar linguagem alguma, para que se prendam na lógica; ou ensinar diretamente a orientação a objetos e ignorar a programação estruturada(daqui a pouco vão querer ignorar a orientação a objetos e só querer ensinar orientação a aspectos). Somente experiências e o tempo mostrarão quem está certo.</description>
		<content:encoded><![CDATA[<p>Também já vi o mesmo comentário para python e acho realmente interessante, infelizmente ainda não consegui enxergar onde ela pode ser encaixada. Em algum momento o aluno terá que se deparar com linguagens mais cheia de regras e talvez seja mais complicado ensinar uma coisa mais complexa quando você se acostuma com uma coisa simples do que o contrário. Também existem opiniões mais extremistas como: não ensinar linguagem alguma, para que se prendam na lógica; ou ensinar diretamente a orientação a objetos e ignorar a programação estruturada(daqui a pouco vão querer ignorar a orientação a objetos e só querer ensinar orientação a aspectos). Somente experiências e o tempo mostrarão quem está certo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sebastião Alves</title>
		<link>http://valeriofarias.com/primeira-linguagem-de-programacao/comment-page-1/#comment-12</link>
		<dc:creator>Sebastião Alves</dc:creator>
		<pubDate>Mon, 16 Feb 2009 20:10:39 +0000</pubDate>
		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/23/primeira-linguagem-de-programacao/#comment-12</guid>
		<description>Também já vi o mesmo comentário para python e acho realmente interessante, infelizmente ainda não consegui enxergar onde ela pode ser encaixada. Em algum momento o aluno terá que se deparar com linguagens mais complicadas e talvez seja mais complicado ensinar uma coisa mais complexa quando você se acostuma com uma coisa simples do que o contrário. Também existem opiniões mais extremistas como: não ensinar linguagem alguma, para que se prendam na lógica; ou ensinar diretamente a orientação a objetos e ignorar a programação estruturada(daqui a pouco vão querer ignorar a orientação a objetos e só querer ensinar orientação a aspectos). Somente experiências e o tempo mostrarão quem está certo.</description>
		<content:encoded><![CDATA[<p>Também já vi o mesmo comentário para python e acho realmente interessante, infelizmente ainda não consegui enxergar onde ela pode ser encaixada. Em algum momento o aluno terá que se deparar com linguagens mais complicadas e talvez seja mais complicado ensinar uma coisa mais complexa quando você se acostuma com uma coisa simples do que o contrário. Também existem opiniões mais extremistas como: não ensinar linguagem alguma, para que se prendam na lógica; ou ensinar diretamente a orientação a objetos e ignorar a programação estruturada(daqui a pouco vão querer ignorar a orientação a objetos e só querer ensinar orientação a aspectos). Somente experiências e o tempo mostrarão quem está certo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luís</title>
		<link>http://valeriofarias.com/primeira-linguagem-de-programacao/comment-page-1/#comment-11</link>
		<dc:creator>Luís</dc:creator>
		<pubDate>Fri, 12 Sep 2008 21:28:52 +0000</pubDate>
		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/23/primeira-linguagem-de-programacao/#comment-11</guid>
		<description>O Pascal é importante em termos pedagógicos, especialmente quando alguem está a tomar contacto com linguagens de programação pela primeira vez. Isto porque &quot;obriga&quot; o progamador a efectuar declarações e a ter &quot;regras&quot;.</description>
		<content:encoded><![CDATA[<p>O Pascal é importante em termos pedagógicos, especialmente quando alguem está a tomar contacto com linguagens de programação pela primeira vez. Isto porque &#8220;obriga&#8221; o progamador a efectuar declarações e a ter &#8220;regras&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scratch - A Linguagem de Programação mais simples que já vi! &#171; Mundo web</title>
		<link>http://valeriofarias.com/primeira-linguagem-de-programacao/comment-page-1/#comment-10</link>
		<dc:creator>Scratch - A Linguagem de Programação mais simples que já vi! &#171; Mundo web</dc:creator>
		<pubDate>Mon, 28 Jan 2008 03:53:14 +0000</pubDate>
		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/23/primeira-linguagem-de-programacao/#comment-10</guid>
		<description>[...] de ensinar programação para crianças ou para quem nunca programou na vida. Fiz recentemente um post mostrando o ruby como uma candidata forte pela sua simplicidade e apontei como uma possibilidade em cursos de [...]</description>
		<content:encoded><![CDATA[<p>[...] de ensinar programação para crianças ou para quem nunca programou na vida. Fiz recentemente um post mostrando o ruby como uma candidata forte pela sua simplicidade e apontei como uma possibilidade em cursos de [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Como a Linguagem Ruby pode ajudar o Capitão Morrimento &#171; Mundo web</title>
		<link>http://valeriofarias.com/primeira-linguagem-de-programacao/comment-page-1/#comment-9</link>
		<dc:creator>Como a Linguagem Ruby pode ajudar o Capitão Morrimento &#171; Mundo web</dc:creator>
		<pubDate>Thu, 29 Nov 2007 06:42:19 +0000</pubDate>
		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/23/primeira-linguagem-de-programacao/#comment-9</guid>
		<description>[...] a Linguagem Ruby pode ajudar o Capitão&#160;Morrimento  Tudo bem Pessoal, já tinha feito uma comparação do ruby com o Pascal anteriormente e agora recebi um pedido para ajudar o Capitão Morrimento a selecionar seus [...]</description>
		<content:encoded><![CDATA[<p>[...] a Linguagem Ruby pode ajudar o Capitão&nbsp;Morrimento  Tudo bem Pessoal, já tinha feito uma comparação do ruby com o Pascal anteriormente e agora recebi um pedido para ajudar o Capitão Morrimento a selecionar seus [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dimas Jr.</title>
		<link>http://valeriofarias.com/primeira-linguagem-de-programacao/comment-page-1/#comment-8</link>
		<dc:creator>Dimas Jr.</dc:creator>
		<pubDate>Thu, 22 Nov 2007 23:49:14 +0000</pubDate>
		<guid isPermaLink="false">http://valeriofarias.wordpress.com/2007/08/23/primeira-linguagem-de-programacao/#comment-8</guid>
		<description>1) Sacanagem com o Pascal (amava ele!), o *uses crt;* e o *clrscr;* não deveriam estar no exemplo! Afinal, limpar a tela não entra na questão.

2) Acho interessante que uma pessoa que trabalhe com linguagens de programação conheça diversas linguagens. É como um lingüísta.
Linguagens diferentes, abordagens diferentes para um mesmo problema.

3) Os mais tradicionais por algum motivo deixaram de acompanhar a evolução do objeto de estudo. É humano resistir as mudanças [e desumano programar em VB]... vejam as pessoas casadas! =)

Acho que Platão seria um ótimo desenvolvedor...</description>
		<content:encoded><![CDATA[<p>1) Sacanagem com o Pascal (amava ele!), o *uses crt;* e o *clrscr;* não deveriam estar no exemplo! Afinal, limpar a tela não entra na questão.</p>
<p>2) Acho interessante que uma pessoa que trabalhe com linguagens de programação conheça diversas linguagens. É como um lingüísta.<br />
Linguagens diferentes, abordagens diferentes para um mesmo problema.</p>
<p>3) Os mais tradicionais por algum motivo deixaram de acompanhar a evolução do objeto de estudo. É humano resistir as mudanças [e desumano programar em VB]&#8230; vejam as pessoas casadas! =)</p>
<p>Acho que Platão seria um ótimo desenvolvedor&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

