Até agora eu trabalho com asp.net e C #. Também fiz um trabalho decente em Java. Estou planejando minha carreira de tal maneira que um dia seja independente da linguagem. Quais são as coisas que eu preciso aprender?
Primeiro, o OOP paradigmas, enquanto fala sobre o design da classe. Existem outros?
language-agnostic
Gopi
fonte
fonte
Respostas:
Para ser independente do idioma, você precisa ter experiência em todos os estilos e tipos comuns de idiomas.
Além disso:
Alguns estilos de digitação:
Experiência de digitação forte versus fraca também é útil.
Alguns estilos de tempo de execução diferentes:
Material de nível inferior:
Além disso, eu diria que você precisa de alguma experiência em programação simultânea e algo orientado a eventos . Você provavelmente também deve ter certeza de que sabe algo sobre os vários domínios, como programação na Web (cliente e servidor), desenvolvimento de rich client / desktop, jogos. Você também pode querer aprender sobre programação incorporada ou hardware dedicado (como consoles de jogos), e o desenvolvimento móvel está se tornando um domínio cada vez mais relevante.
Outros também mencionaram que vale a pena ter alguma experiência em abordagens de programação genérica e meta-programação .
Ao aprender esses paradigmas, evite apenas aprender a sintaxe e escrever no seu estilo antigo. Eu já vi muitos desenvolvedores de C # escreverem JavaScript como se fossem estaticamente digitados. Não faça isso, tente aprender os paradigmas da linguagem e os adote.
Se você tiver feito tudo isso, as diferenças entre os idiomas se tornarão amplamente sintáticas, de modo que a troca se tornará um exercício bastante simples de aprender alguma nova sintaxe.
Não se esqueça, porém, de que a programação moderna quase sempre depende de uma estrutura, portanto, familiarizar-se com as estruturas comuns e populares de cada idioma que você aprende também é fundamental. Saber C # é irrelevante sem .net.
fonte
Eu não acho que você possa se tornar verdadeiramente independente de linguagem. Acho que "penso" no meu idioma atual (no momento, C #).
No entanto, tendo dito isso, acho que você pode separar o design do código tentando pensar em pseudo-código em vez de um idioma específico e anotá-lo nesse formato. Isso pode ajudá-lo a se concentrar nas decisões de design e arquitetura, e não na implementação no seu idioma atual. A desvantagem disso - como Simon ressalta - é que a linguagem e a estrutura que você usa finalmente influenciarão inevitavelmente o design. Assim, à medida que seu design se desenvolve, ele se torna cada vez mais vinculado à linguagem e à estrutura.
fonte
Lendo sua pergunta e algumas das respostas, pode-se ter a impressão de que você iguala "agnosticismo da linguagem" a "conhecer todos os paradigmas da Terra".
Não tenho certeza se conhecer todos os paradigmas que existem ou conhecer uma variedade de idiomas, abrangendo vários paradigmas e tipos de idiomas, faz com que você seja "independente da linguagem".
É como dizer que ter praticado todas as religiões se torna religiosamente agnóstico.
Eu acho que uma pessoa independente de linguagem em relação às linguagens de programação deve ser alguém que não sabe programar em nenhum idioma ou que não se importa com qual idioma ele é solicitado a programar.
Dito isto, algumas pessoas dizem que um verdadeiro programador pode programar em qualquer idioma com acesso à documentação desse idioma.
Se é isso que você quer dizer com "independente de idioma", quase todo programador experiente pode programar em qualquer idioma com o qual é obrigado a trabalhar, com acesso à documentação do idioma.
Talvez você queira ser "politeísta da linguagem".
Eu próprio sou competente em vários paradigmas de linguagem, mas prefiro OOP quando aplicável. Então acho que não sou agnóstico.
Você dificilmente encontrará alguém que não prefira um certo paradigma ou idioma, com a liberdade de escolher.
fonte
Não são apenas as linguagens, o próprio Java tem tantos modos diferentes que você pode passar anos aprendendo todos eles. Você pode aprender:
E uma centena de coisas que estou perdendo - APENAS dentro de java.
Se você passar anos cobrindo a amplitude (aprendendo todos os idiomas), terá problemas para ganhar profundidade para trabalhar de maneira eficaz em qualquer um deles.
Não estou dizendo que aprender um novo idioma SEMPRE é um problema, você deve estar ativamente fazendo isso! Tento escolher meu próximo emprego com base no que posso aprender (o que ainda não fiz), mas não costumo escolher um idioma aleatório e o aprendo mais - a última vez que tentei isso foi com Scala e eu deixou um pouco humilhado ...
fonte