FAQ da unidade curricular de Introdução à Programação
Geral
1. Qual o objectivo da unidade curricular?
A unidade curricular pretende começar a ensinar programação
de computadores, partindo do príncípio que o aluno(a) nunca programou.
Assume-se, no entanto, que tem os conhecimentos básicos de utilização de computadores e principalmente alguma maturidade matemática ao nível da que se obtém com a conclusão do ensino secundário ou profissional.
Em termos de Engenharia Civil, poderíamos dizer, que vamos começar a
aprender a fazer pontes partindo do príncipio que o aluno já sabe
atravessar uma!
2. Programar é difícil?
Programar computadores é difícil. Programá-los bem, é muito difícil. É
preciso muito trabalho, motivação, gosto, sacrifício, e,
principalmente, é preciso programar muito. Mesmo
muito. Vários anos, muitas horas por dia. Tal não deve ser motivo de
espanto. O mesmo acontece a quem quer ser competente em qualquer
actividade mais exigente. Claro que as capacidades inatas são muito
importantes, mas elas não chegam. Basta ver a quantidade de treino que
um pianista, um jogador de xadrez, um futebolista, um
piloto, necessitam até atingirem um bom nível de competência.
Para um programador de computadores é a mesma coisa: é preciso ter
algum jeito, gostar muito, e treinar/trabalhar muito mais. Vale a pena
ler o texto "Teach
Yourself Programming in Ten Years" sobre o mito do
"programador em 21 dias".
3. Se é assim tão difícil e demorado, será que o
curso serve para alguma coisa?
Claro que sim! Um curso de (Engenharia) Informática é uma óptima
preparação para quem quer ser um bom programador. Além da programação
propriamente dita, permite compreender de forma estruturada o "Mundo"
da Informática. O importante é trabalhar muito e esforçar-se ao máximo
para obter os melhores resultados possíveis. Não apenas pelas notas
propriamente ditas, mas principalmente porque só trabalhando muito e
esforçando muito a cabeça, se aproveitará totalmente o curso. O curso é
um guia que nos indica o que devemos estudar. Depois é "só" estudar e
trabalhar o mais e melhor possível. Só assim se adquirirá o maior
benefício de um curso de Informática (e não só!): ficar mais apto a
aprender coisas novas.
4. Coisas novas? Então o curso não é para eu ficar a
saber tudo o que é preciso?
Claro que não! Nenhum curso pode ensinar "tudo o
que é preciso". Em Informática tal é ainda mais verdadeiro pois é
necessário aprender coisas novas a toda a hora (veja o artigo "Are
too many programmers too narrowly trained" para mais sobre
este tema). Já pensou que quando os seus professores foram
estudantes ninguém lhes ensinou Java (a linguagem que vai utilizar
nesta unidade curricular)! Pois é, nem sequer existia. E mesmo que
existisse, poderiam muito bem ter aprendido outra(s) linguagens. Mais
uma vez o mais importante é aprender a programar. Quanto a
linguagens... quanto mais linguagens (realmente) diferentes melhor.
5. Então o que é que devo
aprender?
Deve compreender bem conceitos que servem para compreender muitas
"novidades" que vão surgindo. Por exemplo, quem já sabe trabalhar com
um telemóvel facilmente aprende a trabalhar com um novo modelo que
surja. Mesmo que este modelo tenha uma nova funcionalidade (invente
uma!). Na verdade, a maioria das habilidades serão idênticas
às que o antigo modelo já tinha, embora possam ser mais
rápidas, mais coloridas ou estarem num menu diferente. Quem sabe
trabalhar com um sabe trabalhar com muitos e rapidamente aprende a
trabalhar com um novo. Os tais conceitos são conhecidos (chamada
telefónica, agenda, sms, e as outras coisas todas que ninguém utiliza
;-)).
6. Conceitos? E o
programa/linguagem/... (prencher com a sua preferência)?
Num curso de formação aprende-se a trabalhar
com tecnologia/linguagem/ferramenta
específica (por exemplo, a linguagem ABC versão 3.4.2). Um curso
superior não é um desses cursos de formação, nem sequer um conjunto
desses cursos. Num curso superior, a ênfase é nos tais conceitos que
servirão para mais facilmente aprender a trabalhar com muitas (todas?)
as tecnologias/linguagens/ferramentas específicas de que venha
a necessitar. Claro que pelo caminho aprenderá várias
dessas tecnologias/linguagens/ferramentas mas esse não é o
objectivo principal. É apenas a consequência.
7. Porque é que os sites e livros recomendados são em
inglês?
Porque quem escolheu não conhece nenhuns em português que julgue serem
melhores para os objectivos da unidade curricular.
8. Mas isto é um curso de Informática. Não é um curso
de Inglês! E se eu não souber inglês?
Alguém que pretende ser um engenheiro informático, tem de
aprender inglês e quanto mais depressa melhor. A língua inglesa é,
provavelmente, o conhecimento extra-curricular mais importante que um
aluno de Informática deve obter. Para tal o melhor é ler em inglês.
A Internet é obviamente a fonte mais óbvia, mas as revistas e livros
em papel também são uma boa (e adicional) opção.
9. Conhecimento extra-curricular? Que dizer que além
do curso vou ter de aprender mais coisas??
Claro que sim! Os conhecimentos que se obtém ao ser aluno de um curso
superior (ou até outros) não se devem restringir aos temas apresentados
nas unidade curriculars. Há muitas outras coisas para aprender/descobrir que
não são leccionadas nas aulas ou o são de forma incompleta! Entre elas,
e no caso de alunos deste curso, estão, por exemplo: a língua inglesa,
utilização de software (processadores de texto, folhas de cálculo),
procurar conteúdos na Internet, montar e desmontar computadores, quais
os grandes fabricantes de computadores, História da Informática e toda
a cultura geral possível. Para tal é preciso ler, ler muito. Revistas
portuguesas e estrangeiras. Livros portugueses e estrangeiros.
Conversar, conversar sobre informática, mas também sobre ciência,
filosofia, política, etc., etc..
10. Pois. Mas voltemos ao que interessa. O que é que
devo fazer para aprender o mais possível nesta unidade curricular?
- Frequentar as aulas, ou, pelo menos, fazer todos
os trabalhos propostos nas aulas.
- Tentar, tentar e tentar resolver cada problema proposto. Só
depois de ter uma solução ou depois de ter desistido após um esforço
honesto, deve estudar eventuais soluções que estejam disponíveis.
Perceber soluções é muito mais fácil do que resolver problemas. Mesmo
muito mais. Não se engane lendo soluções sem tentar, tentar e tentar
resolver cada problema.
- Estudar a solução obtida e ficar com a certeza que a
percebeu completamente. Refazer o programa se tiver dúvidas. Fazer
outros programas parecidos também ajuda a compreender o programa em
causa.
- Programar muito.
- Estudar pelos folhas, guias práticos da unidade curricular, sites
propostos e, eventualmente, pelos livros à medida que vai
sendo dada a matéria.
- Ser ambicioso! Logo que esteja feito o que é pedido, tentar
sempre fazer mais e melhor. Todo o programa pode ser
melhorado.
- Trabalhar fora das aulas. É perfeitamente possível fazer a
unidade curricular sem vir a aula nenhuma, trabalhando
fora das aulas. É muito
díficil fazer a unidade curricular vindo a todas as aulas mas sem trabalhar
fora
delas. Pode trabalhar na ESTIG, na biblioteca do IPBeja, ou noutros locais desde que tenha um portátil.
I am always ready to learn,
although I do not always like being taught.
Winston
Churchill
- No entanto, ir às aulas ajuda e muito! Claramente, o melhor
é trabalhar nas aulas e fora delas.
- E, principalmente, ESTUDAR E FAZER OS GUIAS E TRABALHOS
DESDE O INÍCIO das aulas, esclarecendo TODAS as dúvidas à medida que
elas aparecem. Utilize o fórum da unidade curricular e lembre-se que todos os
docentes têm um horário de atendimento aos alunos que pode e deve ser
aproveitado ao longo do semestre sempre que considere o fórum pouco
adequado. Mas lembre-se que o fórum permite que todos beneficiem das
perguntas e respostas.
11.
E
qual a melhora maneira de
aprender pouco e/ou não fazer Introdução à Programação?
Infelizmente existem
várias formas bem conhecidas de não fazer Introdução à Programação prejudicando
assim
todo o curso, mesmo que não pareça... Aqui estão as mais utilizadas:
- Seguir
o conselho dos colegas que afirmam que não vale pena porque
ninguém faz as programações à primeira. Tal só significa que, muito
provavelmente, eles
não as fizeram.
Keep away from people who try to
belittle your ambitions. Small people
always do that, but the really great make you feel that you, too, can
become great.
Mark Twain
- Pendurar-se
no colega de grupo que até percebe disto e ficar a assistir. Como já
deve ter reparado tal atitude, além de ser pouco ética é má ideia para
aprender, na verdade é mesmo um tanto ou quanto estúpida.
- Copiar um trabalho parecido de outro ano, de outro colega
ou da Internet: Tem os mesmos defeitos da anterior.
- E
a razão principal: pensar que não é capaz. Se se convence que não é
capaz, então, muito
provavelmente, não vai mesmo ser capaz... Só com confiança poderá
atingir os seus objectivos.
Utilidades
12. Devo comprar o livro. Onde o posso fazer?
Não é obrigatório mas é boa ideia desde que depois o leia! É uma forma
de ver mais exemplos de código. O livro também será útil para Programação
Orientada pelos Objectos (do segundo semestre). O melhor local é na Internet. Em http://www.addall.com/
pode comparar os preços entre algumas dezenas de livrarias online.
Uma das melhores é a amazon
no Reino Unido.
Beja, 30 de Setembro de 2007 (revisto em 17 de Setembro de 2015)João Paulo Barros