Novato ensino auto python, o que mais eu deveria estar aprendendo? [fechadas]

StackOverflow https://stackoverflow.com/questions/805720

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu sou um novato à programação. Eu tive um semestre de ciência da computação (usamos java). Eu tenho um A no curso e foi capaz de fazer tudo atribuído, no entanto eu não tenho certeza se eu realmente entendi. Eu ignorei o texto e aprendeu, olhando para exemplos de programas e julgamento, em seguida, e erro. Eu estava à frente da classe, exceto por dois caras que vieram em saber Java ou outra linguagem OOP.

Eu gostaria de aprender Python. Eu também estou indo para construir um segundo PC a partir de peças extras que tenho e uso linux. Basicamente, eu quero melhorar o meu conhecimento de computadores. Isso é a minha motivação.

Agora em aprender python existem bons livros de teoria de programação que seriam úteis? Ou eu deveria ler-se sobre mais sobre como os computadores funcionam em níveis mais baixos? Eu não acho que eu sei o suficiente para fazer a pergunta que eu quero.

Eu acho que para torná-lo simples, eu estou perguntando o que eu deveria saber para aproveitar ao máximo a aprender python. Isto não é para uma carreira. Esta é a partir de um desejo de saber. Eu não sou mais uma ciência computador principal (que também não tem nenhum aplicações diretas para minha carreira antecipado.)

Eu não estou olhando para aprender em "30 dias" ou "uma semana" ou o que quer. Assim, a partir de um nível muito básico é bom para mim.

Obrigado antecipadamente. Eu fiz uma pesquisa e não chegou a encontrar o que eu estava procurando.

UPDATE: Graças para todos os grandes conselhos. Eu encontrei este site no trabalho e não poderia encontrá-lo no meu computador de casa, então eu estou apenas começando a ler agora.

Foi útil?

Solução

A minha recomendação é sempre a começar pelo alto nível de abstração. Você não precisa saber como portas lógicas funcionam e como você pode usá-los para construir uma CPU - É uma coisa legal, mas de coisas legais que faz um muito mais sentido uma vez que você brinquei nos níveis mais elevados. Python é, portanto, uma excelente escolha como uma ajuda de aprendizagem.

Como pensar como um cientista da computação: Aprendizagem Com Python está disponível na Internet e é uma excelente introdução aos conceitos de alto nível que fazem computadores ir. E é ainda específico do Python.

Se você estiver olhando para ter seu cérebro virou dentro para fora, SICP vai fazer um bom trabalho. Eu não recomendo-o como um primeiro texto, embora; É pesado indo.

Ambos os livros são de alto nível. Eles não vão te ensinar nada sobre os detalhes de baixo nível, como estruturas de memória ou o que uma CPU realmente faz, mas isso é algo que eu iria reservar para mais tarde qualquer maneira.

D'A

Outras dicas

Especificamente para a parte Python da sua pergunta eu posso recomendo http://www.diveintopython3.net/ por Mark Pilgrim. Isso é gratuito e muito bem estruturado.

Python é uma escolha boa, você vai se divertir!

http://www.pythonchallenge.com/

Eu penso que este desafio é perfeito para entrar em contato com os principais pontos fortes python e há um fórum agradável, com um monte de interessting Python Threads para cada nível.

Uma grande parte destas depende do que o seu objetivo geral é para aprender Python. Você vê-la como a aprendizagem de uma segunda língua ou obter uma melhor compreensão dos computadores e como usar eficazmente uma linguagem de programação?

Do que parece que você quer ganhar uma melhor compreensão sobre computadores e ser um programador melhor. Aprender uma nova linguagens como Python provavelmente não irá ajudá-lo a este respeito. Eu ainda recomendo aprender Python se você estiver interessado, mas uma vez que você tenha aprendido uma linguagem de programação, tanto de aprender uma nova língua está ficando familiarizado com os tipos de sintaxe e de dados (geralmente).

Você tinha mencionado que você não tinham certeza sobre a compreensão do material na classe que você tomou. Se você sentir que você não entender os conceitos fundamentais (como loops, classes, etc), então aprender Python vai ajudar a sua compreensão da programação como a maioria dos livros / guias rever estes conceitos ( Aprender Python, 3rd Edition deve ajudar com isso). Se você entender esses conceitos, mas você não tem certeza de como aplicar estes conceitos, então a minha recomendação seria para aprender sobre estruturas de dados e algoritmos comuns (por exemplo, classificação, pesquisa, etc).

Falando da experiência pessoal, eu não sabia como aplicar o que aprendi com a classe de programação introdutório para projetos de programação pessoais. Aprender sobre estruturas de dados de uma classe ajudou a solidificar esses conceitos que eu tinha aprendido anteriormente, fornecendo estruturas algoritmos / dados que construir fora deste conhecimento anterior. Esta classe também permitiu-me a pensar diferentemente sobre problemas em termos de utilizar estas estruturas de dados.

