Começar por C#

Boa noite amigos.Tudo bom?

Sou novato na área, estudei apenas HTML e CSS. Agora eu gostaria de saber se é errado/loucura escolher C# como primeira linguagem de programação a estudar.
Ela é indicada a iniciantes?
Eu pensei em Javascript, mas eu realmente travo no JS, não sei que dificuldade é essa que no JS aumenta.
 
Visto que já sabes html e css, o mais lógico seria aprenderes javascript ou php.. Para complementar essa formação..
Antes do c#, se fosse eu preferia algo como Java, pois há sempre mais emprego em Java..
 
Não vejo problema em começar com C#. Provavelmente javascript seria mais fácil para integrares com o HTML e CSS que aprendeste. Mas pessoalmente eu torço sempre o nariz quando indicam javascript para primeira linguagem de programação, principalmente porque é uma linguagem bastante "tricky", o que só confunde quem está a aprender.

No entanto C# parece-me uma boa linguagem para começar (fazendo aplicações de consola) para aprender os básicos de programação. Em relação ao emprego é relativo, em Portugal a quantidade empregos de Java e C# deve andar ela por ela.

Outra linguagem que também é boa para começar é Python, pela simplicidade, sintaxe e te obrigar a indentar o código (boa prática).

Se quiseres aprender bases mais sólidas de programação, principalmente se nalgum ponto tiveres interesse em programar mais "baixo nível" acho que ainda melhor seria começar por C, apesar de mais difícil de entender que as outras (tirando a parte "fácil" que não ter o conceito de objectos) ficas com umas bases bem mais sólidas.

Em resumo imo:

Python / C# / Java são todas boas opções.
C é mais complicado, mas a longo prazo rende mais, pois acabas por perceber melhor o que se está a passar por traz do código (tem ainda a desvantagem ou vantagem, dependendo do ponto de vista, de não ter o conceito de objectos).
 
Obrigado pelas respostas.

Eu tentei o JavaScript, mas não sei explicar o que na linguagem me deixa confuso.

Eu peguei o PHP, com PHP flui, eu consigo estudar e tal. Mas me falaram que é praticamente perda de tempo e que o certo é focar JavaScript mesmo tendo dificuldade maior porque de qualquer forma TENHO que aprender JS. Então dizem ser errado optar por outra.

Sempre achei legal C# e Java, mas como me falaram que Java é extremamente difícil ainda mais pra um iniciante, tirei da cabeça.
Já o C# por ser flexível eu pensei em estudar.

Eu queria uma linguagem pra freelancers, e me falaram que o JS é obrigatório que qualquer outra escolha seria um erro, eu desanimei.
 
Java não é mais complicado que C#. O problema é que pode ser mais difícil começar com Java, porque ao contrário do C# que já tem o Visual Studio bem integrado com a linguagem, no caso do Java tens muitas opções para programar, que vão desde programar com o Notepad e compilar com o javac na linha de comandos, até usar uma ferramenta mais completa, como o Eclipse ou o IntelliJ. Em termos de aplicações desktop gráficas, o C# também te dá muita vantagem, porque já está tudo integrado no Visual Studio, apenas precisas de arrastar botões e caixas.

Qualquer linguagem é válida para começar, mas se estás indeciso entre qual escolher com vista para o freelancing, podes ir aos sites tentar ver estatísticas das linguagens mais pedidas/rentáveis para os trabalhos. A questão do número de empregos também é válida. Depois tens de ver também o paradigma, se queres programar para desktop ou para a web. Neste requisito a web está com muita força, e não foi à toa que te recomendaram Javascript (por exemplo Node.js ou Angular). Isto porque cada vez mais aplicações estão voltadas para este paradigma porque são linguagens/framework que permitem desenvolvimento rápido.

Para concluir, penso que primeiro deves escolher em que paradigma te queres focar: web ou desktop. Java e C# também podem funcionar para web, é uma questão de configurar para esses casos de uso.
 
Eu sou daqueles que acredita que se deve primeiro aprender a andar para depois se conseguir correr.

