É muito difícil aprender C como autodidata?

Muito do Java q eu sei hoje aprendi como autodidata, agora eu sei bem mais por causa da facul, me ajudou no sentido de ter um norte, saber o q estudar, enfim… mas em relação a linguagem C é muito díficil aprender sozinho? q livros ou ebook’s vcs me indicariam?
ps: tenho uma boa base em algoritmo, programação estruturada…

Se tu aprendeu Java como autodidata, pode e com certeza consegue aprender C. Pelo que sei Java é uma das linguagens com curva de aprendizado mais longo… logo aprender C - apesar de ter estudado pouco de C - não deve ser mais complicado.

O que vc precisa é de dedicação, seriedade e compromisso consigo mesmo, caso queira ser um autodidata de sucesso :wink:

Abraço!

Sim.

http://www.java2s.com

Você quer saber do Czão ou do C++?

Possível sempre é. No meu blog tem um “roadmap C++” para quem quer aprender C++. Inclui até um e-book gratuito, com link para o download.
http://vinigodoy.wordpress.com/roadmap-c

Em todo caso, há uns tempos atrás postei o link para alguns e-books gratuitos tanto de C, quanto de C++, aqui:
http://www.programadoresdejogos.com/forum/viewtopic.php?p=50495#50495

Faça bom proveito! :wink:

A sintaxe do C é praticamente idêntica ao do Java (aliás C influenciou Java). As estruturas de controle são iguais. C tem mais opções de estrutura de dados, char é 8 bits, int pode ser 16 ou 32, long é 32, long long é 64, e todos tem versões sem sinal. C99 trouxe um novo tipo, bool, para booleanos. Strings são bem diferentes, no sentido que Java faz a mesma coisa, mas te protege dos detalhes de mais baixo nível.

O mais radical mesmo são os ponteiros, eles dão uma enorme liberdade e poder ao programador, ao ponto que o uso criativo deles pode implementar praticamente tudo visto em qualquer linguagem, mas como Ben Parker disse ao seu sobrinho, “com grandes poderes vêm grandes responsabilidades”, se você não se cuidar, você irá dar um tiro no pé.

Aprenda a implementar estruturas na memória, tipo ArrayList e LinkedList pelo menos, e operações básicas em cima delas (Lembre-se sempre de desalocar a memória quando terminar). Só pra exercício mesmo, para aprender como o modelo de memória funciona. Depois disso você pode usar as bibliotecas que fazem isso p/ vc.

[quote=isaiasfiap]Muito do Java q eu sei hoje aprendi como autodidata, agora eu sei bem mais por causa da facul, me ajudou no sentido de ter um norte, saber o q estudar, enfim… mas em relação a linguagem C é muito díficil aprender sozinho? q livros ou ebook’s vcs me indicariam?
ps: tenho uma boa base em algoritmo, programação estruturada…[/quote]

Livro:

“C Completo e Total”: É considerado uma referência para a linguagem C.

Neste site aqui:

http://www.ime.usp.br/~pf/algoritmos/

Tem algumas coisas muito legais sobre C. Eu particularmente curto muito esse material.

E tudo é possível aprender sento autodidata, ao menos na computação, nas demais áreas não sei! :smiley:

Olá.

Algumas sugestões:

Apostila da UFMG - tinha até uma lista de discussão -, veja se ajuda:
http://www.consiste.dimap.ufrn.br/~bruno/disciplinas/dim0321/apostilas/C_UFMG.pdf

Ótimo livro também, do criador do C Dennis Ritchie:
C: A Linguagem de Programação - eu particularmente tenho esse livro.

Mais informações:
http://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o)

Abraços.

[quote=lavh][quote=isaiasfiap]Muito do Java q eu sei hoje aprendi como autodidata, agora eu sei bem mais por causa da facul, me ajudou no sentido de ter um norte, saber o q estudar, enfim… mas em relação a linguagem C é muito díficil aprender sozinho? q livros ou ebook’s vcs me indicariam?
ps: tenho uma boa base em algoritmo, programação estruturada…[/quote]

Livro:

“C Completo e Total”: É considerado uma referência para a linguagem C.

Neste site aqui:

http://www.ime.usp.br/~pf/algoritmos/

Tem algumas coisas muito legais sobre C. Eu particularmente curto muito esse material.

E tudo é possível aprender sento autodidata, ao menos na computação, nas demais áreas não sei! :smiley: [/quote]

C completo e total!! Esse livro eh otimo era a minha biblia na epoca da faculdade hehehe, andava com esse livro debaixo do braco o tempo todo. :smiley:

Como muitos que conhecem do assunto já opinaram, gostaria de aproveitar esse post e fazer uma outra pergunta:
Quais seriam as vantagens e desvantagens de se aprender C ou C++ hoje em dia, levando em consideração uma pessoa que para ela C é a terceira letra do alfabeto?? :slight_smile:

