Editar:
Como você gerencia tarefas individuais ao trabalhar em vários idiomas
No manuseio diário das tarefas, com quantas linguagens de programação diferentes você trabalha?
- Você faz uma mudança mental ao trabalhar em cada idioma?
- Você as prioriza e mantém cada tarefa por idioma separadamente.
- Você codifica em estágios com base no progresso de cada tarefa alternando perfeitamente entre idiomas / IDE / Ambiente
- Você aplica o mesmo estilo / convenções de codificação em todos os idiomas (não na sintaxe)?
Relacionado:
É normal que o programador trabalhe em vários projetos simultaneamente
.equals
em javascript. Pelo menos eu sempre erro dessa maneira ao invés de usar==
em java.Respostas:
Hoje eu escrevi Java, Python, C ++ e SQL (se conta). E estou no trabalho há menos de 2 horas.
Se você fizer isso regularmente, a mudança mental se tornará insignificante. Não tem nada a ver com multitarefa. É como andar um pouco, dirigir um carro, dirigir uma bicicleta e depois nadar. Não tem problema, porque são coisas sequenciais.
Independentemente disso, o objetivo é concluir uma tarefa antes de passar para a próxima. Costumo definir tarefas em termos de uma funcionalidade concreta, correção ou algo assim. Frequentemente, essa tarefa é realizada com apenas um idioma, mas pode exigir vários deles. Por exemplo, ao trabalhar com JNI , você normalmente fará alterações nos lados Java e nativo em paralelo.
Algumas respostas:
É importante poder alternar perfeitamente entre IDEs, editores e ambientes. Normalmente eu mantenho todos abertos o tempo todo.
Se for uma interface sobre a qual dois idiomas estão falando, então sim - nomes de variáveis e outros devem ser semelhantes. Caso contrário, tento aplicar o estilo de codificação típico desse idioma.
fonte
Há um padrão se formando aqui:
Então, para mim, é: javascript, HTML e CSS, C #, Transact-SQL e Windows Powershell.
Você aplica o mesmo estilo / convenções de codificação em todos os idiomas (sem sintaxe)?
Não, faço questão de programar de acordo com a convenção da linguagem. Um exemplo simples:
O emprego de convenções de codificação visualmente diferentes me ajuda a mudar mentalmente os idiomas. Por outro lado, se meu código tivesse a mesma aparência em cada idioma, cometerei erros sintáticos ao esquecer em qual idioma estou codificando.
fonte
Conforme indicado pela SK-logic, a mudança mental não deve ser um problema se você usar idiomas específicos de domínio bem escolhidos. Mas muitas vezes você não pode escolher o idioma, portanto, às vezes, leva um momento para mudar. Na minha experiência, a dificuldade está mais na mudança de sintaxe do que na mudança do estilo de programação. A única mudança irritante que eu sempre experimentei é a mudança de estilo de comentário : se eu abrir um arquivo para alterar rapidamente uma linha de código, geralmente será:
fonte
No meu último trabalho: Java, C ++, C #, JavaScript e VBScript.
Mas, felizmente, todos os itens acima estavam em contextos muito diferentes (e em alguns produtos) - então, quando você conhecia cada base de código suficientemente bem, a mudança mental para diferentes contextos era realmente muito fácil e lógica.
Na verdade, o que mais me incomodou foi a interrupção por problemas de suporte ao cliente. Mudar internamente para uma tarefa em outro idioma nunca foi um problema em si.
fonte
Eu trabalho com 2 idiomas: c # e python.
Eu uso os dois no mesmo projeto, mas obviamente para tarefas diferentes.
Quando estou trabalhando em uma tarefa, trabalho nessa tarefa até que esteja em um estado completo ou até que não consiga mais me concentrar nela. Isso significa que, se eu tiver que alternar entre idiomas, há pouca ou nenhuma dissonância cognitiva, pois já vou pensar em um desses idiomas quando terminar a última tarefa.
É certo que farei uma pequena pausa quando sair de uma tarefa, o que provavelmente ajuda muito.
fonte
O mínimo possível. Geralmente envolve 1. Python, mais 2. modelagem de HTML, 3. HTML + CSS e às vezes 4. Javascript. Mudar de Python para JS definitivamente requer uma mudança mental, também porque eu preciso usar ferramentas diferentes.
Eu adiciono HTML + CSS como separado do modelo de HTML, mesmo que os idiomas não sejam propriamente ditos (ou podem depender da sua religião), porque também requer uma mudança mental e o uso de outras ferramentas, embora não seja tão ruim quanto mudar para Javascript. Brincar com HTML + CSS da perspectiva do design, para fazer a página parecer com a maquete requer, é uma mentalidade diferente da criação de modelos HTML. Mas é mais ortogonal para Python do que Javascript, o que significa que preciso mudar minha mentalidade de programação para outra. :)
fonte
Diariamente eu uso:
Eu também uso Python, Java e XML (isso conta?) Ocasionalmente. Meu trabalho envolve editar vários sites, que podem ser construídos em qualquer idioma da Web (que até já teve um Perl) e usar paradigmas / modelos totalmente diferentes (procedural, MVC, OOP etc.).
Para responder à pergunta - eu uso principalmente o Notepad ++ como meu IDE para os 5 primeiros listados, depois o Visual Studio para Asp.Net.
Pode ser difícil mudar rapidamente entre cada idioma - lembrando se você precisa ou não de ponto e vírgula no final das linhas ou se os loops têm chaves ou não. Mudar de VBScript para JScript é o pior para isso - os arquivos terminam em .asp e parecem bastante semelhantes à primeira vista, por isso leva um tempo para descobrir por que estou recebendo erros.
fonte
No momento, estou escrevendo Ruby, PHP, Java, C e JavaScript e vou escrever por um período mínimo de 1 hora em cada uma delas a cada dia. O principal problema é realmente uma questão de encontrar o tempo, pois todos eles são para projetos não relacionados.
Mudança mental
Meu estilo de trabalho é tal que gosto de trabalhar por longos períodos de tempo. Infelizmente, isso significa que, se eu tiver apenas uma coisa, quando encontro um bloqueio mental com um pedaço de código, levarei um longo tempo para superá-lo. Também não acho que fazer uma pausa. Ao ter outros projetos e, em particular, outros idiomas, para alternar para sempre que eu ficar travado, quando voltar ao idioma original, eu imediatamente tenho uma solução.
Portanto, sim, há uma mudança mental e acho que me torna muito mais produtivo.
Priorizando tarefas
Eu uso um gerenciador de tarefas (gTasks para Android) e tenho uma lista de tarefas separada para cada projeto. Se um projeto requer vários idiomas, não os separo. Isso geralmente ocorre porque eles estarão fortemente relacionados de alguma forma. Por exemplo, JavaScript e Ruby para fazer algumas coisas de AJAX. Se os idiomas são tecnicamente para o mesmo projeto, mas o projeto é tão grande que eles são essencialmente independentes, provavelmente os contarei como projetos separados.
Geralmente, minha prioridade é "a lista que tiver mais tarefas", mas sempre mudarei se ficar presa a um problema.
Convenções de codificação
É um pouco de uma mistura:
Além: O maior desafio para mim é realmente alternar entre linguagens de estilo. É muito difícil competir ao codificar SASS ao lado de Ruby e depois ter que voltar ao CSS para todo o resto. Em menor grau, tenho o mesmo problema com HAML / HTML e JSON / XML.
fonte
Eu escrevo aplicativos para o lado ISP, há também uma cultura de "faça o que você se sentir confortável", geralmente escrita por muitos engenheiros de rede que se interessam por programação. Eu tenho que lidar semanalmente, com programas bem escritos, para realmente horríveis. O que frequentemente encontro e trabalharei ...
Também existem outros idiomas (.net, VB, Phyton, Rails, etc) por aí na empresa, mas ainda não precisei trabalhar neles ...
Editar, para a edição ...
Você precisa mudar mentalmente quando trabalha entre idiomas. Na maioria das vezes o que vou perder de vista é a sintaxe. Eu mantenho uma coleção de livros de referência prontos. Descobrirei que leva cerca de meia hora para voltar à mentalidade do outro idioma. Quanto mais obtusa a sintaxe do idioma, maior a mudança. Acho que mudar de Java para Perl provavelmente leva mais tempo se eu não tocar em Perl há algum tempo. Quanto mais você faz isso, mais fácil fica.
fonte
Costumo usar seis ou mais idiomas em um projeto. A maioria deles geralmente é específica apenas para esse projeto.
A mudança mental só é necessária se você estiver usando um idioma que não é apropriado para uma tarefa. Caso contrário, é natural usar o melhor ajuste. Diferentes conjuntos de idiomas são usados para diferentes estágios de um projeto.
fonte
Uso C (incorporado), C ++ (desktop), Python, Matlab e VHDL (uma espécie de linguagem de programação de hardware) com frequência, geralmente todos no mesmo dia. No meu ambiente, esse tipo de destreza linguística é essencial em minha opinião.
Geralmente, não consigo obter tudo o que preciso em um projeto específico, feito em um idioma de forma eficiente. Por exemplo, C e VHDL incorporados são de nível bastante baixo, então eu frequentemente uso o Python para analisar seus resultados (ou até gerar código).
Alternar rapidamente entre eles não é um problema depois de um tempo, é como mudar de um martelo para uma chave de fenda - a ferramenta certa para o trabalho.
fonte
Realmente depende de como o trabalho é definido ... Uso C # para desenvolver aplicativos Microsoft Surface todos os dias. Java Eu também uso todos os dias para meus aplicativos Android. Mas tento me educar e comecei a usar R, Ruby e Objective-C. Às vezes, também preciso de um pouco de SQL e, se você incluir linguagens de script e outras linguagens na sua pergunta, também JavaScipt, SPARQL e BeanShell.
Você aplica o mesmo estilo / convenções de codificação em todos os idiomas (sem sintaxe)?
Eu tento seguir as convenções de codificação de cada linguagem, mas especialmente entre Java e C #, tenho algumas dificuldades por causa das chaves e do método de letras maiúsculas em C #:
vs.
fonte
Eu construo aplicativos da web. Então atualmente é:
Editores: Texto sublime (fora de opção), Visual Studio 2010 (nenhuma outra opção viável no ASP.Net)
fonte
No meu trabalho, uso Java, C, Python, Django e pequenos pedaços de PHP. Também trabalhei em um projeto muito pequeno em C ++ da Microsoft.
Eu não uso todos eles todos os dias, mas alguns dias eu os uso sem problemas. Em um dia típico, eu uso apenas um ou dois. A programação que faço em casa geralmente envolve trabalhar com tecnologias diferentes das que uso no trabalho como Qt ou Ruby on Rails.
fonte