Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

quitZAUMMM

Programando...

Recommended Posts

Se você quer começar a programar não ache que o caminho começa no C++, ASM, para ser um bom programador siga esta lista e se destaque:

 

   • HTML
   • XHTML (Há uma pequena diferença entre HTML e XHTML. É melhor que você pule o HTML e já vá direto ao XHTML, assim é mais fácil usá-lo mais tarde. E não, "programação de VERDADE" NÃO se parece com XHTML)
-
   • CSS
-
   • Javascript
-
   • PHP (Esta é sua primeira linguagem de programação "de verdade" - gaste MUITO tempo aprendendo todos seus conceitos! http://www.php.net/)
-
   • MySQL (E aprenda como "ligar" MySQL com php, e faça isso DIREITO)
   • HTACCESS
-
   • Actionscript 3 (Pode ser pulada, mas te ajudará com suas técnicas de programação)
-
   • AutoIt (É simples e inútil, mas você aprenderá mais sobre a mecânica do Sistema Operacional ao invés de focar na programação real. ALTAMENTE recomendado).
-
   • VB.NET [Pode ser pulada, mas te dará um pouco mais de prática, dando um passo de linguagem de script (como AutoIt) para programação real]
-
   • C#.NET (NÃO PULE - esta vai te ajudar IMENSAMENTE nesta longa caminhada. Não use para criar programas usuais ou hacks , mas sim para aprender bastante sobre programação). É logico que depois que terminar a jornada poderá fazer oque quiser.
-
   • C++*
-
   • Assembly**
-
(*) • C++ é uma linguagem de programação muito difícil. Você irá usar o C++ -todo o tempo-, seja com programas ou com hacks, modificações, etc. Uma vez que você aprende C++, você pode aprender qualquer outra linguagem muito mais fácil e sem muito trabalho. NÃO COMECE DIRETO COM C++ se você quiser se tornar um bom programador, especialmente se você é iniciante.
   • Se você usou Windows toda sua vida, programe no Windows. Se você usou MAC toda sua vida, programe no Linux. Se você usou Linux toda sua vida, programe no Linux. É tão simples.
-
(**)   • Assembly existe para vários tipos de processadores - Eu recomendo aprender MASM32 (um compilador de ASM) e desenvolva programas básicos antes de pensar em programar, hackear ou modificar algum jogo ( se for o seu objetivo{A maioria é}.
Quando você for bom você DEFINITIVAMENTE  vai usar o ASM -TODO O TEMPO - para tudo. Bote na cabeça é possivel criar tudo com ela, até sites, ou melhor todas as linguagens é possível criar tudo, mas não terá as funções que outra linguagem tem, ou será limitada.[/font]

Por fim: Boa sorte nesta longa jornada porque o caminho é grande, sofrido mas no final você vai poder dizer: "O sofrimento valeu apena, hoje sou programador, de verdade"

 

Tenha em mente que você vai precisar muitas muitas muitas ferramentas ao longo do caminho.

 

Quando aprender XHTML / CSS / Javascript, você não irá precisar de nada, apenas, o bloco de notas, uma pasta vazia para as suas páginas, e um navegador.

 

Para o PHP, você precisará do bloco de notas, de um navegador e um pacote de programa chamado XAMPP (ou WAMP) (http://www.apachefriends.org/en/xampp.html). Ele vai processar o PHP, que como é a linguagem de codificação do servidor, você não poderá simplesmente abri-lo em um navegador para que funcione. Xampp é bastante simples de usar.

 

 

O MySQL é um pouco mais difícil, você vai precisar baixar um servidor MySQL (grátis em http://dev.mysql.com/downloads/mysql/ - encontre a versão que você precisa e que se encaixa nas informações do seu computador). Ele é um pouco mais difícil de configurar, mas é simples de usar. E sim, o Xampp tem um, mas é um pé no saco de configurar e usar. Eu também recomendo usar um programa chamado "netcat", ele estabelece sua base de dados em tabelas qu são fáceis de configurar e outros agrados. Incrivelmente útil.

 

O HTACCESS é uma dor de aprender. Eu recomento também ficar algum tempo aprendendo os códigos em PHP regex (que são os comandos preg_ ----). Eles são muito úteis. Criar htaccess é tão fácil quanto usar bloco de notas e renomeá-lo.

 

ActionScript 3 é uma linguagem difícil, que é por isso que eu digo que ele pode ser ignorado. Como eu tenho o Flash CS5, eu nunca precisei de um compilador ActionScript diferente Adobe Flash. É divertido para mexer, mas não é útil. Se quiser ler um pouco sobre: http://www.senocular.com/flash/tutorials/as3withmxmlc/

 

AutoIt é incrivelmente útil, e em vez de fazer você aprender programar de verdade, ele permite que você faça coisas legais por apenas saber os seus mínimos conceitos e conceitos básicos de programação. É lento, mas é muito mais muito divertido à ser usado. Como funções (soquete), criação de funções GUI, caminho / arquivo / Manipulação de .INI Gravação / escrita / leitura. Tudo isso vai ser muito útil mais tarde. AutoIt é gratuito e é bastante simples de aprender e usar - http://www.autoitscript.com/ (OBS.: Baixe a ultima versão.).

 

VB.NET = Eu odeio com uma paixão. Mas, novamente, este não é para aprender ao ponto de virar o mestre, tudo bem se quiser se empenhar em estutar mas lembre-se esta linguagem não é uma linguagem de programação de verdade. Se você se sentir preparado, você pode pular VB.NET, mas você não pode ficar com pena de meu suas mãos para pular C#.NET; Não importa o quão bom você pensa que é, se você está seguindo este guia, não pule C#. Eu vou entrar mais depois neste segmento. Para começar em VB, VB.NET simplesmente baixe a plataforma - há uma versão grátis. http://www.microsoft.com/Express/VB/

 

Agora, digo o'que você absolutamente não pode pular, que é o C#. O C# é o último passo antes de aprender C++. O C# usa o mesmo framework de C#.NET. e lembre-se o C# é mais perto que você chegará do C++. O C#.NET ensina conceitos de programação convencionais. Eu recomendo que você anote bem tudo enquanto você vai aprendendo / O'que você deverá aprender antes de estudar C++:

[*]Entry points
[*]Scopes (public/protected/private)
[*]CLASSES (Passe muito tempo aprendendo classes, é muito importante você saber.)
[*]Streams
[*]Sockets -  Conhecimento sobre sockets em C# é crucial, e o conhecimento sobre eles em C# é praticamente o mesmo da API do Windows. Aprenda.
[*]Return types -  Se você sabe como lidar com tipos, type casting, tipos de retorno, etc, então você pode aplicar praticamente qualquer função em seu programa.
[*]Enums
[*]Structs
[*]Loops/Conditionals - (For/While/Foreach/Switch/If/Ternary Operators (MUITO IMPORTANTE))
[*]Functions/Methods
[*]Fazer DLL's e saber a diferença em uma DDL de uma EXE.
[*]Console vs. Window application
[*]DirectX 9 (Sim, para C#. Mais uma vez, estude e aprenda os conceitos do DirectX.) [Necessário aprender se você planeja criar hack's para jogos - praticamente todos os jogos é feito em DirectX.]
[*]Threads (MUITO IMPORTANTE)

 

Se você conseguir dominar tudo isso, então você é um programador potencial. Aprenda conectar tudo isso e saiba oque é necessário para montar os programas, então será um programador de verdade. C#.NET é fácil de programar, você pode baixar sua IDE em: http://www.microsoft.com/express/vcsharp/. Se você souber tudo que foi listado acima, então você estará apto à estudar C++.

 

É muito dificil desenvolver em C++, porque há muitas funções, etc, e muitas opções em seu compilador.

 

Se você estiver no Windows, obtenha o Visual Studio ou CYGWIN (VisualStudio não é grátis, e Cygwin é difícil de configurar... - Eu passei muito tempo com esta linguagem, portanto aproveite seu tempo à estudando..

 

Se você estiver em Linux, comece com a IDE: GCC.

 

Se você utiliza o MAC, mudar para o Linux ou Windows Se você quer ser um programador para MAC, obtenha um aplicativo chamado Xcode - Eu só usei uma ou duas vezes, mas ele começa com partes feitas. http://developer.apple.com/tools/xcode/. (OBS.: Se for programar para Windows, ultilize windows, se programar para linux, o utilize, se for para MAC, o utilize, mas por favor não utilize este ultimo, é a pior coisa que fará.

 

Então, aqui está uma lista do que você deve olhar-se e estudar antes ou durante a ficar de hardcore em C + +:

 

A lista em inglês pois você estudará pelos mesmos nomes sem tradução

 

[*]Memory types
[*]Garbage collection
[*]Memory addresses
[*]Running memory
[*]Address space
[*]Offsets
[*]DLL's (Yes, Releia e Reaprenda para aumentar seu conhecimento)
[*]Learn what a DLL injector does
[*]Compilers/Compilation
[*]Debug
[*]Breakpoints
[*]Exceptions
[*]Exception handlers
[*]Method proxies
[*]Hooking
[*]Windows API and includes
[*]Libraries
[*]External resources
[*]POINTERS - VERY USEFUL
[*]Detours
[*]The Heap and The Stack

 

 

Então, por último você chegará na linguagem mais importante de sua vida:O ASM. Se quiser ser bom você deve aprender ASM. E sim esta é uma programação REAL. MASM32, então NASM (veja como criar o seu próprio sistema operacional - que realmente ajuda muito, ou seja agora você sabe que um sistema pode ser feito com ASM e é claro utilizara outras linguagens [http://www.osdever.net/tutorials/hello_btldr.php]), em seguida, aprender como criar um programa básico e uma janela GUI básica em MASM32, em seguida aprenda como fazer engenharia reversa em um programa (Utilize IDA - é a melhor e descubra exatamente o que acontece por traz de todos os programas.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, veja só.

 

Você começou o tópico com "ser um bom programador" e, em seguida, misturou tanta coisa que, sinceramente, me faz duvidar se você compreende o que significa "ser um bom programador".

 

Não sei onde você encontrou essa lista, mas vou lhe dar uma dica: Remova essa fonte o mais rápido possível da sua lista de referências.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algumas considerações:

 

XHTML/HTML,a rigor, não podem ser incluídas em dicas de linguagens de programação, já que são linguagens de marcação. Atualmente o hype é o HTML5, já que o comitê que cuidava do XHTML 2 foi dissolvido em 2009 (juntaram tudo no comitê do HTML5).

 

CSS é uma linguagem de estilo. Acho que a única coisa próxima de programação que dá p/ fazer com isso é se você usar LessCSS ou Sass, que suportam variáveis, operações com os elementos (ex: adição, subtração, concatenação) e até Javascript inline.

 

Levando em conta que os programadores podem ser "classificados" de acordo com aquilo que mexem (e normalmente o são), a parte de "mecânica do sistema operacional" e "programação real" deveria ser explicada melhor. Do meu ponto de vista (bacharel em CS), uma ferramenta de automação via linguagem de script não expõe nenhuma mecânica do sistema operacional p/ o usuário. Aqui estou falando de coisas como escalonamento de processos, cache, paginação e outras coisas que realmente formam o sistema operacional.

 

Não se pode dizer que se você aprendeu uma linguagem X (no caso, C++) você consegue aprender qualquer outra linguagem facilmente. Existem as diferenças entre paradigma de programação. Um exemplo disso são as implementações do Quicksort em C e em Haskell, que você encontra na página da linguagem. Programadores enfrentam dificuldades até mesmo com linguagens que suportam o mesmo paradigma. Já vi rubistas e pythonistas se descabelarem ao ter que voltar p/ C# ou Java. E o contrário também é válido: numa conversa com um dos meus professores ele mesmo confessou que ensinar Rails depois de anos pensando em C++ gerava alguns sustos.

 

Sobre os ambientes: eu discordo. No Windows o problema geralmente é configurar tudo. Principalmente dentro de uma IDE, que, embora tenha recursos como code completion, tira o contato com o processo de compilação, no caso de linguagens como C e C++. Na pior das hipóteses (e parece que isso acontece com uma certa frequência), a pessoa se torna dependente de ferramenta e não conhece o que roda por baixo dos panos, que é o que faz o trabalho real. É por isso que eu recomendo a quem está começando que baixe um liveCD de uma distribuição Linux (Ubuntu e OpenSuse, normalmente).

 

Ninguém usa tantas linguagens sempre. Eu mesma comecei a programar em C em 2002 antes de entrar p/ universidade e só usei C lá. Aqui fora tive que aprender Perl na marra sem internet, PHP enquanto tinha que consertar sites e hoje uso Python com Object Pascal.

 

O único netcat que conheço é um programa GNU que lê e escreve dados através da rede. E desse que você está falando? Se for, é preciso tomar cuidado com as falhas de CRC do TCP/IP ao se copiar as tabelas.

 

Htaccess faz parte do servidor Apache (se alguém lendo aí não souber). Eu perdi muito tempo da minha vida tentando entender esse negócio. Larguei mão e fui p/ NGinx, Lighttpd e Cherokee.

 

ActionScript é coisa da Adobe, usada dentro do Flash. A Apple começou a guerrinha contra o Flash e parece que a Microsoft, no IE10, só vai permitir a execução de Flash se o site for "pré-aprovado" pela empresa. Tiro no pé? No Linux é difícil desenvolver em ActionScript. A única coisa livre parecida com Flash, o Moonlight, está morto porque o Silverlight não foi adotado como queriam.

 

Por que VB.NET não seria uma linguagem de programação de verdade? Já que você mesmo disse que a odeia, então é quase certo que sua preferência interfere no julgamento.

 

Seguindo a evolução das linguagens, tanto Java como C# estão próximas de C++. O "problema" é que, com a adoção do Ruby, várias coisas foram encaixadas no C#, e no Java por tabela. Provavelmente, daqui a umas 3 major versions, estaremos mais próximos de Ruby também. http://www.levenez.com/lang/lang.pdf

 

É muito dificil desenvolver em C++, porque há muitas funções, etc, e muitas opções em seu compilador.

 

Seguindo o mesmo raciocínio, é muito difícil também desenvolver em C, em Java, em C#, em Python, em Ruby, em Perl, em PHP... E a lista vai indo... É por isso que existem os manuais e padrões da linguagem. Como no Linux é possível baixar a documentação das bibliotecas de desenvolvimento das linguagens, é mais fácil você criar a cultura de andar com as próprias pernas. E também é um motivo pelo qual eu recomendo dar um chute no Windows quando se está aprendendo.

 

Discordo totalmente sobre a necessidade de saber tudo da lista antes de querer meter as mãozinhas em C++. No final das contas, não é a quantidade de linguagens que torna alguém um programador bom. E não existe tempo hábil p/ ser mestre em todas elas. A grosso modo, um programador resolve problemas e a pior coisa que os processos de recrutamento e até mesmo o dia-a-dia do serviço fazem é querer encaixotar/serializar uma ocupação que é essencialmente criativa. O que é necessário p/ um programador é querer pensar em um problema de formas diferentes.

 

GCC não é IDE, é um compilador.

 

A jornada não termina. Nunca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Não sei onde você encontrou essa lista, mas vou lhe dar uma dica: Remova essa fonte o mais rápido possível da sua lista de referências.

 

;)

 

Bom, não sei qual ou como você pensa que tem como aprender direto C++(Sem ressentimentos), mas como você perguntou, eu digo em forum's estrangeiros utilizamos esta manual à mostrar ao iniciante que programar não é uma tarefa curta que você pega uma apostila de uma linguagem avançada e já aprende tudo.

 

Se for assim como um iniciante irá saber um dia que é possível criar um site em ASM, ou melhor, qualquer linguagem é possível criar o'que outras linguagens fazem. O problema é o tempo que você leva à fazer isso em c++, asm, etc comparado ao tempo levado por html, php, é bem maior.

 

O'que mostro aqui, não é uma lista obrigatória falando que você tem que fazer essa linguagem antes de aprender outras mais avançadas, mas sim, dicas, que se você aprender linguagens básicas e ir progredindo, você irá aprender recursos que talvez quando estiver programando em haskell, brainfuck, etc você descubra que pode fazer este recurso em uma linguagem que levará menos tempo e consequentemente menos custos.

 

Até logo. E desculpem qualquer coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre aprender direto C++: não vejo porque seja impossível. Alguns conceitos, como iterables e iterators, closures (Ruby, Groovy -- e agora, Java) são estranhos à primeira vista, independente da linguagem. O que vai dificultar a implementação de um programa é como o recurso foi adicionado na linguagem. Em Python, por exemplo, não se tem o operador ternário como em C,Java, C++ e outras linguagens. O que se faz é emular o comportamento usando os operadores condicionais e até mesmo indexação em listas. Na verdade, é até melhor se você não souber que existe um negócio chamado operador ternário: é uma coisa a menos que você tenta forçar p/ dentro da linguagem.

 

De resto, é tudo questão de achar material bom (a frase "nada de 'C Completo e Total'" está implícita). Em épocas onde o ctrl+c / ctrl+v e a pressa de fazer a coisa p/ pegar o próximo item da lista ("é tudo igual mesmo....é tudo CRUD") dominam, você acaba num salseiro enorme.

 

Eu gostaria que os desafios de C/C++ voltassem. Não porque é legal ter o nome postado como vencedor p/ escolher o próximo tema, mas porque você é forçado a pensar melhor que os outros participantes. A linguagem é só um meio de expressar as idéias.

 

Não veja esses posts como desafios ou ofensas. Nem como lição de moral, igual a um usuário p/ quem eu pedi p/ colar as mensagens do compilador. Continue participando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.