Na faculdade estamos tendo aulas de C, e como já conheço um pouco a linguagem e já conheço programação, gostaria de sair do básico.
O professor recomendou o livro “Treinamento em Linguagem C”, da Victorine Viviane Mizrahi, e o “C Completo e Total”, do Herbert Schildt. Esses livros são bons?
Tem alguns outros livros que estou de olho:
:arrow: Programming in C - Stephen Kochan
:arrow: C Primer Plus - Stephen Prata
Qual desses eu compro? Vc’s teriam outras sugestões?
Eu já vi muita gente andando (no metrô) com o primeiro livro (o da sra. Mizrahi). Parece ser um livro daqueles que se usam nas escolas. Você não consegue arranjar esse livro emprestado? Muita gente deve tê-lo.
Os livros do Schildt (no meu tempo era um gordão que costumava andar em uma jaqueta de motoqueiro) são razoáveis.
Dica: se puder, aprenda direitinho C++ também. A linguagem C é relativamente simples, comparada com o C++ (que é bem mais complicada que o Java.)
Bom, eu “aprendi” C em um curso on-line da faculdade de engenharia elétrica da UFMG, em 2000. Já faz um baita tempo, e não lembro muita coisa. Mas não sou iniciante, e queria um livro que abrangesse uma porção razoável do C, para sair do básico.
Estou seriamente em comprar o C Primer Plus. Alguém conhece o livro?
Ele cobre o C++, mas acho que você já está preparado para aprender direitinho C++
Você disse que já conhece o básico do C, e cá entre nós, não há muito mais coisa no C que não seja o básico.
É por isso que essa linguagem é tão usada .
O que eu acho que é necessário no C é aprender as bibliotecas que você vai usar - no ambiente Windows, por exemplo, a Windows API, em Linux a GLIBC, e em Solaris e outros ambientes Unix as APIs do Unix.
Aprender essas bibliotecas é broca, e é óbvio que você nunca vai decorá-las, mas sim aprender a navegar na documentação delas.
http://mindview.net/CDs/ThinkingInC/beta3 - se seu inglês é bom e você tem uma boa conexão à Internet, é uma apresentação Flash da linguagem C. Provavelmente vai servir para refrescar a sua cabeça.
Concordo que não deve haver muita coisa além do básico no C. A questão é que a maioria das coisas que aprendi até aqui foi de forma auto-didata, e comecei a trabalhar com java dessa forma. Agora que estou fazendo uma facul, quero aproveitar para aprender essas coisinhas que às vezes esquecemos em um aprendizado auto-didata. Um exemplo dessas coisas é estruturas de dados. Seria legal implementar umas queue’s e tree’s em C, o que alguns livros abordam. O C Primer Plus aborda. Sei que isso é matéria de estruturas de dados, mas já seria um início.
C++ é legal, e bom de se conhecer. Está nos meus planos, mas por enquanto é o C mesmo.
C Completo e Total eu comprei e não gostei.[/quote]
Será que não há um livro com uma abordagem mais “moderna”? Sei lá, esse livro é do criador da linguagem, e foi escrito há bastante tempo… Mas não deixa de ser uma opção.
Eu também usei o livro do Kernighan & Ritchie. Acho que era uma edição bem antiga, mas em português mesmo. A única coisa que você pode estranhar nele é a sintaxe, que é a original. Exemplo:
abc (x, y, z)
double z;
int x, y;
{
return (int) (x + z) + y;
}
em vez da sintaxe moderna,
int abc (int x, int y, double z)
{
return (int) (x + z) + y;
}
IMHO, antes de ir para uma abordagem mais “moderna”, vá para uma abordagem que te mostre os fundamentos da linguagem. E esse livro é o menor de todos, bem condensado, a partir dele vc pode ter uma base para identificar um bom livro de C ou programação.
Por que ele mistura muitos conceitos, acaba sendo um livro de programação em C, com estruturas de dados, listas encadeadas, um interpretador de “C”, mas achei a didática horrivel. Valia a pena pra mim pq explicava algumas funções, ai eu descobri o google e estes sites:
[quote=thingol]Eu também usei o livro do Kernighan & Ritchie. Acho que era uma edição bem antiga, mas em português mesmo. A única coisa que você pode estranhar nele é a sintaxe, que é a original. Exemplo:
abc (x, y, z)
double z;
int x, y;
{
return (int) (x + z) + y;
}
em vez da sintaxe moderna,
int abc (int x, int y, double z)
{
return (int) (x + z) + y;
}
[/quote]
A 2a edição cobre a sintaxe a que estamos acostumados. Mesmo sendo antigo continua atual p/ quem quer aprender C.