Por isso se queres aprender a programar, aprende em C ou Pascal. Linguagens de programação que permitem usando a mesma sintaxe evoluir nos conceitos de memória e estruturação de código (passando da programação procedimental à Orientada por Objectos). Acho que só depois de se seguir este caminho até à programação OO é que se deve passar a qualquer outra. Mesmo ao Javascript.

O C# e o Java são programações que assentam em ambientes virtuais de execução que estão em constante mutação/evolução. Mais: as frameworks são semelhantes e diferentes ao mesmo tempo. A gestão de memória difere entre elas e entre a programação em C que referi acima. É necessário um nível de abstracção grande para se conseguir ver o quadro geral.

Concluindo:
- queres aprender a programar?! C/C++ (ou Pascal/Delphi)
- queres fazer umas linhas de código baseado nos tutoriais que vês na net e que com corte e costura consegues fazer qq coisa que funciona mesmo que apenas esteja colado com "cola cuspo"... Escolhe a que quiseres. Será indiferente. Nunca (ou dificilmente) serás um programador.

(desculpem a arrogância, mas não acredito em atalhos)
 
Eu posso falar da parte web, pois é a parte que eu trabalho, e na minha zona, 80% dos requisitos são javascript ou php.. C# é raro, e os restantes 20% é Java.
Em web mesmo, o php é o que se usa mais, ferramentas como joomla, wordpress, laravel, é o que as empresas usam.
Quanto ao javascript, node JS, o que vejo é para outro tipo de coisas, não tanto web, ou seja, terminais tipo pos, e assim.. E também aplicações móveis híbridas, ionic e react. Pelo menos na minha área.
Java para aplicações desktop e Android nativo.
É este o paradigma na minha área geográfica.
 
Eu sou daqueles que acredita que se deve primeiro aprender a andar para depois se conseguir correr.

Por isso se queres aprender a programar, aprende em C ou Pascal. Linguagens de programação que permitem usando a mesma sintaxe evoluir nos conceitos de memória e estruturação de código (passando da programação procedimental à Orientada por Objectos). Acho que só depois de se seguir este caminho até à programação OO é que se deve passar a qualquer outra. Mesmo ao Javascript.

O C# e o Java são programações que assentam em ambientes virtuais de execução que estão em constante mutação/evolução. Mais: as frameworks são semelhantes e diferentes ao mesmo tempo. A gestão de memória difere entre elas e entre a programação em C que referi acima. É necessário um nível de abstracção grande para se conseguir ver o quadro geral.

Concluindo:
- queres aprender a programar?! C/C++ (ou Pascal/Delphi)
- queres fazer umas linhas de código baseado nos tutoriais que vês na net e que com corte e costura consegues fazer qq coisa que funciona mesmo que apenas esteja colado com "cola cuspo"... Escolhe a que quiseres. Será indiferente. Nunca (ou dificilmente) serás um programador.

(desculpem a arrogância, mas não acredito em atalhos)

Já ensinei alguns amigos meus que não tinha formação nenhuma em software e concordo com isto. Alias, o meu primeiro "aprendiz" fui direto a ensinar-lhe alto nível, boas práticas e OO e quando chegou a hora de entender a utilização de interfaces, design patterns básicos, etc não estava a computar aquilo...

Se tu realmente queres entender OO(object oriented) acho que é fundamental entenderes o que se passa por trás de tudo o que tu estás a fazer.

Após C/C++, eu ia para Java e não C# porque acho que no C# ainda é mais prático e simples que Java.
C# não deve ser o teu primeiro contacto com alto nível.
C# é "à prova burro".
 
Não sei se é com todo iniciante ou se eu que estou errando em não me decidir logo.
Apesar que eu sei, estou demorando, decido uma coisa e depois desisto quando me falam que estou no caminho errado.

Eu me decidi estudar o PHP, estava bem animado com o PHP.. Mas como falei, me disse que eu estava errado em estudar o PHP e não Javascript.
Aí fui estudar Javascript, e como tenho muita dificuldade no estilo de programar do Javascript, eu vivo desanimado.


Meu foco é mais pra web mesmo, então mesmo nesse meu caso, é indicado começar por C/C++?


