O que deve saber um programador – nível básico?
Eu tinha programado de escrever outra coisa hoje, mas por conta de alguns comentários que fiz ontem em sala de aula resolvi postergar o outro post e escrever hoje sobre programação, coisa que já tem um tempo que não fazia. Eu gosto muito de programação, comecei cedo nisso e sempre tive dificuldade de entender porque as outras pessoas (principalmente alunos de informática) não tinham tanto apreço por essa atividade tão interessante (e as vezes até divertida.) Embora tenha dificuldade já consegui aceitar que nem todas as pessoas são iguais e portanto algumas não vão gostar de programação.
Mas para quem gosta, sei que a estrada para se tornar um bom programador as vezes é muito confusa porque temos tantas opções que fica difícil decidir para onde seguir. E é para você caro leitor desorientado que eu vou colocar uma lista de coisas que são fundamentais para a vida de um programador
Vamos fazer uma observação antes, estou chamando de nível básico o programador que já fez o curso de introdução a algoritmos no primeiro período da faculdade, ou seja, ele já conhece os conceitos de uma linguagem ou de uma pseudo-linguagem do tipo: laços, estruturas de controle, estruturas de decisão, declaração de variáveis, tipos de variáveis. Se esse não for o seu caso, não desanime, eu vou colocar em breve o passo zero da programção.
Então vamos começar com os conhecimentos de um programador nível básico:
- Saiba uma linguagem de programação – ok, essa é tão óbvia que talvez não devesse figurar aqui, mas o que eu digo por saber é *realmente* saber uma (na verdade várias, mas uma de cada vez) linguagem de programação, estudar o manual, saber como os programas daquela linguagem se comportam, quais as características, enfim, conhecer os detalhes.
- Saiba usar um ambiente integrado (IDE) – coloquei um post aqui que fala da importância dessas ferramentas, elas tornam o programador mais produtivo (se ele souber usar o máximo de ferramentas possível claro.)
- Saiba criar funções (ou métodos) – isso é muito importante para modularizar o seu código, entenda também como acontece a passagem de parâmetros e o retorno de valores na sua linguagem de programação de trabalho. Em Java por exemplo os parâmetros sempre são passados por cópia, em C já podemos passar endereços de memória, essas coisas fazem muita diferença tanto no desempenho quanto no resultado do programa.
- Saiba trabalhar com arquivos – sim, isso é uma coisa que você vai fazer muito, abrir arquivos, ler arquivos, escrever em arquivos, gravar no final de arquivos, gravar no meio do arquivo, copiar de um arquivo para outro, e se possível conhecer alguns formatos de arquivo (conhecer no sentido de como o arquivo é estruturado.)
- Saiba formatar datas – outra tarefa muito comum, e geralmente enjoada nas mais diversas linguagens, é trabalhar com datas. Imprimir a data atual, contar quantos segundos passaram, calcular uma data futura (que dia será daqui a 43 dias?) e calcular uma idade são ótimos candidatos.
- Saiba manipular strings – strings são conjuntos de caracteres tais como nomes, endereços, frases. É muito útil (mentira, é VITAL) saber manipular isso, fazer uma substring, verificar se uma string está contida na outra, dividir uma string em várias baseado em algum caracter separdor tipo vírgula ou espaço. Para tudo isso existem funções prontas.
- Conheça a biblioteca padrão da linguagem – acredite se quiser, quando uma linguagem é criada, junto com ela são oferecidas muitas funções (ou métodos) prontos para fazer muitas das coisas que precisamos, as vezes vejo as pessoas recriando funções que estão prontas só porque não leram o manual. Todas as linguagens tem funções para matemática, manipulação de strings, data, formatação e por aí vai.
- Conheça os principais algoritmos – sim, quando não temos a função pronta para alguma coisa que queremos fazer direto na linguagem, muitas vezes existe o algoritmo para realizar aquela tarefa, mas se você não pegar um livro de algoritmos e pelo menos souber quais existem e para que servem fica mais complicado de resolver problemas! Algoritmos de ordenação, estruturas de dados, buscas são imprescindíveis. Saber os algoritmos de cabeça é muito melhor, mas nem sempre dá para guardar todos, o mínimo então é saber duas coisas:
- Que o algoritmo existe
- Para que ele serve
- Aprenda a usar algum framework de interfaces – sim, pode parecer que não, mas os usuários precisam de algum tipo de tela para mexer no seu programa. Existem vários tipos de bibliotecas para isso, e você precisa conhecer algum, algumas vezes eles vêm embutidos na linguagem, como é o caso do Java que tem o AWT e o Swing, as vezes você precisa usar uma biblioteca externa como é o caso do C++, você pode até mesmo usar uma biblioteca de interface via web, mas isso é um outro tipo de aprendizado.
Com esses 9 passos você terá uma vida de programação mais fácil, é claro que ainda existem muitos outros tópicos que eu considero importantes, mas aí já é para o próximo nível de programação (intermediário) que vai ficar para um próximo post.
Não pare de ler, estude outras linguagens, isso ajuda a expandir a forma de pensar nos problemas. Como consideração final fica uma lista de algoritmos e estruturas de dados obrigatórios:
- Estruturas de dados
- Array (Vetor)
- Matriz
- Árvore Binária
- Lista encadeada
- HashTable (ou HashMap)
- Algoritmos
- BubbleSort (esse é só para conhecer mesmo…)
- Merge Sort
- Busca Binária