Para saber mais sobre os diferentes tipos de estruturas de dados, consulte: http://en.wikipedia.org/wiki/List_of_data_structures . Normalmente, cada estrutura de dados é útil para um propósito específico (árvores de busca, por exemplo binários são bons para pesquisar informação classificada). Infelizmente, eu não tenho quaisquer recomendações do livro (a nossa classe não usar um livro). Googling "Estruturas de Dados" deve ser um ponto de partida bom.

As estruturas de dados também me fez pensar sobre o quão eficiente uma implementação é. A "complexidade" de um algoritmo determina quanto tempo um determinado pedaço de código necessário para executar. Isto torna mais fácil para comparar outras implementações e determinar o que é melhor.

Eu também gostaria de comentar que, quando se trata de aprender conceitos de computador, a melhor maneira de aprender é fazendo. Um livro / classe só pode explicar muito, eo resto você tem que aprender por conta própria. Cada pessoa aprende de maneira diferente, ea programação é uma forma de levar o material que você ler e pensar sobre isso de uma forma que é melhor compreendido por você.

Espero ter respondido sua pergunta. Neste ponto, você realmente não precisa se preocupar com o hardware subjacente. Isso é útil para saber se você está pensando em fazer isso como uma carreira (que não são), ou se quiser fazer otimizações específicas para o hardware que está em execução no (nesse caso, você não iria querer usar Python) . Python é uma boa escolha para aprender sobre estruturas de dados, uma vez que implementa um monte deles para você, mas é importante saber o que eles são usados ??para.

Se você ainda está na escola, ter uma aula de estruturas de dados e ver o que você pensa dele. Se você gostar, eu aconselho a reconsiderar o papel da programação / CS em sua carreira. Você não tem que grande nele, mas considere um menor ou, pelo menos, uma posição que faz uso dessas habilidades que você está aprendendo. Digo isto porque, apesar deste não ser o seu principal, você está interessado em compreender como funciona um computador e tomando iniciativas como aprender Python, construir seu próprio computador, e instalar Linux.

Se você tiver alguma dúvida, não hesite em perguntar. Boa sorte!

Python é uma linguagem de alto nível, por isso não lhe daria benefício muito direta para aprender como os computadores funcionam nos níveis mais baixos.

Não me entenda errado - Eu acredito fortemente que a operação de baixo nível de um computador, por exemplo, montagem linguagem e hardware, é algo que todo bom programador deve estar familiarizado com, porque ele faz o ajudar a programar de forma mais eficaz em qualquer linguagem que você está usando, de alto nível ou de baixo nível. Mas isso não vai fazer muita diferença em seu Python codificação até que você tenha obtido um pouco de experiência. Se você está apenas começando com o Python, eu sugiro ficar longe da operação de baixo nível de computadores e concentrando-se sobre os conceitos básicos de Python para agora. Uma vez que você está confortável com isso, você pode passar para algo como C e, em seguida, pode ser apropriado para começar a olhar para algumas coisas de baixo nível.

Como para o que você deve saber ... não muito, eu acho. Python é uma grande linguagem de começar a programar em. Ele mantém as coisas simples simples, mas é bastante rico para deixá-lo trabalhar o seu caminho até um alto nível de complexidade. Eu sugiro olhando provavelmente um tutorial; aquele Acontece que eu sei é no site Python , mas eu não estou reivindicando é necessariamente o melhor para você. Pesquisa A Google deve dar-lhe muito para começar a usar.

Eu comecei Python (como a minha primeira linguagem de programação) há alguns meses. Eu recomendaria Aprender Python, por Mark Lutz para começar. Mas tenha em mente que a chave para aprender bem é ter a mente aberta, paciente e disposto a trabalhar e procurar por coisas que você não entende.

Divirta-se!

Eu sugeriria olhar para o livro online em http://www.diveintopython.org/ para aprender python.

Quanto aos projetos de python, gostaria de tentar aprender a Framework Django. É um quadro para a construção de aplicações web. Eles têm uma grande tutorial para começar a trabalhar com ele. Isso também dar-lhe experimentar a construção de um servidor web em uma máquina Linux.

melhorar o meu conhecimento de computadores

Bem, o que exatamente quer dizer com isso? Python, ou qualquer outra linguagem de alto nível, são projetados para realmente esconder todos os detalhes desagradáveis. Essa é uma das razões, porque é apt para os não-profissionais como (por exemplo cientista).

Se você quer saber como as coisas realmente trabalho, você deve aprender puro C. Mas, novamente, se você não está planejando ter qualquer carreira relacionada com SC, não há muito ponto para ele. Saiba alguns algoritmos mais avançados e estruturas de dados em vez disso. Isso vai resultar lo mais interessante, útil e é plataforma e linguagem-agnóstico.

