e linguagem nao importam para saber programar. Para quem vai trabalhar com a programacao e esta no nivel intermediario ou avancado/hardcore do conhecimento de programacao, vai um conselho: ha quem diga que a melhor linguagem e aquela que paga mais e, atualmente, Java, Python e C++ estao com mais "moral" no mercado, isso porque estao surgindo e imperando novas tecnologias portateis, como Android (Google) e o Windows 8 (Microsoft), alem de sistemas operacionais da Apple, tanto portateis quanto para desktop (Macs, Mac OS X, Lion, etc.).Entretanto, para quem esta iniciando na programacao, recomendo iniciar com linguagens simples e faceis de programar, como Visual Basic, Delphi ou qualquer outra linguagem RAD (do ingles Rapid Application Development, Desenvolvimento rapido de aplicativos) e que permita arrastar controles e "debugar" o codigo.Freelancing ou emprego fixo em empresas de software, qual escolher?Fica a criterio do programador. Enquanto no emprego fixo voce tem garantia do salario todo mes, no freelancing voce trabalha de modo autonomo e pode escolher o horario e dia da semana que voce pode programar e nao fica se estressando com sistemas de terceiros (a vida de um programador nao e facil, mesmo que muitos imaginem que seja).Programar e facil?Depende. O que pode ser facil para mim pode ser dificil para voce, e vice-versa. Isso depende principalmente do que a pessoa pretende fazer profissionalmente, e com qual area (exatas ou humanas) se tem mais interesse. Uma pessoa que lida bem com matematica ou fisica com certeza se dara bem com programacao, uma vez que ela ja esta acostumada com variaveis, funcoes e formulas, e a programacao nao foge disso. Isso tambem vai depender da linguagem escolhida. Existem dois tipos de linguagens de programacao: linguagens de alto nivel (onde se incluem, C++, Cobol, Python e ate VB) e linguagens de baixo nivel (onde se inclui o Assembly e C, ambos nao apresentam nenhuma ou pouca forma de abstracao (como classes)). Irei explicar sobre alto nivel e baixo nivel, adiante.Qual a diferenca entre linguagens de alto nivel e linguagens de baixo nivel?Linguagens de alto nivel oferecem maior quantidade de abstracoes, principalmente, a criacao de classes.Em Assembly e C, nao existem classes, logo, nao ha formas de abstracao.Abstracao vem de abstrato, algo intangivel pelo processador, simplesmente porque pode ser algo tangivel na realidade. Um exemplo e a criacao de uma classe chamada Pessoa (que inclusive esta exemplificada na videoaula), que e intangivel pelo processador sem ser compilada e/ou interpretada, mas que e tangivel por nos.Criar paginas web ou criar programas para desktop?Muitas pessoas acham que a criacao de paginas web (sites como este, ou Wikipedia, ou Orkut, ou Facebook, etc) e diferente da criacao de programas desktop (como MSN, Windows Media Player, Excel, Word, Bloco de notas, ou para usuarios linux: GEdit, Nuvola Player, aMSN, Pidgin, OpenOffice, BrOffice), mas nao e. A criacao de paginas web envolve Javascript, ou mesmo o HTML e o CSS, que nada mais sao do que linguagens de programacao. A diferenca e que as linguagens web nao tem contato direto com todos os recursos que o computador do cliente pode oferecer. Por exemplo,