Parabéns pelo post, pelo site e principalmente pela clareza e versatilidade de sua escrita, professor !
Então, primeiramente, sou seu aluno de POO da Unicarioca Méier (segunda – feira), e achei muito interessante seu interesse fervoroso pela programação e pelo universo digital de uma forma geral.
Partindo do princípio, eu tinha muito interesse em programação, antes mesmo de ingressar na faculdade, pois fiz um curso de Oracle, cru, ou seja, sem conhecer nada de linguagem de programação e muito menos de modelagem de dados..rs.. eu sei, sou louco…mas enfim..não me assustei com aquela chuva de informação….Tá, vai, na parte de administração e otimização de banco eu boiei muitooo..mas enfim…não me arrependo.
Apesar de saber que SQL é uma linguagem de pesquisa voltada para banco de dados relacionais, gostei da forma de raciocinar e de ver alguma “coisa” acontecer quando tentamos estabelecer comunicação com uma máquina.
Meu leve desinteresse pela programação surgiu exatamente [...] quando fui apresentado ao “Pascal”[...].
No 2º período, fui apresentado a “C” e apesar do pouco tempo [...], já me fez sorrir um pouco e percebi que nem tudo está perdido.
Resumindo pra não parecer uma consulta psicológica..hehe.. O senhor carrega consigo a missão de me integrar ao mundo da programação.rs. Tenho certeza que vc conseguirá, pois tudo se torna mais fácil quando se ama o que faz.
Um abraço,
Wesley,
sem problemas
estamos aí pra isso, vou fazer tudo que estiver ao meu alcance para ajudar nesse processo. De qualquer forma vou indicar alguns textos no site que podem iluminar a jornada.
Abraços
Paulo
Como vai, Paulo? Show de bola este post e todo o site! Sou seu Aluno de Introdução a OO, na Unicarioca Méier, às segundas, 18:45h. No final da aula, na semana passada, eu havia falado contigo sobre um curso de JAVA que já comecei, mas vi realmente que teria sido melhor eu esperar um pouco, ainda mais depois da dificuldade que tenho tido lá, pois tive a necessidade de faltar duas aulas e não estou conseguindo acompanhar a turma. Isso havia me desmotivado um pouco. Entretanto, em nossa primeira aula, na semana passada, a conversa que tivemos (professor e turma) me motivou novamente. É claro que a parte dos valores (R$) me motivou, rsrsrs, mas o que mais me motivou foi ver sua paixão pela programação. Não me vejo fazendo outra coisa pra trabalhar (bem, se pudesse voltar no tempo, tentaria com mais afinco ser um jogador de futebol ou iria para a música (profissionalmente), se no Brasil isso recompensasse bem, rsrsrs). Estou dizendo isso, porque são duas coisas que gosto muito, mas também há outra que conheci há alguns anos: Programação. É a única área que realmente gosto na informática e com a qual me vejo tralhando. Sei que poderei contar contigo para continuar me motivando e aos outros alunos também nesse caminho árduo, mas que enfim, é o que escolhi, é o que quero. Abraços e até a próxima aula.
Que bom que nosso papo serviu de apoio Jonathan, fico feliz em poder ajudar os alunos. A programação não é um caminho tão tortuoso como alguns pregam por aí, muito pelo contrário é um caminho baseado em lógica