Resposta curta: todas

Resposta longa:

Aprender sua primeira língua é sempre um desafio, e depois da sua experiência em Java, um monte de outras línguas vai parecer muito mais simples. Dito isto, o verdadeiro desafio em aprender linguagens de programação é aprender quando usar uma linguagem particular -. Você pode encontrar docs decentes para o que quer que você escolher quando chegar a hora

Como um começo concreto, hop sobre a wikipedia e navegue sua categórica lista de linguagens de programação , clique em todos os nomes que você já ouviu (e qualquer outra coisa que chama a sua atenção) e se o artigo tem um exemplo de código, dar-lhe um ou dois minutos para afundar (o resto do artigo irá ajudar, é claro ). O ponto aqui não é para dominar todas as línguas único (que é (1) sem sentido e (2) impossível), mas para obter uma alça sobre o que está lá fora. Para qualquer idioma, há um punhado de outras linguagens como ele, e se você pode, pelo menos, ler uma língua na maioria dessas categorias, você vai ter dominado um bastante grande pedaço do universo de programação. Quando um novo projeto vem para cima, e algo sobre isso você lembra de alguma linguagem que você encontrou, você pode simplesmente aprender essa língua como parte de fazer o projeto. Pode soar como um monte de trabalho, mas depois de, digamos, o seu quinto grande língua, você completamente perder a conta e apenas acidentalmente aprender novos o tempo todo sem perceber.

Quando você parar relativo a uma linguagem como sua casa-língua, você vai ser capaz de aprender com exemplos em outros idiomas, mesmo se você nunca programados neles. Pessoalmente, eu só tenho escrito alguns programas Haskell, mas ser capaz de ler Haskell me exposto a um monte de idéias que eu poderia reciclar em programas Scala e Python mais práticos (oh yeah, depois de aprender Python, dar Scala um navegar e você provavelmente nunca usar Java novamente)

Mesmo encontrar a melhor linguagem para o trabalho não é toda a história. Ter um monte de ferramentas em sua caixa de ferramentas permite que você jogue coisas juntos surpreendente em curtos períodos de tempo escrevendo cada peça de seu projeto na língua mais fácil a sua podia. Isto pode não ser apropriado para todos os projetos, mas, menino, você pode fazer algumas demos impressionantes.

É preciso muitos anos para chegar ao ponto onde nenhuma linguagem de programação é totalmente estranho (ou pelo menos estrangeira por mais de um dia de hacking), mas eu acho que é um plano muito saudável e realista a longo prazo para tentar conquistar uma amostra representativa de cada categoria áspero. Boa sorte!

Desde Python não foi minha primeira língua, eu encontrei o Python Cookbook útil para aprender

  1. O que Python era capaz de
  2. O idiomática, de maneira "pythônico," fazer alguma coisa.

Programação ensino de línguas sempre foi associada com uma declaração clichê enquanto aprende. "Os programas de escrita para aprender a programação". Também eu sugiro o mesmo.

Se você estiver indo para começar do básico. Este é, naturalmente, o ponto de partida mais sugerido. É longo, mas vale a pena o tempo todo. http://www.diveintopython.org/

Porque você está em algum Java, isso pode ser ainda melhor para você. http://www.swaroopch.com/notes/Python . Iniciar qualquer 2.x pitão ou 3.0. Me pessoalmente sou um fã de python 3. Mas para uma partida que poderia ser difícil de obter amostras e referências a programas online. Então, para você 2.x poderia ser melhor. Mas eu deixá-la até você.

Como eu comecei a "escrever programas ..". Você pode começar aqui.

  1. http://www.spoj.pl/ - um site desafios de programação, onde você pode escolher a partir de uma ampla variedade de tópicos, a maioria algoritmos e tem um enorme banco de dados de pergunta. Claro que a escolha de linguagens de programação é até você.
  2. http://projecteuler.net/ - um site questões matemáticas, aqui você só tem que enviar uma resposta , a fraude é permitido aqui, para estar livre para pedir a lógica dos outros, mas tentar escrever o programa de si mesmo.

Depois de pensar que você ganhou proficiência suficiente em python, você pode tentar receitas deste livro python livro http://www.amazon.com/Python-Cookbook-Alex-Martelli/dp/0596007973 .

Para o desenvolvimento de aplicativos, depois que você acha que pode lidar com isso, começar na wxPython ou < a href = "http://www.riverbankcomputing.co.uk/software/pyqt/download" rel = "nofollow noreferrer"> PyQt . Eu, pessoalmente, gostaria de sugerir PyQt. É ágil, rápido, e tem ciclo de desenvolvimento decente, eu não usei wxpython por muito tempo, mas alguns programas que eu escrevi, há muito tempo, não se sentia tão grande. Mais uma vez, o seu até você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top