Executando verificação de segurança...
2

Então vamos lá... "programas que sejam úteis, legais e criativos para o dia a dia" só você sabe o que é isso, porque todas as linguagens mais conhecidas dão para fazer isso.

Precisaria de um objetivo mais claro e específico para indicar algo.

Eu costumo indicar C para a pessoa começar. É uma linguagem real, que mostra os desafios que a pessoa terá de verdade, ensina ela a entender "como o computador funciona" sem abstrações. Veja bem, não é para dominar a linguagem, só usá-la para aprender. Dá para fazer "programas que sejam úteis, legais e criativos para o dia a dia" aos montes com ela. Não indico para usar para os programas reais, é só para aprender. Então acho que não é oque deseja. De qualquer forma eu indico ela para quem quer uma formação sólida na área, que tenha um alicerce de primeira linha, que privilegie os fundamentos.

Indo para o outro lado quando quer aprender a ferramenta sem maiores preocupações com a formação, e eu entendo que é isso que a maioria das pessoas querem dá para ver o resultado mais rápido, então o caminho se não for Python, deveria ser JavaScript.

Python é uma linguagem bem útil, dá para fazer o que desejar, tem aplicabilidade bem grande, e ela é orientada a objeto, como deseja, ainda que eu acho que esse não deveria ser o objetivo. A maioria das pessoas indicam ela por ser fácil de começar (ou seja, não te desafia muito) e não vejo nada de errado em adotá-la.

Se quer algo que entregue um resultado mais bonito na hora, que também é fácil, em algum aspecto até mais, que tem aplicabilidade mais limitada, mas ainda grande e no que as pessoas mais usam hoje em dia, então essa linguagem é JavaScript. Ela é orientada a objetos, tanto por protótipos quanto com classes (é meio disfarçado, mas tem a sintaxe, que é oque as pessoas se importam porque dá para aprender orientação a objeto, até de forma melhor com C, porque aprende como OO funciona de verdade).

Não gosto de classificar como orientadas a objetos, mas em termos informais quase todas são hoje em dia. Não são as mais antigas que não foram muito atualizadas (até COBOL é orientada a objeto, tem ponteiro opcional, curiosamente quase ninguém sabe disso) ou as mais novas que perceberam que era uma furada. Não vou falar de linguagens que quase ninguém usa, então não são C, Assembly, Go, Rust, se eu não estiver esquecendo de alguma. Mas todas conseguem usar OO se quiser, com esforço. Portanto, pode escolher qualquer uma das outras.

Em termos de eficiência C pode entregar mais, se o programador souber fazer, não é automático. C++ também é "orientada a objeto". Rust não é, mas é bem eficiente também. Depois disso se prefere algo mais produtivo, mais alto nível, entre as mainstream C# deve ser a mais eficiente. Também Swift de uma outra forma (tem ganhos de um lado mas fica atrás em vários outros). Go não é OO, mas é eficiente, podia ser mais, quem sabe um dia. Mas sempre considerando que o programador consegue dar a eficiência, que depende de dominar muito os fundamentos.

Novamente, para mim os fundamentos da computação e engenharia de software são muito mais importantes que a linguagem. Acho que o ideal é usar a ferramenta para aprender isso, e por esse motivo tem que escolher uma ferramenta que remete a eles. Por isso falo de C, e depois quem sabe C++ para aprender orientação a objeto, que é uma linguagem bem diferente, a tal ponto que nem recomendo se não for trabalhar com ela. Acho que OOP deveria aprebder bem depois porque não é algo tão importante na programação e não é algo básico, não devria começar por isso. Eu já respondi sobre isso no Quora.

Ir passo a passo é melhor do que traçar um plano enorme. Começa pelo mais básico possível. Aprende a usar bem variável que é usada virtualmente em todas as linhas de código. Aprender a organizar o código, ter atenção aos detalhes, a fazer o mais simples e depois crescendo em dificuldade, mesmo que isso não seja tão prático. Quem copia receitas de bolo, faz coisas que já mostra o resultado de um sistema pronto, que faz coisas complexas sem entender o que está acontecendo, não dá certo. Nunca vi uma só pessoa que fez isso e se tornou bom em programação (a não ser que mudou tudo depois, mas dá mais trabalho e é raro quem faça). Claro que nem todos têm esse objetivo.

A maioria das pessoas abrem mão da eficiência, porque dá mais trabalho e exige uma base muito forte.

Fazer algo intuitivo é puramente capacidade de quem está desenvolvendo. E que depende dos fundamentos.

Não tem problema tão grande a pessoa abrir mão dos fundamentos, e tem lá sua vantagem fazer assim, mas essa pessoa terá desvantagens, ela terá que conviver com isso.

Eu não tenho como sugerir um curso por uma razão muito simples, eu não faço cursos há muito tempo. Não posso indicar algo que eu não fiz. Em geral, o que fez tem dificuldade de indicar porque ela ainda não tem experiência para avaliar bem o curso, ela pode falar se gostou ou não, mas não sobre a qualidade. É como um aluno de viticultura te recomendar um vinho, claro que ele pode falar do que ele gostou, mas não do que tem mais qualidades vinícolas, mesmo que ela saiba um pouco, não tem experiência.

Eu indico livros e respondi sobre isso antes. Também pode começar na internet, também respondi sobre isso.

Faz sentido?

Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).