[]'s.

Não amigo. Você poderá pegar um livro de C e aprender a linguagem numa boa. Acabará de ler e não verá muita aplicação para o que acabou de aprender (o que é possivel fazer).

Até aí não é dificil.

C, hoje em dia, é usado para aplicações mais complexas.

Ah, e C é ótimo para iniciantes em programação :slight_smile:


Bom, conhece vários paradigmas ? Já tem experiência ? Sabe programar ?
Entao C já não é apenas a terceira letra do alfabeto para você. Será “chato” aprende-la pois terá apenas que se acostumar com a sintaxe e alguns detalhes “low level”. Java, php, perl, c++ foram muito influenciadas por C(verá muitaaa familiaridade).

Att,

Renan

Para quem aí curte o C completo e total, só cuidado com alguns detalhes:
http://catb.org/jargon/html/B/bullschildt.html
http://www.lysator.liu.se/c/schildt.html

Hoje, se você não for trabalhar com software embarcado, não aprenda C.
Parta direto para o C++ iniciando, claro, pela parte estruturada.

As razões para isso são várias:

  1. É mais fortemente tipado;
  2. Você pode usar new e delete ao invés de malloc e free;
  3. Você não obtém vícios de programação C (tais como abuso do uso de ponteiros, macros, etc);
  4. Você poderá usar as classes da STL, tais como string, exceptions, listas, maps e os algoritmos para manipula-los;
  5. Depois você poderá evoluir para a OO e templates.

Ao ainda recomendo o livro do André Bueno. É nacional, gratuito e cobre bem a linguagem:
http://www.lenep.uenf.br/~bueno/ApostilaProgramacao/ApostilaProgramacaoCppv045.pdf

Para quem prefere material estrangeiro, dêem uma olhada em Accelerated C++. E, depois que adquirirem experiência não deixem de seguir o resto do roadmap ali no meu site. O que eu não recomendo para um iniciante é começar com o livro do Stroustrup, criador da linguagem. A menos que você já tenha muita experiência prévia com C… e com a construção de compiladores (os exemplos dele se baseiam nisso!)

Apesar da semelhança do nome, a técnica de programação usada nas duas linguagens hoje é muito diferente.
Como vocês podem ver nessa entrevista com o criador do C++:
http://www.artima.com/intv/goldilocks.html

Tanto é que ele acabou de preparar um livro para iniciantes (“Programming: Principles and Practice Using C++”), já que só agora ele teve a oportunidade de lidar com estudantes iniciantes.

Como o livro ainda não está disponível para venda (só em setembro!), não posso opinar sobre ele.

Leia a entrevista completa na InformIT:
http://www.informit.com/articles/article.aspx?p=1192024

Como foi dito em um tópico acima o mais Bacana são os ponteiros, mais cuidado, o uso de ponteiros é perigoso, você pode acabar tendo sérias dores de cabeça se não for cauteloso, mais existem muitas opções, é uma linguagem poderozissima, eu sei que não deveria informar isto mais vou dizer =P

se voce quiser deixar o seu código mais rápido voce pode adicionar Assembler, sobe o desempenho do seu programa em 150% se bem programado, só que assembler é bem mais baixo nivel que C

linguagem C tem alguns defeitos apenas:
É Estruturada
[color=red]É Baixo Nivel![/color](pode ser vantagem)
A Sintaxe é meio obscura nos pontos mais avançados…(mais isto pode ser uma vantagem tb)
Não é Multiplataforma

e sobre a historia do ben parke(“grandes poderes trazem grandes responsabilidades”). com C voce programa até coisas pro Linux e qualquer O.S Atual, ela infelizmente é utilizada em grande escala para fazer virus para o M$ Ruindow$, só não siga o “Lado negro da Força Padawan”(frase sábia de Yoda =P)

Vlw Galera! Muito obrigado pela ajuda!

É sempre bom contar com um pessoal crack no assunto, ou que pelo mesno está disponível para ajudar, já estou fazendo alguns algoritimos em C pra ir me acostumando a linguagem, tem algumas diferenças em termos de sintaxe para o Java, mas até aí tranquilo, o mais complicado é ter q ficar sem as API’s já prontas para serem usadas rss, eu já vi alguma coisa sobre biblioteca para C, mais é um pouco mais complexo, o negócio do ponteiro também é um pouco chato, mas agente se virá, instalei o debian no meu pc, e, pra quem programa, ele é até melhor do que o windows, dá pra você ver os códigos de alguns programas profissionais e isso sim ajuda pra caramba!

Pode não vir junto com o compilador da linguagem, mas deve ter mais bibliotecas neste mundo em C que em Java, mais ainda no mundo Linux que no Windows. O ambiente GNOME, por exemplo, é quase todo em C, e haja biblioteca dentro disso, é a ponta de agulha do iceberg.