Desisti de programar há pouco mais de um ano, quando continuava atingindo esse muro. Estou revisitando o assunto porque quero criar aplicativos básicos para Android. Mas sinto que meu conhecimento limitado não será suficiente.
Aqui está o meu problema.
Li alguns livros e assisti a tutoriais em vídeo em C # / Java, segui exemplos e depois terminei o livro. No final, eles sempre parecem me deixar perplexa quanto ao que fazer a seguir.
O que significa que eles ensinam você a partir do seu aplicativo básico "olá mundo", até os ifs e matrizes, então aparentemente esperam que você saiba como entrar no mundo da codificação e criar qualquer coisa.
Estou faltando alguma coisa aqui? Sei que esses são os elementos básicos de todos os programas, mas os livros que leio nunca me mostram o que fazer a seguir.
A resposta fácil, suponho, seria "começar a codificar", mas onde? Eu li "Head First Java" por exemplo; até a parte em que eles dizem para você pegar tudo o que aprendeu e criar um jogo de corrida de cães ....
"tente não trapacear e veja o código fonte fornecido, você deve conseguir fazer isso agora" _ isso não é uma citação exata, mas basicamente foi o que me disseram .......
Meia hora atrás, eles estavam apenas explicando como fazer arrays; depois, sem nenhuma teoria, pretendia criar um jogo de trabalho?
A razão pela qual pergunto isso é porque receio que isso seja tudo o que devo saber para começar a codificar, mas parece que recebi uma pequena caixa de ferramentas e fui instruído a construir um arranha-céu.
Obrigado por qualquer conselho
fonte
Respostas:
Na verdade não. Eles não são. Os elementos básicos de todos os programas são abstração e reutilização. Muitas linguagens de programação nem possuem matrizes ou
if
s ou loops.Existem alguns ótimos livros que ensinam como programar, em vez de como uma determinada linguagem de programação funciona, que parecem ser os livros que você está lendo.
Como criar programas, também conhecido como HtDP, é um livro. Ele ensina, bem, como criar programas. E faz isso fornecendo receitas a seguir para analisar problemas, resolvê-los, transformá-los em algoritmos e ainda mais em programas de trabalho.
Observe que "receita" é basicamente outra palavra para "programa"; portanto, em outras palavras, o livro ensina programas para humanos executarem em suas cabeças, a fim de gerar programas a serem executados por computadores. Quão legal é isso? :-)
Os autores estão atualmente trabalhando em um rascunho para uma segunda edição do HtDP , que você pode querer ler em vez da primeira edição. O material sobre programação imperativa foi removido e será abordado no segundo volume ainda não escrito de Como projetar componentes , mas você pode ler os capítulos ausentes da primeira edição.
Observe que o HtDP não assume nenhum conhecimento de programação e é direcionado a estudantes do ensino médio. Mas não deixe que isso o impeça: significa que você provavelmente será capaz de terminar alguns capítulos mais rapidamente, mas não acho que você ficará entediado.
Abstrações de concreto também é uma boa leitura em veias semelhantes. Como o HtDP, ele não assume nenhum conhecimento de programação.
Outro livro que você pode ouvir mencionado é Estrutura e Interpretação de Programas de Computador, também conhecido como SICP. É um dos melhores livros de programação já escritos e, novamente, não assume nenhum conhecimento de programação.
Ele é , no entanto, voltado para iniciantes completos que estudo no MIT . E assim, enquanto não assume qualquer conhecimento de programação, que não assumem um pouco de domínio do conhecimento, por exemplo, nas áreas de engenharia elétrica, física e matemática. Nota: eles não têm nada a ver com os conceitos ensinados, são apenas necessários para entender os exercícios e exemplos . Portanto, talvez seja melhor ler HtDP ou Concrete Abstractions primeiro e depois ler SICP.
fonte
if
declaração ou algum tipo deloop
: não estaria completo sem elas.loop
declarações e elas estão completas.Bem, você não está em uma situação única. A maioria dos livros iniciados em linguagem de programação tende a se concentrar mais nos elementos básicos da linguagem e isso é uma coisa boa. No entanto, como aconteceu com você, no final, nos encontramos em uma situação em que aprendemos cada construto que o idioma tem a oferecer, mas não o podemos aplicar para resolver alguns problemas práticos. Em resumo, a diferença entre exemplos de texto e programas práticos pode ser preenchida apenas quando você tenta jogar com o código (como disse Telastyn). Aqui está o que eu geralmente faço enquanto aprendo coisas novas:
No final, trata-se de prática e pesquisa que o ajudarão a aprimorar suas habilidades de programação e, finalmente, torná-lo um arquiteto de muitos arranha-céus.
fonte
Veja isso em C #. É muito completo: http://www.programmersheaven.com/ebooks/csharp_ebook.pdf Eu mesmo usei isso há apenas meio ano. Eu uso o compilador #Develop com ele para os exemplos. Não posso ajudá-lo muito com Java, porque quase nunca o usei.
Quando chega a hora de programar, o que muitas pessoas não percebem é que você geralmente usa um SDK ou estrutura adicional para o que está projetando. Portanto, não espere pular imediatamente de Java ou C # para a programação por telefone, porque é provável que você precise de uma boa estrutura intermediária, e as curvas de aprendizado para eles podem ser tão cansativas quanto as curvas de aprendizado para as próprias linguagens de programação. Embora o tutorial em C # que publiquei cubra apenas C #, muitos dos conceitos abordados são vistos em outras linguagens orientadas a objetos, como Java.
Editar: o cenário que você descreve é, infelizmente, o caminho que muitos tutoriais seguem. Você não precisa seguir esse tutorial e, se funcionar da maneira que você aprende, provavelmente é melhor tentar escolher outro (não conheço nenhum, mas o Google provavelmente). Mas, para ter certeza, verifique se o autor do livro que você está descrevendo explicou o código linha por linha. Não se preocupe com o quão inteligente você é, apenas um prodígio poderia passar direto de um livro para um jogo de trabalho. Lembre-se de que os tutoriais não são, de modo algum, a medida padrão de habilidade, então escolha o que melhor ensina a você e não desanime!
fonte
Sim, isso deve ser suficiente para criar programas super básicos. Nesse ponto, você tenta criar um programa um pouco mais complexo do que os livros que você fez. Quando você precisa fazer algo específico e não sabe nem como trabalhar com algum trabalho, pesquise na Internet ou peça a um professor / mentor. Isso levará a recursos mais avançados (e quase sempre a um beco sem saída, pois você, sem saber, escolheu algo muito mais complexo do que aquilo que pode fazer).
Nenhum livro vai te ensinar como resolver problemas.
Nenhum livro vai explicar como criar programas - isso vem com a prática. Nenhum livro vai te ensinar como fazer uma aplicação não trivial - há muita nuance; você aprenderia a criar essa implementação e não coisas assim.
A melhor maneira de aprender neste momento é brincar. Para brincar com o código para criar algo. Assim como os artistas geralmente começam a rabiscar pequenos petiscos que ficam progressivamente mais sofisticados e bonitos, os programadores também precisam dessa progressão exploratória.
fonte
Eu realmente não me lembro se usei um livro para entrar na programação, mas acho que naqueles dias era mais um manual de referência de sintaxe do que um livro de tutorial. Ele me ensinou o que a linguagem de programação poderia fazer, mas não como criar um aplicativo real com ela.
Felizmente, havia alguns exemplos no livro que eu costumava digitar (sim, não havia exemplos de código fonte para download) e tentei descobrir como funcionava. Essa não é a melhor maneira de aprender programação, mas para mim foi divertido na época.
O que eu recomendaria é que você defina uma meta como " Desejo criar um aplicativo Javascript que desenhe um círculo saltitante " e depois use seu conhecimento já adquirido para iniciar e pesquisar tudo o mais nos SDKs / documentação e / ou aqui do idioma em SO.
Essa é a abordagem que estou usando quando tento pular para um novo idioma e aprender meus primeiros passos. A maioria dos livros que li nos últimos dias não estava satisfeita porque senti a mesma falta de algo importante . Felizmente, agora temos os internets, portanto, qualquer que seja o idioma que você queira aprender, você pode encontrar um código fonte na Internet e usá-lo para continuar seu aprendizado.
edit Obviamente, alguns livros mais gerais ensinando como projetar um aplicativo ou qual processo (SCRUM, XP, V-Modell) a seguir é uma boa adição ao conhecimento puro da linguagem.
fonte
Concordo com Jörg que você também deve ler alguns livros gerais sobre os conceitos de programação, em vez de aprender muitos detalhes sobre uma linguagem específica neste estágio. Em relação ao livro Como criar programas , ele é usado como referência neste curso , o que pode ser do seu interesse.
Caso contrário, outra ferramenta que outros não mencionaram é conversar muito com outros desenvolvedores . Lembro que, para mim, uma das maneiras mais eficazes de aprender a programar era passar muitas horas discutindo com colegas ou outros programadores sobre aspectos de programação, linguagens de programação, técnicas ou problemas concretos que eu estava enfrentando naquele momento em particular. A transmissão oral de conhecimento ainda pode ser um dos meios mais eficazes para aprender novas habilidades.
fonte
Eu sugeriria encontrar projetos de código aberto e transformá-los em caixas de areia pessoais. Modifique comportamentos existentes, adicione novos comportamentos e exclua alguns também. Brinque, implemente suas próprias idéias e "e se eu tentasse isso".
Não estou defendendo que você converta outro projeto de código aberto e o reivindique por conta própria.
Estou dizendo que olhe para outros projetos de trabalho como um meio de ensinar a si mesmo como chegar aos próximos passos. Existem muitos sites disponíveis com código opensource para download. Aqui estão alguns que vêm à mente: CodePlex CodeProject
fonte
Isso é vida dos codificadores. Você não conhece uma tecnologia, mas desenvolve um 'olá mundo' e se torna um especialista. Nas empresas (vida real) é assim que funciona. Boa sorte
fonte