Vocês me desculpem a desordem mental que estou demonstrando, mas é que estou passando por bastante dificuldade nesse início, tanto referente aos estudos quanto em outros assuntos.


Obrigado pessoal.
 
@Jonatas Gomes o teu problema não é com PHP ou com o Javascript. São as bases. Desanimas porque não consegues avançar. Não consegues avançar porque não conheces as bases. Já o referi e vou voltar a referir: não tomes atalhos (olha o que aconteceu com a capuchinho vermelho)!

Fazendo um paralelismo com a cozinha: não podes pensar em fazer uma boa piza se não sabes fazer um molho de tomate!

O que tu estás a pedir é que te digamos qual é o melhor molho de tomate que podes comprar para fazer a tua piza. Mas nem todos conhecem da mesma forma todos os molhos de tomate. E depois há quem prefira o molho de tomate mais ácido, outros mais doce... alguns em puré e outros que gostam de sentir os pedaços e sementes! E vê lá que até os há que gostam de sentir as peles de tomate (que são indegestas e não devem estar no molho de tomate).

Se não souberes fazer um molho de tomate, não sabes fazer piza.
Se não souberes as bases da programação, não sabes programar.


Nota:
O que acontece a um cozinheiro de piza que não sabe fazer o molho?! Vai trabalhar na telepiza, Domino's piza ou outra qualquer para o resto da vida. O que sabe: abre o seu próprio restaurante e o transforma numa cadeia.
 
Aprender a programar é independente da linguagem. Podes aprender a programar e ser uma máquina sem tocares em linhas de código. Depois sim, podes apender a sintaxe da linguagem que quiseres e seguir a partir dai.
O que o pessoal te está a querer dizer é que com C# não vais aprender a ser programador. Vais conseguir fazer sites, vais conseguir fazer muita coisa mas quando der um erro tu não vais saber resolver porque não vais perceber como se processa a mecanica por detrás do C#.
Eu tou nessa situação, trabalho atualmente em C# e preferia ter aprendido programação antes de começar a fazer sites/wtv.
Faz o que achares melhor. O facto de aprenderes C# também não impede que aprendas a programar, seja a pesquisar como realmente funcionam as coisas, mas requer muita mais persistência, vontade e disciplina
 
Eu começei por aprender algoritmia e C em 2010 a nível académico.

Uns anos mais tarde aprendi C#, também a nível académico, gostei (e ainda gosto) e acabei por vir a trabalhar com C#.

Acho que o que dizem aqui acerca de aprender as bases de programação em C/C++ faz sentido. Se bem que entendo o lado de quem quer aprender algo e em pouco tempo começar a ver resultados. Quando estás no C a aprender vês a consola e as linhas de código e pode ser difícil imaginar como vais passar daí para algo como uma aplicação web.

Na minha experiência, demorei a sair do C. Mas tinha tempo, pois foi tudo em disciplinas de um CET e mais tarde da licenciatura. Não sei como seria se fosse de uma maneira auto-didacta.....

vais conseguir fazer muita coisa mas quando der um erro tu não vais saber resolver porque não vais perceber como se processa a mecanica por detrás do C#.

Que tipo de erros? Pergunto isso porque também já os tive e tenho, resolvo-os, e não consigo ver como é que saber o mais baixo nível me ajuda? A não ser erros ao nível de lógica (algoritmia).

Por último, o que constato muitas vezes é que o fundamental é saber resolver um algoritmo. Tendo um algoritmo, consegues traduzi-lo em várias línguagens.
 
Uma coisa que muita gente confunde quando só aprendeu linguagens de alto nível é o conceito de referencia / valor. Para quem aprendeu C (como deve ser) isto é trivial, é fácil ver que uma referencia não passa de um ponteiro disfarçado.

Pelo que casos como passar um objecto para uma função podem surpreender, pois caso o objecto seja modificado dentro da função é modificado em todo o lado (incluindo fora dessa função).

Quem não aprendeu C, pode apreender isto? Claro que sim, mas para quem aprendeu C/C++ torna-se praticamente óbvio. E isto é só um exemplo.
 
Back
Topo